Vivado初体验LED工程 2

简介: Vivado初体验LED工程

五、添加管脚约束

Vivado 使用的约束文件格式为 xdc 文件,xdc 文件里主要是完成管脚的约束,时钟的约束,以及组的约束。这里我们需要对 led.v 程序中的输入输出端口分配到 FPGA 的真实管脚上。

1、点击 “Open Elaborated Design”

2、在弹出的窗口中点击 “OK” 按钮

3、在菜单中选择 “Window -> I/O Ports”

4、在弹出的 I/O Ports 中可以看到管脚分配情况,给 LED 和时钟分配管脚、电平标准,完成后点击保存(ctrl+s)

①、 LED -> R19


②、SYS_CLK -> U18

③、随便选择一个没有接外围设备的引脚,当做 RST 引脚,我这里选择了 T11

RST_N -> T11

④、因此分配情况如下:

6、弹出窗口,要求保存约束文件,文件名我们填写 “led”,文件类型默认 “XDC”,点击 “OK”

此刻我们在这里可以看到多了一个 led.xdc

7、打开刚才生成的 “led.xdc” 文件,我们可以看到是一个 TCL 脚本,如果我们了解这些语法,完全可以通过自己编写 led.xdc 文件的方式来约束管脚

下面来介绍一下最基本的 XDC 编写的语法,普通 IO 口只需约束引脚号和电压。

管脚约束如下:

set_property PACKAGE_PIN "引脚编号" [get_ports “端口名称”]

电平信号的约束如下:

set_property IOSTANDARD "电平标准" [get_ports “端口名称”]

这里需要注意文字的大小写,端口名称是数组的话用 { } 括起来,端口名称必须和源代码中的名字一致,且端口名字不能和关键字一样。


电平标准中 “LVCMOS33” 后面的数字指 FPGA 的 BANK 电压,LED 所在 BANK 电压为 3.3 伏,所以电平标准为“LVCMOS33”。Vivado 默认要求为所有 IO 分配正确的电平标准和管脚编号。

六、添加时序约束

一个 FPGA 设计除了管脚分配以外,还有一个重要的约束,那就是时序约束,这里通过向导方式演示如果进行一个时序约束。

1、点击 “Run Synthesis” 开始综合

2、弹出对话框点击 “OK”

可以看到右上角正在进行综合

3、综合完成以后点击 “Cancel”

4、点击 “Constraints Wizard”

5、在弹出的窗口中点击 “Next”

6、时序约束向导分析出设计中的时钟,这里把 “sys_clk” 频率设置为 50Mhz,然后点击 “Skip to Finish” 结束时序约束向导。

7、点击 “Finish”

8、这个时候 led.xdc 文件已经更新,重新加载文件即可

最下面多了一行约束时钟

七、生成 BIT 文件

1、编译的过程可以细分为综合、布局布线、生成 bit 文件等,这里我们直接点击 “Generate Bitstream”,直接生成 bit 文件。

2、在弹出的对话框中可以选择任务数量,这里和 CPU 核心数有关,一般数字越大,编译越快,点击 “OK”

3、这个时候开始编译,可以看到右上角有个状态信息,在编译过程中可能会被杀毒软件、电脑管家拦截运行,导致无法编译或很长时间没有编译成功。


4、编译中没有任何错误,编译完成,弹出一个对话框让我们选择后续操作,若是接下来想要直接下载到 fpga 上可以选择 “Open Hardware Manger”,跳过下面的八、仿真测试,若是接下来想要先进行仿真一下验证下功能可以继续往下看。我这里先进行一下仿真验证下功能,因此点击 Cancel。


2f7f32760d1d449a90b26f6deb957205.png

目录
相关文章
|
Go 芯片 异构计算
Vivado初体验LED工程 3
Vivado初体验LED工程
114 0
|
自然语言处理 芯片 异构计算
Vivado初体验LED工程 1
Vivado初体验LED工程
148 0
|
芯片
STM32-FreeRTOS源码下载及移植步骤(基于Keil)
STM32-FreeRTOS源码下载及移植步骤(基于Keil)
939 0
STM32-FreeRTOS源码下载及移植步骤(基于Keil)
|
7月前
|
中间件 编译器 调度
STM32cubemx对FreeRTOS的适配(工程模板配置)
STM32cubemx对FreeRTOS的适配(工程模板配置)
450 0
|
7月前
|
缓存 编译器 程序员
嵌入式开发环境Vscode开发STM32单片机程序
嵌入式开发环境Vscode开发STM32单片机程序
188 0
stm32f407探索者开发板(二)——新建工程(基于固件库)(下)
stm32f407探索者开发板(二)——新建工程(基于固件库)(下)
167 0
stm32f407探索者开发板(二)——新建工程(基于固件库)(下)
stm32f407探索者开发板(二)——新建工程(基于固件库)(上)
stm32f407探索者开发板(二)——新建工程(基于固件库)(上)
298 0
stm32f407探索者开发板(二)——新建工程(基于固件库)(上)
|
物联网 C语言 芯片
Stm32 向 keil 中添加库及应用程序 | 学习笔记
快速学习 Stm32 向 keil 中添加库及应用程序
Stm32 向 keil 中添加库及应用程序 | 学习笔记
|
传感器 物联网 Go
IAR 环境搭建之 LED 闪烁 | 学习笔记
快速学习 IAR 环境搭建之 LED 闪烁
IAR 环境搭建之 LED 闪烁 | 学习笔记
|
物联网 机器人 C语言
基于keil5新建STM32F10x寄存器版本工程
基于keil5新建STM32F10x寄存器版本工程
203 0
基于keil5新建STM32F10x寄存器版本工程