当前位置:首页 » 编程软件 » 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