0

任何人都可以帮我创建一个测试台或只是我以下代码的输入代码吗?我正在使用赛灵思。

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
4

2 回答 2

10

测试台 101

  1. 创建一个新模块 (tb)。
  2. 为 DUT 的每个输入创建一个 reg。
  3. 为 DUT 的每个输出创建一条线。
  4. 创建 DUT 的实例。
  5. 将您的 regs 和电线连接到 DUT。
  6. 生成时钟
  7. 驱动您的其他输入
  8. 为您的输出创建检查器(我将由您决定)。

例子:

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

EDA playgound上提供了其他简单的测试平台示例。您可以注册一个免费帐户并查看示例,例如:已发布的 Playgounds -> D 触发器

于 2013-11-19T13:46:11.080 回答
1

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

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

于 2013-11-21T00:01:08.697 回答