Professional Documents
Culture Documents
4. Nội dung
Priority Encoder (Bộ mã hóa ưu tiên)
Bộ mã hóa là một mạch điện logic tổ hợp. Bộ mã hóa nhận 2n dữ liệu đầu vào và mã hóa
thành n bit dữ liệu đầu ra. Nó sẽ thực hiện mã hóa nhị phân tương ứng với đầu vào, khi
đầu vào ở mức cao (giá trị logic l). Ví dụ với bộ mã hóa thông thường 8:3 với 8 đầu vào
từ I0 đến I7 và 3 đầu ra từ Y0 đến Y2.
Ví dụ: Nếu I = 0000_0001 => Y = 000.
I = 0000_0010 => Y = 001.
Tuy nhiên, bộ mã hóa thông thường có 1 vấn đề. Nếu có nhiều hơn một đường dữ liệu
vào ở mức cao, nó sẽ mã hóa sai. Nó chỉ mã hóa đúng khi chỉ có duy nhất 1 đường đầu
vào bằng 1.
Ví dụ: Nếu I = 0000_1001 => Y = ? (Không xác định)
Do đó, để giải quyết nhược điểm kể trên, chúng ta sẽ ưu tiên mức độ của mỗi đầu vào.
Nếu có nhiều hơn đầu vào ở mức cao, mã đầu ra sẽ tương ứng với đầu vào có mức độ ưu
tiên được chỉ định cao nhất. Bộ mã hóa dạng này được gọi là bộ mã hóa ưu tiên (Priority
Encoder).
Hãy thiết kế 1 bộ mã hóa ưu tiên 8:3 với tín hiệu Enable tích cực mức cao, trong đó đầu
vào I0 có độ ưu tiên cao nhất và I7 có độ ưu tiên thấp nhất. Mạch thực hiện chức năng khi
Enable en ở mức cao.
Viết testbench cho bộ mã hóa trên khi tín hiệu en = 1.
Bảng chân lý
Các đầu vào được gán vào 8 SW, từ SW1 đến SW9. Tín hiệu Enable được gán vào button
tích cực mức cao PS3.
3 tín hiệu đầu ra được gán vào 3 led đơn.