SystemVerilog关键概念、构造及自动电路综合详解
1. 初始值与复位机制
SystemVerilog语法支持在变量声明时赋予初始值。但要明确,初始值和硬件复位机制是完全不同的概念。初始值定义了变量在t = 0时,即模拟器进入第一个周期之前的状态。而硬件复位则能在任何t ≥ 0的时刻,将电路重新引导至预定的起始状态,这需要在电路及其HDL模型中向双稳态元件分发专用信号。初始化的变量不能模拟硬件复位功能,也无法综合成硬件复位。
2. 时序条件检查
锁存器、触发器、RAM等时序子电路对数据有建立时间、保持时间等特定时序要求,对时钟输入有最小脉冲宽度要求。若这些时序条件被违反,其行为将变得不可预测。因此,进行时序检查对于有意义的仿真至关重要。
SystemVerilog提供了十二个用于各种时序和波形检查的专用构造,如$setup、$hold、$width和$period等。检测到违规时,它们会产生特定消息,但不会中断仿真。时序检查必须放在specify块中,示例代码如下:
// simulation model of a single-edge-triggered flip-flop with hardcoded timing
module setff
( input logic Clk_CI, logic Rst_RBI, logic Dd_DI,
output logic Qq_DO );
logic State_DP; // state variable
specify
$setup ( Dd_DI, posedge Clk_CI, 1.09ns ); // dat
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



