转:Modelsim和Vcs+Verdi使用技巧(Linux)
Modelsim脚本自动仿真
1、创建文件 run.do,“#”为注释符号
quit -sim #退出上次仿真
.main clear #清除上次仿真所有文件以及打印信息
vlib work.veloce #创建veloce的工作环境
#-------------------------------------------------------------------------------------------------
vlog ./tb_XXXXXXX.v #testbench文件
vlog ./../src/*.v #代码源文件
vlog ./../ip_core/*.v #IP核
#--------------------------------------------------------------------------------------------------
#Alrera
vlog /opt/Quartus/13.1/quartus/eda/sim_lib/altera_mf.v #IP核仿真模型
vlog /opt/Quartus/13.1/quartus/eda/sim_lib/220model.v #IP核仿真模型
#--------------------------------------------------------------------------------------------------
#Xilinx
vlog /opt/Xilinx/Vivado/2015.4/data/verilog/src/unimacro/*.v #IP核仿真模型
vlog /opt/Xilinx/Vivado/2015.4/data/verilog/src/unisims/*.v #IP核仿真模型
vlog /opt/Xilinx/Vivado/2015.4/data/verilog/src/unisims_dr/*.v #IP核仿真模型
vlog /opt/Xilinx/Vivado/2015.4/data/verilog/src/xeclib/*.v #IP核仿真模型
vlog /opt/Xilinx/Vivado/2015.4/data/verilog/src/glbl.v #IP核仿真模型
#--------------------------------------------------------------------------------------------------
#LATTICE
vlog ./lattice/verilog/ecp3 #IP核仿真模型
vlog ./lattice/verilog/pmi #IP核仿真模型
#--------------------------------------------------------------------------------------------------
vsim -voptargs=+acc work.tb_XXXXXXXX
#--------------------------------------------------------------------------------------------------
add wave /tb_XXXX/i2s_XXX_inst/* #添加例化模块所有信号波形
do wave.do #若保存有新模型,用此语句可以复现已保存的波形
run 500000 ns #仿真运行时间
2、写完以上run.do文件后,在「 terminal 」中执行以下语句,则可以自动跑完仿真
[redhat@fpga marin]$ vsim -do run.do
Vcs+Verdi脚本自动仿真
0、定义环境变量,在.bashrc或者.cshrc文件中加入
##VCS
setenv VCS_HOME /work/tools/synopsys2015/vcs
setenv PATH $VCS_HOME/amd64/bin:$PATH
##Verdi
setenv VERDI_HOME /work/tools/synosys2015/verdi
setenv NOVAS_HOME /work/tools/synopsys2015/verdi
setenv LD_LIBRARY_PATH ${NOVAS_HOME}/share/PLI/VCS/LINUX64
setenv PATH $NOVAS_HOME/bin:$PATH
1、创建文件Makefile
#--------------------------------------------------------------------------------------------------
comp : clean vcs
#--------------------------------------------------------------------------------------------------
vcs :
vcs \
-f filelist.f \
-fsdb -full64 -R +vc +v2k -sverilog -debug_all vpi \
-P ${LD_LIBRARY_PATH}/novas.tab ${LD_LIBRARY_PATH}/pli.a \
| tee vcs.log &
#--------------------------------------------------------------------------------------------------
verdi :
verdi \
+v2k -sverilog -f filist.f -ssf tb.fsdb &
#--------------------------------------------------------------------------------------------------
clean :
rm -rf *~ core csrc simv* vc_hdrs.h ucli.key urg* *.log novas.* *.fsdb* verdiLog 64* DVEfiles *.vpd
#--------------------------------------------------------------------------------------------------
2、创建文件filelist.f,加入要编译的.v文件
#--------------------------------------------------------------------------------------------------
#Alrera
/opt/Quartus/13.1/quartus/eda/sim_lib/altera_mf.v #IP核仿真模型
/opt/Quartus/13.1/quartus/eda/sim_lib/220model.v #IP核仿真模型
#--------------------------------------------------------------------------------------------------
#Xilinx
-y /opt/Xilinx/Vivado/2015.4/data/verilog/src/unimacro #IP核仿真模型
-y /opt/Xilinx/Vivado/2015.4/data/verilog/src/unisims #IP核仿真模型
-y /opt/Xilinx/Vivado/2015.4/data/verilog/src/unisims_dr #IP核仿真模型
-y /opt/Xilinx/Vivado/2015.4/data/verilog/src/xeclib #IP核仿真模型
-y /opt/Xilinx/Vivado/2015.4/data/verilog/src/glbl.v #IP核仿真模型
+libext+.v+
#--------------------------------------------------------------------------------------------------
#LATTICE
-y ./lattice/verilog/ecp3 #IP核仿真模型
-y ./lattice/verilog/pmi #IP核仿真模型
+libext+.v+
#--------------------------------------------------------------------------------------------------
./tb_file/tb_XXXXX.v #加入test_bench文件
./src/*.v #加入源文件
./ip_core/*.v #加入IP核源文件
+incdir+directory+
3、在test_bench文件中添加如下代码,用于Vcs产生波形文件 tb.fsdb
initial
begin
$fsdbDumpfile("tb.fsdb");
$fsdbDumpSVA;
$fsdbDumpvars(0,tb_XXXX,"+all");
#200000
$finish;
end
4、如果是Lattice器件,还需在test_bench中加入如下代码
GSR GSR_INST ( .GSR(1'b1) );
PUR PUR_INST ( .PUT(1'b1) );
5、在「 terminal 」中输入如下命令运行VCS进行编译生成fsdb文件
[redhat@fpga marin]$ make comp
6、在「 terminal 」中输入如下命令运行Verdi把fsdb文件吃进去看波形
[redhat@fpga marin]$ make verdi
以上路径均需按照自己实际情况进行修改
转自:https://www.cnblogs.com/mage0306/p/10595328.html
转:Modelsim和Vcs+Verdi使用技巧(Linux)的更多相关文章
- 88.modelsim仿真do文件相关技巧
网上的关于DO文件的编写好像资料不多,比较杂,所以本人总结一下常用的简单语法,方便大家查看.其实本人也刚接触DO文件没多久,有纰漏很正常,欢迎指正批评,互相学习.PS:写得有点乱 还有一个值得注意 ...
- 本地上传文件至服务器的技巧(linux文件压缩及解压文件)
linux(ubuntu)文件解压及压缩文件 ubuntu支持文件的解压及压缩功能, 如果ubuntu上面没有安装过unzip工具的话,可以通过下面命令安装: sudo apt-get install ...
- [小技巧]Linux的一些信息获取
1. Linux 系统登录之后,显示如下 Last login: Thu Jan :: UTC on ttyS0 Linux xxx # PREEMPT Wed Jul :: CST armv7l 那 ...
- vcs/verdi filist
. 现在很多verilog 的filelist 文件中用如下形式来指定文件所在的目录就行了,而不必指定具体文件 ./testbench/ppc460_PLB4/p464s_test_top_tb.v ...
- 工程技巧Linux上建立工程项目
程序中用到的核心代码用库的形式进行封装,并且给出示例程序,下面给出一个程序文件夹的建立脚本. 如运行sh MakeProject.sh PersonNameIdentification PNILib ...
- linux 常用命令及技巧
linux 常用命令及技巧 linux 常用命令及技巧:linux 常用命令总结: 一. 通用命令: 1. date :print or set the system date and time 2. ...
- linux 小技巧(磁盘空间搜索)
这里记录一些linux 管理中可能会用到的又容易忘的一些小技巧. linux磁盘写入失败,提示磁盘空间不足.一般都会用df -h 或者df -i看是不是磁盘空间不足或者是inode空间不足.发生这种情 ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- Linux基础精华
Linux基础精华 (继续跟新中...) 常用命令: Linux shell 环境 让你提升命令行效 率的 Bash 快捷键 [完整版] 设置你自己的liux alias Linux的Find使用 L ...
随机推荐
- go build 与go install
相同点都能生成可执行文件 不同点go build 不能生成包文件, go install 可以生成包文件go build 生成可执行文件在当前目录下, go install 生成可执行文件在bin目录 ...
- 简单操作:10分钟实现在kubernetes(k8s)里面部署服务器集群并访问项目(docker三)
前言 经过docker安装.k8s开启并登录,我们终于到 "部署k8s服务器集群并访问项目" 这一步了,实现的过程中有太多坑,好在都填平了,普天同庆. 在进行当前课题之前,我们需要 ...
- php curl发送数据和文件
function mycurl($file, $url, $aid) { // 如果文件名是中文名,将中文字符编码转换一下 $file=iconv("UTF-8","gb ...
- xml字符串转成数组(php)
1 $str = '<xml> 2 <ToUserName> <![CDATA[gh_fc0a06a20993]]> </ToUserName> 3 & ...
- 深入剖析RocketMQ源码-NameServer
一.RocketMQ架构简介 1.1 逻辑部署图 (图片来自网络) 1.2 核心组件说明 通过上图可以看到,RocketMQ的核心组件主要包括4个,分别是NameServer.Broker.Produ ...
- Dapr实战(二) 服务调用
服务调用是什么 在分布式应用程序中的服务之间进行调用会涉及到许多挑战. 例如: 维护其他服务的地址. 如何安全地调用服务. 在发生短暂的 暂时性错误 时如何处理重试. 分布式应用程序调用链路追踪. 服 ...
- U2-关系数据库
2.1 关系数据结构及形式化定义 关系数据库系统是支持关系模型的数据库系统.(关系模型由关系数据结构.关系操作集合和关系完整性约束三部分组成) 2.1.1 关系 1-域 域是一组具有相同数据类型的值的 ...
- Centos8.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台
前言 本篇文章引用了小菠萝测试笔记,大部分内容非原创,基于自身实操过程中,完善了部分. 本篇随笔是在Linux上搭建的,后面会补充在docker以及k8s上如何部署安装 工具介绍 工具 介绍 Jmet ...
- AD学习笔记(基础)
AD学习 1 学习思路 1.1 学什么 1.2 怎么学 2 AD本身 3 AD project 3.1 任务层级 3.2 PCB流程 4 原理图工作环境设置 5 开始 5.1工程创建 5.2 元件库介 ...
- CentOS7安装Docker遇到的问题笔记
笔记/朱季谦 以下是笔者本人学习搭建docker过程当中记录的一些实践笔记,过程当中也遇到了一些坑,但都解决了,就此记录,留作以后再次搭建时可以直接参考. 一.首先,先检查CentOS版本,保证在Ce ...