- 追加された行はこの色です。
- 削除された行はこの色です。
- VeriLog へ行く。
* VeriLog [#x9298b6e]
Verilog書いてて失敗した事のメモ
VerilogLog,略してVeriLog
#contents
* 全般 [#m091050d]
-ISE Project Navigator下段のErrorコンソールはエラーメッセージが結構
はしょられてるので,よくわからんときは必ずView Synthesis Reportを
見ること
-initial beginは面倒がらずにしっかり書く!
初期値がないものはインクリメントできないぞ.
** 合成用ファイル(dc_topo.scr) [#ff71bb98]
- いらんファイルを除外
set RTL_FILE "[glob rtl/*.v]"
regsub {rtl/ctrl_b12n8_1.v} $RTL_FILE {} RTL_FILE
regsub {rtl/ctrl_b12n8_2.v} $RTL_FILE {} RTL_FILE
:
set行の下に,regsubで削除したいファイル行を続ける.
- sedでTOP_MODULEを変更
シェルスクリプトと組み合わせてレッツ自動化
sed 's/set TOP_MODULE ".*"/set TOP_MODULE "とっぷもじゅーる"/' module.scr
- シェルスクリプトに合成したいトップモジュールをつらつら書く
こんなかんじで,どうだい
top_modules=("nsmb8_0" "smb8_0"
"nsmb12_0")
for tm in "${top_modules[@]}"
do
eval "sed 's/set TOP_MODULE ".*"/set TOP_MODULE \"${tm}\"/' sedsample.txt"
done
* 合成結果レポートファイルの処理 [#c91f752b]
TiminigInfo..やAreaInfo..をまとめるのめどい
cp /home/tsukamoto/vhd/rep2csv.rb /home/じぶんち/vhd/プロジェクト名
cp /home/kam/vhd/rep2csv.rb /home/じぶんち/vhd/プロジェクト名
で,
ruby ./rep2csv.rb
とするとrepディレクトリ以下のレポートファイルをてきとうにパーズして
csv形式で面積と遅延時間を出力します.csv形式なんでOooとかexcelでどうぞ.
ご意見あればどうぞ.
* 信号の複数ドライブ [#tdf7ece6]
別のalways文で同じ信号をドライブしないこと.
当たり前だけど,multiple driver うんぬん言われて
シミュレーションできても合成できなくなるぞう
* design_vision-xgで合成するとき [#sd6f36d0]
readで回路記述を読み込んだ後
source scr/typ_lib_starc90nm.scr
する.
つぎに
set_max_delay 5 -to [all_outputs]
set_max_area 5
などとして時間,面積制約を加えた後
Design -> Compile Ultra
このとき,"No auto ungroup"にチェックしたほうが速い場合がある.
(独自設計の場合など)
** 栗ティカルパス [#o83ab8c5]
Select -> Path from/through/to
で,何も入力せずに[OK]とすると最長経路を選択できる(delay type が max?).
&ref(createPathSchematicOfSelection.png);
さらに
Create PathSchematic of Selection (3つ並びのアイコンの右側)
で,その経路図を抽出できる.
遅延時間は
Timing -> Report Timing Path
* ISEの使い方など [#b9f0e8ac]
** 出力 [#kb96432f]
参考
http://www.tokudenkairo.co.jp/sp6/column.html
* ISim [#a638c653]
** コマンドでシミュレーション [#y9b98453]
*** 準備 [#y65ab8f5]
環境変数を設定する.
''$Xilinx/ver/ISE_DS/settings[32|64].bat''
を実行する.ちなみに,ver13.1では,実行した結果として以下の変数が設定された.
set PATH=c:\Xilinx\13.1\ISE_DS\ISE\bin\nt64;%PATH%
set PATH=c:\Xilinx\13.1\ISE_DS\ISE\lib\nt64;%PATH%
set XILINX=c:\Xilinx\13.1\ISE_DS\ISE
set XILINX_DSP=c:\Xilinx\13.1\ISE_DS\ISE
set XILINX_EDK=c:\Xilinx\13.1\ISE_DS\EDK
set XILINX_PLANAHEAD=c:\Xilinx\13.1\ISE_DS\PlanAhead
*** プロジェクトファイルを作成する [#i7f969c1]
プロジェクトファイルは,テキストで記述する.
verilog test_AlphaMac5_lib "src/AlphaMac5.v"
verilog test_AlphaMac5_lib "src/test/test_AlphaMac5.v"
- verilog Verilog-HDLファイルであることを示す.
- test_AlphaMac5_lib ライブラリ名を示す.
- "src/*.v" ファイルのパスを示す.
*** コンパイル [#z718c888]
"fuse.exe"コマンドでコンパイルする.以下,例.
fuse.exe
test_AlphaMac5_lib.test_AlphaMac5 ^
-prj test_AlphaMac5.prj ^
-L test_AlphaMac5_lib=./isim/test_AlphaMac5_lib/ ^
-o test_AlphaMac5.exe
一般化するとこんな感じ.
fuse.exe ^
<lib_name>.<top_module> ^
-prj <project file> ^
-L <library_name>=<path> ^
-o <outputfilename>
*** 実行 [#l8e70ada]
上記<outputfilename>を実行する.
- ''-gui''オプションで,波形ウィンドウを表示する.
- tclプロンプトが表示されたら,''run all''.
- tclスクリプトの読み込みについては,今後書くよてい.