在Vivado TCL命令窗口中可以通過(guò)調(diào)用write_edif命令將用戶(hù)自定義模塊封裝成.edf網(wǎng)表文件(類(lèi)似ISE里的.ngc文件),但按照官方給出的參考用法生成的網(wǎng)表文件對(duì)自定義模塊有種種限制,即待封裝的模塊不能含有Xilinx IP(少部分IP可以包含,如RAM IP、FIFO IP等),如DSP IP、MIG IP等,否則在編譯時(shí)將報(bào)錯(cuò),提示有未定義的黑盒。
那么如何將包含XIlinx IP的用戶(hù)模塊封裝成網(wǎng)表文件,下面將給出詳細(xì)步驟
1. 將待封裝模塊設(shè)置為top層
如下圖所示,待封裝模塊為abc,則選中abc后右鍵,選擇“Set as Top”,
2. I/O Buffers設(shè)置
設(shè)置Settings–>綜合 synthesis–>選項(xiàng)options下拉至最后一項(xiàng):More Options,將其值設(shè)置為:
-mode out_of_context
-mode out_of_context表示在該級(jí)不插入任何I/O BUFFERs,該選項(xiàng)類(lèi)似ISE里在相應(yīng)設(shè)置處不勾選I/O BUFFERs。
另外還可以在選項(xiàng)options中找到“-flatten_hierarchy”,將層級(jí)結(jié)構(gòu)設(shè)置為“full”,
層級(jí)結(jié)構(gòu)則可設(shè)置“-flatten_hierarchy”選項(xiàng)為“full”:“全”該選項(xiàng)指示工具把層級(jí)全面變平,只剩下頂層,保護(hù)IP的層級(jí)結(jié)構(gòu)不被其他用戶(hù)清楚查看。
3. 綜合
運(yùn)行綜合synthesis,完成綜合后,打開(kāi)綜合設(shè)計(jì)open synthesized design
4. 生成僅包含IO端口信息的empty module
打開(kāi)綜合設(shè)計(jì)open synthesized design后,在TCL命令窗口執(zhí)行如下命令:
2017.4之前版本:
write_verilog -mode port F:/FPGA/abc_stub.v
2018.1之后版本:
write_verilog -mode synth_stub F:/FPGA/abc_stub.v
其中F:/FPGA/替換為要存放的路徑,如未指明路徑,則將存放到工程文件所在路徑下。
5. 生成edf文件
重頭戲來(lái)了,分兩條:
若不含Xilinx IP則可通過(guò)如下命令生成edf文件:
write_edif F:/FPGA/abc.edf
若含Xilinx IP則需通過(guò)如下命令生成edf文件:
write_edif -security_mode all F:/FPGA/abc.edf
6. 新工程中網(wǎng)表文件調(diào)用
將上述生成的abc_stub.v和abc.edf添加到新工程中即可。
7. 帶Xilinx IP的另外一種網(wǎng)表封裝方式(不推薦)
上述步驟3后,在tcl命令窗口中執(zhí)行如下命令:
write_verilog -force abc_stub.v
-
封裝
+關(guān)注
關(guān)注
126文章
7794瀏覽量
142741 -
Xilinx
+關(guān)注
關(guān)注
71文章
2164瀏覽量
121038 -
編譯
+關(guān)注
關(guān)注
0文章
654瀏覽量
32813
原文標(biāo)題:使用Vivado將包含Xilinx IP的用戶(hù)模塊封裝成網(wǎng)表文件(也適用不包含Xilinx IP的用戶(hù)模塊)
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論