開源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目錄同級,如下:

  • 在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採用了寄存器數組的寫法,可以避免器件依賴性;

資源使用情況如下:

image.png

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章