初学verilog之小试牛刀

来源:互联网 发布:黑色沙漠兽娘捏脸数据 编辑:程序博客网 时间:2024/06/01 19:57

开发环境:win7 professional 64;Quartus-13.0.0.156-windows+Modelsim-altera 10.1d

教程:夏宇闻verilog数字系统设计

问题:一个可综合的数据比较器,很容易看出它的功能是比较数据a 与数据b,如果两个数据相同,则给出结果1,否则给出结果0。

正文:

问题很简单,主要是走一遍通过quartus编译verilog文件以及调用modelsim进行仿真的方法。也可以使用quartus自带的仿真器仿真。可以通过新建一个VWF文件,然后设置输入的值进行仿真。

步骤:
    1. 新建工程;新建verilog文件;
    2. 编译;
    3. process->start->start template bench writer; open ./simulation/modelsim/*.vt,*vht; 编辑
    4. entity-->setting-->simulation-->compile test bench-->new
    5. tools-->run simulation tools-->RTL simulation


附:
compare.v:
module compare(equal,a,b);input a,b;output equal;assign equal=(a==b)?1:0; //a 等于b 时,equal 输出为1;a 不等于b 时,//equal 输出为0。endmodule
testbench:compare.vt
`timescale 1 ns/ 1 ns//`include "./compare.v"module compare_vlg_tst();// constants                                           // general purpose registersreg eachvec;// test vector input registersreg a;reg b;// wires                                               wire equal;// assign statements (if any)                          compare i1 (// port map - connection between master ports and signals/registers   .a(a),.b(b),.equal(equal));initial                                                begin                                                  // code that executes only once                        // insert code here --> begin                          a=0;b=0;#100 a=0; b=1;#100 a=1; b=1;#100 a=1; b=0;#100 a=0; b=0;#100 $stop; //系统任务,暂停仿真以便观察仿真波形。                                                       // --> end                                             $display("Running testbench");                       end                                                    always                                                 // optional sensitivity list                           // @(event1 or event2 or .... eventn)                  begin                                                  // code executes for every event on sensitivity list   // insert code here --> begin                                                                                 @eachvec;                                              // --> end                                             end                                                    endmodule
仿真结果:




0 0
原创粉丝点击