Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
1,03 MB
Nội dung
� HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÁO CÁO BÀI TẬP LỚN Thiết kế logic số Giảng viên: Trần Thu Hà Nhóm lớp : 02 Nhóm tập :19 Sinh viên: Trần Long Thành: B18DCDT236 Nguyễn Kính Đảm: B18DCDT039 Trịnh Đức Tiệp: B18DCDT215 Thiết kế logic số Mục lục Thiết kế logic số Đề nhóm 19 Viết chương trình mơ tả mạch tạo mã chẵn/lẻ bit Viết chương trình mơ tả máy bán hàng tự động thả kẹo sau nhận 15 xu Máy có khe nhận tiền xu gồm đồng xu 10 xu, lần nhận xu Nếu đưa vào nhiều 15 xu, máy trả lại tiền thừa Sau sản phẩm đưa ra, máy trở lại trạng thái đợi ban đầu Hãy thiết kế mạch đồng dùng trigơ JK để mô mạch điều khiển máy bán hàng tự động Viết chương trình mô tả mạch đếm tần số hiển thị kết LED đoạn Viết chương trình mơ tả hợp kênh 16:1 từ hợp kênh 4:1 Bài Viết chương trình mơ tả mạch tạo mã chẵn/lẻ bit I Tổng quan nguyên lý hoạt động Nguyên lý đơn giản sau: - Mã chẵn số bit ‘1’ từ mã chẵn , mã lẻ ngược lại - Với bit ta làm tương tự II Mã chương trình giải thích Hàm main Phỏng theo nguyên tắc hoạt động bảng ta dễ dàng xây dựng chương trình cú pháp điều kiện đơn giản : if else Ta khai báo Port sau: - inp: in std_logic_vector(0 to 6); // từ mã đưa vào – bit hiểu diễn - chan: out std_logic_vector(0 to 7); // từ mã đầu – bit biểu diễn : bit cho đầu vào bit thêm vào để tạo mã chẵn - le: out std_logic_vector(0 to 7)); //// từ mã đầu – bit biểu diễn : bit cho đầu vào bit thêm vào để tạo mã lẻ Thiết kế logic số - Testbench Thiết kế logic số Thiết kế logic số III Chạy mô sơ đồ RTL - Như ta thấy ban đầu tín hiệu vào inp = 0000000 chẵn số ‘1’ để tạo mã chẵn ta cần thêm bit ‘0’ vào cuối từ mã , để tạo từ mã lẻ ta cần thêm bit ‘1’ vào cuối từ mã - Tiếp tục, inp =0000001 lẻ bit ‘1’ , để tao mã chẵn ta thêm bit ‘1’ mã lẻ ta thêm bit ‘0’ Bài Viết chương trình mơ tả máy bán hàng tự động thả kẹo sau nhận 15 xu Máy có khe nhận tiền xu gồm đồng xu 10 xu, lần nhận xu Nếu đưa vào nhiều 15 xu, máy trả lại tiền thừa Sau sản phẩm đưa ra, máy trở lại trạng thái đợi ban đầu Hãy thiết kế mạch đồng dùng trigơ JK để mô mạch điều khiển máy bán hàng tự động I Tổng quan nguyên lý hoạt động Việc thực chương trình mạch yêu cầu bọn em làm ý tưởng , cô xem không phát lỗi chương trình khơng chạy Vậy nên bọn em làm thay phương pháp máy trạng thái FSM Thiết kế logic số Nguyên lý hoạt động mơ tả đơn giản hình vẽ : xu – ‘0’ , 10 xu – ‘1’, nhận đủ 15 xu máy nhả kẹo , 15 xu máy nhả kẹo kèm tiền thừa II Mã chương trình giải thích Hàm main Thiết kế logic số Ta khai báo Port sau: - Clk : in std_logic ; // tín hiệu kích thích - Reset : in std_logic ; // tín hiệu dùng để quay lại trạng thái ban đầu, thực tế chức cần thiết , ví dụ ta đút xu vào máy không muốn mua sản phẩm , máy trả lại lại tiền quay lại vị trí ban đầu - Coin_in : in std_logic; //là tín hiệu đưa xu vào máy:‘0’ xu ,‘1’ 10xu - Drop_: out_std_logic ; //tín hiệu nhả kẹo - Coin_out :in std_logic ; //tín hiệu nhả tiền thừa Thiết kế logic số Ta tạo process : - Process (sreg , coin_In , flag) : có tác dụng chuyển trạng thái đưa xu vào : ví dụ S1 nhận coin_In =1 chuyển đến S3 - Process (sreg) : có tác dụng đưa giá trị đầu : nhả kẹo nhả tiền: ví dụ S3 thực nhả kẹo không nhả tiền , S4 nhả kẹo nhả tiền thừa , lại trạng thái S0 , S1 , S2 không nhả kẹo không nhả kẹo Thiết kế logic số Testbench 10 Thiết kế logic số III Chạy mô sơ đồ RTL - Khi đủ 15 xu nhả kẹo không nhả tiền thừa , đồng thời xung nhịp clock quay S0 để thực đút tiền vào máy để thực chu kỳ - Khi 15 xu nhả kẹo tiền thừa , xung nhịp clock quay S0 để thực chu kỳ Bài Viết chương trình mơ tả mạch đếm tần số hiển thị kết LED đoạn I Tổng quan nguyên lý hoạt động Nguyên lý hoạt động : ta tạo xung tham chiếu 1s , 1s , ta thực xây dựng tốn để đếm số chu kỳ xung clock truyền vào , kết đọc tần số xung Clock thị Led đoạn II Mã chương trình giải thích Việc xây dưng chương trình đơn giản cần cú pháp điều kiện đơn giản : if else Thực khai báo Port sau: - CLK : in STD_LOGIC; //tín hiệu kích thích đếm 11 Thiết kế logic số - ref : in STD_LOGIC; // tín hiệu tham chiếu , ta để 1s để thực đếm xung clock - qs: in std_logic; // tín hiệu giữ để quan sát việc hiển thị led, ví dụ thực đếm xung clock 1s , ta giữ giá trị đếm khoảng thời gian nhỏ để thị Led đoạn , chủ yếu để Led hiển thị không bị nhấp nháy - Led_chuc, Led_dvi : out STD_LOGIC_VECTOR(6 downto 0) ;// hiển thi giá trị đo Hàm main - Khi xung tham chiều ref =’0’ qs =’1’ , ta giữ giá trị đo để hiển thị Led - Nều khoảng tham chiếu ref= ‘1’ , chương trình thực đếm - Ưu điểm: chương trình thiết lập đơn giản 12 Thiết kế logic số - Nhược điểm : + Do ta dùng Led để thị giá trị tần số đo nên giá trị tối đa hiển thị 99 + Ta dùng xung tham chiếu 1s để đếm xung Clock nên tần số tối thiểu đo 1Hz - process hiển thị tần số đo Led đoạn Testbench 13 Thiết kế logic số - Ta để chu kỳ xung tham chiếu ref = 2s , 1s nửa chu kỳ lên dùng để đếm xung clock - Xung qs dùng để quan sát giá trị đo led , ta để chu kỳ lên 1900ms để hiển thị led không bị nhấp nháy 14 Thiết kế logic số III Chạy mô sơ đồ RTL - Khi ref = , chương trình thực đếm xung clock - Xung qs giữ lại giá trị đo để hiển thi led Bài Viết chương trình mơ tả hợp kênh 16:1 (Enable hoạt động mức thấp) I Tổng quan nguyên lý hoạt động Nguyên lý hoạt động : đầu Mux lấy từ giá trị đầu vào định tín hiệu từ chân địa Quan sát mô hoạt động Mux 4:1 để hiều nguyên lý hoạt động để từ xây dựng Mux 16:1 15 Thiết kế logic số Để xây dựng Mux 16:1 , ta có cách - Dùng trực tiếp Mux 16:1 - Dùng từ Mux nhỏ ( 8:1 , 4:1 , 2:1) II Mã chương trình giải thích Dùng trực tiếp Mux 16:1 Hàm main 16 Thiết kế logic số - Cách đơn giản sử dụng nên đưa để làm đa dạng cho cách giải toán Ghép từ Mux 4:1 Hàm main Ý tưởng đâu tạo chương trình Mux 4:1 để dựa vào để xây dựng Mux 16:1 Port Map - Cách xây dựng Mux 4:1 đơn giản , trước tiên khai báo Port; + d: in std_logic_vector(3 downto 0); // giá trị đầu vào : đầu vào 17 Thiết kế logic số + sel: in std_logic_vector(1 downto 0); // chân địa dùng chọn giá trị cho đầu + s: out std_logic ; // xuất giá trị - Xây dựng Mux 16:1 từ Mux 4:1 Port Map , hiểu đơn giản ánh xạ từ Mux 4:1 Tạo Mux 4:1 ta có đầu , từ đầu ta đưa vào đầu vào Mux 4:1 thứ để Mux 16:1 18 Thiết kế logic số 19 Thiết kế logic số III Chạy mô sơ đồ RTL - Khi chân địa sel2=00 sel1=00 , đầu lấy giá trị chân đầu vào thứ cin1 =0000 , tức theo thứ tự chân đầu vào thứ Mux 16:1 - Khi chân địa sel2=01 sel1=01 đầu giá trị chân thứ Mux 16:1 ( cin2(3,0)= 0010) 20 ... chẵn - le: out std _logic_ vector(0 to 7)); //// từ mã đầu – bit biểu diễn : bit cho đầu vào bit thêm vào để tạo mã lẻ Thiết kế logic số - Testbench Thiết kế logic số Thiết kế logic số III Chạy... Thực khai báo Port sau: - CLK : in STD _LOGIC; //tín hiệu kích thích đếm 11 Thiết kế logic số - ref : in STD _LOGIC; // tín hiệu tham chiếu , ta để 1s để thực đếm xung clock - qs: in std _logic; //... khai báo Port; + d: in std _logic_ vector(3 downto 0); // giá trị đầu vào : đầu vào 17 Thiết kế logic số + sel: in std _logic_ vector(1 downto 0); // chân địa dùng chọn giá trị cho đầu + s: out std_logic