wujian100——FPGA综合实现

2020-11-10 10:27:27 浏览数 (1)

工程结构创建工程建立 vivado 工程添加源文件添加约束文件运行工程参考链接

工程结构

项目目录结构

代码语言:javascript复制
|--wujian100_open //wujian100_open平台项目工程目录。wujian100_open 平台代码可以通过github下载获取 

    |--case //仿真使用的测试case 

    |--doc //wujian100_open平台的用户手册

    |--fpga //FPGA制作相关脚本 

    |--lib //仿真编译使用的脚本及库文件 

    |--regress //回归测试的结果 

    |--sdk //软件开发套件 

    |--soc //SoC RTL源码 

    |--tb //test bench和monitor文件 

    |--tools //仿真脚本和环境变量设置文件 

    |--workdir //执行仿真的工作目录 

    |--LICENSE 

    |--README.md

创建工程

建立 vivado 工程

选择 FPGA 型号 xc7a200tfbg-1

添加源文件

  1. 在 Add or Create Design Sources 界面选择 Add Directors
  2. 然后在工程结构下面选择目录 soc ,然后点击 select

  1. 删除工程中的wujian100_open_fpga_top.v,因为这个是用于仿真的顶层
  2. 在 Add or Create Design Sources界面选择 Add Files
  3. 然后在工程结构下面选择目录 fpga ,然后点击 wujian100_open_fpga_top.v

  1. 添加之后可以看到如下图所示界面,修改这四个文件为头文件 Verilog Header

添加约束文件

  1. 在 Add or Create Constraints 界面选择 Add Files
  2. 然后在工程结构下面选择目录 fpga->XDC ,然后点击 XC7A200T3B.xdc
  1. 打开 XC7A200T3B.xdc 修改第 33 行这句, 把 _c 去掉即可
  1. 添加时序约束文件
代码语言:javascript复制
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}]

运行工程

分别点击下图中的

  • 步骤1:综合
  • 步骤2:实现
  • 步骤3:比特流

最后就可以生成 bit 流文件。而且小编还看到 Slack 恰好为 0 ,的确是 ”绝了“

参考链接

  1. 使用 vivado 综合 wujian100 生成 bitstream 文件
代码语言:javascript复制
https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.4e83180fvg5PvY&id=651027310371143680
  1. 使用 vivado 综合 wujian100 生成 bitstream 文件(续集)
代码语言:javascript复制
https://mp.weixin.qq.com/s/Oh62XvDZkrBKSWdHwYfAFg

0 人点赞