Buổi 7. Máy trạng thái với Verilog-HDL Mục đích: Thiết kế sử dụng mô hình máy trạng thái Cũng cố kiến thức lý thuyết về các máy trạng thái Moore và Mealy Biết cách xây dựng máy trạng thái dùng Verilog-HDL 1. Giới thiệu Quy trình thiết kế FPGA thông thường khá phức tạp đòi hỏi người thiết kế phải thông qua khá nhiều bước phức tạp. Máy trạng thái là một trong những bước trung gian giúp cho quá trình thiết kế và hiện thực code verilog trở nên dễ dàng hơn đối với người lập trình. Thông thường có 2 dạng máy trạng thái: Moore và Mealy. Tuy nhiên trong Quartus, công cụ xây dựng máy trạng thái trực quan chỉ hổ trỡ máy trạng thái Moore. Bài thực hành này sẽ giúp các bạn sinh viên tiếp cận với cách thiết kế máy trạng thái dùng Verilog-HDL để xây dựng một máy trạng thái theo một trong hai dạng trên. 2. Hướng dẫn Sinh viên dùng Quartus II tạo lần lượt 2 projects là NRZ_2_Manchester_Moore và NRZ_2_Manchester_Mealy. Trong mỗi projects sinh viên làm các công việc sau đây 1. Viết đặc tả máy trạng thái chuyển mã từ NRZ sang Manchester tương ứng cho từng loại (tham khảo chương trình nguồn trong slide 54 chương 6) 2. Tổng hợp và xem kết quả tổng hợp trong phần Netlist viewer/RTL Viewer của cửa sổ Task như trên hình bên dưới Hình 1. Cửa sổ Task của Quartus II 3. Cho nhận xét về sự khác biệt của mạch tạo ra trong 2 projects trên. 4. Sử dụng ModelSim mô phỏng với dữ liệu như sau always #5 clk = ~clk; initial begin reset = 1'b0; B_in = 1; #5 reset = 1'b1; #10 B_in = 0; #10 B_in = 1; #10 B_in = 0; #10 B_in = 1; #50 B_in = 1; end Giải thích nguyên nhân sự khác biệt của thời gian thay đổi tín hiệu ngõ ra B_out trong dạng sóng của ModelSim. Từ đó rút ra kết luận gì? 3. Bài tập Hiện thực các máy trạng thái trong bài 6 và làm công việc giống như trên phần hướng dẫn.