使用 vivado 综合 wujian100 生成 bitstream 文件

简介: 简单介绍一下使用 vivado 来综合 wujian100 需要注意的一些地方。

综合环境

上一篇 blog 呢,我记录一下运行 wujian100 的一些仿真过程,这篇 blog 我将简单介绍一下使用 vivado 来综合 wujian100 需要注意的一些地方。

首先,说明一下我的综合环境,我是在 WSL 下安装的 vivado 2018.3 版本,然后是完全 vivado 环境下综合生成 bitstream 文件,因为没有安装 synplify,所以就没有使用官方推荐的 synplify 进行综合。

系统:Windows 10 , WSL Ubuntu 18.04
软件: vivado 2018.3

安装 vivado

首先,你如果没有安装 vivado 就先安装一下 vivado,在命令行下自己运行 ./xsetup 即可,安装完成后记得设置一下环境变量,具体的安装方法,我这里就不做详细介绍了,请自行搜索。

 $ ./xsetup

打开 vivado 新建工程

接下来,我们进入到 wujian100_open 的 fpga->vivado 目录下,在命令行下输入 vivado ,启动 vivado。

 $ vivado

image.png

vivado 启动完成之后,我们来创建应该新工程,点击 Create project ,Next->填写工程名称,Next-> 选择 RTL Project,Next-> 选择 wujian100 这个开发板对应的 FPGA 型号 xc7a200tfbg484-1,最后 Finish 即可,工程创建结束。

image.png
image.png
image.png

添加源码综合

工程创建完了之后我们添加 wujian100 的源码来进行综合。这里需要注意的是源码中有两个 top 文件,我们这里添加 wujian100_open_fpga_top.v 文件。然后添加 soc目录下的源码,都添加完成之后,vivado 会自动分析,这时我们会看到有错误,这是因为这四个文件是头文件,我们需要手动更改一下文件格式。

image.png

接下来我们继续添加约束文件,这里的管脚约束文件,我们就是所以官方提供的这个即可,时序约束文件这里使用一位群友提供的即可。把这个时序约束文件和官方的 xdc 放在一个目录下就可以了,添加完成之后,我们进行综合即可。但是在综合之前我们需要更改一下官方的 xdc,有一个地方在 vivado 下进行综合会报错,就是第 33 行这句, 把 _c 去掉即可。还有一个地方需要注意的是把 wujian100_open_fpga_top.v 的优先级调一下。

时序约束文件:

 create_clock -name {EHS} [get_ports PIN_EHS] -period 50 -waveform {0 25}
create_clock  -name {JTAG_CLK} [get_ports PAD_JTAG_TCLK] -period 1000 -waveform {0 500}

set_clock_groups -asynchronous -name {clkgroup_1} -group [get_clocks {EHS JTAG_CLK}]

set_false_path -through [get_ports PIN_EHS]

#set_clock_groups -name {Inferred_clkgroup_0} -asynchronous -group [get_clocks {wujian100_open_top|PAD_JTAG_TCLK}]

set_property ASYNC_REG TRUE [get_cells {x_aou_top/x_rtc0_sec_top/x_rtc_pdu_top/x_rtc_clr_sync/pclk_load_sync2_reg}]
set_property ASYNC_REG TRUE [get_cells {x_aou_top/x_rtc0_sec_top/x_rtc_pdu_top/x_rtc_clr_sync/rtc_load_sync2_reg}]
set_property ASYNC_REG TRUE [get_cells {x_aou_top/x_rtc0_sec_top/x_rtc_pdu_top/x_rtc_clr_sync/pclk_load_sync1_reg}]
set_property ASYNC_REG TRUE [get_cells {x_aou_top/x_rtc0_sec_top/x_rtc_pdu_top/x_rtc_clr_sync/rtc_load_sync1_reg}]
set_property ASYNC_REG TRUE [get_cells {x_cpu_top/CPU/x_cr_had_top/A15d/A74/A10b_reg}]
set_property ASYNC_REG TRUE [get_cells {x_cpu_top/CPU/x_cr_had_top/A15d/A74/A18597_reg}]
set_property ASYNC_REG TRUE [get_cells {x_cpu_top/CPU/x_cr_had_top/A15d/A1862d/A10b_reg}]
set_property ASYNC_REG TRUE [get_cells {x_cpu_top/CPU/x_cr_had_top/A15d/A1862d/A18597_reg}]
set_property ASYNC_REG TRUE [get_cells {x_cpu_top/CPU/x_cr_had_top/A15d/A75/A10b_reg}]
set_property ASYNC_REG TRUE [get_cells {x_cpu_top/CPU/x_cr_had_top/A15d/A75/A18597_reg}]
  # set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets PAD_JTAG_TCLK_c]
# 改成下面的
set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets PAD_JTAG_TCLK]

综合完成生成 bit 文件

image.png

综合完成之后呢,我们可以看到啊,这个时序约束都是符合要求的,接下来,我们就可以输出比特流文件上 FPGA 做实验了。

本文首次发表于:使用 vivado 综合 wujian100 生成 bitstream 文件
视频教程:稍后更新

原文作者:bh6bao
点击查看原文

相关文章
|
6天前
|
异构计算
TCL管理Vivado工程
TCL管理Vivado工程
|
10月前
|
Linux Shell 开发工具
【Linux系统开发】x210开发板根目录文件系统构建(下)
【Linux系统开发】x210开发板根目录文件系统构建(下)
134 0
|
10月前
|
Linux 编译器 C语言
【Linux系统开发】x210开发板根目录文件系统构建(上)
【Linux系统开发】x210开发板根目录文件系统构建
106 0
|
11月前
|
机器学习/深度学习 算法
Verilog实现FIR低通滤波器,vivado平台开发,包含testbench
Verilog实现FIR低通滤波器,vivado平台开发,包含testbench
125 0
|
11月前
|
Linux 开发者
Linux设备驱动开发3-Kconfig构建系统
Linux设备驱动开发3-Kconfig构建系统
|
存储 数据库 数据安全/隐私保护
大型医院PACS系统源代码,VC + MSSQL开发,专业高级三维后处理功能
本套PACS系统为医院提供一个包括放射、超声、核医学、病理、内窥镜、心电图室在内的所有影像检查数字化的一体化解决方案。 它涵盖了传统PACS和RIS系统的所有功能,以构建全数字化影像科为目标,致力于实现对医院所有影像数据的统一管理、影像检查工作流的自动化,及影像诊断的智能化。
大型医院PACS系统源代码,VC + MSSQL开发,专业高级三维后处理功能
|
前端开发 Shell 测试技术
【芯片前端】以vcs编译环境为例做一个适用于芯片前端的极简版Makefile实操教程
【芯片前端】以vcs编译环境为例做一个适用于芯片前端的极简版Makefile实操教程
672 0
|
物联网 C语言 芯片
Stm32 向 keil 中添加库及应用程序 | 学习笔记
快速学习 Stm32 向 keil 中添加库及应用程序
593 0
Stm32 向 keil 中添加库及应用程序 | 学习笔记
|
Linux Shell C语言
Wujian SoC 平台_工具链流程|学习笔记
快速学习 Wujian SoC 平台_工具链流程
204 0
Wujian SoC 平台_工具链流程|学习笔记
|
开发工具
专接本汇编开发工具【Masm for Winodws 集成实验环境】安装细则
专接本汇编开发工具【Masm for Winodws 集成实验环境】安装细则
265 0
专接本汇编开发工具【Masm for Winodws 集成实验环境】安装细则