vivado封裝IP


reference: https://www.cnblogs.com/mouou/p/5851736.html

 

1、新建一個測試工程

工程化的設計方法是離不開工程的,第一步往往都是新建工程,后面我會學習去工程化的開發方法,可能會更加高效。

2、利用向導完成IP封裝

2.1、啟動IP向導

方法為:ToolsàCreate and Package IP…,如圖1所示。

 

          圖1 創建或者打包IP

 

點擊Create and Package IP…命令,彈出向導,如圖2所示。

 

          圖2 創建和封裝IP向導

 

直接NEXT,進入下一界面,如圖3所示。選擇操作類型,我們這里不是新建IP,也不是要打包當前工程,而是要把runled_src文件夾下封裝成一個IP,所以選擇第2項。NEXT。

 

        圖3 選擇操作類型為封裝特定目錄

接下來一步要注意了,選擇你要打包的資源所在的文件夾,我這里是把要打包的3個文件放在了my_ip/runled_src下面,所以選擇了這個路徑,如圖4所示。

 

          圖4 待打包資源所在文件夾

接下來,向導提示需要為IP工程制定一個名字和存儲地址,如圖5所示。這里采用默認名稱即可,這個工程是臨時的,IP封裝完之后就會消失,再次編輯IP時才會再重新建立。

 

          圖5 臨時工程名稱、存儲路徑

NEXT,接下來就是最后一步了,是一些提示信息,大家可以自己看一下。點擊Finish結束向導。

 

              圖6 summary

2.2IP參數設置

注意,這里已經進入了edit_ip_project工程,是為打包IP核新建的那個工程,我們在上面指定了名稱和路徑(見圖5). 點擊:Project Manager --> IP Catalog打開如下:

對打包后的IP進行一些參數配置,如供應商,分類(默認是BaseIP,使用時要到該分類下查找我們封裝的IP)等信息,這里不一一詳述了,需要時,自行修改即可。

 

                圖7 IP參數設置

下一步:不做屬性上的修改,直接進入最后一步(單擊Review and Package),點擊圖8中的Package IP按鈕,開始打包。

                  圖8 開始打包

打包完成后,edit_ip_project工程會自動關閉,返回我們建立的測試工程。

 

3、查看IP封裝結果

在Flow Navigator子窗體下找到Project Manager à IP Catalog,單擊IP Catalog,右側會彈出IP Catalog子窗體,將BaseIP目錄展開,發現runled_top_v1_0已經成功導入。

到這里,封裝已經完成了,本文要敘述的主題也已經完畢。

 

 設置IP路徑

 ------------------------------------------------------分割線---------------------------------------------------------------

但由於是第一次使用,不太放心,所以測試一下,接下愛來各小節是測試用的,不想看的可以直接略過。

4、測試

建立一個Block Design,將runled_top_v1_0添加進去,添加輸入輸出端口,最終結果如圖9所示。 

  

                    圖9 Block Design

5、添加約束、綜合、實現、生成Bitstream

約束文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#In the following the XDC constraint is matched to the origanal UCF constraint, XDC above, UCF below # Commented
  
set_property PACKAGE_PIN Y9 [get_ports {iClk}]
set_property IOSTANDARD LVCMOS33 [get_ports {iClk}]
  
#NET GCLK          LOC = Y9   | IOSTANDARD=LVCMOS33;  # "GCLK"
  
# Bank 33, Vcco = 3.3V
#set_property IOSTANDARD LVCMOS33 [get_ports -filter { IOBANK == 33 } ]
set_property PACKAGE_PIN T22 [get_ports {oLed[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {oLed[0]}]
#NET LD0           LOC = T22  | IOSTANDARD=LVCMOS33;  # "LD0"
set_property PACKAGE_PIN T21 [get_ports {oLed[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {oLed[1]}]
#NET LD1           LOC = T21  | IOSTANDARD=LVCMOS33;  # "LD1"
set_property PACKAGE_PIN U22 [get_ports {oLed[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {oLed[2]}]
#NET LD2           LOC = U22  | IOSTANDARD=LVCMOS33;  # "LD2"
set_property PACKAGE_PIN U21 [get_ports {oLed[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {oLed[3]}]
#NET LD3           LOC = U21  | IOSTANDARD=LVCMOS33;  # "LD3"
set_property PACKAGE_PIN V22 [get_ports {oLed[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {oLed[4]}]
#NET LD4           LOC = V22  | IOSTANDARD=LVCMOS33;  # "LD4"
set_property IOSTANDARD LVCMOS33 [get_ports {oLed[5]}]
set_property PACKAGE_PIN W22 [get_ports {oLed[5]}]
#NET LD5           LOC = W22  | IOSTANDARD=LVCMOS33;  # "LD5"
set_property PACKAGE_PIN U19 [get_ports {oLed[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {oLed[6]}]
#NET LD6           LOC = U19  | IOSTANDARD=LVCMOS33;  # "LD6"
set_property IOSTANDARD LVCMOS33 [get_ports {oLed[7]}]
set_property PACKAGE_PIN U14 [get_ports {oLed[7]}]
#NET LD7           LOC = U14  | IOSTANDARD=LVCMOS33;  # "LD7"
  
# Bank 34, Vcco = Vadj
#set_property IOSTANDARD LVCMOS18 [get_ports -filter { IOBANK == 34 } ]
set_property IOSTANDARD LVCMOS18 [get_ports {iRst_n}]
set_property PACKAGE_PIN P16 [get_ports {iRst_n}]
#NET BTNC          LOC = P16  | IOSTANDARD=LVCMOS18;  # "BTNC"

 

生成Bitstream以便進行板級測試。

 

6、測試

利用Vivado內置的Hardware Manager向導將Bitstream燒寫進FPGA,流水燈順利出現,OK!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM