文章摘要:
本文以PLL例程为例,简单描述了ModelSim的仿真测试及Test Banch的编写;

知识重点:ModelSim仿真流程;


硬件平台: EP4CE6F17C8
开发环境: Quartus 13.1
仿真软件: Modelsim SE 10.1c


1. 打开pll_test工程,通过建立Test Banch文件

Porcessing --> Start --> Start Test Banch Template Writer...

此操作将在simulation\modelsim目录下创建一个pll_test.vt的文件,模块名称为工程名称加vlg_tst后缀(verilog test),例如:pll_test_vlg_tst;


2.添加生成的Test Banch文件添加至工程

Assignments --> Setting...

EDA Tool Settings --> Simulation

Compile test bench: --> Test Benches...

Test bench name: 指定模块名称,必须与第一步中生成的模块名称一致,pll_test_vlg_tst

File name: 指定第一步中生成的Test Banch文件;


3.修改Test Banch

Test Banch模板生成器已经完成端口声明及模块例化,只需要添加相关内容即可;

// 定义测试时钟,修改为1ns
`timescale 1 ns/1 ps

// 模块名称,以vlg_tst为后缀(verilog test)
module pll_test_vlg_tst();    

// 被测模块的input端口,连接测试模块中reg
reg clk;
reg rst_n;

// 被测模块的ouput端口,连接测试模块中的wires                                             
wire clk1;
wire clk2;

// 顶层模块例化(自动生成,如果修改了模块接口,则需要修改此处)
// assign statements (if any)                          
pll_test i1 (
    .clk(clk),
    .clk1(clk1),
    .clk2(clk2),
    .rst_n(rst_n)
);


initial                                                
begin                                                  
// code that executes only once(只运行一次的代码)                      
// insert code here(在此添加代码) --> begin    

     clk = 0;    
     rst_n = 0;    // 复位100ns     
     #100;
     rst_n = 1;         
     #2000
                                                       
// --> end                                             
$display("Running testbench");                       
end     

// 正常运行时,一直执行的代码                                               
always                                   
begin                                                  
// code executes for every event on sensitivity list   
// insert code here(在此添加代码) --> begin   
                   
    #10 clk =~clk;     // 每10ns反转一次(产生50MHz频率)                                              
                                           
// --> end                                             
end   

// 可以根据需要添加多个always语句
                                             
endmodule

4. 运行仿真

执行RTL Simulation,自动打开ModelSim并进行编译,编译完成后,自动运行,可点击Stop来停止执行,以查看波型;

请输入图片描述