VHDL电路建模的关键技术与实践
1. VHDL电路模型类型区分
在VHDL中,没有特定的语言结构可以直接区分顺序模型和组合模型,也没有保留字来表明一段代码是用于建模同步还是异步电路,或者有限状态机是Mealy、Moore还是Medvedev类型。区分它们的关键在于源代码的详细构造。
如果一个进程语句用于建模组合逻辑,建议使用 (all) 符号(如清单4.2中介绍的),并确保为所有可能的输入值组合为每个输出分配一个值。常见的错误是在某些情况下,没有为信号或进程语句中声明的变量分配“不关心”值。因为不分配任何值意味着保持对象的当前值,这就隐含了记忆功能。
为了使代码更易于理解,并便于检查综合得到的双稳态元件的存在、性质和数量是否符合代码编写者的意图,建议在源代码中明确说明进程语句是建模记忆行为还是无记忆行为。可以通过添加注释或为可选的进程标签选择有意义的名称来实现。
2. 安全编写顺序电路代码
编写进程语句时,灵敏度列表、等待语句和唤醒条件必须保持一致,这可能会比较棘手。对于具有记忆功能且需要表现出边沿触发行为的(子)电路,如寄存器或计数器,清单4.8提供了一个可靠的模板。灵敏度列表中必须包含时钟信号,还可以选择一个信号来实现异步复位功能,不允许其他信号重新激活该进程。
process (Clk_C, Rst_R) <--------- sensitivity list, no more signals accepted!
begin
<--------- no other statement allowed here!
超级会员免费看
订阅专栏 解锁全文
41

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



