标签:11 12 运算 signal 接口 vector 2020 加法 dut
第一个大概的 uvm 例子及相关坑
-
首先讲讲vhdl的加法运算的坑
使用vhdl写了一个两个数相加的module,signal定义为std_logic_vector类型,然后直接使用一个process根据valid的脉冲做加法运算。
自己也注意到了加法、乘法等溢出问题,但是编译总是报左右位宽不匹配。然后才发现vhdl不允许vector类型数据直接相加,需要先做类 型转换。 -
定义integer类型signal
-
使用CONV_INTEGER(signal name)转换
-
两个integer做自加运算后在转为vector 类型交付接口。 这里可以直接写为result <= CONV_STD_LOGIC_VECTOR(A+B,9).。讲integer类型的a+b结果转为9bit的std_logic_vector
-
然后开始搭第一个简单的testbench
-
首先定义接口interface,其就是monitor、scoreboard,dut间的交互接口,其中接口定义dut需要的输入输出signal及数据传递task(有时序)
-
接着写数据生成模块,使用$random 生成数据交付bfm,
-
写dut模块,简单数据加法运算
-
使用接口激励dut,并且将dut输出赋值接口中的某个信号
-
编写scoreboard,根据时序采集dut数据输出,使用接口中信号自己做相同运算。然后比对数据,使用打印信息显示log日志
标签:11,12,运算,signal,接口,vector,2020,加法,dut 来源: https://blog.csdn.net/Ruanyz_china/article/details/111046794
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。