當前位置:首頁 » 編程軟體 » vivado工程怎麼編譯

vivado工程怎麼編譯

發布時間: 2024-02-28 03:22:50

1. modelsim調用vivado IP核

打開vivado, 點擊tools下的compile simulation libraries,設置Modelsim的路徑以及生成libraries的位置

打開Modelsim安裝路徑下的modelsim.ini以及生成庫路徑下的modelsim.ini
將生成庫路徑下的modelsim.ini中所有IP庫全部復制到安裝路徑modelsim.ini中的對應位置

把vivado工程中IP核文件下的sim文件中對應的.v文件或者.hdl文件添加到我們modelsim工程中

注意vivado不同版本需要不同的Modelsim版本,如果不是對應的可能在compile libraries顯示編譯不成功,vivado2018.3需要對應modelsim10.6

2. vivado編譯路徑過長的問題怎麼解決

error.log在nginx.conf裡面重新指定,就固定設置在/tmp吧,linux基本都有的位置其它幾個temp要在編譯時指定,如--http-client-body-temp-path=/tmp/client_body_temp--http-proxy-temp-path=/tmp/proxy_temp--http-fastcgi-temp-path=/tmp/fastcgi_temp

3. vivado中怎麼把源碼轉變成加密網表

步驟一:
在工程中,將需要封裝的模塊(包括子模塊)設置為頂層模塊,例如top為工程的頂層模塊,top調用了A和B,B又調用了C和D,需要將B模塊以及下面的模塊整體加密,也就是封裝為網表,那麼需要將B設置為頂層模塊。
步驟二:設置綜合條件
1、在Flatten hierarchy選擇為full。
2、在more options中輸入-mode out_of_context
步驟三:綜合
在工程中運行綜合步驟,在綜合完成後,打開綜合。
步驟四:生成edf
這里和quartus不一樣,這里需要通過輸入腳本的方式生成。
假設網表文件中沒有調用IP,那麼輸入如下指令:
write_edif F:/FPGA/abc.edf
如果調用了IP,輸入如下指令:
write_edif -security_mode all F:/FPGA/abc.edf
步驟五:生成調用v文件
假設vivado的版本在2017.4以前,輸入如下指令:
write_verilog -mode port F:/FPGA/abc_stub.v
2018.1以後:
write_verilog -mode synth_stub F:/FPGA/abc_stub.v

4. zynqmp 怎麼將linux系統下載到emmc

1,vivado硬體配置,要選擇EMMC代表的SD1;

2,編譯petalinux:執行petalinux-config。

(1)選擇Subsystem AUTO Hardware Setting

-> Advanced bootable images storage settings

->boot image settings;

選擇primary flash,這里是將BOOT.bin設置為從qspi flash啟動

(2)選擇Subsystem AUTO Hardware Setting

-> Advanced bootable images storage settings

->kernel image settings;

選擇primary sd,進入後我們看到這里實際就是設置image.ub的存放區域。

(3)選擇Image Packaging Configuration,設置啟動啟動文件系統所在位置;

在設置啟動方式的時候,如下兩張圖這樣設置讀取根文件系統的位置/dev/mmcblk1p2。

(4)設置你的驅動然後編譯,依次執行:petalinux-config -c kernel;petalinux-config -c rootfs;

petalinux-build;petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga --u-boot --force;

3,做之前先分區(把EMMC分區),先做一個SD卡啟動的petalinux文件,

petalinux系統在zynq上面啟動起來以後就進行如下分區:即是mmcblk1分為mmcblk1p1和mmcblk1p2

具體步驟如下:

(1) 把EMMC進行分區,執行命令: fdisk /dev/mmcblk1

(2)使用n命令,添加一個新的分區

Command (m for help): n

Command action

e extended

p primary partition (1-4)

選擇p,添加主分區

,(3)選擇分區號,選擇1,

Partition number (1-4): 1 // 選擇分區號

First cylinder (1-238592, default 1): Using default value 1 // 選擇分區的第一個柱面,選擇1

Last cylinder or +size or +sizeM or +sizeK (1-238592, default 238592): Using default value 238592 // 選擇最後一個柱面

注意:1-238592,first要選第一個數,last要選擇的比238592小,其中1024就是表示1M

(4)使用t命令,設置分區格式

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): b
Changed system type of partition 1 to b (Win95 FAT32)
(5)使用w命令,保存配置,必須保存配置

Command (m for help): w

The partition table has been altered.

Calling ioctl() to re-read partition table

(6)使用對應文件系統工具對分析進行格式化(只能在debian裡面才能識別命令)

mkfs.fat /dev/mmcblk1p1 設置為fat32格式

mkfs.ext4 /dev/mmcblk1p2設置為ext4格式

注意:執行完w命令然後才算分區成功,執行完mkfs命令才算格設置內存屬性成功。

以上分區完成後,可以使用p命令,顯示分區信息;也可以使用用d命令表示刪除分區

Command (m for help): p

Disk /dev/mmcblk0: 7818 MB, 7818182656 bytes

4 heads, 16 sectors/track, 238592 cylinders

Units = cylinders of 64 * 512 = 32768 bytes

Device Boot Start End Blocks Id System

/dev/mmcblk0p1 1 238592 7634936 83 Linux

(7)執行這句:mkdosfs -F 32 /dev/mmcblk0p1

當然,可以重復上述步驟,多分幾個區,用來存放不同的狀態:

FLASH要要用來存放BOOT.bin

第一個分區用來存放image.ub或者設備樹(比如uImage和devicetree.dtb)等文件;--可以設置為128MB

第二個分區用來存放用戶數據(比如可執行程序);可以設置為2048MB

第三個分區用來存放程序執行需要的庫文件(opencv的庫,qtcreator庫,相機庫,視頻編碼解碼庫等);剩餘的1個多GB

4,把系統同步到ext4裡面

先把sd卡裡面系統掛載進來 :mount /dev/mmcblk0p2 /mnt

再把剛剛弄好的系統掛進來: mount /dev/mmcblk1p2 /tmp , 然後cd /mnt

然後進入把SD卡裡面的系統同步到emmc裡面:rsync -av ./* /tmp ,時間有點久,直到結束為止。

(要是不用SD卡也可以掛載U盤,解壓,然後進行系統同步到EMMC所掛載的地方/tmp)

5,然後將BOOT.BIN和image.ub燒錄到QSPI-FLASH中

首先擦除QSPI-FLASH:flash_eraseall /dev/mtd0

存放BOOT.bin到flash : flashcp BOOT.bin /dev/mtd0

此處若是將image.ub寫入emmc的FAT分區中(不存放到flash中),先使用mount掛載eMMC的FAT分區,

然後將image.ub使用cp指令拷貝進 /mnt/mmcFat即可,也就是把uImage 拷貝到 /dev/mmcblk1p1;

進入uImage所在目錄,然後執行 cp uImage /tmp;也就是把uImage存放到了 /dev/mmcblk1p1裡面。

6,最後斷電拔出SD卡,將撥碼開關設置為flash啟動,就能看到petalinux啟動起來;

7,報錯及其解決辦法

————————————————
版權聲明:本文為CSDN博主「寒聽雪落」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wangjie36/article/details/104740448/

5. 如何打開vivado的debug窗口

用Vivado進行硬體調試,就是要插入ila核,即「集成邏輯分析儀」,然後將想要引出來觀察的信號連到這個核的probe上。
首先第一步,需要把想要觀測的信號標記出來,即mark_debug,有兩種mark_debug的方法,我用verilog寫了一個簡單的流水燈程序,只有幾行代碼,如下:
mole main(
input clk,
input rst,
output reg [7:0] led
);

(*mark_debug = "true"*)reg [23:0] counter;

always @(posedge clk) begin
if(rst) begin
counter <= 0;
led <= 8'b00000001;
end
else counter <= counter + 1;
if (counter == 24'hffffff)
led <= {led[6:0],led[7]};
end

endmole
例如,要觀察counter信號的波形,那麼在第7行定義reg型信號counter時,前面加上(*mark_debug=「true」*),這樣就把counter信號標記了出來。如果用vhdl語言實現的話,這句話用該這樣寫:
signal counter : std_logic_vector (23 downto 0);
attribute mark_debug: string;
attribute mark_debug of counter : signal is "true";
另外添加xdc約束文件,內容如下:
set_property PACKAGE_PIN Y9 [get_ports clk]
set_property PACKAGE_PIN T18 [get_ports rst]

set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property IOSTANDARD LVCMOS18 [get_ports rst]

set_property PACKAGE_PIN T22 [get_ports {led[0]}]
set_property PACKAGE_PIN T21 [get_ports {led[1]}]
set_property PACKAGE_PIN U22 [get_ports {led[2]}]
set_property PACKAGE_PIN U21 [get_ports {led[3]}]
set_property PACKAGE_PIN V22 [get_ports {led[4]}]
set_property PACKAGE_PIN W22 [get_ports {led[5]}]
set_property PACKAGE_PIN U19 [get_ports {led[6]}]
set_property PACKAGE_PIN U14 [get_ports {led[7]}]

set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[7]}]
之後run synthesis綜合,之後open synthesized design,在左上角選擇debug layout,在debug窗口中netlist看到counter信號前面有一個綠色的小蜘蛛,表示counter信號被標記出來了。
這其實是一種比較繁瑣的方法,更為方便的方法是,直接綜合工程,在之後打開綜合設計,在netlist中直接選中想要查看的信號,右鍵選擇mark debug,即可將信號標記出來。
但是採用第一種方式的好處是,如果工程比較復雜的話,一些信號可能會被綜合優化掉,加上模塊層層實例化,在netlist中可能找不到要觀測的信號,這時在代碼裡面mark_debug,依舊可以將該信號引出來。

熱點內容
nas的監控存儲 發布:2024-11-16 05:52:53 瀏覽:316
phpxml轉換 發布:2024-11-16 05:47:10 瀏覽:955
內網伺服器搭建什麼公司做 發布:2024-11-16 05:36:24 瀏覽:594
如何利用map做本地緩存 發布:2024-11-16 05:34:37 瀏覽:539
w7恢復出廠設置密碼是多少 發布:2024-11-16 05:23:49 瀏覽:791
方周編譯器 發布:2024-11-16 05:23:12 瀏覽:660
資料庫監控工具 發布:2024-11-16 05:23:07 瀏覽:958
存儲器題型 發布:2024-11-16 05:23:06 瀏覽:86
怎麼設置電腦配置信息 發布:2024-11-16 05:04:26 瀏覽:981
推薦系統php 發布:2024-11-16 05:03:42 瀏覽:12