Article #401

既に発行済みのブログであっても適宜修正・追加することがあります。
We may make changes and additions to blogs already published.
posted by sakurai on May 13, 2021 #401

以下のスクリプトでVerilogシミュレーションを実行します。

$ bsc -verilog -u Tb.bsv
cp top-original.v top.v
emacs -nw top.v
// emacsでautomodeにより、top.vを生成
iverilog -y /usr/local/lib/Bluespec/Verilog/ top.v mkTb.v mkUart.v -o mkTb.exe
./mkTb.exe
gtkwave -A verilog.vcd

図%%.1
図401.1 シミュレーション波形

図はちょうど1行を送信したところで、横方向のxが256(xは255までだがチェックサム出力の際に256となる)から0に戻り、縦方向のyが0から1になった時点の波形です。データを0x33, 0x66, 0x0a, 0x30, 0x64と送信しています。

ストップビットを1ビットに削ったところ、1,582,090サイクルとなりました。1アスキーバイトあたり12サイクルなので、8bitの他、スタートが1bit、ストップが3bit相当となっています。送信時間は

  • 115,200bpsでは6.9秒
  • 230,400bpsでは3.4秒
  • 460,800bpsでは1.7秒
  • 921,600bpsでは0.9秒

となります。バイナリだとこれの半分の時間となるはずですが、デバッグの都合上アスキーコードの転送とします。


左矢前のブログ 次のブログ右矢

Leave a Comment

Your email address will not be published.

You may use Markdown syntax. If you include an ad such as http://, it will be invalidated by our AI system.

Please enter the numbers as they are shown in the image above.