什么是钟控线程?如何使用?
时间:2009-12-19 00:37来源:未知 作者:admin 点击:次
1.引言 片上系统(System on Chip)时代的到来给电子系统设计的各个阶段带来了新的挑战,人们迫切需要一种单一的语言完成软硬件的协同设计和仿真验证,同时这种语言能够用于描述各种不
1.引言
片上系统(System on Chip)时代的到来给电子系统设计的各个阶段带来了新的挑战,人们迫切需要一种单一的语言完成软硬件的协同设计和仿真验证,同时这种语言能够用于描述各种不同的抽象级别(如系统级、寄存器传输级等),并且仿真速度快,传统的硬件描述语言如VHDL和Verilog HDL都不能满足这些要求。
SystemC[1]正是在这个背景下产生的,它一出现就受到了人们的欢迎。SystemC从本质上讲就是在C++中加上硬件类库和仿真核,从而使传统的C++能够描述硬件,任何ANSI标准的C++编译器都可以编译SystemC的程序。在系统级可以用C/C++来描述系统的功能和算法,在寄存器传输级可以用SystemC来进行描述。现在已经有商用的SystemC综合工具(如Cocentric SystemC Compiler)可以将SystemC的描述综合为硬件描述语言或者直接综合到门级电路,而且也有成功设计案例[2]。
与硬件描述语言类似,SystemC中也定义了模块(Module)、进程(Process)、信号等基本元素。模块之间通过端口进行通信,端口之间通过信号连接。一个完整的系统由多个模块构成,一个模块内有一个或者若干个对时钟边沿或者信号变化敏感的进程来描述它的行为。
SystemC中的线程(Process)有3类(见下文),其中一类线程称为钟控线程 (Clocked Thread Process),虽然它是一种行为级描述,却是为了综合而设计的。该类线程最适合描述一种状态机,称作隐式有限状态机(Implicit Finite State Machine)。用它来描述的有限状态机具有仿真速度高于相应的寄存器传输级描述,且可以使用行为级综合工具得到很好的综合效果。本文着重描述了该类线程的特点,提出了用其描述有限状态机的方法,并给出了一个总线控制器设计实例。
(责任编辑:admin) |
------分隔线----------------------------