QuartusII12.0调用Modelsim波形仿真实例
1.
建立工程如下 module and3_df(x1,x2,x3,z1); input x1,x2,x3; output z1;
wire x1,x2,x3;//define
signals as wire for dataflow wire z1;
//continuous assignment for
dataflow assign z1= x1 & x2 &
x3; endmodule
2.
如果是第一次使用modelsim,需要建立Quartus ii12.0和modelsim的链接。 具体操作为:Quartus II12.0->Tools->option->EDA Tool options再选择自己的软件和对应的安装文件夹,如下
3.
建立测试文件(testbench)可以自己写,也可以用quartus II自己生成(生成的只是模版,功能需要自己添加),注:testbench的输出为要测试文件的输入,即测试文件是为要测试文件产生信号用的,因此testbench的input为reg变量,输出为wire变量,具体操纵如下 Processing->start->strat test bench Template writer 然后会出现建立成功的提示, 4.打开测试文本,添加测试的信号功能(注:上步生成的文件后缀为.vt,在所建工程下的simulation\modelsim\下面)。 4.
添加信号功能如下。 `timescale 1 ns/ 1 ps module and3_df_vlg_tst(); // constants // general purpose registers //======================== reg x1;//inputs are reg for
test bench reg x2; reg x3; // wires wire z1;//outputs are wire
for test bench //============================ // assign statements (if
any) and3_df i1 ( // port map - connection
between master ports and signals/registers
.x1(x1), .x2(x2), .x3(x3), .z1(z1) ); initial
begin :APPlicable
// code that executes only
once // insert code here -->
begin //============================================= reg [3:0] invect; //test invect for(invect
=0;invect<8;invect=invect+1) begin {x1,x2,x3} = invect
[3:0]; #10 $display ("x1 x2 x3 = %b ,z1 = %b",
{x1,x2,x3},z1); end //============================================== // --> end end
endmodule 6.复制测试文件模块名(供下步添加test
bench name用)添加测试文件。 操作如下assignment->setting->
7.开始仿真
Tools->run->simulation tool 8结果(若没有自动运行,需按simulation和add wave) |
|
来自: shuiqinghan > 《FPGA》