FC2カウンター FPGAの部屋 Veritakでステートマシンのステート表示
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Veritakでステートマシンのステート表示

今まで、Verilogのステートマシンは論理合成不可の部分にストリングで書いていたが、(”Verilogでのシミュレーションの疑問(解決編)”参照) Veritakでenum選択でステートが表示できると聞いたような気がしたので、やってみることにした。
cs_mainステートマシンを選んで、右クリック。右クリックメニューから”表示の選択”を選び、その下の”enum選択”を選ぶ。
Veritak_enum_1_100207.png

parameter selectionダイアログが出てくる。ここで、使うパラメータをすべて選択してもステートは表示されない。
Veritak_enum_2_100207.png

ステートマシンのパラメータの宣言は下のようになっている。

parameter wait_cmd_fifo_not_empty =4'b0001;
parameter vram_addr_counter_load =4'b0010;
parameter next_char_code_load =4'b0100;
parameter char_generation_state =4'b1000;


Veritakマニュアル2.4.2 Enum Displayを見るとparameterの書き方が悪いのがわかった。それによると、下のように書く必要があるらしい。

parameter [3:0] wait_cmd_fifo_not_empty = 4'b0001,
                vram_addr_counter_load =  4'b0010,
                next_char_code_load =     4'b0100,
                char_generation_state =   4'b1000;


上のように書き換え、コンパイル、シミュレーションして、cs_mainステートマシンを選んで、右クリック。右クリックメニューから”表示の選択”を選び、その下の”enum選択”を選んで、parameter selectionダイアログを出す。
Veritak_enum_3_100207.png

param0~param3 まで値が入って、この行を選択してOKボタンをクリックすると、ステート値が表示された。
Veritak_enum_4_100207.png

うまく行ってよかった。上記のように全部のステートマシンを書き換えようと思う。

見てわかるとおりに、グラフィック・コントローラ・テスト回路の動作はまだまだおかしい。まだ、DDR2 SDRAMコントローラのアドレスFIFOがOVERFLOWになり、FIFOのアサーションでシミュレーションがストップされている。Verilogのアサーションだけども、やはりアサーションは便利だ。
これからステートマシンのステート値を定義するparameterを書き換えてデバックする予定だ。
  1. 2010年02月07日 19:15 |
  2. シミュレーション
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/1374-55fa4a8b
この記事にトラックバックする(FC2ブログユーザー)