Menu
CoddyTech

Thử thách: Quy trình tính tính chẵn lẻ

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 36 trên 38.

challenge icon

Thử thách

Trung bình

Xây dựng một đường ống parity hai giai đoạn. Trước tiên, lưu dữ liệu byte và in_valid. Ở cạnh xung nhịp tiếp theo không có reset, đầu ra parity là phép XOR rút gọn của byte đã lưu trước đó nếu tín hiệu valid trước đó ở mức cao, nếu không thì bằng 0. out_valid là tín hiệu valid đã được trễ. rst đồng bộ xóa cả hai giai đoạn và các đầu ra. Các cột đầu ra: parity, out_valid. 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; quan sát kết quả sau đó.

Hoàn thiện design.v và giữ nguyên tên mô-đun cùng các cổng. testbench.v bị khóa, cung cấp các thay đổi đầu vào và in ra các đầu ra sau khi chúng ổn định. Tệp này chọn một kịch bản bằng đối số 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 bằng 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 in_valid, input [7:0] data, output reg parity, output reg out_valid);
    // Thay phần giữ chỗ này bằng thiết kế của bạn.
    initial parity = 0;
    initial out_valid = 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