Menu
CoddyTech

Ôn tập: Ngân hàng có hai cổng đọc

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

challenge icon

Thử thách

Trung bình

Triển khai bốn từ 8 bit với một thao tác ghi theo xung nhịp và hai đầu ra đọc dữ liệu cũ đã đăng ký, qa và qb. we ghi tại waddr. rst đồng bộ chỉ xóa qa và qb. Nếu không, re cho phép đọc cả hai từ raddr_a và raddr_b; khi bị tắt, các thao tác đọc giữ nguyên giá trị. Các thao tác ghi cùng cạnh xung nhịp không làm thay đổi giá trị cũ được lưu lại bởi các thao tác đọc này. Các bài kiểm tra khởi tạo các từ trước khi đọc. Các cột đầu ra: qa, qb. 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 mô-đun cùng các cổng. testbench.v bị khóa sẽ 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ố của trình mô phỏng, chẳng hạn 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 là 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 we, input re, input [1:0] waddr, input [1:0] raddr_a, input [1:0] raddr_b, input [7:0] data, output reg [7:0] qa, output reg [7:0] qb);
    // Thay phần giữ chỗ này bằng thiết kế của bạn.
    initial qa = 0;
    initial qb = 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