微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Testbench 波形 请教

Testbench 波形 请教

时间:10-02 整理:3721RD 点击:

小弟初来乍到,还请大家多多指教。最近开始学Verilog,很多问题不懂。希望能够得到大家的帮助。

我想在testbench生产这样一个波形:

有个2位信号sel,产生前10ns为00,后面每30ns 加1的波形。如下

0    10ns       40ns         70ns        100ns        130ns.......

   00        00           01             10             11

但我现在只能产生30ns循环的波形。code如下

  1. `timescale 1ns / 1ps

  2. module Test;

  3.         // Inputs
  4.         reg [7:0] ina;
  5.         reg [7:0] inb;
  6.         reg [1:0] sel;

  7.         // Outputs
  8.         wire result;

  9.         // Instantiate the Unit Under Test (UUT)
  10.         M_compare uut (
  11.                 .ina(ina),
  12.                 .inb(inb),
  13.                 .sel(sel),
  14.                 .result(result)
  15.         );

  16.         initial begin
  17.                 // Initialize Inputs
  18.                 ina = 0;
  19.                 inb = 0;
  20.                 sel = 0;
  21.         end
  22.    
  23.         always
  24.                 begin
  25.                         #10 ina = 8'h23;
  26.                         #10 ina = 8'h8A;
  27.                         #10 ina = 8'h79;
  28.                 end
  29.                
  30.         always
  31.                 begin
  32.                         #10 inb = 8'h15;
  33.                         #10 inb = 8'hAC;
  34.                         #10 inb = 8'h79;
  35.                 end

  36.         always #30 sel=sel+1;
  37.                        
  38. endmodule

复制代码



把always用forever替换。
initial begin
  sel = 0;
  #10 sel = 1;
  forever begin
     #30;
     sel = sel + 1;
  end
end

楼上正解



   十分感谢,顺利解决。

新手学些了!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top