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目录同级,如下:
- 在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采用了寄存器数组的写法,可以避免器件依赖性;
资源使用情况如下:
来源:CSDN
作者:design_logic
链接:https://blog.csdn.net/design_logic/article/details/104131004