Ubuntu运行VCS+Verdi问题补充-FPGA常见问题社区-FPGA CPLD-ChipDebug

Ubuntu运行VCS+Verdi问题补充

导言

给大家分享了Ubuntu的备份包,里面安装了VCS2018,VCS_MAX2018,Verdi2018,以及DC2018,便于大家学习,但有几个问题需要补充一下。并且这次给出一个测试例程模板,实现Vivado自动化编译,以及VCS和Verdi联合仿真的makefile模板。因为亦安也是刚切换到Linux平台,难免有错误的地方,有任何问题请后台联系。

问题补充

上次分享的Ubuntu2018.04尽管安装好了相关软件,但仍有少量问题需要修复:

  1. WSLg需要win11(内部版本22000)才能支持,否则运行Linux GUI需要安装桌面。
  2. .bashrc文件中有个环境路径有误,正确的如下,我给的多了个PLI。
export LD_LIBRARY_PATH=/usr/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/LINUX64
  1. 由于VCS这些EDA需要比较低的gcc和g++版本支持,所以需要换掉当前比较高的版本,一般大家安装在ubuntu上都会有这个问题,执行以下命令:
   cd /usr/bin
   sudo rm gcc
   sudo ln -s gcc-4.8 gcc
   sudo rm g++
   sudo ln -s g++-4.8 g++

之后检查gcc和g++版本即可,如果方法不奏效,那么添加支持gcc旧版本的apt源,直接安装即可。

SPI循环实例

VCS+Verdi仿真

这是给大家的文件结构(代码我随便找的,没有验证SPI正确性,主要给大家演示Ubuntu中运行流程):

.
├── Makefile
├── common
│   └── vivado.mk
├── fpga
│   └── Makefile
├── fpga.xdc
├── rtl
│   ├── SPI_Master.v
│   ├── SPI_Slave.v
│   └── SPI_loopback.v
├── sim
│   ├── Makefile
│   └── filelist.f
└── tb
    ├── SPI_Master_tb.v
    └── SPI_loopback_tb.v

仿真在sim文件夹,我们cd到sim文件夹,执行make vcs之后执行make verdi便可以实现联合仿真,filelist.f文件里面是仿真文件的路径,tb文件需要添加如下代码生成tb.fsdb文件。

initial begin
     $fsdbDumpfile("tb.fsdb");//
     $fsdbDumpvars;
end

下图是执行完仿真的波形图:

图片[1]-Ubuntu运行VCS+Verdi问题补充-FPGA常见问题社区-FPGA CPLD-ChipDebug

sim下的makefile:

# 这是一个vcs+verdi
#--------------------------------------------------------------------------------
comp  : clean vcs
#--------------------------------------------------------------------------------
vcs   :
 vcs  -full64 -cpp g++-4.8 -cc gcc-4.8 -LDFLAGS -Wl,--no-as-needed    
              -f filelist.f  
              -timescale=1ns/1ps 
              -fsdb  -full64 -R  +vc  +v2k  -sverilog  -debug_all  
              -P ${LD_LIBRARY_PATH}/novas.tab  ${LD_LIBRARY_PATH}/pli.a  
              |  tee  vcs.log  &
#--------------------------------------------------------------------------------
verdi  :
 verdi -f filelist.f -ssf tb.fsdb &
#--------------------------------------------------------------------------------
clean  :
  rm  -rf  *~  core  csrc  simv*  vc_hdrs.h  ucli.key  urg* *.log  novas.* *.fsdb* verdiLog  64* DVEfiles *.vpd
#--------------------------------------------------------------------------------

注意,Makefile需要指定gcc和g++版本。

综合

这里使用Vivado,cd到fpga目录下,执行make all即可实现综合以及应用生成bit流,因为没有约束,会有个生成bit失败的报错,忽略,或者大家修改Makefile文件,仅保留综合。

# FPGA settings
FPGA_PART = xc7k325tffg900-2
FPGA_TOP = SPI_loopback
FPGA_ARCH = Kintex7

# Files for synthesis
SYN_FILES = rtl/SPI_loopback.v
SYN_FILES += rtl/SPI_Master.v
SYN_FILES += rtl/SPI_Slave.v

 

# XDC files
XDC_FILES = fpga.xdc

 

include ../common/vivado.mk

 

请大家根据自己的配置修改Makefile,不喜欢这个模板的自行修改,我只是简单介绍一下基本的运行流程。

总结

 

参考资料

SPI代码源自github:

https://github.com/halftop/Interface-Protocol-in-Verilog.git

Makefile模板部分源自:

https://github.com/alexforencich
请登录后发表评论