DDR SDRAMコントローラVerilog版が動かないのでModelSimでシミュレーションをしていたらステートマシンのステートがステート名で表示されないことに気がついた。
最初にparameterで値を定義しているのに。。。
parameter NOP=8'b00000001, ACT=8'b00000010,.....
n_state <= NOP;
というようにやっているのに、waveウインドウでステートマシンのステートを見ると、n_stateやc_stateが00000001と値で表示されている。parameterでステート名を指定したのではModelSimでは値で表示してしまうのだろうか?

`defineでステート名を記述すると大丈夫なのだろうか?
VHDLではステート名で表示されていたので、これで表示されないと気に入らない。
一度`defineでやってみようと思う。
2006.01.21追記:やはり`defineでも同様でした。
VHDLのようにwaveウインドウでステートマシンの現在のステートをステート名で見る方法をご存知の方はぜひ教えてください。
- 2007年01月20日 21:34 |
- 入門Verilog
-
| トラックバック:0
-
| コメント:2
私が知っているのは別途STATEのような信号を作ります。(以下)
reg [20*8:1] STATE; //20文字
always @(c_state) begin
case(c_state)
8'b00000001: STATE<="NOP";
8'b00000010: STATE<="ACT";
・
・
endcase
end
このSTATEをModelSimではasciiで表示します。
- 2007/01/22(月) 18:32:16 |
- URL |
- #-
- [ 編集 ]
こんにちは。回答ありがとうございます。
このままだと論理合成でエラーになると思うので// synthesis translate_offと// synthesis translate_on でくくれば良いわけですね。
ありがとうございました。やってみます。
でもVerilogもこだわると面倒ですね。。。
- 2007/01/22(月) 20:16:38 |
- URL |
- marsee #-
- [ 編集 ]