Bảng ROM tổ hợp
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 21 trên 38.
Bảng tra cứu cố định mô tả ánh xạ chỉ đọc từ địa chỉ sang dữ liệu. Một case hoặc function hoàn chỉnh có thể biểu thị nội dung của bảng. Với thao tác đọc tổ hợp, thay đổi địa chỉ sẽ làm thay đổi đầu ra mà không cần chờ xung nhịp. Công cụ tổng hợp sẽ chọn cách triển khai; mã nguồn này không đảm bảo sử dụng một primitive bộ nhớ FPGA cụ thể nào.
Đoạn trích liên quan; các khai báo và kết nối xung quanh có trong thử thách.
function [7:0] lookup;
input [1:0] addr;
begin
case(addr)
0: lookup=3;
1: lookup=5;
2: lookup=8;
3: lookup=13;
default: lookup=0;
endcase
end
endfunctionMỗi địa chỉ chọn một hằng số (constant) đã xác định và không giữ lại đầu ra trước đó.
Chỉ định mọi mục trong bảng và phân biệt tra cứu tổ hợp với độ trễ đọc có đăng ký.
Thử thách
Trung bìnhTriển khai một bảng tra cứu tổ hợp gồm tám mục. Các địa chỉ từ 0 đến 7 lần lượt trả về 3,5,8,13,21,34,55,89. Dùng một function dựa trên case đầy đủ để điều khiển y. Cột đầu ra: y. Tất cả giá trị kích thích đều là giá trị nhị phân đã biết.
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 đầ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 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 [2:0] addr, output [7:0] y);
// Thay phần giữ chỗ này bằng thiết kế của bạn.
assign y = 0;
endmoduleBài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Thiết kế và xác minh RTL
1RTL tổ hợp đáng tin cậy
Giá trị mặc định ngăn chốtBộ mã hóa ưu tiênKiểm tra one-hotGiải mã case an toànÔn tập: Bộ định tuyến yêu cầu2Độ rộng bit và số học có dấu
Bảo toàn các bit nhớPhép so sánh có dấuDịch phải số họcTràn số và bão hòaÔn tập: hiệu có dấu5Bộ nhớ và bảng tra cứu
Bảng ROM tổ hợpLưu trữ bằng mảng thanh ghiCổng đọc có thanh ghiChuyển tiếp dữ liệu khi đọc và ghiÔn tập: Ngân hàng có hai cổng đọcTự luyện tập: Trình biên dịch Verilog online