Vivado设计流程手册
5、点击Finish。
6、在弹出的Define Module中的I/O Port Definition,输入设计模块所需的端口,并设置端口防线,如果端口为总线型,勾选Bus选项,并通过MSB和LSB确定总线宽度。完成后点击OK。
依元素科技有限公司 Xilinx全球合作伙伴 www.e-elements.com 6 / 34
Vivado设计流程手册
7、新建的设计文件(此处为flowing_light.v)即存在于Sources中的Design Sources中。双击打开该文件,输入相应的设计代码。
`timescale 1ns / 1ps
module flowing_light(
依元素科技有限公司 Xilinx全球合作伙伴 www.e-elements.com 7 / 34
Vivado设计流程手册 input clk, input rst,
output [3:0] led );
reg [23 : 0] cnt_reg; reg [ 3 : 0] light_reg;
always @ (posedge clk) begin
if (rst)
cnt_reg <= 0; else
cnt_reg <= cnt_reg + 1; end
always @ (posedge clk) begin
if (rst)
light_reg <= 4'b0001;
else if (cnt_reg == 24'hffffff) begin if (light_reg == 4'b1000) light_reg <= 4'b0001; else
light_reg <= light_reg << 1; end end
assign led = light_reg; endmodule
8、添加约束文件,有两种方法可以添加约束文件,一是可利用Vivado中IO planning功能,二是可以直接新建XDC的约束文件,手动输入约束命令。
a、先来看第一种方法,利用IO planning。
a.8.1、点击Flow Navigator中Synthesis中的Run Synthesis,先对工程进行综合。
依元素科技有限公司 Xilinx全球合作伙伴 www.e-elements.com 8 / 34
Vivado设计流程手册
a.8.2、综合完成之后,选择Open Synthesized Design,打开综合结果。
依元素科技有限公司 www.e-elements.com 9 / 34
Xilinx全球合作伙伴 Vivado设计流程手册 a.8.3、此时应看到如下界面,如果没出现如下界面,在图示位置的layout中选择IO planning一项。
a.8.4、在右下方的选项卡中切换到I/O ports一栏,并在对应的信号后,输入对应的FPGA管脚标号(或将信号拖拽到右上方Package图中对应的管脚上),并指定I/O std。(具体的FPGA约束管脚和IO电平标准,可参考对应板卡的用户手册或原理图)。
a.8.5、完成之后,点击左上方工具栏中的保存按钮,工程提示新建XDC文件或选择工程中已有的XDC文件。在这里,我们要Create a new file,输入File name,点击OK完成约束过程。
依元素科技有限公司 Xilinx全球合作伙伴 www.e-elements.com 10 / 34