Sử dụng câu lệnh case
Thuộc phần Kiến thức nền tảng trong hành trình Verilog của Coddy. Bài học 66 trên 90.
Thử thách
Tạo một bộ chọn kênh 4 sang 1 bằng câu lệnh case thay vì if-else.
Bảng chân trị
| sel | out |
|---|---|
| 00 | out = in0 |
| 01 | out = in1 |
| 10 | out = in2 |
| 11 | out = in3 |
Cần làm:
- Tạo một module có tên
mux4to1_case - Thêm các đầu vào
in0,in1,in2,in3(mỗi đầu vào 1 bit) - Thêm đầu vào
sel(2 bit) - Thêm đầu ra
out(1 bit, kiểureg) - Thêm một khối
always @(*) - Bên trong, thêm câu lệnh
case (sel) - Thêm các trường hợp
2'b00,2'b01,2'b10,2'b11 - Thêm trường hợp
default - Kết thúc bằng
endcasevàendmodule
Tự làm thử
// TODO: Tạo module tên mux4to1_case
// TODO: Thêm các đầu vào: in0, in1, in2, in3 (mỗi đầu vào 1 bit)
// TODO: Thêm đầu vào sel (2 bit)
// TODO: Thêm đầu ra out (kiểu reg)
// TODO: Thêm khối lệnh always @(*)
// TODO: Thêm case (sel)
// TODO: Thêm case 2'b00: out = in0;
// TODO: Thêm case 2'b01: out = in1;
// TODO: Thêm case 2'b10: out = in2;
// TODO: Thêm case 2'b11: out = in3;
// TODO: Thêm default: out = in0;
// TODO: Thêm endcase
// TODO: Thêm endmoduleTất cả bài học trong Kiến thức nền tảng
1Giới thiệu
Verilog là gìPhần cứng và phần mềmModule đầu tiênChú thíchCác mức trừu tượng hóa thiết kế4Toán tử phần 1
Toán tử số họcToán tử moduloToán tử so sánhÔn tập: phép tính đơn giảnToán tử thao tác bit7Gán và cổng logic
Gán liên tụcGán bằng toán tửCác cổng nguyên thủy tích hợp sẵnCổng AND, OR, NOTCổng XOR, XNORÔn tập: mạch cổng logic10Ra quyết định
Câu lệnh ifIf và elseÔn tập: Bộ so sánh đơn giảnCâu lệnh caseCasex và casezÔn tập: Thiết kế ALU5Các toán tử, phần 2
Toán tử logicToán tử rút gọnToán tử dịch bitToán tử nốiToán tử điều kiệnÔn tập: thử thách về toán tử11Vòng lặp
Vòng lặp forVòng lặp whileVòng lặp repeatVòng lặp vô hạnCâu lệnh vô hiệu hóaÔn tập: các mẫu vòng lặp3Hệ thống số
Biểu diễn nhị phânSố có kích thướcSố không có kích thướcSố âmCác giá trị đặc biệt X và ZÔn tập: định dạng số6Module
Cấu trúc moduleCổng đầu vào và đầu raCổng vào ra hai chiềuKhởi tạo moduleÁnh xạ cổng theo tênÁnh xạ cổng theo thứ tựÔn tập: xây dựng module9Khối thủ tục
Khối alwaysKhối initialDanh sách độ nhạyPhép gán chặnPhép gán không chặnÔn tập: always và initial12Dự án bộ ghép kênh
Thiết kế bộ ghép kênh 2 thành 1Thiết kế bộ ghép kênh 4 thành 115Bộ điều khiển đèn giao thông
Xác định các trạng tháiLogic máy trạng tháiTự luyện tập: Trình biên dịch Verilog online