第八章设计综合和行为仿真

Download Report

Transcript 第八章设计综合和行为仿真

何宾
2008.10
8
第 章
第八章
设计综合和行为仿真--主要内容
本章详细介绍了设计综合和行为仿真的流程和法。
在设计综合部分,介绍了综合的概念、综合属性配置方
法和综合实现,以及RTL原理图查看。在行为仿真部分,介
绍了测试向量的生成、行为仿真工具、基于Modelsim软件的
行为仿真和基于ISE仿真器的行为仿真的实现,同时还介绍了
使用波形和VHDL语言建立测试向量的方法。
●设计综合和行为仿真-行为综合
第八章
在集成电路设计领域,综合是指设计人员使用高级设计语言
对系统逻辑功能的描述,在一个包含众多结构、功能、性能均已
知的逻辑元件的逻辑单元库的支持下,将其转换成使用这些基本
的逻辑单元组成的逻辑网络结构实现。这个过程一方面是在保证
系统逻辑功能的情况下进行高级设计语言到逻辑网表的转换,另
一方面是根据约束条件对逻辑网表进行时序和面积的优化。
● 设计综合和行为仿真-行为综合
第八章
行为级综合可以自动将系统直接从行为级描述综合为寄存器传
输级描述。
行为级综合的输入为系统的行为级描述,输出为寄存器传输
级描述的数据通路。
行为级综合工具可以让设计者从更加接近系统概念模型的角
度来设计系统。同时,行为级综合工具能让设计者对于最终设计
电路的面积、性能、功耗以及可测性进行很方便地优化。
行为级综合所需要完成的任务从广义上来说可以分为分配、
调度以及绑定。
●
设计综合和行为仿真-行为综合
第八章
分配包括决定系统实现所需要的各个功能组件的个数以及种
类。这些组件以及资源来自采用寄存器传输级描述的元件库,包
括诸如运算逻辑单元、加法器、乘法器和多路复用器等。分配同
时也决定了系统中总线的数量、宽度、以及类型。
●
设计综合和行为仿真-行为综合
第八章
调度为行为级描述中的每个操作指派时间间隙,这也成为控
制执行步骤。数据流从一级寄存器流向下一级寄存器并按调度所
指定的执行步骤在功能单元上执行。每一个执行步骤的时间长度
通常为一个时钟周期,并且在这一个执行步骤中的操作被绑定到
特定寄存器传输级描述的组件上。上述这些操作都完成后,系统
所完成的功能被分配到各个功能单元模块,变量被存储在各个存
储单元,并且不同功能单元之间的互连关系也建立起来了。
在实际的PLD设计流程中,逻辑综合将使用硬件逻辑描述语
言如Verilog、VHDL等描述的寄存器传输级(RTL)描述,转换
成使用逻辑单元库中基本逻辑单元描述的门级网表电路。
● 设计综合和行为仿真-基于XST的综合
第八章
当所有的设计完成,并且进行完语法检查后,就可以使用
Xilinx的XST工具或Synplify工具进行综合了,综合工具使用HDL
代码,然后生成支持的网表格式EDIF或NGC,然后Xilinx的实现
工具将使用这些网表文件完成随后的处理过程。
综合工具在对设计的综合过程中,主要执行以下三个步骤:
1、语法检查过程,检查设计文件语法是否有错误;
2、编译过程,翻译和优化HDL代码,将其转换为综合工具
可以识别的元件序列;
3、映射过程,将这些可识别的元件序列转换为可识别的目
标技术的基本元件;
● 设计综合和行为仿真-基于XST的综合
第八章
在ISE的主界面的处理子窗口的synthesis的工具可以完成下面
的任务:查看综合报告(view Synthesis Report)、查看RTL原理图
(View RTL schematic)、查看技术原理图(View Technology
Schematic)、检查语法(Check Syntax)和产生综合后仿真模型
(Generate Post-Synthesis Simulation Model)。
第八章
●
设计综合和行为仿真--约束及设计综合的实现
XST支持用户约束文件格式(UCF,User Constraint File),
该文件主要是用于综合和时序的约束。这种文件格式叫Xilinx的
约束文件(XCF,Xilinx Constraint File)。下面介绍该设计中所用到
的用户文件的生成和插入设计的步骤:
1、在ISE主界面,选择Project->Add source,选择
stopwatch.xcf文件,并打开;
2、stopwatch.xcf文件作为用户文档添加到用户的设计文件中;
3、打开该文件,下面是对于该设计的约束描述:
NET "CLK" TNM_NET = "CLK_GROUP";
第八章
● 设计综合和行为仿真--约束及设计综合的实现
TIMESPEC "TS_CLK" = PERIOD "CLK_GROUP" 20 ns; //时序约束
BEGIN MODEL stopwatch
//以下是管脚约束
NET "clk" LOC = "E12";
NET "sf_d<7>" LOC = "Y15";
NET "sf_d<6>" LOC = "AB16";
NET "sf_d<5>" LOC = "Y16";
第八章
●
设计综合和行为仿真--约束及设计综合的实现
NET "sf_d<4>" LOC = "AA12";
NET "sf_d<3>" LOC = "AB12";
NET "sf_d<2>" LOC = "AB17";
NET "sf_d<1>" LOC = "AB18";
NET "sf_d<0>" LOC = "Y13";
END;
第八章
● 设计综合和行为仿真--约束及设计综合的实现
4、关闭该文件;
5、在工程管理窗口,选择stopwatch.vhd文件。在处理子窗口,
选择Synthesis,并单击鼠标的右键选择Properity属性;
6、在Synthesis Options标签下,单击Synthesis Constraints File
属性域,输入stopwatch.xcf;
7、选中写时序检查(Write Timing Contraints)选项,单击
OK;
8、选中stopwatch.vhd文件,并在处理子窗口用鼠标双击
Synthesize选项;
通过上面的步骤,完成对约束文件的配置过程。
●
设计综合和行为仿真-RTL符号的查看
第八章
在综合完成后,XST将产生RTL的原理图(RTL Schematic)。
可以通过RTL原理图查看工具,看到综合后的逻辑连接关系。
RTL原理图(RTL Schmatic)是优化前的HDL代码的逻辑;
技术原理图(Technology Schematic)是HDL综合完成后的
设计和目标技术的映射。
●
设计综合和行为仿真-RTL符号的查看
第八章
通过下面的步骤,查看RTL对HDL设计的描述过程:
在处理子窗口,点击+ Synthesize –XST选项,将其下面的功
能分层展开;
双击 View RTL Schematic 或View Technology Schematic选择。
如图6.11,RTL的查看工具将显示出HDL的顶层设计的符号描述;
双击该图标,可以更进一步的看到底层模块的连接关系。
●
设计综合和行为仿真-RTL符号的查看
第八章
设计综合和行为仿真-行为仿真的实现
第八章
●
生成测试向量
VHDL还可以描述变化的测试信号。描述测试信号的变化和测
试过程的模块叫做测试平台(Testbench),它可以对任何一个
Verilog/VHDL模块进行动态的全面测试。通过对被测试模块的输
出信号的测试,可以验证逻辑系统的设计和结构,并对发现的问
题及时修改。
测试平台是为逻辑设计仿真而编写的代码,它能直接与逻辑
设计接口。如图8.2所示,通过向逻辑设计施加激励,检测被测模
块的输出信号。
测试平台
激励
逻辑设计
图8.2 测试平台的作用
响应
结果显示平台
第八章
●
设计综合和行为仿真-行为仿真的实现
生成测试向量
测试平台通常使用VHDL、Verilog、e或者Open Vera编写,同
时还能调用外部的文件和C函数。测试平台可以使用同逻辑设计
不同的描述语言,仿真器通常提供支持不同描述语言的混合仿真
功能。
第八章
设计综合和行为仿真-行为仿真的实现
●
生成测试向量
硬件描述语言如Verilog和VHDL等,都提供了两种基本的建
模方式:行为级和寄存器传输级。寄存器传输级是对硬件逻辑进
行可综合性的描述,使用的是VHDL语言中可综合逻辑设计激励
响应测试平台结果显示平台的描述部分。
寄存器传输级代码可以由逻辑综合工具直接转换成门级电路。
行为级描述是对硬件逻辑更为灵活和抽象的描述,描述的重
点在于硬件逻辑的功能,通常不考虑时序问题。行为级代码通常
不能被逻辑综合工具转换成门级电路。
测试平台以行为级描述为主,不使用寄存器传输级的描述形
式。
第八章
●
设计综合和行为仿真-行为仿真的实现
生成测试向量
测试平台主要由两个组件构成:激励生成和响应检测。
它们同被测单元(DUT, Device Under Test)的关系如图8.3所
示。
激励生成
被测单元
图8.3 测试平台构成
响应检测
第八章
●
设计综合和行为仿真-行为仿真的实现
生成测试向量
DUT是待测的逻辑电路。通常,DUT是使用硬件逻辑描述语
言HDL编写的寄存器传输级电路。
激励生成模块的主要功能是根据DUT输入接口的信号时序,
对DUT产生信号激励,将测试信号向量输入到DUT中。响应检测
模块根据DUT输入接口的信号时序,响应DUT的输出请求,并检
查输出结果的正确性。
第八章
● 设计综合和行为仿真-行为仿真的实现
生成测试向量
建立测试平台时,首先应针对DUT的功能定义测试向量;然
后根据每一个测试向量的要求分别设计激励生成和响应检测模块,
要求激励生成模块能够能在DUT的接口上产生该测试向量所需的
信号激励,响应检测模块能够对DUT在这种信号激励下的结果输
出进行响应和检测;最后将激励生成模块、DUT和响应检测模块
相连,组成验证环境,在仿真器上进行仿真,根据响应检测模块
的检测报告来判断测试向量是否通过测试。
● 设计综合和行为仿真-设置仿真工具
第八章
Xilinx的ISE工具提供了集成设计流程,该设计流程支持基于
Mentor Graphics公司Modelsim仿真工具和ISE仿真工具,这两种仿
真工具均可从工程向导中运行。
只有安装Modelsim软件才能使用Modelsim仿真工具,
ModelSim PE和ModelSim SE是Mentor Graphics公司ModelSim软件
的完全版本。为配合ISE9.2库的仿真,需要使用ModelSim6.0或更
高版本。ModelSim XE是基于ModelSim PE的ModelSim Xinlinx版
本。
当安装ISE软件时,ISE仿真工具就自动安装完成,所以不需
要进行额外安装。
第八章
●
设计综合和行为仿真-配置Xilinx仿真库
当设计中有需要例化的Xilinx基本元件、Core生成器元件和其
它IP核时,必须要使用Xilinx的仿真库才能对这样的设计进行仿真。
这些仿真库保存了每一个元件的模型。这些模型描述了每一个元
件的功能,为仿真工具提供了仿真时所需要的信息。
Modelsim软件使用modelsim.ini文件确定编译库的位置。比
如,将UNISIM库编译到c:\lib\UNISIM路径下,在该文件中必须有
下面的映射描述:UNISIM=C:\lib\UNISIM。
第八章
● 设计综合和行为仿真-建立波形测试向量
这一部分介绍通过波形编辑器产生测试向量的过程。可以通
过波形编辑器,以图形的方式输入激励信号,生成VHDL或
Verilog 测试平台。
下面的过程给出了为子模块创建测试平台波形的步骤(当然
波形编辑器也能为顶层设计生成一个激励源)。下面给出通过波
形编辑器创建一个测试平台波形文件的步骤:
第八章
●
设计综合和行为仿真-建立波形测试向量
1、在Source Tab选项卡中,选择time_cnt;
2、选择Project → New Source;
3、在New Source向导中, 选择源类型为Test Bench Waveform.;
4、输入time_cnt_tb,单击Next; 需要注意的是,在选项对
话框中, 文件time_cnt 为默认的源文件,这是因为在Source Tab选
项卡中,选择了time_cnt;单击Next,单击Finish;
5、在ISE中打开波形编辑器。显示初始化时序对话框,可以
设定仿真时间参数。时钟为高和低区域决定了时钟周期。输入建
立时间决定了输入有效起始时间,输出有效延迟定义了时钟有效
后输出有效的起始时间;
第八章
● 设计综合和行为仿真-建立波形测试向量
6、初始化时序对话框,如下输入:
Clock Time High: 10
Clock Time Low: 10
Input Setup Time: 5
Output Valid Delay: 5
7、在全局时钟部分选择GSR (FPGA)
8、将初始化的测试平台(TestBench)长度改为3000,单击
Finish。
通过上面的步骤,完成建立测试向量的过程。
第八章
●设计综合和行为仿真-波形测试向量的应用
在波形编辑器中,可以应用过渡带(High/Low),其宽度由
Input setup delay 和the Output valid delay决定。对该测试产生如下
激励输入:
1、单击CE在110 ns时为高
2、单击CLR在150 ns时为高
3、单击CLR在230 ns时为低
4、单击保存:新的测试平台波形源(time_cnt_tb.tbw)自动加
入到工程中
5、在Source Tab选项卡中,选择time_cnt_tb.tbw图8.10 在波
形编辑器中生成激励信号
6、双击Generate Self-Checking Test Bench
第八章
● 设计综合和行为仿真-波形测试向量的应用
图8.10 在波形编辑器中生成激励信号
一个包含输出数据和自检码的测试平台产生并添加到工程中,
创建的测试平台文件可用于与仿真后的数据比较
●
设计综合和行为仿真
--基于Modelsim行为仿真实现
第八章
下面所介绍的行为仿真是基于前面的秒表设计完成,并完成
了设计综合。为了实现对该设计的行为仿真,需要下面的文件:
设计文件,测试平台(Testbench)文件和Xinlinx仿真库。
1、设计文件:VHDL、Verilog或原理图文件。
2、Testbench文件:仿真设计过程中需要一个测试平台文件
作为仿真激励源。
3、Xinlinx仿真库:当在设计中涉及IP核时,应该创建
Xinlinx仿真库,库中包含了DCM数字时钟管理和核产生器
(CORE Generator)元件。
第八章
●
设计综合和行为仿真--添加HDL测试文件
下面给出添加测试平台文件步骤和过程:
1、如果建立一个新的测试平台文件,可选择Project→New
Source,选择文件类型为VHDL Test Bench或Verilog Text Fixture,
生成一个仿真文件,可以在这个文件中定义所需要的测试平台及
其测试向量。
2、如果添加已经设计完成的测试平台文件,可选择
Project→Add Source,在该设计中选择测试平台文件
stopwatch_tb.vhd。并在文件类型对话框中选择VHDL Test Bench
File/ Verilog Text Fixture File。ISE会自动识别顶层设计文件并将其
与测试文件进行关联。
第八章
●
设计综合和行为仿真--添加HDL测试文件
如果在工程中已经添加了一个测试平台文件,那么就可以用
ModelSim完成行为仿真,ISE与ModelSim已经完全一体化,ISE能
使用ModelSim创建工作路径,编译源文件,下载设计文件,并进
行仿真。使用ISE软件或ModelSim软件,仿真结果是相同的。
第八章
● 设计综合和行为仿真
--添加HDL测试文件
下面给出ISE的工程向导调用ModelSim仿真的步骤:
1、在Source Tab选项卡中,右键单击器件名,如xc3s700A4fg484,选择Properties(属性)选项;
2、在Project Properties(工程属性)对话框的仿真器域
(Simulator field)中选择所使用的ModelSim类型,并和所使用
的VHDL语言进行关联。
第八章
● 设计综合和行为仿真--定位仿真程序
在ISE的仿真过程中能够使用ModelSim软件对设计进行仿
真,下面给出定位ModelSim仿真程序的步骤:
1、在Source Tab选项卡中,选择行为仿真(Behavioral
Simulation);
2、选择Testbench测试文件(stopwatch_tb);
3、在Processes tab选项卡中,单击+旁边的ModelSim
Simulator展开程序目录层次;
如果没有ModelSim仿真程序,那么有可能是在Project
Properties(工程属性)对话框没有将ModelSim选为仿真器,或者是
Project Navigator无法找到modelsim.exe文件。
第八章
●
设计综合和行为仿真 --定位仿真程序
下面给出设置ModelSim单元的步骤
1、选择 Edit→Preferences;
2、单击+展开ISE preferences;
3、单击Integrated Tools;
4、在右栏中, Model Tech Simulator下,定位modelsim.exe文件
如:c:\modeltech_xe \win32xoem \modelsim.exe;
下面给出可用的仿真过程的步骤:
1、 Simulate Behavioral Model:这一过程开始设计仿真;
2、产生一个自检的HDL Testbench:这个过程产生一个相当
于测试平台波形(TBW)文件的自检HDL Testbench文件,并加入到
工程中。也可以通过这一过程来更新现有的自检测试波形文件。
第八章
设计综合和行为仿真--设置仿真属性
●
在ISE中可以设置包括网表属性的多个ModelSim仿真属性,
下面给出设置行为仿真属性的步骤:
1、在Source Tab选项卡中,选择Testbench测试文件
(stopwatch_tb);
2、在Processes tab选项卡中,单击+旁边的ModelSim
Simulator展开程序目录层次;
3、右键单击Simulate Behavioral Model,选择属性
(Properties);
4、 在Process Properties对话框中,见图8.4 设置Property
display level为Advanced这个全局性的设置,可看到所有可用的属
性;
5、将仿真运行时间改为2000ns,单击OK;
第八章
●
设计综合和行为仿真--设置仿真属性
图8.4 仿真属性的设置
第八章
● 设计综合和行为仿真--运行仿真
仿真属性设置完成后,就可以准备运行ModelSim仿真软件。双
击Simulate Behavioral Model,启动行为仿真。 ModelSim仿真
工具可以创建工作目录,编译源文件,添加设计,并进行指定时
间的仿真模拟过程。
该设计的工作频率为100赫兹,因此需要设定足够的时间长度
来仿真。第一次复位后,输出过渡的SF_D和LCD_E控制信号在大
约33毫秒。这就是为什么计数器不在短时间的仿真中使用,只有
通过对DCM信号监测来验证计数器工作是否正常。
第八章
●
设计综合和行为仿真--添加信号
为了观察仿真过程中的内部信号,必须将这些信号添加入到
波形窗口中。ISE会自动将顶层端口信号加入到波形窗口,其它信
号在基于被选结构的信号窗口中显示,可以通过两种基本方法将
其它信号加入仿真波形窗口:
1、从Signal/Object window中拖动到信号波形窗口;
2、在Signal/Object window中选择信号,选择Add → Wave
→ Selected Signals;
下面介绍将DCM信号加入到波形窗口中的步骤(如果使用的
是ModelSim6.0或更高版本,在默认状态下,所有窗口均是docked,
可选择undock图标来取消):
第八章
●
设计综合和行为仿真--添加信号
1、在Structure/Instance窗口中,单击+展开uut目录层次。图8.5为
Verilog的Structure /Instance窗口。当然原理图或是VHDL的
Structure/Instance窗口可能有所不同;
2、在Structure/Instance窗口中选择dcm1,那么在Signal/Object窗
口中的信号列表将被更新;
3、单击并将Signal/Object窗口中的CLKIN_IN信号拖动到波形窗
口中;
4、在Signal/Object窗口中,选择下列信号:RST_IN CLKFX_OUT、
CLK0_OUT、LOCKED_OUT;
5、在Signal/Object窗口中右键单击;
6、选择Add to Wave → Selected Signals;
第八章
● 设计综合和行为仿真--添加信号
图8.5 VerilogStructure /Instance窗口
第八章
● 设计综合和行为仿真--添加信号分割
在ModelSim中,可以在波形窗口中添加分割,使得更容易区
分不同的信号,下面给出在窗口中添加DCM信号分割窗口的步骤:
1、右键单击波形窗口信号部分的任意位置,如果需要可先将窗口
最大化;
2、选择Insert Divider;
3、在Divider Name框中输入DCM Signals;
4、单击OK;
5、将新建的信号拖到CLKIN_IN信号上方;
第八章
●
设计综合和行为仿真--添加信号分割
新增信号的波形还未给出,这是因为ModelSim还未记录这
些信号的数据。在默认情况下,只有重新经过仿真后,
ModelSim才会记录新添加到波形窗口中的信号。当波形窗口
添加新信号后,需要重新进行仿真。
第八章
●
设计综合和行为仿真--添加信号分割
图8.6 添加分割信号后仿真波形
第八章
●
设计综合和行为仿真--重新仿真
为了在ModelSim中重新完成仿真过程,
需要执行以下操作步骤:
1、单击Restart Simulation图标;
2、在Restart对话框中,单击 Restart;
3、在ModelSim命令行中,输入run
2000ns,按下Enter键;
仿真运行2000ns,仿真结束后,在波
形窗口中可见DCM新波形。
图8.7 重新仿真对话框
第八章
● 设计综合和行为仿真--分析信号
通过分析DCM信号来验证计数器工作是否正常。
CLK0_OUT信号需为50MHz,CLKFX_OUT需为26MHz。只在
LOCKED_OUT信号为高时,DCM输出信号有效。所以只在
LOCKED_OUT信号为高时,才能分析DCM信号。ModelSim中可
通过光标来测量信号之间的距离。下面给出测量CLK0_OUT信号
的步骤:
1、选择Add → Wave → Cursor,定位两个光标(Cursors);
2、在LOCKED_OUT信号为高后,单击拖拽CLK0_OUT信号的第
一个上升沿;
3、单击拖拽第二个光标;
4、单击Find Next Transition图标两次将光标移到CLK0_OUT信号
的下一个上升沿;
第八章
● 设计综合和行为仿真--分析信号
5、可观察波形底部两个光标之间的距离。测量值为20000ps
(50MHz),即为测试平台的输入频率,也是DCM的CLK0信号
输出;
6、同样使用上述方式测量CLKFX_OUT。测量值为38462ps,约
为26MHz;
通过上面步骤,完成对CLK0_OUT信号的测量和分析。
第八章
● 设计综合和行为仿真--保存仿真
ModelSim可保存列表中的所有信号,也可保存波形窗口中经
过重新仿真后的新增信号。下面给出保存信号的步骤:
1、在波形窗口中,选择File → Save as;
2、在保存类型对话框中,将默认的wave.do重新命名为
dcm_signal.do;
3、单击Save;
在重新启动仿真之后,在波形窗口中选择File → Load重新加
载此文件。
第八章
● 设计综合和行为仿真
--基于ISE行为仿真实现
如果在工程中已经生成了一个测试平台文件,那么就可以在
ISE中进行行为仿真。ISE能创建工作路径,编译源文件,下载设
计文件,并根据仿真属性进行仿真。下面给出了使用ISE仿真器进
行仿真的步骤:
1、在Source Tab选项卡中,右键单击器件名,如xc3s700A4fg484;
2、选择Properties(属性)选项;
3、在Project Properties(工程属性)对话框的Simulator field中
选择ISE Simulator;
通过上面的步骤完成对ISE仿真工作的属性设置。
第八章
●
设计综合和行为仿真--定位仿真程序
在仿真过程中能够使用ISE仿真器对设计进行仿真,并定位
ISE仿真程序。下面给出定位仿真程序的步骤:
1、在Source Tab选项卡中,选择Behavioral Simulation;
2、选择Testbench测试文件(stopwatch_tb);
3、在Processes tab选项卡中,单击+旁边的ISE Simulator展开程序
目录层次;
第八章
●
设计综合和行为仿真--定位仿真程序
下面是可使用的仿真过程:
1、Check Syntax:这个过程检查测试平台文件中的语法错误;
2、Simulate Behavioral Model:这一过程开始设计仿真;
3、产生一个自检的HDL Testbench:这个过程产生一个相当于测
试平台波形(TBW)文件的自检HDL Testbench文件,并加入到工程
中。也可以通过这一过程来更新现有的自检测试平台文件。
第八章
●
设计综合和行为仿真--设置仿真属性
在ISE中可以设置包括网表属性的多个ISE仿真器的仿真属性。
下面给出设置行为仿真属性的步骤:
1、在Source Tab选项卡中,选择测试平台文件(stopwatch_tb);
2、在Processes tab选项卡中,单击+旁边的ISE Simulator展开程序
目录层次;
3、右键单击Simulate Behavioral Model;
4、选择属性(Properties);
5、如图8.8所示,在Process Properties对话框中,设置Property
display level为Advanced. 这个全局性的设置,可看到所有可用的
属性;
6、将仿真运行时间改为2000ns;
7、单击Apply 和OK;
第八章
●
设计综合和行为仿真--设置仿真属性
图8.8 行为仿真属性设置
第八章
●
设计综合和行为仿真--运行仿真
一旦将Process Properties设置完成,那么已经准备好运行ISE
Simulator。启动行为仿真,双击Simulate Behavioral Model。ISE
Simulator 创建工作目录,编译源文件,加的设计,并进行指定时
间的仿真模拟。
大多数设计运行速度为100赫兹,并设定一定意义的时间来
仿真。第一次复位后,输出过渡的SF_D和LCD_E 控制信号在大
约33毫秒。这就是为什么计数器不在短时间的仿真中使用,只有
DCM信号监测来验证它们是否正常工作。
第八章
● 设计综合和行为仿真--添加信号
为了观察仿真过程中的内部信号,必须将内部信号添加到波
形窗口中,ISE会自动将顶层端口信号加入到波形窗口,其它信号
在基于被选结构的信号窗口中显示。下面将给出将DCM信号加入
到波形窗口的步骤:
1、在Sim Hierarchy窗口中,单击+展开stopwatch_tb目录层次;
2、单击+展开uut stopwatch_tb目录层次;
图8.9为Verilog的Sim Hierarchy窗口。当然原理图或是VHDL的
Sim Hierarchy窗口可能有所不同。
3、在Sim Hierarchy窗口中选择dcm1;
第八章
● 设计综合和行为仿真--添加信号
4、单击并将Sim Hierarchy窗口中的CLKIN_IN信号拖动到波形窗
口中;
5、在Signal/Object窗口中,选择下列信号:RST_IN、
CLKFX_OUT、 CLK0_OUT、LOCKED_OUT;
6、单击右键,选择Add to Waveform;
需要注意的是,新增信号的波形还未给出,这是因为ISE仿
真器还未记录这些信号的数据。在默认情况下,只有经过重新仿
真后,ISE仿真器才会记录新增到波形窗口中的信号。所以在波形
窗口新增信号后,需要重新进行仿真。
第八章
●
设计综合和行为仿真--添加信号
图8.9 Sim分层窗口
第八章
● 设计综合和行为仿真--重新仿真
为了在ISE Simulator中重新仿真,需要执行下面的步骤:
1、单击Restart Simulation图标;
2、在ISE Simulator命令行中,输入run 2000ns,按下Enter键;
3、仿真运行2000ns,仿真结束后,在波形窗口中可见DCM新
波形;
第八章
●
设计综合和行为仿真--分析信号
通过分析DCM信号可以验证计数器工作是否正常。
CLK0_OUT信号需为50MHz,CLKFX_OUT需为26MHz。只在
LOCKED_OUT信号为高时,DCM输出信号有效。因此,只在
LOCKED_OUT信号为高时,才能分析DCM信号。ISE仿真器中可
通过标记来测量信号之间的距离。下面给出测量CLK0_OUT信号
的步骤:
1、单击Measure Marker图标;
2、在LOCKED_OUT信号为高后,单击标记CLK0_OUT信
号的第一个上升沿;
3、单击标记第二个上升沿;
第八章
● 设计综合和行为仿真--分析信号
4、可观察波形底部两个光标之间的距离。测量值为20000ps
(50MHz),即为Testbench的输入频率,也是DCM CLK0的输出;
5、同样使用上述方式测量CLKFX_OUT。测量值为38462ps,约
为26MHz;
第8章
习题
1、说明行为综合的概念。
2、举例说明测试向量的生成方法。
3、举例说明基于Modelsim仿真工具的行为仿真过
程的实现。
4、举例说明基于ISE仿真工具的行为仿真过程的实
现。