Top / VeriLog

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


Site admin: kam1610, PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji. Powered by PHP 5.2.17.