2008年10月21日星期二

Verilog & Testbench学习笔记1

1. 验证自动化

自动比较的原理就是用计算机代替人去比较实际响应和期望相应是否相同,然后把相关信息显示出来,从而减少了人工的干预,提高了验证效率。

实现方法:利用时钟同步验证,or经过一定数据包再异步比较验证。

2. 增强testbench的重用性,避免因为重新开发而带来的风险和额外的开发时间。

3. reg类型定义了一种暂存数据的变量,但其物理模型并不一定是一个寄存器,也可能仅是一根连线:只有在时序逻辑中它对应的才是寄存器;而在组合逻辑中,它则表示一根连线。

在实际应用中,凡是在initial(initial是行为级语法,不可综合)、always块中的被赋值的信号都必须定义成reg。

4. wire与reg的差异? 什么时候该用wire?什么时候又该用reg?

    若参数出现在begin...end之内,则须使用reg;
    使用wire,须搭配assign;
    若wire和reg用错,compiler都会提醒,所以不必太担心。

     需要注意:在Verilog中使用reg,并不表示综合后就是暂存器(register)。若在组合电路中使用reg,综合后仍只是net,唯有在时序电路中使用reg,合成后才会以flip-flop形式表示成register。

5. Verilog中出现小数,Modelsim编译时不会报错or警告,虽然小数是不可综合的。而且利用小数进行比较的时候,如cnt <>

没有评论: