硬件设计与建模语言全解析
1. 离散事件语言
离散事件语言在硬件设计与建模中有着重要地位,这里主要介绍 VHDL、Verilog 和 SystemVerilog 等语言。
1.1 VHDL 语言特性
- 执行确定性 :VHDL 模型的执行结果不依赖于模型各部分的执行顺序。这得益于信号新值计算和实际赋值的分离。例如,在包含
a <= b; b <= a;
的模型中,信号a
和b
总是会交换值。若赋值立即执行,结果将依赖于赋值的执行顺序。 - δ 周期问题 :在当前时间
Tc
推进之前,可能存在任意多个 δ 周期,这可能导致无限循环。避免这种情况的一种方法是在触发器模型中不使用零延迟。 - 通信模型 :VHDL 的语义描述依赖于一个集中的未来事件队列,存储所有信号的未来值。该队列并非用于实现异步消息传递,而是由仿真内核以非分布式方式逐个访问。分布式 VHDL 仿真通常性能较差。所有建模组件可在其作用域内访问信号和变量的值,无需基于消息的通信,因此 VHDL 倾向于基于共享内存的通信实现,但也可在 VHDL 仿真器之上实现基于 FIFO 的消息传递。
- IEEE 1164 标准 :VHDL 本身没有预定义的信号值数量,除了对二值逻辑的基本支持。为简化 VHDL 模型的交换,IEEE 定义并标准化了 IEEE 1164 标准值集,