1.0 设计原则 1 A. 时序逻辑一定用非阻塞赋值”<=”,一旦看到敏感列表有posedge就用”<=”。 B. 组合逻辑一定用”=”,一旦敏感列表没有posedge就用”=”,一旦看到assign就用”=”。 C. 时序逻辑和组合逻辑分成不同的模块,即一个always模块里面只能出现非阻塞赋值”<=” 或者”=”。如果发现两种赋值并存,一个字”改”,心存侥幸可能会给后续工作带来更 多麻烦。 1.1 设计原则 2 A. 时序电路建模时,用非阻塞赋值。 B. 锁存器电路建模时,用非阻塞赋值。 C. 用always块建立组合逻辑模型时,用阻塞赋值。 D. 在同一个always块中建立时序和组合逻辑电路时,用非阻塞赋值。 E. 在同一个always块中不要既用非阻塞赋值又用阻塞赋值。 F. 不要在一个以上的always块中为同一个变量赋值。 G. 用$strobe系统任务来显示用非阻塞赋值的变量值 H. 在赋值时不要使用 #0 延迟 1.2 RHS赋值符号右边表达式或变量,LHS赋值符号左边表达式或变量 A. 非阻塞赋值是在赋值操作时刻开始时计算非阻塞赋值符的RHS表达式 B. 赋值操作结束时刻才更新LHS C. 在计算非阻塞赋值的RHS表达式和更新LHS期间,其他的verilog语句,包括其他的verilog 非阻塞赋值语句都能同时计算RHS表达式和更新LHS。 非阻塞赋值允许其他的verilog语句同时进行操作,所以要用绝对时间延迟。
testbench写法注意事项
最新推荐文章于 2024-03-26 19:18:30 发布