雑多な趣味の記録帳

tom01h.exblog.jp

タグ:ハウツー ( 39 ) タグの人気記事

vivado でバイト制御付きの RAM を推論する

ada さんに教えてもらった このページ を参考に、バイト制御付きの RAM の記述を見直そうと思います。記述自体を真似するのではなく、テンプレートが参考になるというところを…
まずは、Source の中から適当に選んで Verilog ファイルを開きます。
f0054075_22331695.png
そして電球マークをクリックして Language Templates を開いて、Verilog/Synthesis Constructs/Example Modules/… を選ぶとサンプルが表示されます。先のページの例と比べると、だいぶ洗練された感がありますね。ごく普通の Verilog 記述に見えます。
これを参考に書いた Verilog が、このファイル の下のモジュールになります。ついでにイネーブルも入れたら遅くなりました。
f0054075_22361142.png
今まではいい方法が分からなかったので、バイト幅の RAM を横に並べていました。
当然のとこながら、初期化データもバイトサイズに分割するという面倒な目に合っていましたが、今後は面倒から開放されそうです。そうはいっても、エンディアン変換は必要なのですが…

[PR]
by tom01h | 2018-05-30 23:21 | Trackback | Comments(0)

draw.io

こういう図を描くには draw.io は結構使いやすいなツールかと思います。
ネットにつながないと使えないのがちょっと不便ですが…
f0054075_19105527.png

こんな図じゃわからないと思いますが、こんな感じで 32bit 乗算器と 8bit 内積演算器で回路の共有化をしたいと思っています。とは言っても、FPGA ではハードマクロの乗算器を使うので、この構成は必要ないんですけどね。
乗算はレイテンシが2サイクルで、内積は4サイクルです。リソースコンフリクトについては考えていません。

[PR]
by tom01h | 2018-03-07 21:08 | PCとか | Trackback | Comments(0)

オープンソース論理合成ツール Yosys による論理合成の試行

Yosys について Github にサンプル上げました。
[PR]
by tom01h | 2017-12-18 00:00 | PCとか | Trackback | Comments(0)

クイックアクセスに表示しない

最近、Windows10 のエクスプローラ(ファイルみるやつ)が固まることが多い。
スマホのOSみたいにファイルシステムを見せないことにしたのかな?
ってそんなことないですよね。
どうやら、クイックアクセスにネットワーク上のファイルとかがあって、なおかつそのファイルが見えない状態だと固まっちゃう模様です。
結構便利な機能だと思っていたけど、最近使ったファイルとよく使うフォルダーをクイックアクセスに表示しないようにしました。
f0054075_19284386.png
プライバシーじゃないんですよね。こう設定しないと使い物にならないからなんですよ。

[PR]
by tom01h | 2017-12-12 19:29 | PCとか | Trackback | Comments(0)

覚書

Windows の Emacs で等幅フォントを使う。
1バイトフォントと2バイトフォントで幅が合わなくて困っていたので…
;; 日本語等幅フォント
(create-fontset-from-ascii-font "MS ゴシック-11:weight=normal:slant=normal" nil "gothic11")
(set-fontset-font "fontset-gothic11" 'japanese-jisx0213.2004-1 "MS ゴシック-11:weight=normal:slant=normal" nil 'append)
(add-to-list 'default-frame-alist '(font . "fontset-gothic11"))
Markdown の表を書くのに困って入れました。
ちなみに、表を書く時だけ org-mode に切り替えると便利です。

[追記 Windows 用の Emacs に Markdown Mode を追加]
http://jblevins.org/projects/markdown-mode/markdown-mode.el を C:\emacs\share\emacs\site-lisp において
;; Markdown Mode
(autoload 'markdown-mode "markdown-mode.el" "Major mode for editing Markdown files" t)
(setq auto-mode-alist (cons '("\\.md" . markdown-mode) auto-mode-alist))

[PR]
by tom01h | 2017-12-08 11:15 | PCとか | Trackback | Comments(0)

YOSYS で合成

YOSYS というオープンソースの論理合成ツールを試して見ました。
ここにあるライブラリ を使っています。

最初に 32bit の A*B を試します。unsigned のみの対応ですが、
Delay = 8844.21 ps
Chip area for this module: 220613.000000

ここから先は今まで作ってきたものを…

Booth 32bit 乗算器 (mul_1.v)
Delay = 10185.20 ps
Chip area for this module: 239962.000000

vscale_mul_div (FPU拡張途中)
Delay = 9326.13 ps
Chip area for this module: 333909.000000

vscale_mul_div (オリジナル)
Delay = 8496.38 ps
Chip area for this module: 96705.000000

estimate_core (全体ではこれを32個使います)
Delay = 4929.48 ps
Chip area for this module: 46230.000000

合成スクリプトの例
read_verilog vscale_mul_div.v
read_liberty -lib osu018_stdcells.lib
proc
flatten
synth -top vscale_mul_div
write_verilog synth.v
dfflibmap -liberty osu018_stdcells.lib
abc -D 10000 -constr example.constr -liberty osu018_stdcells.lib
stat -liberty osu018_stdcells.lib
write_verilog gate.v


[PR]
by tom01h | 2017-12-01 23:32 | Trackback | Comments(0)

wsl-terminal

Bash on Ubuntu on Windows のターミナルがあまりに使いにくいので、wsl-terminal なるものを入れてみました。もっと便利なものもあるのかもしれませんが、とりあえず画面が崩れたりしなくなりました。マウスのコピペも普通になりました。もっと早く試せばよかった。
しかし、ググったページに必ずと言ってよいほど BoW から Windows のコマンドを実行可能にする拡張の話も一緒に出ているのですが、皆さん Creators Update から標準で出来るようになったこと知らないんですかね?それとも、標準のより便利なんですかね?標準のは BoW の環境変数を Windows のコマンドに渡してくれないあたりを不便に感じています。

[PR]
by tom01h | 2017-09-07 19:57 | PCとか | Trackback | Comments(0)

ストアアプリのアップデート

大体いつも月例アップデートの後には原因不明のダウンロードが続いていたのですが、ついに原因が分かった気がします。ストアアプリのアップデートを実行していたみたいです。ほとんど使いもしないのに…
ストアの設定で自動更新をOFFにする事が出来ました。
f0054075_08561244.png

[PR]
by tom01h | 2017-08-12 09:02 | PCとか | Trackback | Comments(0)

WaveDrom

ちなみに波形は WaveDrom というソフトで書いています。テキストファイルを入力して波形を書くソフトです。ブラウザ上でも使えるようです。ソフト自体の使い心地はかなり残念ですが、テキストでここまで書けるのは結構便利。マニュアルもないので、ソフトの使い方も、できることもチュートリアルでしか分かりません。GoogleGroup に参考になる情報が有ったりもするみたいです。


こんな記述で波形が書けます
[PR]
by tom01h | 2017-07-03 00:41 | PCとか | Trackback | Comments(0)

git の覚書…

git の覚書…

ファイルパーミッションの違いを無視する
$ git config core.filemode false
ノンベアをベアリポジトリに変更する
$ git config core.bare true
新たにベアリポジトリをクローンするのは
$ git clone --bare nonbare-repository bare-repository.git

[PR]
by tom01h | 2017-06-15 21:23 | PCとか | Trackback | Comments(0)