Menu
CoddyTech

Thử thách: Tổng có giới hạn

Thuộc phần Thiết kế và xác minh RTL trong hành trình Verilog của Coddy. Bài học 38 trên 38.

challenge icon

Thử thách

Trung bình

Cộng mẫu 8 bit có dấu vào q có dấu tại các cạnh lên được cho phép, bão hòa ở -128 và 127. Đặt clipped ở mức 1 và giữ nguyên khi xảy ra bão hòa; một khi đã được đặt, clipped giữ nguyên mức 1 cho đến khi rst hoặc clear được kích hoạt. Cả hai tín hiệu điều khiển đồng bộ đều xóa q và clipped, đồng thời được ưu tiên hơn en. Các cạnh bị vô hiệu hóa giữ nguyên cả hai giá trị. Các cột đầu ra: q, clipped. Tất cả tín hiệu điều khiển và dữ liệu đều ổn định trước mỗi cạnh lên của xung nhịp; kết quả được quan sát sau đó.

Hoàn thiện design.v và giữ nguyên tên module cùng các cổng. testbench.v bị khóa, cung cấp các thay đổi đầu vào và in ra đầu ra sau khi chúng ổn định. Tệp chọn một tình huống bằng đối số của trình mô phỏng như +CASE=1; không cần đầu vào tiêu chuẩn. Không thêm lệnh in, độ trễ hoặc lệnh kết thúc mô phỏng vào thiết kế. Đầu ra mong đợi gồm một hàng giá trị thập phân cho mỗi lần quan sát, các giá trị cách nhau một dấu cách và kết thúc bằng ký tự xuống dòng.

Tự làm thử

module dut (input clk, input rst, input clear, input en, input signed [7:0] sample, output reg signed [7:0] q, output reg clipped);
    // Thay phần giữ chỗ này bằng thiết kế của bạn.
    initial q = 0;
    initial clipped = 0;
endmodule

Tất cả bài học trong Thiết kế và xác minh RTL

Tự luyện tập: Trình biên dịch Verilog online