离散事件型语言:SpecC、SystemC与VHDL的深入解析
在硬件设计与建模领域,离散事件型语言发挥着至关重要的作用。今天,我们将深入探讨几种典型的离散事件型语言,包括SpecC、SystemC和VHDL,了解它们的特点、应用场景以及相关技术细节。
1. SpecC语言概述
SpecC语言基于C和C++语法,其通信模型通常采用消息传递机制,并且它的通信模型还启发了SystemC 2.0的通信模型。选择基于C和C++语法的原因在于,如今越来越多的功能倾向于用软件实现,而C语言在这方面应用广泛。例如,嵌入式系统在实现MPEG 1/2/4等标准或GSM、UMTS、LTE等手机标准的解码器时,常使用C程序的“参考实现”。这些参考实现虽未针对速度进行优化,但能提供所需功能。
相比之下,基于特殊硬件描述语言(如VHDL或Verilog)的设计方法存在一些弊端。使用这类语言时,为了生成系统,必须重写已有的标准程序。而且,同时模拟硬件和软件需要连接硬件和软件模拟器,这通常会导致模拟效率降低,用户界面也不一致,设计师还需学习多种语言。
在使用软件语言对硬件进行建模之前,需要解决一些基本问题:
- 并发建模 :要在软件中模拟硬件中的并发情况。
- 模拟时间表示 :需要有一种方式来表示模拟时间。
- 多值逻辑支持 :必须支持前面提到的多值逻辑。
- 确定性模拟 :几乎所有有用的硬件电路都应能进行确定性模拟。
SpecC语言以及其他硬件描述语言都解决了这些问题。