Verilog書いてて失敗した事のメモ VerilogLog,略してVeriLog * 全般 [#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/プロジェクト名 で, 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