基于UVM+VCS基本平台,运行《UVM实战》中的第一个UVM代码并输出结果

这篇具有很好参考价值的文章主要介绍了基于UVM+VCS基本平台,运行《UVM实战》中的第一个UVM代码并输出结果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(1)下载puvm.tar.gz和uvm-1.1d.tar.gz压缩包 ,使用分别使用tar zxvf puvm.tar.gz和 tar zxvf uvm-1.1d.tar.gz解压到当前目录下
vcs编译uvm库,verilog,FPGA,linux,fpga开发

(2)找到puvm->src->ch2->dut->dut.sv文件,将该文件拷贝到puvm->src->ch2->section2.2->2.2.1目录下
(3)打开puvm->src->ch2->section2.2->2.2.1->Makefile.vcs文件并按照下面的方法进行编辑,编辑完后,在终端敲入:make -f Makefile.vcs

UVM_HOME =/home/ICer/ic_prjs/uvm_prj/example_and_uvm_source_code/uvm-1.1d
include  /home/ICer/ic_prjs/uvm_prj/example_and_uvm_source_code/uvm-1.1d/examples/Makefile.vcs

all: clean comp run
 
comp:
	$(VCS) +incdir+. \
	dut.sv	top_tb.sv my_driver.sv
 
run:
	$(SIMV)
	$(CHECK)
 
TEST = /usr/bin/test
N_ERRS = 0
N_FATALS = 0
# -fsdb_old    -ntb_opts 
VCS =	vcs -full64 -sverilog -ntb_opts -timescale=1ns/1ns \
	+acc +vpi \
	+define+UVM_OBJECT_MUST_HAVE_CONSTRUCTOR \
	+incdir+$(UVM_HOME)/src $(UVM_HOME)/src/uvm.sv \
	$(UVM_HOME)/src/dpi/uvm_dpi.cc -CFLAGS -DVCS
 
SIMV = 	./simv +UVM_TESTNAME=dut +UVM_VERBOSITY=$(UVM_VERBOSITY) -l vcs.log
 
URG  = urg -format text -dir simv.vdb
 
CHECK = \
	@$(TEST) \( `grep -c 'UVM_ERROR :    $(N_ERRS)' vcs.log` -eq 1 \) -a \
		 \( `grep -c 'UVM_FATAL :    $(N_FATALS)' vcs.log` -eq 1 \)
 
clean:
	rm -rf *~ core csrc simv* vc_hdrs.h ucli.key urg* *.log 

(3.a)设置UVM_HOME的路径:
UVM_HOME =/home/ICer/ic_prjs/uvm_prj/example_and_uvm_source_code/uvm-1.1d
(3.2)将uvm-1.1d目录下的Makefile.vcs添加进来,这些命令用于编译uvm库
include  /home/ICer/ic_prjs/uvm_prj/example_and_uvm_source_code/uvm-1.1d/examples/Makefile.vcs
(4)最后在终端敲入:./simv
(5)最终显示结果如下:
vcs编译uvm库,verilog,FPGA,linux,fpga开发文章来源地址https://www.toymoban.com/news/detail-707984.html

到了这里,关于基于UVM+VCS基本平台,运行《UVM实战》中的第一个UVM代码并输出结果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 使用VCS的ralgen命令产生UVM的寄存器模型的操作步骤

    1.根据reg.csv(寄存器的SPEC)文件生成一个reg.ralf文件,这个文件有特定的脚本生成(我目前不会),当然也可以自己手写(如果寄存器比较小)   寄存器的SPEC reg.ralf文件  2.\\\".ralf\\\"文件的格式  3.有reg.ralf文件之后,编写一个生成寄存器模型的Makefile文件 4.直接在terminal上 make genreg 便可产

    2024年02月03日
    浏览(44)
  • 【UVM】-- UVM测试平台搭建与调试

    《UVM》实战中这个DUT的功能比较简单: 在clk的上升沿,且rst不为低电平的时候,将输入的信号直接发送出去,并且输出输入的使能信号; 在clk上升沿,如果rst为低电平,复位输出信号和使能信号 clk 时钟输入信号 rst_n 复位输入信号  rxd 8bit输入数据信号 rx_dv 输入使能信号

    2024年02月15日
    浏览(37)
  • UVM学习——搭建简单的UVM平台

      本专栏的博客均与 UVM 的学习相关,学习参考:  【1】UVM Tutorial  【2】张强著,UVM实战 (卷 Ⅰ)  【3】Download UVM (Standard Universal Verification Methodology) 本专栏的学习基本依照 资料【2】的主线,以【1】【3】资料作为参考。特别是【3】是官方的UVM手册,具有很高的可参考性

    2024年02月16日
    浏览(37)
  • (一)UVM验证平台搭建1

     UVM实战中实例源码下载:https://www.hzcourse.com/web/refbook/detail/5651/229 终于配置跑通 UVM实战中的实例了,下面是基于linux+vcs+verdi的环境配置 1、将下载的源码文件夹解压后共享到虚拟机中 2、需要重新配置setup.vcs文件 原始文件: 说明: 这个配置文件是基于csh的,安装的虚拟机不

    2024年02月12日
    浏览(43)
  • UVM实战--加法器

    这里以UVM实战(张强)第二章为基础修改原有的DUT,将DUT修改为加法器,从而修改代码以使得更加深入的了解各个组件的类型和使用。 和第二章的平台的主要区别点 (1)有两个transaction,一个为transaction_i,一个为transaction_o,由于DUT的输入输出值并不相同,输入为a,b,cin,输

    2024年02月06日
    浏览(44)
  • UVM实战笔记(七)

    7.1 寄存器模型简介 7.1.1 带寄存器配置总线的DUT 本章节使用的DUT带寄存器配置,代码如下: 该DUT只有一个1bit的寄存器invert,为其分配地址16’h9。如果其值为1,那么DUT在输出时会将输入的数据取反;如果为0,则将输入数据直接发送出去。inver可以通过总线bus_*进行配置。bus

    2024年02月03日
    浏览(41)
  • 从零开始,搭建一个简单的UVM验证平台(四)

    UVM前置基础: 1.UVM基础-factory机制、phase机制 2.UVM基础-组件(driver、monitor、agent...) 3.UVM基础-TLM通信机制(一) 4.UVM基础-TLM通信机制(二) ...还在更新 从零搭建一个UVM验证平台: 从零开始,搭建一个简单的UVM验证平台(一) 从零开始,搭建一个简单的UVM验证平台(二) 从

    2023年04月14日
    浏览(81)
  • UVM实战(张强)--- UART实例代码详细注解

    各个模块的基础介绍: (1)DUT:待测平台,这里为uart串口功能 (2)sequence:创建一个my_straction的实例m_trans,将其随机化,最终将其送给sequencer (3)sequencer:uvm_sequencer就如同一个管道,从这个管道中产生连续的激励事务,并最终通过TLM端口送至driver一侧 (4)driver:该类会从

    2024年01月16日
    浏览(33)
  • 1-搭建一个最简单的验证平台UVM,已用Questasim实现波形!

    1,背景知识 验证是用于找出DUT的bug,这个过程通常是把DUT放入一个验证平台中来实现的。 一个验证平台要实现如下基本功能: (1)验证平台要模拟DUT的各种真实使用情况,这意味着要给DUT施加各种激励,有正常的激励,也有异常的激励;有这种模式的激励,也有那种模式

    2024年02月14日
    浏览(41)
  • VCS中的DPI和PLI

    在VCS中,DPI(Direct Programming Interface)是一种机制,用于在Verilog和C/C++代码之间进行互操作。DPI允许从Verilog代码中直接调用C/C++函数,并允许C/C++代码直接访问Verilog模块的内部信号和状态。 DPI的主要用途是为仿真器提供更高级别的功能和控制,并将仿真器与其他软件工具进行

    2024年02月10日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包