- 博客(3)
- 收藏
- 关注
原创 rtl和实际器件关于复位的差异点
而实际器件则不同,实际带异步复位的D触发器电路图如下图所示,rst为电平有效而不是沿有效。因此,如果是器件,那么sram_ecc_error_m_level的值将在0时刻后更新为0,100ns时虽然复位释放了,但是没有始终,也没有其他驱动,sram_ecc_error_m_level的值将继续保持为0。实际仿真时发现:rtl的逻辑,只有等到时钟上升沿或者复位下降沿才会更新sram_ecc_error_m_level的值,因此,sram_ecc_error_m_level的值会一直保持1,并不会更新。
2023-03-15 21:50:14 103
原创 对于vcs中initreg选项的理解
编译阶段,vcs规定了只能加"+vcs+initreg+random"这一个选项,不支持"+vcs+initreg+0"和"+vcs+initreg+1"。在后仿过程中,我们通常会使用initreg选项,在0时刻对dut中没有复位端的reg/bit/int/logic/integer类型变量进行初始化,减少门级仿真时初始化的时间,避免门级仿真x态的传播,导致逻辑行为异常。如果我们在仿真阶段添加了选项"+vcs+initreg+1",即表示在0时刻将sram_ecc_error_m_level赋值为1。
2023-03-14 22:55:11 2559
原创 [SV]fork进程中用同一个bus配置多个线程中寄存器怎么避免dereference depth 0报错
在建用例时,可能存在多路用同一个bus读写寄存器的情形,这个时候可能会出现在某个时刻多个线程同时调用write_reg的情形,这个时候我们使用semaphore,可以很好的规避dereference depth 0报错,比如:sem.get(1);sem.put(1);endtask。
2023-03-14 20:00:13 121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人