Xilinx-芯片选择及vivado软件的快速开发教程

📅 2026/7/24 19:38:57 👁️ 阅读次数 📝 编程学习
Xilinx-芯片选择及vivado软件的快速开发教程

1.Xilinx-7系列芯片选择

Kintex-7系列常用的三款芯片:XC7K160T、XC7K325T 、XC7K410T

Virtex-7系列最常用的一款芯片:XC7VX690T

Xilinx 7 系列 FPGA 型号命名规则:

(1)XC:Xilinx Commercial,代表赛灵思商用器件。

(2)7:器件代次:7 系列 FPGA。表示该芯片是第几代。

(3)S/A/K/V:家族代号。Spartan-7(低成本)、Artix-7(低功耗、通用)、Kintex-7(性价比中端)、Virtex-7(高性能高端)。

(4)### (数字):逻辑单元数量(单位:k),代表芯片规模。

(5)- 数字:表示速度等级。-1(最慢);-2(中等);-3(最高速);后缀带L(-L1/-L2):低功耗版本

(6)CP/CS/FG/FT:引线键合封装;FB/FF/SB/FH:倒装 Flip-Chip 裸片封装

(7)G / V:符合 RoHS 6/6 无铅标准

(8)引脚数量:封装对应的总引脚数

(9)温度等级:C:商业级 0~+85℃;E:扩展级 0~+100℃;I:工业级 -40~+100℃;Q:宽温扩展 -40~+125℃。

2.vivado软件的快速开发教程

以该原理图为例,使用vivado创建一个流水灯工程。

2.1创建工程

Step1:启动 VIVADO,单击 Create Project

Step2:单击 NEXT

Step3:创建名为 Miz_sys 的工程到对应的文件目录,文件路径自定义,不能有中文或非法字符,之后单击 NEXT

Step4:选择 RTL Project 并且勾选复选框,之后单击 NEXT

Step5:选择芯片的型号和封装速度等级:

MK7325FA 如下图所示设置:

Step:6 单击 Finish 完成工程创建。

2.2添加Verilog代码文件

Step2:单击 Add Sources

Step3:选择单击 Add or Create Design Sources 然后单击 NEXT

Step4:单击 Create File 来创建文件

Step5:创建一个 run_led 的文件,并且文件类型选择 Verilog

Step6:添加完成后如下图所示之后单击 finish 完成文件的创建

Step7:继续弹出的对话空中,可以设置一些端口,但是我们现在什么都不做。单击 OK

Step8:创建完成后可以看到 Design Sources 文件夹中有了 run_led.v 这个文件,这个文件就是我们可以编写 verilog 程序的文件。

2.3添加管教约束文件

管脚约束文件,即.xdc 文件,一般情况,生成后会放在 Miz_sys.srcs\constrs_1 文件夹中,这里的“Miz_sys”对应的是创建工程的名称。

添加管脚约束有三种方法,分别是手动新建 XDC PIN 脚约束文件、直接加入已经写好的约
束文件、综合后添加管脚约束,用户根据实际情况选择其中一种方法,可以提高工作效率。

2.3.1方法一 手动新建 XDC PIN 脚约束文件

引脚约束模板:

set_property PACKAGE_PIN 芯片引脚号 [get_ports 顶层端口名]

set_property IOSTANDARD LVCMOS33/LVDS33(电平标准) [get_ports 端口名]

压缩bit文件:

set_property BITSTREAM.GENERAL.COMPRESS true [current_design]

加速读取FLASH芯片:

set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]

Step1:单击(和添加.v 文件一样)

Step2:选择 Add or create constraints 然后单击 NEXT

Step3:点击 Create File,创建一个新的.xdc 文件。

Step4:打开提供例程,复制约束文件中的管脚约束,下图是打开配套的例子的工程截图。

下图是你创建的工程,新建的 XDC 文件,把上图配套例子的 PIN 脚约束,粘贴到新建工程中的 xdc 文件。

Step5:保存,XDC 文件生成完成。

2.3.2 方法二 综合后,添加管脚约束

Step1:综合工程.

Step2:打开 Open Synthesized Design。

Step3:管脚配置。

点击 I/O Ports,在 Find Results 中进行管脚配置(图 a)。Package Pin 对应 FPGA 中的管脚,I/O Std 对应电平
标准(图 b)。例如要配置 RSTn_i 信号连接到 N13 管脚,电平标准是 LVCMOS15,在 Package Pin 中选择管脚 N13,
I/O Std 选择 LVCMOS15。其他管脚也做相应配置(图 c)。

图 a

Step4:保存,给 XDC 文件命名,生成.XDC 文件,并保存到 Miz_sys\Miz_sys.srcs\constrs_1。Constrs_1 文件夹是自己创建的。

Step5.XDC 文件生成结束

2.3.3 方法三 直接加入已经写好的约束文件

Step3:单击 Add Files

Step5:将要添加的.xdc 文件添加进来,然后点击 OK。

注意:提供例程的.xdc 文件放在.srcsconstrs_1 文件夹中。

Step6:点击 Finish 完成约束文件的添加

优化管脚约束文件

2.4编译代码,生成bit文件

2.5下载bit文件到板卡

2.6写tb文件,使用vivado进行仿真

Setp1 :新建仿真文件,然后编写仿真代码

Setp2:进入仿真界面:SIMULATION->单击 Run Simulation ->单击 Run Behavioral Simulation。

Setp3:添加需要仿真的信号

Setp4:从左到右,依次点击,restart重启、开始仿真、停止仿真。

Setp5:从左到右,依次是全局视图、上升沿和下降沿、添加标记线。

Setp6:修改信号的进制

Setp7:按住ctlr+鼠标滚轮,可以放大和缩小波形图,进行观看仿真波形图与预期的效果是否一致。

2.7用于调试的IP核

2.7.1使用ILA-IP核,抓波形仿真

Step7:切换 IP Sources 游标下,然后双击 ila_0.veo 打开调用的接口模版

Step8:IP 接口调用模版打开后,可以看到这是一个 IP 接口,显然我们只要把需要被检测的信号根据前面的设置填进
去就可以了。 clk 就是采样时钟,probe0 就是 2HZ 信号,proble1 就是其他需要被观察的信号。

修改,并且嵌入到顶层文件中,保存文件。

Step9: Run Synthesis-> Run Implementation->Generate Bitstream 生产 Bit 流文件

然后连接板卡,进入硬件管理器,点击ila。

Step5:单击 Program Device(也可以从顶部单击 Program device), 然后选择 xc7a35t_0 或 xc7a100t_0。

2.7.2使用VIO-IP核,模拟输入输出

本设计是使用vio模拟输出VIOOUT[7:0];led灯有4种状态,分别是闪光灯、呼吸灯、常亮、熄灭。

step1:点击IP Catalog

step2:搜索VIO,并且双击。

step3:配置我们的输入输出端口个数

step4:配置输入端口的位宽

step5:配置输出端口的位宽,然后点击OK

step6:使用notpad++打开vio_0.veo,找到实例化模板

step7:实例化完之后,全编译,生成bit文件,然后连接板卡,进入硬件管理器。

step8:将bit文件下载到板卡。

step9:可以看见vio已经显示到硬件管理器了,双击vio,然后命名为vio即可。

step10:点击 + 号,会弹出一个小窗口,我们双击VIOOUT[7:0].

step11:点击红色框,可以设置VIOOUT[7:0]的值,vio会模拟输出这个值,进行控制led的状态。

运行效果如下:

2.8固化程序

2.8.1生成 MCS 文件教程

Step10:右击 mt25ql256sxxxxxx0 flash 然后选择 Program Configuration Memory Device

2.8.2生成 bin 文件教程

点击全编译,bit文件和bin文件会一起生成。

2.9查看芯片内部资源

点击下面操作,可以查看我们的项目代码被综合成的一个专用的电路。

我们编写的verilog代码,经过vivado编译之后,会被综合成一个电路。

点击可查看该项目的资源使用量,也就是消耗量芯片的内部查找表和触发器资源,提前预判我们的项目是否超出了芯片的资源。因为在工作时,我们是分工合作,把子模块功能完成后,需要将所有的子模块拼在一起完成这个项目,项目的工程代码综合后,是不能超过芯片的内部资源的。

2.10自定义IP核

2.10.1创建IP核

Step4:单击 Finish,完成 Verilog 文件的创建。
Step5:将以下代码复制入文本编辑区内。

module water_led( input CLK_i,//100MHZ input RSTn_i, output reg [3:0]LED_o ); reg [31:0]C0; always @(posedge CLK_i) if(!RSTn_i) begin LED_o <= 4'b1; C0 <= 32'h0; endelse begin if(C0 == 32'd49_999_999)//1s begin C0 <= 32'h0; if(LED_o == 4'b1000) LED_o <= 4'b0001; else LED_o <= LED_o << 1; end else begin C0 <= C0 + 1'b1; LED_o <= LED_o; end end endmodule

点击 OK

2.10.2调用自定义 IP(建立BD工程)

Step9:右击 system.bd 选择 Create HDL Wrapper 这步的作用是产生顶层的 HDL 文件

Step11:添加约束文件:选中 PROJECT MANAGERAdd Sources Add or create Constraints Sources。添加例程提供的 xdc 约束文件。
Step12:产生 bit 文件。