11 / 63 · Khái niệm
Bộ giải mã, lựa chọn one-hot và đầu vào hợp lệ
Đổi địa chỉ nhị phân thành từng đường chọn, thiết kế enable, phạm vi và bất biến lựa chọn.
Bài học miễn phí. Đăng ký để lưu tiến độ học tập.
Chuyển địa chỉ thành đường chọn
Bộ giải mãBộ giải mã Mạch kích hoạt đường đầu ra tương ứng mã nhị phân. Nếu có enable, có thể đưa mọi đầu ra về 0 khi vô hiệu hóa. bit chuyển địa chỉ đầu vào thành một trong tối đa đầu ra. Đầu ra có enable có thể định nghĩa như sau.
Với bộ giải mã 2-to-4: , , , . enable=0 làm mọi đầu ra bằng 0; enable=1 làm đúng một đầu ra bằng 1.
Đổi địa chỉ a1a0 khi enable=1: chỉ một trong d0~d3 bật. Đặt enable=0 và xác nhận mọi đường chọn đều tắt.
d[i] = enable AND (2 × a1 + a0 = i)
Giá trị mặc định hoàn chỉnh chức năng
module decoder2 (
input logic en,
input logic [1:0] addr,
output logic [3:0] select
);
always_comb begin
select = 4'b0000;
if (en) begin
case (addr)
2'd0: select = 4'b0001;
2'd1: select = 4'b0010;
2'd2: select = 4'b0100;
2'd3: select = 4'b1000;
default: select = 4'b0000;
endcase
end
end
endmodulePhép gán mặc định ban đầu bao phủ mọi đường thực thi để không nhớ đầu ra cũ. Chỉ thêm tên always_comb không tự biến nhánh chưa định nghĩa thành mạch đúng.
Khi số đầu ra không phải là lũy thừa của 2
Chọn 10 thiết bị cần địa chỉ bốn bit, nhưng 10~15 không hợp lệ. Phải quy định chính sách, chẳng hạn mọi đầu ra 0 và cờ lỗi 1. Mã không dùng không tự động cho phép đầu ra tùy ý.
Ngoài ánh xạ đầu vào–đầu ra, kiểm tra có nhiều đường chọn cùng bật không và disable có tắt hết không. Các bất biếnBất biến Điều kiện phải luôn đúng trong mọi thực thi được phép. Ví dụ số phần tử của FIFO sâu 4 luôn nằm từ 0 đến 4. Tìm hiểu thêm này đặc biệt quan trọng với write enable bộ nhớ hoặc chọn bus. Bộ giải mã càng lớn, fan-out của địa chỉ và tải dây càng tăng, nên có thể cần giải mã phân cấp.
Tự thử
Thiết kế bộ giải mã địa chỉ có 10 đầu ra. Xác định độ rộng địa chỉ, số đầu vào không hợp lệ và điều kiện bắt buộc khi en=0.
Đọc giải thích
Địa chỉ cần bit, có sáu mã không hợp lệ. en=0 thì mọi đường chọn phải bằng 0 bất kể địa chỉ. Có thể chọn đặc tả đầu ra đều 0 và báo lỗi riêng với địa chỉ không hợp lệ.