您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > ISE环境下基于Verilog代码的仿真测试
1ISE环境下基于Verilog代码的仿真测试在Verilog源代码编写完毕后,需要编写测试平台来验证所设计的模块是否满足要求。ISE软件提供了两种测试平台的建立方法,一种是使用HDLBencher的图形化波形编辑功能编写,即波形图仿真;另一种就是利用HDL语言,即代码仿真。由于后者功能更加强大,所以这里举例介绍基于Verilog语言的测试平台建立方法。本例为一个计数分频时序电路,主要是将10MHz的时钟频率分频为500KHz的时钟,源代码的编写过程中需要定义一个计数器,以便准确获得1/20分频。第一步:建立工程后,编写如下源代码:modulefenpin(RESET,F10M,F500K);inputF10M,RESET;outputF500K;regF500K;reg[7:0]j;always@(posedgeF10M)if(!RESET)beginF500K=0;j=0;endelsebeginif(j==19)beginj=0;F500K=~F500K;end2elsej=j+1;endendmodule第二步:源代码编写完毕后,双击过程管理窗口中的“Synthesize-XST”(如图1所示),对源代码进行综合,综合通过后表明源代码无语法错误且代码可综合。如果综合不对,那么就需要修改源代码。图1过程管理窗口中双击“Synthesize-XST”第三步:综合通过后,接下去就可以利用Verilog语言来建立源代码的仿真测试平台。首先在工程管理区中将“Sourcesfor”设置为BehavioralSimulation(打开下拉框选择),如图2所示。图2工程管理区中将“Sourcesfor”设置为BehavioralSimulation3第四步:然后在工程管理区任意空白位置单击鼠标右键,并在弹出的菜单中选择“NewSource”命令,如图3所示。图3空白位置单击鼠标右键,选择“NewSource”选项第五步:然后会弹出一个对话框,如图4所示,选中其中“VerilogTestFixture”类型,输入文件名为fenpin_test。然后点击“Next”按钮。图4选中其中“VerilogTestFixture”类型,输入文件名为fenpin_test第六步:点完Next按钮后,弹出如下对话框,如图5所示,从中可以选择要进行测试的模块,本例被测试的模块名为fenpin,所以选择fenpin模块,然后点击Next按钮,进入下一步操作。4图5在弹出的对话框中选择fenpin模块第七步:点完Next按钮后,在出现的对话框中点击Finish按钮,然后ISE会自动在代码编辑区内显示被测试模块的不完整测试代码(需要增添和修改的),如图6所示。图6ISE自动生成的不完整测试代码*下面就是ISE软件自动生成的不完整代码:`timescale1ns/1psmodulefenpin_test;5//Inputs//这些是源代码中的输入信号regRESET;regF10M;//Outputs//这些是源代码中的输出信号wireF500K;//InstantiatetheUnitUnderTest(UUT)//实例引用,进行信号的连接fenpinuut(.RESET(RESET),.F10M(F10M),.F500K(F500K));initialbegin//InitializeInputsRESET=0;F10M=0;//Wait100nsforglobalresettofinish#100;//Addstimulushere//需要增加测试代码的地方endendmodule从上面可以看出,ISE自动生成了测试平台的完整架构,包括所需信号、端口声明以及模块调用的完成。所需的工作就是在initial…end模块中的“//Addstimulushere”后面添加测试代码,并在其他地方进行相应的增添测试代码。本例6中要在测试代码中增加产生10MHz频率时钟的代码,可增添如下代码:always#50F10M=~F10M;同时,将initial模块的代码修改为如下:initialbeginRESET=1;F10M=0;#100RESET=0;#100RESET=1;#10000$stop;end因此,完整的仿真测试代码应该如下面所示:`timescale1ns/1psmodulefenpin_test;//InputsregRESET;regF10M;//OutputswireF500K;//InstantiatetheUnitUnderTest(UUT)fenpinuut(.RESET(RESET),.F10M(F10M),.F500K(F500K));always#50F10M=~F10M;7initialbeginRESET=1;F10M=0;#100RESET=0;#100RESET=1;#10000$stop;endendmodule第八步:增添修改完测试代码后,点击保存。第九步:然后确认一下工程管理区“Sourcesfor”那里是否仍为BehavioralSimulation,如果是,则不用重新设置。如果不是,请重新修改为BehavioralSimulation。第十步:然后点击选择工程管理区中的.v文件,本例为fenpin_test(fenpin_test.v),过程管理区会变为如图7所示。图7工程管理区和过程管理区界面8点开XilinxISESimulator前面的“+”,过程管理区会变为图8所示。图8过程管理区界面变化图第十一步:选中图8中XilinxISESimulator下的SimulateBehavioralModel项,点击鼠标右键,选择弹出菜单中的Properties项,会弹出如图9所示的属性设置对话框,最后一行的SimulationRunTime就是仿真时间的设置,可将其修改为任意时长,本例设为10000ns,然后点击apply按钮,最后点击OK按钮完成仿真时间的设置。图9仿真时间的设置第十二步:仿真参数设置完后,就可以进行仿真了,直接双击ISESimulator软件中的SimulateBehavioralModel,则ISE会自动启动ISESimulator软件,并得到如图10所示的仿真结果,从仿真图中可以看出分频后的F500K信号频率确实是输入F10MHz信号频率的1/20。因此该测试代码可以验证源代码的正确性。9图10仿真结果
本文标题:ISE环境下基于Verilog代码的仿真测试
链接地址:https://www.777doc.com/doc-1568812 .html