测试平台中的变量大多数实例化为bit
而不是reg
。但是bit
只是2个状态变量(0和1),reg
是4个状态变量(0,1,x和z)。为什么人们使用bit
作为测试平台变量?我接管了一个旧项目,所有测试平台变量都是bit
。所以当检查员执行像
if (data_rtl === data_expected) // reg[63:0] data_rtl, bit[63:0] data_expected
我无法在data_expected端执行X检查。当然,使用bit
是常见的,为什么人们会这样做? systemverilog中bit
优于reg
的优势是什么?
答案 0 :(得分:3)
通常,在测试平台的激励生成和预测组件中不需要4状态类型。双状态仿真具有较少的内存开销,可有效地使数据缓存的大小增加一倍。您基本上只需要在测试平台和DUT之间的接口中的适当时间检查X&#s。 X在设计中的产生和传播本身就是一个广泛的话题。对于设计不同领域的X而言,大多数模拟在过于乐观或过于悲观时非常不准确。有时,在这种情况下使用静态分析(定时或正式)工具会更好。
答案 1 :(得分:1)
在某种程度上,你回答了自己的问题。 bit是一个双态变量。对于许多验证测试平台应用程序,不需要x和z值。额外的两个状态的计算/内存开销,以及关于变量被设置为z或x的可能性的额外关注是不需要的,因此不被使用。
答案 2 :(得分:0)
bit&有一些关键的区别REG
reg
是一个4状态变量(1或0或X或Z,默认为X),但bit
是2状态变量(0或1,默认为0)现在对我们有什么影响。
4个状态变量是硬件所必需的,与硬件一样,取决于电压电平和电压。线缆的驱动器,线路可以具有逻辑值1或0或X或Z.因此,对于硬件观点,应该使用{em>
但是从刺激的角度来看,我们通常不需要X或Z状态,因为你永远不会驾驶带有未知(X)或没有任何驱动器(Z)的电线。因此,在这种情况下,可以使用位,因为reg
仅包含2个状态。
希望你能有所作为