Menu
CoddyTech

清空当前窗口

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

challenge icon

挑战

困难

分五步构建一个 Sample Monitor。在 rst 之后、en 之前添加同步清零逻辑。即使 en=1,clear 也会在该时钟沿清零 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 if(en)total<=total+data;
        count<=0;
    end
    assign alarm=0;
endmodule

RTL 设计与验证中的所有课

自己练习: Verilog 在线编译器