FC2カウンター FPGAの部屋 Vivado Design Suite のチュートリアルをやってみた1(Tclスクリプト)
FC2ブログ

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

FPGAの部屋

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

Vivado Design Suite のチュートリアルをやってみた1(Tclスクリプト)

Vivado のIP Integrator やIP Packager はとりあえず次のバージョンを待ちたいが、Vivado はチュートリアルをやってみてやり方を学びたいと思った。そこで、”Vivado Design Suite チュートリアル デザイン フローの概要 UG888 (v2013.2) 2013 年 6 月 19 日”をやってみることにした。使用するVivado のバージョンは、2013.2

プロジェクトモードと非プロジェクトモードがあって両方やるらしい。

非プロジェクトモードで明示的にTclコマンドを使用して、ソース ファイルは read_verilog、read_vhdl、read_edif、read_ip、およびread_xdc コマンドを使用して読み込まれるそうだ。

最初にチュートリアルデザインをフォルダに解凍する。

1.C:\HDL\Xilinx\Vivado\2013.2\examples のVivado_Tutorial.zip の中身を、C:\Users\Masaaki\Documents\Vivado にコピーした。
Vivado_Tutorial_1_130904.png

演習1 : 非プロジェクトデザインフローの使用(8ページ)
手順1で、Vivado_Tutorial/run_bft_batch.tclを確認したが、コメントアウトはされていなかった。

手順 2 : サンプル デザインを使用して Vivado ツールを起動(8ページ)

2.Vivado 2013.2 Tcl Shell を起動した。
Vivado_Tutorial_2_130904.png

Vivado_Tutorial_3_130904.png

3.C:\Users\Masaaki\Documents\Vivado\Vivado_Tutorial に移動した。

cd C:/Users/Masaaki/Documents/Vivado/Vivado_Tutorial


Vivado_Tutorial_4_130904.png

4.run_bft_batch.tcl スクリプトを実行した。

source run_bft_batch.tcl


Vivado_Tutorial_5_130904.png

5.スクリプトが終了した。
Vivado_Tutorial_6_130904.png

手順 3 : デザインの合成(9ページ)

チュートリアルでは、論理合成などをTclコマンドでやっていくことになっているが、実際のrun_bft_batch.tcl にはビットストリームを作るところまで、コメントアウト無しに tcl コマンドが書いてあったので、ビットストリームの生成まで終了していると思う。

6.C:\Users\Masaaki\Documents\Vivado\Vivado_Tutorial\Tutorial_Created_Data\bft_output に bft.bit があった。
Vivado_Tutorial_7_130904.png

・bft_impl.xdc には、タイミング制約、ピン固定はもちろんだが、ロジックの配置固定制約まで出力されている。
下に、タイミング制約、ピン固定制約の一部を引用する。

create_clock -period 10.000 -name wbClk [get_ports wbClk]
create_clock -period 5.000 -name bftClk [get_ports bftClk]
set_property PACKAGE_PIN P20 [get_ports {wbOutputData[23]}]
set_property PACKAGE_PIN V22 [get_ports {wbOutputData[9]}]
set_property PACKAGE_PIN E21 [get_ports {wbInputData[18]}]


下に、配置固定情報の一部を示す。

set_property BEL AFF [get_cells error_reg]
set_property BEL B6LUT [get_cells {egressLoop[4].egressFifo/buffer_fifo/xlnx_opt_LUT_infer_fifo.wr_addr_tmp_reg[2]_CE_cooolgate_en_gate_15_1}]
set_property BEL A5LUT [get_cells {egressLoop[4].egressFifo/buffer_fifo/infer_fifo.wr_addr_tmp_reg[9]_i_2__11}]
set_property BEL D6LUT [get_cells {egressLoop[4].egressFifo/buffer_fifo/infer_fifo.wr_addr_tmp_reg[9]_i_1__11}]
set_property BEL DFF [get_cells {egressLoop[4].egressFifo/buffer_fifo/infer_fifo.wr_addr_tmp_reg[9]}]


bft_impl.xdc は、Route 後のSTEP#4 の”write_xdc -no_fixed_only -force $outputDir/bft_impl.xdc”コマンドで出力されている。”-no_fixed_only”オプションは、”Vivado Design Suite Tcl コマンド リファレンス ガイド UG835 (v 2013.2) 2013 年 6 月 19 日”(以下、Tclガイドと略する)の1033ページによると、

配置が固定されているかどうかに関わらず、すべての配置をエクスポートします。デフォルトでは、固定された配置のみがエクスポートされます。


だそうだ。

・post_synth.dcp、post_place.dcp、post_route.dcp というファイルがあるが、これは、Design Check Point の略で、”デザインをデザイン プロセスの任意の段階で保存し、必要に応じてツールにすばやくインポートし直せるようにします。”とのことだ。write_checkpoint のTcl コマンドで書き出すことができる。(Tclガイド、1006ページ)
read_checkpoint コマンドで、Design Check Point を読み込むことができる。(Tclガイド、623ページ)

レポートは、9個のレポートファイルがある。
Vivado_Tutorial_8_130905.png

最後にネットリスト形式のVerilog HDLファイルのbft_impl_netlist.v が出力されている。その一部を示す。
Vivado_Tutorial_9_130905.png

ネットリスト形式のVerilog HDLが出力されていても遅延情報が書かれたSDFファイルが出力されていない。遅延シミュレーションを行う場合はそれらが必要となる。その場合は write_verilog コマンドに、-mode timesim と -sdf_anno オプションを指定し、、Verilog ネットリストに $sdf_annotate分を追加しておく。この場合は、-sdf_file は指定されていないので、SDF ファイルの名前は Verilog ファイルと同じになるそうだ。write_verilog コマンドの例を下に引用する。(Tclガイド、1029ページ)

write_verilog C:/Data/my_verilog.net -mode timesim -sdf_anno true


更に、write_sdf コマンドで、SDF遅延ファイルを生成する。(Tclガイド、1025ページ)

Vivado Design Suite のチュートリアルをやってみた2(Tclスクリプト2)”に続く。
  1. 2013年09月04日 05:49 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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