FC2カウンター FPGAの部屋 ISE8.2iをコマンドラインから使う
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ISE8.2iをコマンドラインから使う

以前ISE8.2iにするとTranslateでTCLエラーで落ちるプロジェクトがあるということを書いたが、やはり改善できないためコマンドラインから使用することにした。
コマンドラインとはWindowsの”スタート”(画面の右下にあるやつ)->”すべてのプログラム”->”アクセサリ”->”コマンドプロンプト”で入力するコマンドのことだ。
コマンドラインで実行するコマンドはISEのProcessesペインでの名称との対応表を示すと

・Synthesize - XST -> xst.exe
・Translate -> ngdbuild.exe
・Map -> map.exe
・Plase & Route -> par.exe
・Generate Programming File -> bitgen.exe


である。これらはXilinx ISEのインストールフォルダ\bin\ntの下にある。これらコマンドのオプションはXSTはXSTガイドの10:コマンド ライン モードに、その他は開発システム リファレンス ガイドに書いてある。結構コマンドラインで使うのは難しくオプションを選ぶのが大変だ。ISE8.2iにするとTranslateでTCLエラーで落ちるプロジェクトではMAP以下を実行できていないので無理だが、ISEのプロパティでお手軽に設定したほうが楽だ。今回の趣旨には沿わないが一度ISEで実行すると、どのようなコマンドを実行したかを見ることが出来る。それはProcessesペインの"Design Utilities"の中から"View Command Line Log File"をダブルクリックすると今まで実行したコマンドが右のペインに出る。
今回は以前のスパルタン3Eスタータキット用のDDR SDRAM Controllerで見てみることにする。
ISE_command_1_0610124.png

これをエディタにコピペしてそれをバッチファイルにする。(.bat)そのバッチファイルを実行すればインプリメントからbitファイルの生成まで実行することが出来る。

xst -ise "H:/HDL/FndtnISEWork/Spartan3E_starter_kit/DDRtest_org/DDRtest_synth/DDRtest_synth.ise" -intstyle ise -ifn DDRtest.xst -ofn DDRtest.syr
ngdbuild -ise "H:/HDL/FndtnISEWork/Spartan3E_starter_kit/DDRtest_org/DDRtest_synth/DDRtest_synth.ise" -intstyle ise -dd _ngo -nt timestamp -uc "DDRtest.ucf" -p xc3s500e-fg320-4 "DDRtest.ngc" DDRtest.ngd
map -ise "H:/HDL/FndtnISEWork/Spartan3E_starter_kit/DDRtest_org/DDRtest_synth/DDRtest_synth.ise" -intstyle ise -p xc3s500e-fg320-4 -cm area -pr b -k 4 -c 100 -o DDRtest_map.ncd DDRtest.ngd DDRtest.pcf
par -ise "H:/HDL/FndtnISEWork/Spartan3E_starter_kit/DDRtest_org/DDRtest_synth/DDRtest_synth.ise" -w -intstyle ise -ol std -t 1 DDRtest_map.ncd DDRtest.ncd DDRtest.pcf
trce -ise "H:/HDL/FndtnISEWork/Spartan3E_starter_kit/DDRtest_org/DDRtest_synth/DDRtest_synth.ise" -intstyle ise -e 3 -l 3 -s 4 -xml DDRtest DDRtest.ncd -o DDRtest.twr DDRtest.pcf -ucf DDRtest.ucf
bitgen -ise "H:/HDL/FndtnISEWork/Spartan3E_starter_kit/DDRtest_org/DDRtest_synth/DDRtest_synth.ise" -intstyle ise -f DDRtest.ut DDRtest.ncd


-ise "H:/HDL/FndtnISEWork/Spartan3E_starter_kit/DDRtest_org/DDRtest_synth/DDRtest_synth.ise"をつけておくとISEプロジェクトでチェックマークがつくようになるようだ。これを除くとISEプロジェクトでチェックマークは付かないようだ。純粋にコマンドラインで実行する場合にはこれはいらないと思う。
上のコマンドを見るといくつか設定ファイルがある。XSTのDDRtest.xstとDDRtest.syr、bitgenのDDRtest.utだ。
DDRtest.xstは下のようにXSTのオプションが書いてある。

set -tmpdir "./xst/projnav.tmp"
set -xsthdpdir "./xst"
run
-ifn DDRtest.prj
-ifmt mixed
-ofn DDRtest
-ofmt NGC
-p xc3s500e-4-fg320
-top DDRtest
-opt_mode Speed
-opt_level 1
-iuc NO
-lso DDRtest.lso
-keep_hierarchy NO
-rtlview Yes
-glob_opt AllClockNets
-read_cores YES
-write_timing_constraints NO
-cross_clock_analysis NO
-hierarchy_separator /
-bus_delimiter <>
-case maintain
-slice_utilization_ratio 100
-verilog2001 YES
-fsm_extract YES -fsm_encoding Auto
-safe_implementation No
-fsm_style lut
-ram_extract Yes
-ram_style Auto
-rom_extract Yes
-mux_style Auto
-decoder_extract YES
-priority_extract YES
-shreg_extract YES
-shift_extract YES
-xor_collapse YES
-rom_style Auto
-mux_extract YES
-resource_sharing YES
-mult_style auto
-iobuf YES
-max_fanout 500
-bufg 8
-register_duplication YES
-register_balancing No
-slice_packing YES
-optimize_primitives NO
-use_clock_enable Yes
-use_sync_set Yes
-use_sync_reset Yes
-iob auto
-equivalent_register_removal YES
-slice_utilization_ratio_maxmargin 5


ここで-ifn オプションはXSTのプロジェクトファイルだ。論理合成するファイルをリストしている。下に示す。

vhdl work "../swdiv.vhd"
vhdl work "../ROTSW_SM.vhd"
vhdl work "../LCD_Display_pack.vhd"
vhdl work "../LCDOPESM.vhd"
vhdl work "../IN4HEXSM.vhd"
vhdl work "../rot_enc_cont.vhd"
vhdl work "../kcpsm3.vhd"
vhdl work "../input_4hex_val.vhd"
vhdl work "../ddr_controller_ono/ddr_controller_pack_syn.vhd"
vhdl work "../ddr_controller_ono/REFREQSM.vhd"
vhdl work "../LCD_operation.vhd"
vhdl work "../INSTROM.VHD"
vhdl work "../input_4hex_top.vhd"
vhdl work "../ddr_controller_ono/write_data_module.vhd"
vhdl work "../ddr_controller_ono/wrdata_fifo.vhd"
vhdl work "../ddr_controller_ono/read_data_module.vhd"
vhdl work "../ddr_controller_ono/rddata_fifo.vhd"
vhdl work "../ddr_controller_ono/dcm_module.vhd"
vhdl work "../ddr_controller_ono/controller.vhd"
vhdl work "../ddr_controller_ono/addr_fifo.vhd"
vhdl work "../LCD4HexDisp.vhd"
vhdl work "../ddr_controller_ono/ddr_sdram_cont.vhd"
vhdl work "../Test_LCD4HexDisp.vhd"
verilog work "dcm100.v"
vhdl work "../DDRtest.vhd"


次にDDRtest.utはbitgenのオプションが書いてあるファイルだ。

-w
-g DebugBitstream:No
-g Binary:no
-g CRC:Enable
-g ConfigRate:1
-g ProgPin:PullUp
-g DonePin:PullUp
-g TckPin:PullUp
-g TdiPin:PullUp
-g TdoPin:PullUp
-g TmsPin:PullUp
-g UnusedPin:PullDown
-g UserID:0xFFFFFFFF
-g DCMShutdown:Disable
-g StartUpClk:CClk
-g DONE_cycle:4
-g GTS_cycle:5
-g GWE_cycle:6
-g LCK_cycle:NoWait
-g Security:None
-g DonePipe:No
-g DriveDone:No


こうしてコマンドラインからコマンドを起動することが出来る。いろいろわかっていればバッチファイルを作っていろいろ便利に使えるらしい。そこまではしていないが、ISE8.2iではプロジェクトナビゲータが使えないようなのでバッチファイルを整備して使えるようにしなければならないようだ。プロジェクトナビゲータが使えればそっちのほうが考えなしに使えていいのだが。。。
  1. 2006年10月24日 22:30 |
  2. その他のXilinxのツールについて
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/336-6523078c
この記事にトラックバックする(FC2ブログユーザー)