Xilinx 推出的 Vivado HLS 工具可以直接使用 C、C++或 System C 来对 Xilinx 系列的 FPGA 进行编程,从而提高抽象的层级,大大减少了使用传统 RTL 描述进行 FPGA 开发所需的时间。
Vivado HLS 的功能简单地来说就是把 C、C++ 或 SystemC 的设计转换成 RTL 实现,这样就可以在 Xilinx FPGA 或 Zynq 芯片的可编程逻辑中综合并实现,我们仍然是在进行硬件设计,只不过使用的不再是硬件描述语言。
以实现 LED 闪烁为例,通过使用 HLS 生成一个 LED 闪烁 IP,并导入到 Vivado 中验证,学习掌握使用 HLS 快速设计 IP 的方法。
开发环境:Windows
软件版本:Vivado 2017.4
验证平台:黑金 ZYNQ 7035
Create New Project
:Next
:Next
:Next
:...
选择芯片类型:xc7z035fbg676
,点击 OK
:Finsh
,工程配置完成:Source-->New File
:src
文件夹,创建 .c
文件,文件命名和顶层函数一致:#include <ap_cint.h>
#define DELAY 50000000
void led_ctrl(uint1 *led)
{
int i = 0;
for(i = 0; i < DELAY; i++)
{
if(i < DELAY / 2)
{
*led = 1;
}
else
{
*led = 0;
}
}
}
Run C synthesis
对代码进行综合:#pragma HLS INTERFACE ap_none port=led
#pragma HLS INTERFACE ap_ctrl_none port=return
Export RTL
导出 IP:OK
:ip_repo
文件夹,将 HLS 创建的 IP 复制过来并解压缩:Tool-->Settings
:IP --> Repository
,点击右侧 +
号:Select
:OK
:Block Design
,首先导入一个 Utility Vector Logic
:1
位位宽的非门:Validate Design
验证设计,验证无误后保存设计:Generate Output Products
和 Create HDL Wrapper
:wrapper
文件稍作修改:Generate Bitstream
,对设计进行综合、实现、并生成 Bitstream 文件。