设计一般以一个规范开始, 这个规范能够约定最终产品应该做什么, 并从根本上推动整个开发周期。在开发的早期阶段, 第一个任务是使用规范来验证正在开发的设计是否正确无误的。...然后当设计的所有部分组装成一个完整的系统时, 第二个任务使用规范来确定系统是否也按照预期的方式运行。
这两个任务被称为设计验证和验证设计。有时, 这两个术语可以互换使用。...许多当前的设计, 例如拥有1024个端口或高画质影像处理器的互联网路由器, 需要大量的验证序列, 即使在最快的 PC 上也需要很多年的时间来模拟。...当测试嵌入式软件, 如固件、设备驱动程序、操作系统和诊断程序等嵌入式软件的交互作用时, 它们就失败了。对于这个测试, 嵌入式软件开发人员需要依靠一个精确的硬件模型来验证他们的代码。...在设计周期的早期, 仿真器和 SystemVerilog 用于在组装完整的 SoC 设计之前验证IP块和子系统。在设计周期的后期, 仿真器被用来验证整个系统, 并执行嵌入式软件验证。