摘要:研究了如何对一个ASIC 系统(以8051微控制器为例)应用VHDL进行功能仿真的方法,在ACTIVE-VHDL软件环境下应用该语言编制了8051微控制器的功能仿真程序并进行了测试。测试结果表明该程序运行是正确的。本文给出的方法在ASIC的高层次设计上迈出了重要的一步,在工程实践中具有广泛的应用价值。
0 引言
VHDL(VSHIC Hardware Descripuon Language的缩写),即超高速集成电路硬件描述语言,在国外已被广大设计者所接受,据称美国已有80%的设计者使用或即将使用VHDL来设计专用集成电路(ASIC)。在国内,VHDL设计环境的研究开发还在起步阶段,是急待开发的高科技领域之一。由于我国集成电路设计业起步较晚,设计方法仍处在较低层次,因此对VHDL的应用需求较少。
用VHDL语言进行电子设计的主要优势在于它支持自顶而下的设计方法,设计人员可以在设计的每个层次(行为级、RTL级、门级)上进行仿真和综合,这样就避免了在设计后期才发现原来设计中的逻辑性错误,从而减小了设计性风险,也缩短了设计周期,这对一个大型设计来说尤为重要。另外VHDL设计中不包含与工艺有关的信息,使得VHDL与最终的工艺实现无关,可以等到设计通过门级仿真后,再用相应的工具将其映射到不同的工艺如:MOS、CMOS、FPGA 或PLD等,这样在工艺更新时就无须修改原设计,只要改变其映射工具就行了。
高层次设计方法-HLD(High Level Design)是进人20世纪9O年代以来设计ASIC最新、最先进的设计方法,它为用户设计更大规模、更高水平、性能优良的ASIC产品提供了可靠的保证。高层次设计技术是面向系统的设计技术,设计者不再用逻辑图的形式来设计系统,而是采用VHDI 对系统进行语言级描述,其关键技术在于系统的仿真、综合、测试。在使用VHDL对系统进行描述时,就必须考虑到对系统的功能仿真。功能仿真的目的是对所描述的电路功能正确与否的验证,经过功能仿真找出设计的错误并进行修正,因此系统的功能仿真在整个ASIC设计过程中具有重要的作用。本文将研究如何对一个ASIC系统(以8051微控制器为例)应用VHDL进行功能仿真的方法。
1 仿真方法
本文采用下一时间仿真方法,在下一事件仿真中,假定所有的未来事件是在同一时刻发生的,这就意味着元件的延迟时间均等于0,该假定只对同步线路成立,对异步线路则不允许。由于各元件的延迟时间可能不同,所以它们的动作时间也不一样。为了考虑元件的延迟时间,关键在于能分辨出未来事件发生的先后顺序。
在下一事件仿真中,仿真时间的间隔实际上是节拍时间。在每一节拍的仿真过程中,所发生的事件和仿真时钟似乎并无联系。但如果把发生的事件和仿真时钟相互对应起来.就可以分辨出事件发生的先后顺序。在事件映射方式中,为了反映出元件的延迟时间和方便起见,把仿真时间量化为常数Δt的时间间隔,未来发生动作的时间为一离散的时间序列:
t1,t2 ,…… ,ti,ti+1,…… ,tn
其中:
ti+1=ti +Δt
如前所述,Δt可取作各元件延迟时间的最大公约数;tl为信号传播时间。于是便可将不同时间发生的事件与不同时刻的仿真时钟相对应,仿真则按时间序列一个时刻一个时刻地进行,而不是以一个节拍时间为时间间隔,并且也只选择那些状态值可能发生变化的元件,边计算边确定未来事件,但未来事件发生的时间是根据元件各自的延迟时间来排定的。在时刻tl,元件X 某输人发生变化,则其输出应在时刻
t = ti+Δt
才可能动作,其中Δt是元件X 的延迟时间,它应当是Δt的整数倍。如果也用后进先出栈来表示未来动作.将时间t动作的元件X 放在栈St中。显然,一个动作的元件其终点集合可能放在不同栈中.一个未来动作栈已远远不能满足需要。为了节省存储单元,不是在每个仿真时刻都设立一个动作栈,而是把动作栈循环使用。如果线路中元件的最大延迟为Δmax 个Δt ,则需要的后进先出栈的数目为:
n=Δmax+1
设想各先进后出栈分布在一个圆周上,并以指针P指向现在动作栈S 上,指针P顺次指向S1,S2,……,Si,Si+1,……,Sn,t1,t2,…… 。从新的动作栈Si中取出每个元件,并计算它们的终点元件,分别送到适当的未来动作栈中。从现在动作栈取完后,指针将指向下一栈,这样便完成了时间映射方式的仿真:以Δt为时间间隔,按上述所选取的仿真时间序列,从外部新输入信号开始进行追踪,边计算边确定各个时刻状态发生变化的动作元件(事件),直到规定时刻或动作栈全空为止,从而也就知道网络中各信号在每个时刻的状态值。
2 8051微控制器系统的功能仿真
MCS-51是Inter公司的新一代8位单片机系列,由于它具有很强的位寻址和运算功能,特别适合于控制应用的场合,因此又称为微控制器。使用MCS-51构成的各种控制系统,可大大简化硬件结构,降低成本,它已广泛应用于钢铁、采矿、石油、化工、电力、机械制造等工业的控制之中 。805l是MCS-51单片机系列的典型产品,故本文以它为模型研究了应用VHDL对ASIC系统进行功能仿真。作者在ACTIVE-VHDL软件环境下应用VHDL 编制了8051微控制器的功能仿真程序,该程序包含11个程序完成其功能仿真。限于篇幅,不能对11个程序的功能一一介绍,这里主要介绍其中几个重要的程序:
本文用测试平台tb.vhd做了一个简单的测试,完成一个目标选择器,其功能是:决定是加载输入信号A还是F到输出端Y;决定是否加载输入信号F(0)到输出端RAM0;决定是否加载输入信号F(1)到输出端RAM3;决定是否加载输入信号Q(3)到输出端Q3;决定是否加载输入信号Q(1)到输出端Q0。
I(7 down to 0)和Oebar为控制信号。A和F为输入信号,Y、Q、RAM3、RAM0为输出信号。
对信号赋值后,运行得到图1、图2两张波形图。
图1 输入信号波形图
图2 输出信号波形图
由图1、图2可以看出,在控制信号的作用下,由输入信号波形可以得到输出信号波形,从而可以证明程序运行正确。
3 结束语
本文采用下一时间仿真方法,应用VHDL对一个ASIC系统(以8051微控制器为例)进行了功能仿真的研究,编制了功能仿真程序。在控制信号的作用下,由输入信号波形可以得到输出信号波形,从而可以证明程序运行正确。本文的工作在ASIC的高层次设计上迈出了重要的一步,在工程实践中具有广泛的应用价值。
文章评论(0条评论)
登录后参与讨论