基于ISE的仿真在代码编写完毕后,需要借助于测试平台来验证所设计的模块是否满足要求。ISE提供了两种测试平台的建立方法,一种是使用HDLBencher的图形化波形编辑功能编写,另一种就是利用HDL语言。由于后者使用简单、功能强大,所以本节主要介绍基于Verolog语言的测试平台建立方法。1.测试波形法在ISE中创建testbench波形,可通过HDLBencher修改,再将其和仿真器连接起来,再验证设计功能是否正确。首先在工程管理区将Sourcesfor设置为BehavioralSimulation,然后在任意位置单击鼠标右键,在弹出的菜单中选择“NewSource”命令,然后选中“TestBenchWaveForm”类型,输入文件名为“test_bench”,点击Next进入下一页。这时,工程中所有VerilogModule的名称都会显示出来,设计人员需要选择要进行测试的模块。由于本工程只有一个模块,所以只列出了test,如图4-30所示。图4-30选择待测模块对话框用鼠标选中test,点击“Next”后进入下一页,直接点击“Finish”按键。此时HDLBencher程序自动启动,等待用户输入所需的时序要求,如图4-31所示。图4-31时序初始化窗口时钟高电平时间和时钟低电平时间一起定义了设计操作必须达到的时钟周期,输入建立时间定义了输入在什么时候必须有效,输出有效延时定义了有效时钟延时到达后多久必须输出有效数据。默认的初始化时间设置如下:时钟高电平时间(ClockHighTime):100ns时钟低电平时间(ClockLowTime):100ns输入建立时间(InputSetup):15ns输出有效时间(OutputValid):15ns偏移时间(Offset):100ns单击“OK”按钮,接受默认的时间设定。测试矢量波形显示如图4-32所示。图4-32测试矢量波形接下来,初始化输入(注:灰色的部分不允许用户修改),修改的方法为:选中信号,在其波形上单击,从该点击所在周期开始,在往后所有的时间单元内该信号电平反相。点击din信号前面的“+”号,在din[7]的第2个时钟周期内单击,使其变高;在din[6]的第3个时钟周期内单击,使其变高;同样的方法修改din[5]~din[0]信号,使其如图4-33所示。图4-33初始化输入然后将testbench文件存盘,则ISE会自动将其加入到仿真的分层结构中,在代码管理区会列出刚生成的测试文件test_bench.tbw,如图4-34所示。图4-34测试文件列表选中test_bench.tbw文件,然后双击过程管理区的“SimulateBehavioralModel”,即可完成功能仿真。同样,可在“SimulateBehavioralModel”选项上单击右键,设置仿真时间等。例4-3的仿真结果如图4-35所示。从中,可以看出,dout信号等于din信号加1,功能正确。图4-35功能仿真结果2.测试代码法下面介绍基于Verilog语言建立测试平台的方法。首先在工程管理区将“Sourcesfor”设置为BehavioralSimulation,在任意位置单击鼠标右键,并在弹出的菜单中选择“NewSource”命令,然后选中“VerilogTestFixture”类型,输入文件名为“test_test”,再点击“Next”进入下一页。这时,工程中所有VerilogModule的名称都会显示出来,设计人员需要选择要进行测试的模块。用鼠标选中test,点击“Next”后进入下一页,直接点击“Finish”按键,ISE会在源代码编辑区自动显示测试模块的代码:`timescale1ns/1psmoduletest_test_v;//Inputsregclk;reg[7:0]din;//Outputswire[7:0]dout;//InstantiatetheUnitUnderTest(UUT)testuut(.clk(clk),.din(din),.dout(dout));initialbegin//InitializeInputsclk=0;din=0;//Wait100nsforglobalresettofinish#100;//Addstimulushereendendmodule由此可见,ISE自动生成了测试平台的完整架构,包括所需信号、端口声明以及模块调用的完成。所需的工作就是在initial…end模块中的“//Addstimulushere”后面添加测试向量生成代码。添加的测试代码如下:foreverbegin#5;clk=!clk;if(clk==1)din=din+1;elsedin=din;end完成测试平台后。在工程管理区将“Sourcesfor”选项设置为BehavioralSimulation,这时在过程管理区会显示与仿真有关的进程,如图4-36所示。图4-36选择待测模块对话框选中图4-36中XilinxISESimulator下的SimulateBehavioralModel项,点击鼠标右键,选择弹出菜单的Properties项,会弹出如图4-37所示的属性设置对话框,最后一行的SimulationRunTime就是仿真时间的设置,可将其修改为任意时长,本例采用默认值。图4-37仿真过程示意图仿真参数设置完后,就可以进行仿真了,直接双击ISESimulator软件中的SimulateBehavioralModel,则ISE会自动启动ISESimulator软件,并得到如图4-38所示的仿真结果,从中可以看到设计达到了预计目标。图4-38test模块的仿真结果