原创 使用ISE HDL Bencher生成激励(原创)

2008-11-29 20:56 7451 5 5 分类: FPGA/CPLD

使用HDL Bencher生成激励(原创)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


ISE使用HDL Bencher能自动生成测试文件(顶层文件)


1. Source工作区右单击New Source——Test Bench WaveForm


 <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


点击看大图


 


 

2. Next  选择要测试的文件,注意不要选择子模块



 

点击看大图 


 


3.弹出Initial Timing and Clock Wizard



 

点击看大图 


 


设置的参数有


Rising Edge:上升沿触发


Falling Edge:下降沿触发


Dual Edge:两个沿都触发


Clock High Time:时钟高电平保持时间


Clock Low Time:时钟低电平保持时间


Input Setup Time:输入建立时间


Output Valid Delay:输出有效时间


Offset:时钟偏移


 


input setup就是模拟的输入信号相对于时钟的建立时间,越大越有利于仿真,是固定的。(http://www.edacn.net/bbs/thread-14860-1-153.html


 


设计类型分为3类:


Single Clock  单时钟同步时序电路,选择时钟信号clk


Multiple Clock多时钟同步时序电路


Combinatorial(or internal clock)组合电路


 


全局信号设置主要选择是否使用GSR(FPGA)PRLDCPLD)等全局置位、复位信号


High for InitialGSRPRLD信号时间


(GSR,GTS 是芯片的全局复位和全局置位信号,使用不当反而会出问题,不必管它就是了)


 


Initial Length of Test Bench:设置仿真时长


Time Scale:设置仿真所用时间单位(ms,ns,ps


 


Add Asynchronous Signal Support:需要进一步设置异步时序关系


 


通过View Generated Test Bench As HDL可以看到设置参数的意义



 


44cd8d74-652f-4a36-bd14-19cd82305186.jpg


……


    parameter PERIOD = 200;


    parameter real DUTY_CYCLE = 0.5;


    parameter OFFSET = 100;


 


    initial    // Clock process for clk


    begin


        #OFFSET;


        forever


        begin


            clk = 1'b0;


            #(PERIOD-(PERIOD*DUTY_CYCLE)) clk = 1'b1;


            #(PERIOD*DUTY_CYCLE);


        end


end


……


 


PERIOD=时间高电平保持时间+时间低电平保持时间=周期


OFFSET=时钟偏移


DUTY_CYCLE=占空比=时间高电平保持时间、时间低电平保持时间


(PERIOD-(PERIOD*DUTY_CYCLE))= 时间低电平保持时间Clock Low Time


(PERIOD*DUTY_CYCLE)= 时钟高电平保持时间Clock High Time


 



点击看大图 


 


如果觉得仿真时间不够的话,可以右单击,选择set end of testbench



 

4ef79fe0-e1f7-4289-8fea-3f7995b3d613.jpg


 


 


设置仿真结束时间,得到下图:


 



点击看大图 


 


也可以直接在跳出来的modelsim里直接run


 


要给输入赋值时,在相应输入信号左单击,出来一个对话框



 


284454ca-1f85-4303-b2b1-f316ee499d72.jpg


 


 

可以填入输入仿真的值,要注意所填值的格式,上面的是16进制,要改变进制的话,可以右单击:



 


547a08db-4d6e-4fad-80d3-61f01be0ac62.JPG


  


好了,这样就可以给输入设置仿真值



 

点击看大图 


  


 


我用的是ISE 9.2i,好像没了测试激励的覆盖率分析,也不能用HDL Bencher仿真了,只能调用ModelSim仿真了L (没了Generate Expected Simulation Results选项)



 

684b8ad3-1adc-4479-8263-b17bb023df69.jpg


 


 


http://www.dzkf.cn/html/EDAjishu/2008/0909/3346_3.html  Xilinx使用入门  里面用的ISE是老版本)


 


如果是给组合逻辑编写仿真测试文件,可以这样:


1.      New Source——Test Bench WaveForm——Combinatorial(or internal clock)


2.      New Source——Verilog Test Fixture


 


 


【原创文章,转载请注明出处】

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条