别过分依赖仿真器
我们很容易说“我只要快速设计,然后在仿真中找到BUG。”这是一个坏主意,从一开始就注定要失败。模拟器因隐藏设计的古怪细节而臭名昭著。例子包括:
时钟同步
同步触发器不断与亚稳态和故障输入作斗争。它们的行为甚至不能接近你的一般模拟器;你只看到时钟边缘有一个清晰的过渡。从最初阶段开始,跨时钟域的设计必须始终正确。
异步逻辑
类似的方式,异步逻辑通常模拟得很差。当然,快速路径和竞争条件可能是隐藏的。一些环境将确定(和可选地纠正)保持时间违反,但这不是正确异步逻辑的万能药。
健壮设计的唯一解决方案是从一开始就正确地进行。你的逻辑必须是:
正确的设计
每一个门,每一行VHDL或Verilog,必须完全理解。不要指望某组模拟会发现你的bug;你可能会忽略测试你设计的一部分,如果它设计得很草率,它就会失败。
正确的检验
有纪律的布局也会使你的设计更加健壮、可理解和可维护。不应该需要通过大量难看的代码或杂乱的逻辑门来理解函数的操作。有组织的门、注释代码和完整的附带文档将为可靠的设计提供基础。
|