コンソール付きのシミュレータがほしい(端末)

V-scale chip がうまく動かないので、コンソールのついているシミュレータが欲しいです。せっかく Vivado ロジックアナライザの使い方の書いてある本を買ったのですが、やっぱりシミュレーションのほうが良い。そんな訳で、シミュレータを作ろうと思います。
まず、verilog で標準入力の方法がわからない。っていうか、そんなのあるのか?調べても分からなかったので、Verilator で環境を作ることにしました。C言語なら当然の事ながら標準入力があります。
実際の構成ですが、(ここら辺はまだ、いい加減な作りで誤魔化しているのですが、)コンソールとのインターフェイス用に、 UART の隣に CPU からは同じ機能に見えるモジュールを置きました。この中にいくつかレジスタを準備して、テストベンチから直接操作します。出力レジスタにデータをセットすると画面に文字が出力されます。入力レジスタのデータの有無を確認したときは、3連続でデータが無かったらシミュレーションを停止してキー入力を待ちます。キー入力されるとシミュレーションを再開して、CPU からデータが読めるように入力レジスタにデータをセットします。
で、作ってみると… 結構速い。やっぱり Verilator すごい。こんな感じで動いています。
~/RISC-V/vscale-chip/src/main/c/bootload$ make
[省略]
~/RISC-V/vscale-chip$
make verilator-sim
[省略]
~/RISC-V/vscale-chip$ make verilator-board-test
cp src/main/c/bootload/kzload.ihex loadmem.ihex
touch ram.data3 ram.data2 ram.data1 ram.data0
sim/Vvscale_verilator_top +max-cycles=10000 --vcdfile=tmp.vcd
Running ...
kzload (kozos boot loader) started.
kzload>
run
run
run error!
kzload>
dump
dump
size: ffffffff
no data.
kzload>
q
rm ram.data3 ram.data2 ram.data1 ram.data0
まだあまり面白くありませんが、Github を更新しました。次は XMODEM もサポートしたいと思います。
[PR]
トラックバックURL : http://tom01h.exblog.jp/tb/27467566
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
by tom01h | 2017-01-22 00:28 | PCとか | Trackback | Comments(0)