MCS51单片机反向解剖以及正向设计的研究 第17页
试程序输入仿真器;然后利用仿真器对HDL源代码和测试程序进行编译,
·
编译
正确后将元件实体调入编译器中运行;选择加入需要观察的信号,并且观察输出
的波形,确认设计是正确无误的。如果输出的波形不完全满足设计要求,就修改
程序并再次仿真,直到结果符合要求。
4.4.2RTL级的仿真测试程序
测试程序负责输入测试激励或者说测试向量,仿真结果就是设计模块对测试
激励的反应。设计中采用Mentor公司的EDA软件Modelsim作为RTL级仿
真的平台【351,启动Modelsim后建立Proieet、Souree,然后输入、编译VHDL
设计的代码。Modelsim软件不但可以进行程序的编译,还提供了波形Wave、
信号Signals、结构Strueture、数据流Dataflow、进程Proeess等多种窗口,
简化了仿真工作。
通过建立仿真测试平台,可以对设计输入一系列的测试激励,检查输出波形
并验证设计的正确性。在仿真测试文件中描述测试激励通常有两种方法:直接描
述和测试矢量调入。直接描述的方法一般用于带延时的赋值语句,例如时钟信号
的描述:
CONSTANTelkeeeyele:TIME:=80NS;
PROCESS
BEGIN
test--elk<=’1’;
WAITFORelk--eylee/2;
tes仁elk<==‘0’;
WAITFORelk--eylee/2;
ENDPROCESS;
对于测试矢量调入则是指从测试矢量库中读取测试激励,例如数据、地址以及一
些可配置信息等信号的描述:
FILEinveetor:TEXT15IN“filename.in,,;
READ(11,datal);
READ(11,dataZ);第四章MCS-sl单片机的正向设计
ALU的数据源,其中tmpl相当于累加器ACC中的数据。alu_result是运算
结果,三条指令结果分别对应00000110、00000100、00001000。e又out、
。v--out以及a几。ut是ALU输出的运算结果,分别影响PSW的进位标志、溢
出标志和辅助进位标志等。
图4一10ALU运算的部分输出波形
4.4.4RTL级程序综合、后仿真
1.RTL级程序综合
通过RTL级仿真验证之后,HDL源代码可以采用EDA软件中的综合工具
做综合,从而得到门级电路网表,也可以得到相应的电路原理图。虽然硬件描述
语言描述方法灵括多样,但是有些语法格式综合工具却无法进行综合,例如,直
接对信号进行赋值的一种方式:
Arehiteeturestruoftry15
Signalb_reg:std_logie一eetor(7downtoo):=“00000000,,:
SignalP_reg:bvee:=“00000000,,:
Begin
还有些语句行为仿真时起作用,但是进行综合时却被忽略,无法得到所希望的功
能,例如,加上描述门电路延时的语句:
b<=aAFI,ER10ns;
综合后下载到FPGA或者CPLD时【36],一旦选用的器件确定,那么经过每个
门的延时时间就是确定的,而不是按照延时语句中所描述的值。
除了不能综合或者综合后被忽略的语句之外,还有些语句本身是可以被综合
的,但是其描述方式的不完善可能导致综合结果的错误。例如描述一个带有复位
第四章MCS一51单片机的正向设计
信号的二选一多路选择器:
PROCESS(reset,a,datal,dataZ)
BEGIN
IF(reset=’1’)THEN
q<=’o’;
ELSIF(a=’1’)
q<=datal:
ELSE
q<=dataZ;
ENDIF;
ENDPROCESS;
进行描述时要注意到将所有IF条件语句中出现的控制信号加入到敏感量列
表中,如果控制信号没有加入到列表中,综合后下载到CPLD或者FPGA以后,
其变化将无法使输出信号相应变化,因此不能保证得到正确的结果。另外,使用
lF语句描述模块功能时除了确保各个IF条件之间互相排斥、没有重叠之外,还
需要穷尽所有可能的条件。
HDL描述方式对综合后模块性能的实现影响也很大。例如一个组合逻辑电
路的描述,如果描述的方式不恰当,可能会造成某个门电路的输入端口或者输出
端口太多,驱动能力达不到要求,也有可能会造成某条组合逻辑电路的路径长度
过长。组合逻辑电路路径长度是指从组合逻辑的输入到组合逻辑的输出所经过的
路径的长度。路径如果越长,输入与输出之间所耗费的时间将越长。尤其是对于
要求运算速度较快芯片的设计{37},路径长度的控制极为重要。必须保证通过最
长路径的时间在许可范围之内,运算速度才可以达到芯片最高频率的要求。在同
步系统中同步时钟控制组合逻辑的输入、输出,要保证数据处理的正确性,要求
组合逻辑的数据处理时间必须小于同步时钟的周期。解决问题的方法:在原来路
径中插入同步时钟,从而减小了组合逻辑电路的长度,避免了整个系统处理速度
的减慢和性能的下降。
对于时序逻辑电路的描述,敏感量列表中包括时钟信号、复位信号和置位信
号,一般情况下采用边沿触发逻辑实现。例如:
上升沿:elk’eventandelk=’l’
下降沿:elk’evnetandelk=’O’
67
第四章MCS一51单片机的正向设计
沿触发的方式可以使得电路状态的改变仅取决于控制信号边沿时到达的输入端
的逻辑状态,从而有效地提高了电路的抗干扰性、可靠性。为了保持触发控制的
一致性,如果敏感量列表中使用某个信号的上升沿,则IF条件语句中就使用该
信号本身;反之,如果敏感量列表中使用某个信号的下降沿,则IF条件语句中
就使用该信号的“非”。
进行控制电路设计时,状态机是一种很常见的描述方式。状态机主要要描述
三个部分:当前状态、下一个状态和输出逻辑。对于可综合的状态机来说,通常
只能有一个同步时钟,另外还可以带有异步复位和置位信号。对状态变量进行编
码时,尽可能选用格雷码(Gray)或独热码(One一hot)!351。总之,尽量使各状
态之间转换时状态变量只有一位发生变化,防止多变量同时翻转带来的竞争冒险
现象的发生。
正向设计时在Modelsim中编译VHDL源代码,并且对其进行了仿真,然
后利用SynPlify6.0软件工具进行的综合。
2.门级综合、仿真
RTL级HDL源代码经过综合后得到了门级电路网表,门级网表事实上仍然
是对连接关系的映射,但是其中包括了门延时等物理信息。由于新增加了这些物
理信息,需要对门级网表做门级仿真验证,也就是后仿真。通过后仿真可以检查
电路是否因为门延时导致了设计偏差,如果出现错误必须要修改综合后的程序脚
本,甚至修改RTL级源代码、HDL设计,最终使得设计完全通过RTL级和门
级仿真验证。一般情况下,门级仿真时对应加入的门级延时为纳秒ns量级。如
果可能的话,最好选用真实库的参数。图4一11累加器寄存器描述式电路图
RTL级仿真后利用SynPlify6.0进行综合,并且将综合后的门级网表文件
重新加入到Moddsim中。然后加上门延时参数,同时调用Synopsys公司的
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] 下一页
MCS51单片机反向解剖以及正向设计的研究 第17页下载如图片无法显示或论文不完整,请联系qq752018766