任何人都可以帮我创建一个Verilog测试平台吗?

时间:2013-11-19 13:37:35

标签: input verilog

任何人都可以帮我写一个测试平台或只是我以下代码的输入代码。 由于我不知道如何编写测试平台,我正在使用XINLINX。谢谢

    module fsmb (input rst,clk,a,
             output reg x);


parameter sta = 2'b00, stb = 2'b01, stc = 2'b10,
          std = 2'b11;

reg[1:0] st, nst;

always @(posedge clk)
begin 
    if (rst)
        st <= 2'b00;
    else
        st <= nst;
end

always @*
begin
    st = nst; x =0'b0;
    case (st)
        sta: if(a) nst = stb;
             else nst = sta;
        stb: if(a) nst = stc;
             else nst = stb; 
        stc: begin 
             if(a) nst = stc;
             else nst = std; 
             x =1'b1;
             end
        std: begin
             if(a) nst = stc;
             else nst = sta;
             x = 1'b1;
             end
        default: nst = sta;
    endcase 
end
endmodule
提前欣赏!!!

2 个答案:

答案 0 :(得分:4)

Testbench 101

  1. 创建一个新模块(tb)。
  2. 为您的DUT的每个输入创建一个注册表。
  3. 为DUT的每个输出创建一条线。
  4. 创建DUT的实例。
  5. 将您的注册表和电线连接到您的DUT。
  6. 生成时钟
  7. 驾驶您的其他输入
  8. 为您的输出创建检查器(我会留给您)。
  9. 示例:

    module tb;
    
    reg rst,clk,a;
    wire x;
    
    initial begin
        clk = 0;
        forever #5 clk = ~clk;
    end
    
    initial begin
        rst = 1;
        a = 0;
        #50 rst = 0;
        #50 $finish;
    end
    
    fsmb fsmb (
        .clk    (clk),
        .rst    (rst),
        .a      (a),
        .x      (x)
    );
    
    endmodule
    

答案 1 :(得分:1)

Xilinx ISE将自动生成骨架测试夹具。转到菜单项Project-&gt; New Source。该对话框将要求您“选择源类型”,单击“Verilog Test Fixture”并为其命名,如testbench1,然后单击“下一步”。然后它会询问您项目中的哪个模块与之关联。选择fsmb。单击“下一步”并完成。

您仍然需要调整测试平台,例如设置初始输入值,生成时钟,并在几个时钟后提升复位。