开源wujian100-vivado综合

1、说明

阿里的平头哥在github上开源了riscv项目-wujian100_open。本文是使用vivado对该项目进行综合。

本文介绍方法,没有按开源项目的readme所说的synplify综合网表的方式,而是全程采用vavido新建项目进行的综合。

主要问题是:1、 头文件属性;2、约束;3、其它小问题。

2、过程

工具采用win10下的vavido2018.2;代码采用2019.10.22日晚github上版本。

  • 建立目录workarea(名字任意),目录下:git下载的wujian100_open、syn、sim1目录同级,如下:

开源wujian100-vivado综合_第1张图片

  • 在syn下新建xilinx的项目,选择对应器件(fpga目录的tcl文件里器件类型是对的,xdc里的封装说错了。型号应该是:xc7a200tfbg484-2)。
  • add source,选择目录直接加最简单,加xdc。注意问题:语法有显示错的4个文件,编译项目也会报错。通过vivado的界面,把这几个文件的属性改为verilog head type。按一般设计规范,这几个v文件,应该采用vh后缀。
  • 再次编译,xdc里报错:

[Place 30-574] Poor placement for routing between an IO pin and BUFG. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.

< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets PAD_JTAG_TCLK_IBUF] >

PAD_JTAG_TCLK_IBUF_inst (IBUF.O) is locked to IOB_X0Y92

 and padmux_cpu_jtg_tclk_BUFG_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y5,

错误点在:

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets PAD_JTAG_TCLK_c]    (去掉_c)

#===========================================

# C-SKY  JTAG interface: J8

#===========================================

set_property PACKAGE_PIN AA15  [get_ports PAD_JTAG_TCLK]

另外问题:

还有2个未约束的管脚,在xdc的pin约束语句是被注释了,去掉注释符。

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets POUT_ELS_OBUF] 

  • 得到最终综合结果

其ram采用了寄存器数组的写法,可以避免器件依赖性;

资源使用情况如下:

开源wujian100-vivado综合_第2张图片

 

你可能感兴趣的:(RISCV)