1. 程式人生 > >如何將自己寫的verilog模塊封裝成IP核

如何將自己寫的verilog模塊封裝成IP核

目錄 第二篇 hierarchy 布局 options ssi campaign mac sed

如何將自己寫的verilog模塊封裝成IP核

技術分享圖片 (2014-11-21 14:53:29) 技術分享圖片轉載
標簽:

財經

分類: 我的東東

=======================第一篇=======================

如何將自己寫的verilog模塊封裝成IP核

將你的設計制作成BlackBox,也就是網表文件,這樣別人看不到你的設計但是可以調用你的模塊了。詳細的參考信息如下:
1. 什麽是BlackBox
- 一個大的設計中可以用到一系列網表文件作為輸入的一部分而並不全部使用HDL文件。當綜合這個大設計時綜合器不需要知道這個網表文件是怎樣實現的,而只需要知道它的輸入輸出接口就可以了。這樣的網表就稱為黑盒子,因為我們不需要看到它的內部情況。
- 通常付費IP都會以BlackBox的形式
2. 如何使用BlackBox
- BlackBox網表可以是EDIF或NGC文件。
- 每個BlackBox網表都需要有一個與之相對應的HDL文件來註明它的端口。這個HDL只說明BlackBox的端口信息,而不提供具體實現信息。這個只提供端口信息的HDL文件稱為Wrapper。Wrapper的名字通常需要與BlackBox網表的名字相同。
- 在ISE工程

中使用BlackBox時只需要將它的Wrapper添加到工程中。然後像普通的模塊一樣在其上層聲明和例化就可以使用。
- BlackBox網表文件可以放在ISE工程目錄中,也可以放在其他任意文件夾內。當不放在ISE工程目錄時,需要在Translate屬性中將Macro Search Path指向這個目錄。多個目錄使用"|"分割。
3. 如何制作BlackBox
- BlackBox只是普通網表而已。XST的綜合結果就可以直接作為BlackBox使用。
- 通常BlackBox外部還會連接其他邏輯,所以BlackBox中一般不插入IOBUF。在XST屬性中去除Insert IO Buffer的選項。

引自:http://www.cnblogs.com/youngfq/archive/2011/06/15/2081123.html

=======================第二篇=======================

【問】ISE開發套件能否將自己寫的模塊封裝成ip?這裏所說的IP是指類似於用core generator生成的IP格式。
若不能,是否還有其它的工具能將自己所寫的模塊封裝成IP

【答】這個可以吧,你如果只是做成一個IP core用ISE裏面的開發套件就行了,如果要接到xilinx的microblaze核或者是powerpc核上就要用XPS來生成

引自:http://www.eetrend.com/forum/100023865

=======================第三篇=======================

【問】ISE 中是否可以把自己代碼封裝成一個IPcore?

【答】使用PlanAhead 中的將你的設計轉換為PBlock,然後加上約束條件再export 就可以了。以後你要用的話,只需要import 這個PBlock 就可以了。這樣做的核是硬核。當然咯,你也可以使用.edif + .ncf 這樣就是固核,如果你要求靈活性最高的話,就使用RTL + constraint 這樣就是軟核了。

引自:http://group.chinaaet.com/109/1729

=======================第四篇=======================

【樓主】請教把verilog代碼封裝成IP核

請教各位,怎麽將自己寫的verilog代碼模塊封裝成網表型式的IP核呢?

【一樓】

Altera提供的方案為:封裝成qxp文件 ,具體步驟如下:

1.需要創建一個Quartus II 頂層設計項目 並且確保該項目目標器件與該.qxp文件目標器件相同(或者說至少相同器件系列(在不包括布局布線信息前提下).

2.使用提供的端口信息實例這個設計模塊; 3.在Porcessing Menu 上, 點擊Start/Perform Analysis & Elaboration , 驗證該設計的層次. 4.為這個設計模塊實例創建一個design partition. Right-click the instance name in the Project Navigator, andchoose Set as design partition. 5.導入這個.qxp文件到相關的partition hierarchy. 如果你使用the Quartus II GUI, 則在Project menu,選擇 Import Design Partition,select the partition for the design block, and browse to the .qxp file provided.

【二樓】謝謝!再問下對於xilinx的FPGA,在ISE上怎麽實現呢?
【三樓】xilinx CORE Generate 在開始ISE design tools/tools裏,沒用過。。。樓主用完可以分享下經驗
【四樓】將一個子模塊單獨綜合後,會得到ngc文件或者edif文件。在調用模塊的時候,僅需將.ngc 文件放在工程目錄下。詳細過程查閱xilinx官方手冊。 附:常見文件類型說明 XCO: This file contains core options and parameters. EDN/NGC: This is the implementation netlist for the IP cores which output netlists. It is passed on to the Translate (NGDBuild) process. SYM: This schematic symbol is automatically generated for instantiating the IP in a schematic. VHO or VEO template files: These files are automatically generated for instantiating the IP in an HDL file. VHD or V simulation wrapper files: These files are provided for simulation of IP cores which output netlists. VHD or V source-code files: These files are the actual source-code required for both synthesis and simulation of IP cores which output source-code.

【五樓】今天試了試好像還挺容易的。 只要把將一個子模塊單獨綜合,把綜合屬性裏的“Add I/O Buffers”去掉,綜合,生成的ngc網表再加上你自己做的一個wrapper文件(就是只有端口列表的.v或者.vhd文件),就可以調用了了。 wrapper文件裏要註明: // XST black box declaration // box_type "black_box" // synthesis attribute box_type of sdram_top is "black_box" 不過要註意的是,如果代碼裏例化了I/O Buffer的話,去掉這個綜合選項是不會將例化的buffer刪除的。這種情況下,別人用你的IP的時候就要註意了,不能重復添加buffer。 詳細的請參考:http://www.xilinx.com/support/answers/34771.htm

轉自:http://forum.eepw.com.cn/thread/208146/1

=======================第五篇=======================
【樓主】求助:如何將自己寫的verilog模塊封裝成IP核

自己寫了一些verilog模塊,想封裝成IP核或者類似的黑盒,以防誤改,也可以給別人用(但是不想讓別人看到源碼),請教有什麽方法嗎?

【一樓】好像是可以這麽做的. 小版印象中,在ISE中做XST綜合的時候,去掉"Insert IO Buffers",然後給別人一個ngc netlist和blackbox wrapper.

具體信息,你可以在xilinx的主頁搜索 blackbox.應該有具體的方法參考.

【五樓】SuperX-man說的就可以實現。把綜合選項裏的“Add I/O Buffers”去掉,綜合,生成的ngc網表再加上你自己做的一個wrapper文件(就是只有端口列表的.v或者.vhd文件),就可以交給別人用了。不過要註意的是,如果代碼裏例化了I/O Buffer的話,去掉這個綜合選項是不會將例化的buffer刪除的。這種情況下,別人用你的IP的時候就要註意了,不能重復添加buffer。
看看這個:http://www.xilinx.com/support/answers/34771.htm

轉自:http://bbs.21ic.com/icview-201989-1-1.html

=======================第六篇=======================

【樓主】如何將自己寫的VHDL/verilog模塊封裝成IP核?

看到之前的一個帖子,“把綜合選項裏的“Add I/O Buffers”去掉,綜合,生成的ngc網表再加上你自己做的一個wrapper文件(就是只有端口列表的.v或者.vhd文件)”,不明白的是wrapper文件的格式是什麽,哪位大俠給個例子看看,謝謝!

【一樓】就是把你綜合網表時候的頂層文件加以修改就行了.
VHDL的話就是留下entity和一個空的architecture.
Verilog就是留下port.
然後把這個文件和綜合出來的NGC文件放在同一目錄下就行了.

【二樓】

技術分享圖片

ls正解。
具體原理是這樣的:
Xilinx ISE中的綜合工具XST在綜合時候會將只有IOport的VHDL和verilog模塊綜合成一個blackbox。
在map和P&R的時候,xilinx的工具會在項目工程的根目錄下找各個blackbox對應的ngc文件。如果找到,就替換掉blackbox,否則就報錯。
所以想要封裝成IP的話,一個是要不包含IO Buffer的ngc文件,用於Mapping和P&R,另一個就是僅包含IOPORT的verilog或VHDL文件,用於XST工具綜合。但這兩個文件的模塊名稱和IOPORT必須要一致

引自:http://www.eefocus.com/bbs/article_1103_175879.html

轉載:http://blog.sina.com.cn/s/blog_530e99a40102v5uz.html

如何將自己寫的verilog模塊封裝成IP核