目录
本文主要以路由器(Router)为例分享SV的验证平台,建议观看代码的读者有一定的SV基础。分享的文件是我搭建Router的SV验证平台,但是由于RTL设计的代码在服务器上,所以主要是分享一下验证平台的结构和搭建的代码,供大家学习使用,如要转载请标明出处!
1、RTL模块框架
左边是输入:16位的din(数据输入)、16位的frame_n(数据帧有效,低电平有效)、16位的valid_n(有效信号,低电平有效)、reset_n(低电平复位)和clock(时钟)
右边是输出:16位的dout(数据输出)、16位的dout(数据输出)、16位的frameo_n(数据帧输出有效)、16位的valido_n(输出有效信号,低电平有效)
主要的模块功能:16个输入的通道,选一个通道作为输入通道,同样的,16个输出的通道,也是选一个通道作为输出通道,数据是一bit一bit地传输。例如,选择din[7]为数据的输入通道,所以frame_n[7]和valid_n[7]就是控制信号;选择dout[3]为数据的输出通道,所以frameo_n[3]和valido_n[3]就是控制信号。因此数据会从7号输入通道输入,然后从3号通道输出,路由器的功能就是这么简单。
主要的时序:1、先发4bit的地址,因为最大只有16,所以4bit的地址是刚好可以表示0-15,frame_n要拉低;2、然后停顿5个周期,期间din拉高,valid_n拉高;3、传输数据,期间valid_n拉低;4、结束传输,valid_n在传完最后一个bit的同时拉高,而frame_n在传输最后一个bit的前一个bit拉高,所以frame_n在整个传输阶段都是拉低的。
2、SV验证平台
以上是整个验证平台的框架,具体的代码可以在下面链接获得。
链接:https://pan.baidu.com/s/1cwY68PyQ4vHAtdtjqCJTVA
提取码:jyor
微信公众号
建立了一个微信公众号“Andy的ICer之路”,此公众号主要分享数字IC相关的学习经验,文章主要在公众号上发,csdn会尽量同步更新,有兴趣的朋友可以关注一下!