VCS与Verdi联仿,简要万能工程模板,持续更新中...

这篇具有很好参考价值的文章主要介绍了VCS与Verdi联仿,简要万能工程模板,持续更新中...。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

VCS与Verdi联仿,简要工程模板,持续更新中…

一、背景

  1. 学习verilog,故用vcs来编译verilog,用verdi来查看波形。
  2. 提供一套简要verilog工程模板去执行教程中代码,并分析波形。

二、编写工程模块

  1. 建立工程在temp文件夹下新建文件夹/rtl、/sim、/tb,如下:
➜  CSDN cd temp
➜  temp ls
rtl  sim  tb
  1. 在/rtl文件夹下新建两个.v文件: template.v和timescale.v ,为模板rtl代码。
➜  rtl ls
template.v  timescale.v
  1. 在/tb文件夹下新建.sv文件:tb_template.sv,为test bench文件。
➜  tb ls
tb_template.sv
  1. 在/sim文件夹下新建Makefile、runtemp和file.f文件,来进行vcs编译以及verdi看波形。
➜  sim ls
Makefile  file.f  runtemp

其中Makefile中的脚本为:

all:com verdi

com:
	vcs -R -full64 +v2k -fsdb +define+FSDB -sverilog -f file.f -l run.log -cpp g++-4.8 -cc gcc-4.8 -LDFLAGS -Wl,--no-as-needed
sim:
	./simv -l sim.log
run_dve:
	dve -vpd vcdplus.vpd &
clean:
	rm -rf *.vpd csrc *.log *.key *.vdb sim* DVEfiles *.conf *.rc verdilog verdiLog
verdi:
	verdi

其中Makefile为makefile脚本写的自动编译工具。runtemp为写的简易自动编译工具,主要给没有安装makefile或者gcc-4.8的环境,runtemp的内容是:

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

4.1 使用Makefile脚本来进行自动编译。
方法:在文件夹/sim下运行命令 make就会编译完成,并且生成波形文件,再用verdi查看即可。由vcs编译和verdi打开产生的文件可以用 make clean清除掉。
4.2 使用简易编译工具runtemp进行编译的命令为:source runtemp

至此,简要工程模板配置完成。

三、使用工程模板

模板使用方法简要框图:

VCS与Verdi联仿,简要万能工程模板,持续更新中...,verilog

设计一个如下图的四选一选择器,用模板去编译和仿真看波形来验证模板是否正确。
VCS与Verdi联仿,简要万能工程模板,持续更新中...,verilog

  1. 选择器的rtl代码,mux4to1 选择器的代码复制到模板的/rtl/template.v文件中:
module mux4to1(
        input [1:0]     sel ,
        input [1:0]     p0 ,
        input [1:0]     p1 ,
        input [1:0]     p2 ,
        input [1:0]     p3 ,
        output [1:0]    sout);

   reg [1:0]     sout_t ;

   always @(*) begin
      if (sel == 2'b00)
        sout_t = p0 ;
      else if (sel == 2'b01)
        sout_t = p1 ;
      else if (sel == 2'b10)
        sout_t = p2 ;
      else
        sout_t = p3 ;
   end
   assign sout = sout_t ;
   
endmodule
  1. 四选一选择器的testbench代码,把其复制到模板的/tb/tb_template.sv文件中:
`timescale 1ns/1ps
module test ;
   reg [1:0]    sel ;
   wire [1:0]   sout ;
   initial begin
      sel       = 0 ;
      #20 sel   = 3 ;
      #20 sel   = 1 ;
      #20 sel   = 0 ;
      #20 sel   = 2 ;
   end
   mux4to1 u_mux4to1 (
        .sel    (sel),
        .p0     (2'b00),        //path0 are assigned to 0
        .p1     (2'b01),        //path1 are assigned to 1
        .p2     (2'b10),        //path2 are assigned to 2
        .p3     (2'b11),        //path3 are assigned to 3
        .sout   (sout));
        
   //finish the simulation
   always begin
         #100;
         if ($time >= 1000) $finish ;
   end

`ifdef FSDB
initial begin
	$fsdbDumpfile("tb_template.fsdb");
	$fsdbDumpvars;
end
`endif
endmodule 

其中,每个自己的tb一定要保留如下片段,来保存仿真产生的信号波形,然后才能用verdi打开。

`ifdef FSDB
initial begin
	$fsdbDumpfile("tb_template.fsdb");
	$fsdbDumpvars;
end
`endif

接下来编译修改后的模板工程,打开文件夹/sim,在sim文件夹下输入make,在sim文件下产生这些文件:
VCS与Verdi联仿,简要万能工程模板,持续更新中...,verilog
其中,tb_template.fsdb文件就是verdi能打开的波形文件了。
然后通过下图中的步骤用verdi打开代码文件。
VCS与Verdi联仿,简要万能工程模板,持续更新中...,verilog

再按照如下步骤打开波形文件:
VCS与Verdi联仿,简要万能工程模板,持续更新中...,verilog
最后按如下步骤查看波形:
VCS与Verdi联仿,简要万能工程模板,持续更新中...,verilog

四、仿真结果

如下结果显示四选一选择器正确,故也得出模板工程正确。
VCS与Verdi联仿,简要万能工程模板,持续更新中...,verilog

五、工程下载地址

模板工程下载地址文章来源地址https://www.toymoban.com/news/detail-662041.html

到了这里,关于VCS与Verdi联仿,简要万能工程模板,持续更新中...的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

    前言 如果没有安装VCS和Verdi,可以先移步到VCS Veidi 下载与安装教程 一站式虚拟机套餐,感谢这位博主大大的分享,极大的减轻了我工具安装带来的烦恼。 VCSVerdi介绍 博主在上一篇博文《ASIC设计流程及对应EDA工具简介》中介绍了ASIC设计流程中常用的EDA工具。大家使用过的V

    2024年02月15日
    浏览(47)
  • 新手教程03:通过makefile脚本使用VCS+Verdi进行联合仿真

    目录 前言 makefile脚本的方式使用VCS 1. 自动生成 .fsdb 文件 2. 生成 filelist.f 文件 3. 书写 makefile 脚本 4. termial 中运行仿真 5. verdi 的快捷操作 总结 零基础初学数字IC,学会什么写什么,与大家一起进步。 本文主要介绍如何通过makefile脚本的方式用VCS+Verdi进行联合仿真。 因为要使

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

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

    2023年04月08日
    浏览(36)
  • prompt工程(持续更新ing...)

    诸神缄默不语-个人CSDN博文目录 我准备想办法把这些东西整合到我的ScholarEase项目里。到时候按照分类、按照prompt生成方法列一堆选项,用户自己生成prompt后可以选择在ScholarEase里面聊天,也可以复制到别的地方(比如ChatGPT网页版之类的) 其实以现在GPT-4的能力来说,直接就

    2024年02月12日
    浏览(23)
  • [蓝桥杯Python]算法练习、算法基础、算法训练、算法模板(持续更新)

    [蓝桥杯Python]算法练习、算法基础、算法训练、算法模板( 持续更新..... ) 目录 一、算法基础 1.Huffuman树 2.Sine之舞 3.数列排序 4.数列排序 5.特殊回文数 6.回文数 7.特殊的数字 8.杨辉三角形 9.高精度加法 10.Fibonacci数列 11.报时助手 12.回形取数 13.矩阵乘法 二、算法提高 1.印章

    2023年04月08日
    浏览(34)
  • 学习经验分享【28】目标检测硕士大论文写作模板初稿【持续更新】

    前言 结合本人读研的经验,后续会持续分享目标检测类硕士大论文的写作技巧以及写作方法 ,形成写作模板,跟考研英语要背写作套路模板一样, 只要按照写作模板进行更新内容完善研究内容的话,就能达到至少良好的盲省成绩 , 让千千万的硕士生顺利毕业变得不再那么

    2024年02月02日
    浏览(33)
  • 嵌入式工程师常见面试题(持续更新版本)

    前言: 鄙人于学堂求学十余载,终是要踏足江湖求一寸安身处!以前都忙着学习新东西以及做项目,现如今也需要面对找工作的压力。此篇博客是作者准备的嵌入式工程师常见的面试题目汇总, 其答案包含网络搜索和作者自己感悟总结的 ,可能存在问题, 如有大的纰漏希望

    2024年02月08日
    浏览(34)
  • Office技巧(持续更新)(Word、Excel、PPT、PowerPoint、连续引用、标题、模板、论文)

    选住 一级标题 ,之后进行“定义新的多级列表”    正常插入题注后就可以了。如果一级标题是 “汉字序号”,那么需要对题注进行修改: 从原来的 图 { STYLEREF 1 s }-{ SEQ 图 * ARABIC s 1 } 修改为 图 { Quote “二零二五年一月{ STYLEREF 1 s }日” @”d” }-{ SEQ 图 * ARABIC s 1 } 注

    2024年02月08日
    浏览(47)
  • 云计算工程师系列 Day03 第三章 权限管理(超详细 持续更新中....)

    简介:本章讲述了Linux系统CentOS7中关于权限的相关概念。以及用户和组的管理方法。 目标:熟悉并掌握权限的相关概念,以及用户和组的管理方法。 (1)概述 赋于某个用户或组能够以何种方式访问某个文件(图片文件,视频文件,普通文件) (2)权限对象 01.属主(u):一般是

    2024年01月21日
    浏览(50)
  • 云计算工程师系列 Day04 第四章 进程管理(超详细 持续更新中....)

    简介:Linux系统Centos7中程序的相关概念。进程管理工具pstop的用法。kill控制进程。job控制作业的相关方式。 目标:掌握程序概念 掌握进程管理工具的使用/控制进程的方法 (1)灵魂三问 01.我是谁? 什么是进程 02.我从哪里来?进程从哪来 03.我要上哪去?进程上哪去 (2)进

    2024年01月25日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包