自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 基于UVM对AHB-SRAM模块验证(1.sequence输入激励)

sram_csn如下,haddr_sel为地址的最后两位,haddr_sel=sram_addr[1:0],hsize_sel表示传输数据的位宽,如上所述,当为10时,32位,四片全选,当为01时,16位,只选两片,当为0时,8位只选一片。----------------------------------------------------分割线------------------------------------------------------------------

2024-06-17 15:25:04 770 2

原创 基于调用C语言作为reference_model的UVM对全加器的验证

加法器的设计语言中,共有三个状态,INITIAL/WAIT/SEND,rst为1时是复位信号,开始置零和置X,状态转为INITIAL态,下一个状态为WAIT状态,此刻输入信号的ready置一,表示准备好接收输入,下一个状态为SEND,在输入信号valid的情况下,开始赋值输出为输入之和,并输出的valid为1,在输出的ready为1时,进入WAIT,表示开始接收下一轮的数据。首先DUT为加法器,但是舒服不仅是加数和被加数,还有ready和valid,输出也不止是和,还有valid和ready。

2024-05-31 10:35:29 827

原创 基于UVM平台对异步FIFO的验证(3.建立读写agent)

5. 接下来就是testcase,他负责启动virtual sequence,在这里我没有采用之前default sequence的自动启动方法啊,而是采用的手动启动sequence,启动的是virtual sequence。3.top层包含了所有用到的子文件,并启动test,在这里我们还通过sequence配置了读写时钟,分别通过读写agent中的m_sequencer 启动相应的时钟配置sequence,来对顶层文件进行配置。1.env的配置文件中也例化了两个agent的配置参数。

2024-05-26 17:22:14 860

原创 基于UVM平台对异步FIFO的验证(2.建立sequence)

在非满,且能写的情况下对interface中的wr_data进行赋值,赋的值为req.data,这个是在事务transaction中定义的,req相当于一个数据包。在build_phase 中创建、获取并配置相关资源:获取top层中的interface到m_env_cfg.m_agent_cfg.m_vif中,使用了default sequence方法调用sequence。env中需要例化agent,以及env的配置参数,其中env中的配置参数中也包含了agent的配置参数,在factory中注册。

2024-05-24 21:40:38 614 1

原创 基于UVM平台对异步FIFO的验证(1.基本的FIFO知识)

针对这种情况后续会在UVM验证平台解决。这是UVM的结构图,首先需要搭建top层,top层中要包含DUT(即rtl代码,testcase,env,scoreboard,write-master,read-monitor,driver,sequencer,以及事务transaction等等)。由于异步FIFO是工作在两个不同的时钟域中,如果读地址在某一时刻从0111->1000转变 ,恰好写时钟要在这时刻采样读地址,那么得到的值有可能是000-1111中的任一值,这个不确定的读地址值会导致空满状态判断错误。

2024-05-24 18:38:16 742 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除