论文部分内容阅读
SoC(Systems-on-a-Chip)系统目前应用得越来越多。一个SoC系统可以包含不同的功能模块,例如数字电路、模拟电路、硬件专用电路、存储器、微处理器、数字信号处理器DSP(Digital Signal Processor)以及软件部分。传统的嵌入式设计方法采用硬件先行的方法,在对时间和费用要求苛刻的今天,是不可行的。应用软硬件协同设计技术可提高开发效率。通常,软硬件协同设计的设计流程的第一步是采用一种系统级描述语言描述系统,并进行模拟仿真和系统功能验证。SystemC是建立在C++基础上的一种系统级描述语言,被许多设计者用来对SoC体系结构进行建模以进行体系性能的分析及软硬件协同设计。IEEE已经批准了SystemC为电子设计语言标准(IEEE1666)。 作为一种系统级描述语言,SystemC具有一些新的和有趣的编程特性,例如延迟的事件通告、事件通告取消、事件通告覆盖、通道更新以及delta-cycle。这些新的编程特性使得以前使用其它编程语言的工程师学习SystemC时,会产生一些迷惑。同时,开发SystemC的仿真器、综合器以及验证器,都需要对SystemC语言的语义有一个严格、精确和无歧义的理解。用自然语言所书写的帮助文档往往含有微妙的歧义。本文采用结构化操作语义的方法给出了SystemC的一个核心子集的操作语义。同时,在此操作语义的模型上,定义了程序的互模拟关系,用来判断两个程序是否等价。在此操作语义的基础上,采用Prolog语言实现了该仿真器的原型。仿真器原型可以用来验证操作语义的正确性。最后,论文提出了一系列SystemC语言所满足的代数法则。这些代数法则可在操作语义模型中通过互模拟进行验证。据作者目前所阅读到的文章和资料来看,目前对SystemC中那些新的和有趣的编程特性的代数法则的讨论研究很少。 形式化语义和代数法则在实践应用是很有用的。操作语义模型是综合实现和验证的基础。代数法则可以直接应用于工程中的优化设计,同时保证优化的正确性。代数法则还可以用于程序转换。