Menu
CoddyTech

接收已启用的样本

本课属于 Coddy Verilog 学习旅程的“RTL 设计与验证”单元。第 32 课,共 38 课。

challenge icon

挑战

困难

分五步构建一个 Sample Monitor。添加使能控制:复位优先级处理后,en=1 时接收数据并将其加到 total;en=0 时保持 total 不变。保留之前的所有行为。保留前面步骤中的所有内容,包括其测试平台和之前的输出行为。所有输入值都是已知的。每个场景最多包含 40 个时钟边沿,因此 total 可以用 16 位表示。固定测试平台会在场景 1-9 中输出 total,在场景 10-12 中输出 total 和 count,在场景 13-15 中输出 total、count 和 alarm。只评测此步骤启用的场景。

完成 design.v,并保留其模块名称和端口。锁定的 testbench.v 会提供输入变化,并在信号稳定后输出结果。它使用模拟器参数(例如 +CASE=1)选择场景;不需要标准输入。不要在设计中添加输出语句、延迟或仿真终止操作。预期输出为每次观测一行十进制值,值之间用一个空格分隔,并以换行符结尾。

亲手试试

module dut(input clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
    always @(posedge clk)begin
        if(rst)total<=0;else total<=total+data;
        count<=0;
    end
    assign alarm=0;
endmodule

RTL 设计与验证中的所有课

自己练习: Verilog 在线编译器