Linux下VCS&Verdi入门级联合仿真教程

这篇具有很好参考价值的文章主要介绍了Linux下VCS&Verdi入门级联合仿真教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

如果没有安装VCS和Verdi,可以先移步到VCS & Veidi 下载与安装教程 一站式虚拟机套餐,感谢这位博主大大的分享,极大的减轻了我工具安装带来的烦恼。

VCS&Verdi介绍

博主在上一篇博文《ASIC设计流程及对应EDA工具简介》中介绍了ASIC设计流程中常用的EDA工具。大家使用过的Vivado工具基本上可以完成RTL编写、编译、仿真、综合、跑波形、生成比特流等工作。**VCS主要实现编译仿真、Verdi主要用于看波形。**但是为什么不直接使用Vivado呢?
对于学生来说,一个Vivado足够了,但是有一个问题就是慢。企业里更倾向于使用IC设计各个流程中更为专业的EDA工具,另外,Vivado主要是为了给自家的FPGA开发板设计的EDA工具,更倾向于用户的使用。相比之下, VCS和Verdi更适合公司进行开发,VCS工具具有仿真速度快、效率高的优点,可以节约开发时间,Verdi看波形更加方便,且方便debug,比Modelsim还好用,虽然上手较难,但是受用无穷。

另外,VCS+Verdi主要是用于前仿真,然后想后仿,那就得需要再用DC (Design Complier) 来逻辑综合。

VCS&Verdi使用演示

开发环境:Red Hat Enterprise Linux Server release 6.7

虚拟机:VMware Workstation Pro 17

编辑器:vim

VCS版本:VCS2014

Verdi版本:Verdi2015

1.VCS&Verdi安装

博主是直接使用的VCS & Veidi 下载与安装教程 一站式虚拟机套餐进行的安装,检测VCS和Verdi是否安装成功

在Terminal中

[IC@IC Desktop]$ vcs
[IC@IC Desktop]$ verdi

会打开Verdi的GUI界面。

2.新建项目

接下来主要借鉴博客Linux下VCS与Verdi联合仿真简易教程及例子示范_vcs verdi_one努力翻身的咸鱼的博客,侵删。

完成一个计数器的项目的仿真和调试

  • 新建counter文件夹

    mkdir counter && cd counter
    
  • 新建counter.v文件

    vim counter.v
    

    复制下面内容到counter.v

    module counter(
            input                   clk,
            input                   rst,
            output  reg     [5:0]   count
    );
    always @(posedge clk or negedge rst)
    begin
            if(!rst)
                    count <= 0;
            else
                    count <= count + 1;
    end
    endmodule
    
    

    复制进去,可能代码会很乱,可以尝试下用linux下的代码自动对齐快捷键gg+=+G

  • 新建tb_counter.v文件

    vim tb_counter.v
    

    复制下面内容到tb_counter.v

    module tb_counter();
    
    reg 		clk,rst;
    wire	[5:0]	counter;
    
    counter u1(clk,rst,counter);
    
    always #(5) clk = ~clk;
    
    initial begin
    	clk <= 0;
    	rst <= 0;
    	#20;
    	rst <= 1;
    	#50;
    	if(counter != 5)
    		$display("Failure 1: the counter should be 5 but it is %d",counter);
      else
      	$display("You gotta the right result!");
    	$finish;
    end
    
    `ifdef FSDB
    initial begin
    	$fsdbDumpfile("tb_counter.fsdb");
    	$fsdbDumpvars;
    end
    `endif
    endmodule
    
    

    这样在counter文件夹下就有两个文件counter.vtb_counter.v

    注意,要VCS与Verdi联合仿真,需要在testbench里面必须加入``ifdef FSDBendif`的代码,这样才能生成fsdb文件提供Verdi读取,不然不会输出波形)

  • 新建timescale.v

    vim timescale.v
    
    `timescale 1ns/10ps
    

    这里是设置module的时间单位和时间精度

3.仿真调试&波形查看
VCS仿真调试
  • counter文件夹下打开Terminal,输入vcs命令
vcs -R -full64 +v2k -fsdb +define+FSDB -sverilog counter.v tb_counter.v timescale.v -l run.log

-R表示自动运行仿真
-full64表示在 64 位模式下编译设计并创建 64 位可执行文件以在 64 位模式下进行仿真。
+v2k表示使用Verilog-2001标准
-fsdb表示支持对fsdb相应操作
+define+FSDB相当于在verilog头文件里加上`define FSDB
-sverilog表示支持system verilog
输入.v文件的顺序可以不同(顺序是随意的)
-l run.log表示将终端显示的信息在run.log中储存;

​ vcs查看各种指令option的方法

vcs -help

常用仿真选项:vcs常用仿真选项_vcs nowarn_lobbiy的博客-CSDN博客

如果报错如下:

Undefined env variables
  Environment variables NOVAS_HOME or DEBUSSY_HOME is not set.
  Please set one of these variables and continue.

解决办法:问题记录_飞机飞得高的博客-CSDN博客

记得解决完之后,重新打开counter文件夹,才会生效,因为source命令会有延迟性。

再次输入vcs命令后,会出现下面log,并且在文件夹下生成.fsdb文件,说明编译仿真成功。

使用Verdi查看波形
  • 打开Verdi

    verdi
    
  • 导入工程代码

​ 按下图点击相应说明操作,它们的意思也很直白,就不解释了

​ 恭喜,至此**您已经完成了verdi看代码了,开心吧!**看波形再往下来。

  • 导入fsdb文件

    按图操作,依次点击,导入fsdb文件,以显示波形。

但是,为啥还不出现波形啊!!啊啊啊!!!我知道你很急,但是你先别急!哈哈哈

  • 查看波形

    接着按图操作Verdi吧。

​ 至此,我们简单的VCS与Verdi联合仿真例子就大功告成咯,是不是很开心~

​ 但是,这也太麻烦了,来回点来点去的,太难用了吧。所以借鉴其他博主的博客,有了下面的 **“VCS&Verdi提高效率”**一节。

VCS&Verdi提高效率

1.自动编译和打开Verdi

提高效率的途径当然是可以自动化的脚本了。再windows下尝试用filelist配合bat脚本实现自动化的波形查看,当然在linux下更方便了。

思路

​ 有一个检索文件可以把工程里面的文件的路径都记录下来。——>filelist文件

​ 有一个文件可以通过检索文件,自动执行vcs命令,并打开波形。——>shell bash脚本

​ 说干就干!

创建file.f文件

​ 内容如下:输入工程文件的路径,当然如果你的文件在其他文件夹下,只要改成相对路径就可以

./tb_counter.v
./counter.v
./timescale.v

​ 这里.v的顺序不重要,只需要将包含的文件写进去便行;

​ 那么vcs文件就得变成这种。

vcs -R -full64 +v2k -fsdb +define+FSDB -sverilog -f file.f -l run.log

​ 此时,-f代表着你在使用.f文件了,之后如果想再添加.v文件,就在file.f中添加便可~

​ 到这一步,稍微简单了一点,但是我还是要输入vcs还要打开verdi啊,能不能更方便呢?当然可以!

创建bash脚本文件run_sim(不需要后缀)
vim run_sim
  • 输入以下内容

     ```bash
    

#!/bin/bash
vcs -R -full64 +v2k -fsdb +define+FSDB -sverilog -f file.f -l run.log
verdi
```

​ 然后在Terminal输入如下命令,将run_sim转为执行文件:

chmod -x run_sim
实现自动化编译和打开verdi

​ 每次只需要在Teminal敲下

source run_sim

​ 就可以自动打开verdi了,是不是节省了很多时间。其他工程只需要修改file.frun_sim文件就可以了。

2.Verdi的灵活使用

想必大家在使用Vivado或者Modelsim看波形时,也有过下面这些困扰吧:①为了增加某几个信号的波形,重新仿真一遍(贼耗时间);②为了追踪一个信号它在某几个时刻的变化原因,需要对着波形图琢磨几遍(贼耗时间)…

但是,Verdi可以解决这些问题,在Verdi看增加信号波形无需再次仿真,追踪信号只需要在代码窗口里点击相应信号便能看到它是由哪些信号决定的。

操作如下:

增加特定信号波形

ctrl+w

  • 在导入.v文件以及.fsdb文件后,如果我们要增加某信号波形,可以鼠标单击代码窗口的对应信号,然后再键盘输入ctrl+w,这样该信号的波形便直接导入波形窗口并显示了,不需要再次仿真,是不是超级方便!!!
观察特定clk下每个变量的变化
  • 为了让debug更加快捷,我们可以在代码窗口单击键盘的x键,以显示出每个wire和reg在特定clk时的值的变化,再也不需要盯着波形来回看了!

生成特定的电路结构
  • verdi也能生成.v文件对应的电路结构图,具体如下图所示:

    linux vcs怎么打开,数字IC设计EDA工具,VCS+Verdi,数字IC设计

verdi还有很多快捷键,比如ctrl+4将.v文件中所有信号波形全部导入波形窗口**(这个我试了不管用,大家可以自己试一下)**,在波形窗口按f自动适配波形大小,按z缩小波形,按Z放大波形,等等,许多便捷操作,以及用命令行或者脚本直接verdi读取fsdb文件并显示等,这些大家可以自行上网查询~

直接导入.v和波形文件到Verdi
  • 这里再举个命令行直接调用verdi并直接导入.v文件,.fsdb文件的操作。同时我们也能像先前生成runrand脚本文件那样,创建一个新脚本文件调用下面的命令,从而提高效率~

    verdi -ssf tb_counter.fsdb -2001 -sverilog tb_counter.v counter.v
    

完整的脚本文件可以变成:

#!/bin/bash
vcs -R -full64 +v2k -fsdb +define+FSDB -sverilog -f file.f -l run.log
verdi -ssf tb_counter.fsdb -2001 -sverilog tb_counter.v counter.v

这只是借鉴别人的博客总结的入门博客,希望对大家有帮助。

参考链接:

VCS & Veidi 下载与安装教程 一站式虚拟机套餐_vcs虚拟机_不吃葱的酸菜鱼的博客

VCS & Verdi使用入门演示-by_Sky_SiliconThink

Linux下VCS与Verdi联合仿真简易教程及例子示范_vcs verdi_one努力翻身的咸鱼的博客

数字IC设计流程及工具简要介绍_by_Jacky

感谢博主们的无私的教程分享,正是因为你们,我们的开发才能变得更为顺畅。文章来源地址https://www.toymoban.com/news/detail-612140.html

到了这里,关于Linux下VCS&Verdi入门级联合仿真教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vcs+verdi仿真Verilog代码

    我们以一个简单的加法器为例,来看下如何用vcs+verdi仿真Verilog文件并查看波形。 源文件内容如下: 我们再定义一个宏定义的文件: 我们需要再定义一个testbench文件: 再定义一个filelist文件: dut.f 最后就是需要一个Makefile文件了: 总的文件如下: 执行 make all : 跑完后如下

    2024年02月13日
    浏览(31)
  • linux VCS+verdi运行UVM实战(第二章)中的例子

    目录 前言 介绍 建立工程 运行代码 查看波形 总结 前言 用VCS+verdi运行了下UVM实战中的例子(第二章)。 在某宝上花了几十块,买了个虚拟机(已经安装好VCS+verdi)。直接用UVM实战中,现成的uvm代码跑了下。 UVM实战源码下载地址:UVM实战源码下载 书中DUT的功能:通过rxd接收

    2023年04月08日
    浏览(36)
  • Vivado工程怎么用VCS仿真

    在进行数字电路设计的的时候,我们用Vivado写了一个工程,但是大家都知道Vivado自带的仿真是很拉胯的,信号多了就很慢很不方便,很容易卡死,所以就需要用VCS去进行仿真,有2种方法。 1.首先也是最重要的一步,你需要把Vivado的所有的IP编译成VCS可以识别的库文件,因为你

    2023年04月08日
    浏览(38)
  • vcs仿真教程(查看断言)

            VCS是在linux下面用来进行仿真看波形的工具,类似于windows下面的modelsim以及questasim等工具,以及quartus、vivado仿真的操作。 vcs的常见指令后缀 sim常见指令 命令:mkdir +文件名,例如:mkdir tst 然后直接把设计文件和仿真文件拷贝到tst7这个文件夹里。 打开终端,输入

    2024年02月10日
    浏览(34)
  • VCS与Verdi联仿,简要万能工程模板,持续更新中...

    一、背景 学习verilog,故用vcs来编译verilog,用verdi来查看波形。 提供一套简要verilog工程模板去执行教程中代码,并分析波形。 二、编写工程模块 建立工程在temp文件夹下新建文件夹/rtl、/sim、/tb,如下: 在/rtl文件夹下新建两个.v文件: template.v和timescale.v ,为模板rtl代码。

    2024年02月12日
    浏览(30)
  • 新手教程01:逻辑仿真工具VCS的基础使用

    目录 前言 利用图形化界面的方法使用VCS 1. 新建文件夹,存放需要仿真的Verilog源代码和testbench测试文件​ 2. 使用cd命令进入该文件夹路径下,对需要编译的文件生成file.list文件 3. 使用vcs命令编译仿真需要的verilog代码 4. 启动VCS图形化界面 5. 进行仿真,生成波形 总结 零基础

    2024年02月09日
    浏览(31)
  • EDA07--VCS仿真验证(一)

    VCS用于在Linux下仿真.v代码,vcs六大功能: ·System Verilog ·OVA ·NTB ·DVE调试环境 ·覆盖率统计 ·DirectC ·增量编译 ·64-bit模式 ·混合信号仿真 本文讲解VCS的知识内容,具体操作步骤单独写一篇… VCS-DVE仿真由三步构成: 编译、仿真、调试 。提前编写好设计文件和Testbench的.v文件。

    2024年02月08日
    浏览(40)
  • 逻辑仿真工具VCS的使用-Makefile

            Gvim写RTL code,VCS仿真,Verdi看波形,DC做综合下约束,Primetime做STA,Spyglass做异步时序分析。            VCS全称Verilog Computer Simulation ,VCS是逻辑仿真EDA工具的编译源代码的命令。要用VCS做编译仿真,首先得有一个RTL代码,比如我们写了一个全加器和全加器的

    2024年02月02日
    浏览(27)
  • 【数字IC设计】VCS仿真DesignWare IP

    DesignWare是SoC/ASIC设计者最钟爱的设计IP库和验证IP库。它包括一个独立于工艺的、经验证的、可综合的虚拟微架构的元件集合,包括逻辑、算术、存储和专用元件系列,超过140个模块。DesignWare和 Design Compiler的结合可以极大地改进综合的结果,并缩短设计周期。Synopsys在DesignW

    2024年02月14日
    浏览(37)
  • 基于vcs+uvm+xilinx ip的仿真平台的半自动化搭建

    系 统:ubuntu 18.04 仿真平台:vcs_2018.09-SP2 开发平台:vivado 2019.2 本文的主要目的是自动化搭建基于vcs+uvm+xilinx ip的仿真平台,节省平台搭建的时间与精力。 拿到一个项目,一般的平台搭建的步骤:去网上找一个makefile脚本(或者使用原项目脚本),修改相应的软件路径,添加

    2024年01月18日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包