Giáo trình Bộ môn Điện tử - Phần 2: Thí Nghiệm Kỹ Thuật Số Trên Kit Altera-DE II - Chương 1: Các Khái Niệm Cơ Bản & FPGA - Phạm Đăng Lâm - ĐH Bách Khoa TP.HCM

1. Khái niệm vi mạch mật độ tích hợp cao
Vi mạch tích hợp mật độ cao là cụm từ mang khái niệm khá tổng quát nhằm ám chỉ
những vi mạch mà bên trong đó tích hợp các thành phần, linh kiện rời với số lượng lớn.
Người đọc cần phân biệt khái niệm các linh kiện rời và vi mạch tích hợp qua hình vẽ 1.1
sau đây. Các vi mạch tích hợp này nếu không quan tâm nhiều đến mức độ tích hợp
thường được gọi chung là “CHIP”.
Hình 1.1 Linh kiện rời và vi mạch tích hợp mật độ cao
Có thể thấy CHIP là từ ngữ ám chỉ một vi mạch tích hợp mà trong đó hàng ngàn đến
hàng triệu linh kiện rời được tích hợp trong một khoảng không gian giới hạn hoặc đơn
giản chỉ một số ít các linh kiện được tích hợp. Xu hướng sử dụng các vi mạch có mật độ
cao cũng như nhiều ứng dụng khác nhau trên một CHIP trong các ứng dụng thường ngày
của cuộc sống, mà cụ thể hoá là các thiết bị cầm tay thông minh hiện nay, đã và đang trở
thành xu thế chung của thế g 
pdf 132 trang xuanthi 26/12/2022 4200
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Bộ môn Điện tử - Phần 2: Thí Nghiệm Kỹ Thuật Số Trên Kit Altera-DE II - Chương 1: Các Khái Niệm Cơ Bản & FPGA - Phạm Đăng Lâm - ĐH Bách Khoa TP.HCM", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfgiao_trinh_bo_mon_dien_tu_phan_2_thi_nghiem_ky_thuat_so_tren.pdf

Nội dung text: Giáo trình Bộ môn Điện tử - Phần 2: Thí Nghiệm Kỹ Thuật Số Trên Kit Altera-DE II - Chương 1: Các Khái Niệm Cơ Bản & FPGA - Phạm Đăng Lâm - ĐH Bách Khoa TP.HCM

  1. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Hình 2.30 Kiểm tra kết quả bằng các Switch và đèn LEDR Tuy nhiên có một vấn đề là khi kiểm tra trên kít chức năng của đoạn mã lệnh mà người dùng nạp xuống, người dùng chỉ có thể biết được chương trình chạy đúng hay sai bằng mắt (cho dù cú pháp có thể đúng hết nhưng hành vi vẫn có thể sai và không giống mong muốn của người dùng). Ví dụ giả sử người dùng muốn bật SW thứ 0 cho LEDR thứ 1 và bật SW thứ 1 cho LEDR thứ 0 thì chương trình trên đã chạy sai mặc dù các bước kiểm tra cú pháp (bước biên dịch) vẫn không báo lỗi. Như vậy cần một cơ chế để đảm bảo rằng hành vi của người dùng mong muốn là đúng. Trước khi đổ chương trình xuống kít (trước bước kết nối ở hình 2.24) một bước cần thiết thực hiện để kiểm tra hành vi của thiết kế có như mong muốn hay không được thực hiện bằng cách tiến hành mô phỏng thiết kế trước khi thực hiện Các bước sau đây mô tả việc thực hiện tạo giản đồ xung mô tả hành vi của thiết kế để kiêm tra xem thiết kế có chạy như mong muốn hay không 34
  2. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Hình 2.33 Chọn tên tín hiệu cần mô phỏng (Chọn OK) Hình 2.34 Chọn chính xác chân muốn tạo dạng sóng (Chọn Pins: all rồi nhấn OK) 36
  3. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Hình 2.37 Chọn OK sau khi thiết lập các thông số Hình 2.38 Giao diện dạng sóng với tín hiệu ngõ vào SW đang là zero mặc định 38
  4. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Hình 2.42 Tạo giá trị 0 từ thời điểm 0 đến thời điểm 30ns cho tín hiệu SW thứ 1 Hình 2.43 Tạo giá trị 0 và 1 cho tín hiện SW thứ 1 và thứ 0 hoàn tất Hình 2.44 Sau khi lưu file thì tiến hành mô phỏng bằng cách nhấn vào biểu tượng trên thanh công cụ Nhìn vào hình 2.44 cho thấy tín hiệu ngõ ra LEDR theo đúng như tín hiệu ngõ vào SW. Điều này đúng theo mong muốn thiết kế SW thứ 0 gán cho LEDR thứ 0 và SW thứ 1 gán cho LEDR thứ 1 40
  5. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm kỹ sư thiết kế phần cứng phải hiểu rõ từng chi tiết, từng đường tín hiệu và trì hoãn đối với thiết kế của mình. 1. Khai báo một thiết kế Một thiết kế phần cứng bao giờ cũng gồm các thành phần sau đây + Các ngõ vào + Khối xử lý + Các ngõ ra Các ngõ ra và ngõ vào với tên tương ứng và độ rộng bus (số dây tín hiệu) được gọi là giao diện của thiết kế. Thiết kế cũng phải có tên tương ứng. Một thiết kế phần cứng có thể đơn giản chỉ là một cổng AND logic 2 ngõ vào, một DFF, phức tạp hơn là một bộ cộng hay một thiết kế CPU tinh vi. Hình 3.1 mô tả sơ đồ khối một thiết kế phần cứng có tên “test01” với giao diện là 2 ngõ vào A, B và 1 ngõ ra la O. Nội dung hành vi bên trong của thiết kế chưa được trình bày (BlackBox). Hình 3.1 Giao diện thiết kế Sau đây là một phần ngôn ngữ Verilog HDL và VHDL mô tả khai báo một thiết kế (“//”: Comment trong Verilog và “—“: Comment trong VHDL) 42
  6. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Khai báo ngõ vào và ngõ ra port ( A: in std_logic ; B: in std_logic; O : out std_logic ); Kết thúc khai báo thiết kế end entity; end entity; Nội dung của thiết kế được viết sau khi khai báo kết thúc thiết kế. Điều này khác với Verilog với nội dung trước khai báo kết thúc endmodule Nếu ngõ vào và ngõ ra không phải là dạng tín hiệu đơn (1 dây) mà là dạng bus (Nhiều dây nhưng đặt cùng một tên) thì hình 3.2 thể hiện giao diện như sau Hình 3.2 Giao diện thiết kế với dạng Bus Sau đây là mã ngôn ngữ Verilog và VHDL mô tả thiết kế module test01 (A, B, O); //Khai báo ngõ vào có thêm nội dung số dây trên một bus từ 2/3/4 đến 0 44
  7. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Kết thúc khai báo thiết kế end entity; end entity; 2. Nội dung của một thiết kế phần cứng Nội dung của một thiết kế được mô tả chi tiết ở dưới dạng các cổng logic và các DFF. Ví dụ sau đây mô tả chi tiết một thiết kế bao gồm một bộ chọn kênh và một DFF. Hình 3.3 Đặc tả nội dung của một thiết kế phần cứng Như vậy nếu đặc tả chi tiết nội dung thiết kế được mô tả chi tiết ở mức độ cổng logic và DFF thì điều này có nghĩa là: Khi người kỹ sư biết viết các cổng logic và DFF bởi ngôn ngữ Verilog hay VHDL thì cho dù thiết kế có phức tạp đến mức nào nhưng nếu đặc tả chi tiết thiết kế đó được đưa về dạng mức cổng logic và DFF thì việc viết code luôn dễ dàng và khả thi. Sau đây là một số đoạn code Verilog và VHDL mô tả cách viết các cổng logic và DFF 46
  8. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Hình 3.5 Toàn bộ thiết kế và các bước chi tiết bởi Verilog Nhìn vào hình 3.5 thì toàn bộ thiết kế được chú ý với những điểm sau: + Tất cả các ngõ vào và ngõ ra đều phải được khai báo kiểu dữ liệu là “reg” hay “wire”, ngõ ra Q cần được khai báo dạng “reg”. Nếu không khai báo mặc định sẽ hiểu là “wire” và tất cả các ngõ vào (CLK, R, S, A) trong tất cả các thiết kế bắt buộc dạng “wire” nên không cần khai báo vì đã được mặc định. Vậy khi nào ngõ ra là dạng “reg”/“wire”? Bất cứ tín hiệu nào được gán trong vòng “always” thì được khai báo dạng “reg”, các tín hiệu được gán bởi “assign” được khai báo là dạng “wire”. + Tín hiệu D không phải là ngõ vào, không phải là ngõ ra mà được xem như là tín hiệu nội bên trong thiết kế. Tín hiệu này không được khai báo ở phía trên module (module chỉ khai báo các tin hiệu là ngõ vào và ngõ ra) nhưng phải được khai báo ngay sau khi khai báo các tín hiệu ngõ vào và ngõ ra và có kiểu dữ liệu tương ứng. Ở ví dụ này, D có kiểu dữ liệu là “wire” vì D được gán bởi thủ tục “assign” 48
  9. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Hình 3.7 Thiết kế chi tiết bằng ngôn ngữ VHDL Với hình 3.7, để bắt đầu hành vi của thiết kế, từ khóa “architecture” được sử dụng và kết thúc bởi từ khóa “end architecture”. Các thủ tục “process” trong ngôn ngữ VHDL tương tự với thủ tục “always” như trong ngôn ngữ Verilog. Các cổng logic (hay các mạch tổ hợp) có thể được viết bởi hải kiểu là trực tiếp hoặc thông qua thủ tục “process”. Tín hiệu nội của thiết kế thì được khai báo ngay sau khi khai báo từ khóa “architecture”. Với hình 3.7, tín hiệu Buf được yêu cầu làm trung gian vì ngõ ra Q không được truy xuất trực tiếp về bộ chọn kênh (Q là tín hiệu ngõ ra không được đọc về). Điều này khác với ngôn ngữ Verilog HDL là cho phép đọc về tín hiệu ngõ ra Q. 50
  10. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Nếu đổi mã lệnh sao cho thiết kế là một bộ AND logic và một DFF như mã sau module test01 (CLK, R, S, A, Q); input CLK; input R; input S; input A; output Q; reg Q; wire D; assign D = S && A; always@(posedge CLK or negedge R) begin if(R == 0) begin Q <= 0; end else begin Q <= D; end end endmodule hay đối với code mã VHDL library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity test01 is port ( CLK : in std_logic; 52
  11. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 3. Khái niệm Reset đồng bộ và reset bất đồng bộ Khái niệm đồng bộ không sử dụng đối với 1 tín hiệu mà đó là khái niệm cho 2 tín hiệu khi có sự so sánh về mặt thời gian. Khi nói một tín hiệu đồng bộ hay bất đồng bộ thì cần chỉ ra tín hiệu đó đồng bộ hay bất đồng bộ với tín hiệu nào. Tín hiệu được so sánh thường là tín hiệu xung CLOCK, một tín hiệu reset bất đồng bộ được xem là một tín hiệu đặc biệt truyền thẳng vào DFF trong khi một tín hiệu reset đồng bộ được xem như tín hiệu thông thường và truyền đến ngõ vào của DFF như hình vẽ sau Hình 3.10 Reset đồng bộ và bất đồng bộ 54
  12. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Với hai đoạn code trên, cuối cùng tín hiệu A cũng sẽ truyền đến tín hiệu D, tuy nhiên việc truyền từ A đến D sẽ khác nhau về mặt thời gian. Cụ thể với hai đoạn mã trên, kết quả tổng hợp sẽ cho ra các phần cứng khác nhau như hình sau Hình 3.12 Kết quả tổng hợp phần cứng Theo như hình 3.12, chỉ một DFF được tạo ra cho việc gán Blocking trong khi có tới 3 DFF được tạo ra đối với gán Non-Blocking. Việc này tạo sự khác biệt về mặt thời gian rất lớn và yêu cầu kỹ sư thiết kế phần cứng phải hiểu rõ vì các tín hiệu chạy song song về mặt thời gian. Việc hiểu lầm về các phép gán gây ra sai sót trong vấn đề dự đoán thời gian của các tín hiệu làm sai thiết kế hay làm giảm hiệu năng của thiết kế. Tuy nhiên nếu chỉ gán 1 tín hiệu từ A sang B thì việc phép gán nào cũng như nhau như hình 3.13 Trong VHDL, việc gán giá trị cho một tín hiệu luôn là Non-Blocking “<=”, phép gán Blocking “=” chỉ được sử dụng để kiểm tra giá trị đó có bằng với một hằng số hay không như trong các câu lệnh if (sel = ‘0’). 56
  13. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Hình 3.14 Phân chia các cấp độ thiết kế Hình 3.15 Thực hiện mã Verilog cho từng thiết kế bên trong 58
  14. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Hình 3.17 Tín hiệu X nối ngõ vào và ngõ ra của hai thiết kế nhỏ + Quy ước kết nối tín hiệu ở mức top sẽ kết nối tín hiệu ở mức thấp hơn theo tên như hình 3.18 Hình 3.18 Kết nối theo tên 60
  15. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Mã VHDL cho thiết kế tương tự được thể hiện như sau library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity top is port ( CLK : in std_logic; R : in std_logic; S : in std_logic; A : in std_logic; Q :out std_logic ); end entity; architecture rtl_top of top is Khai báo thiết kế con bên trong kiến trúc thiết kế cha component seq port ( CLK : in std_logic; R : in std_logic; D : in std_logic; Q :out std_logic ); end component; component com port( S : in std_logic; A : in std_logic; Buf : in std_logic; D :out std_logic ); end component ; 62
  16. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm elsif (S = '1') then D <=Buf; end if; end process; end rtl_com; Thiết kế con seq: cho DFF library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity seq is port ( CLK : in std_logic; R : in std_logic; D : in std_logic; Q :out std_logic ); end entity; architecture rtl_seq of seq is begin process (CLK, R) begin if (R= '0') then Q <= '0'; elsif (rising_edge(CLK)) then Q <= D; end if; end process; end rtl_seq; Việc gọi kết nối thông qua các thủ tục khai báo “component” trước tiên và gọi các thiết kế con với tên định danh sau đó. Tín hiệu Q_Buf vẫn cần thiết vì không thể đọc tín hiệu ngõ ra Q đối với ngôn ngữ VHDL. Tín hiệu D-Buf là tín hiệu trung gian nối ngõ ra của bộ chọn kênh và ngõ vào của bộ DFF Hình 3.20 thể hiện thứ bậc thiết kế rõ ràng sau khi tổng hợp và xem kết quả tổng hợp (Tools/Netlist Viewers/RTL Viewers). Khi nhấp đúp vào từng khối thiết kế, DFF không 64
  17. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Chương 4. Các Bài Tập Thí Nghiệm Các bài tập thí nghiệm cho sinh viên chính quy đại học Bách Khoa bắt buộc sử dụng ngôn ngữ VHDL. Người đọc độc lập có thể sử dụng bất cứ ngôn ngữ nào quen thuộc nhất. Trước khi tiến hành thí nghiệm, sinh viên cần đọc kỹ các chương 1, 2 và 3 để hiểu rõ thêm về mục đích thí nghiệm và các ví dụ có sẵn Sinh viên được yêu cầu in các bài thí nghiệm trước khi đến phòng thí nghiệm. Các bước từ 2.1 cho đến bước viết đoạn mã VHDL phải được chuẩn bị tại nhà Sinh viên có thể làm thử các ví dụ cho trước ở các chương 1, 2 và 3 trước khi tiến hành các bài thí nghiệm 66
  18. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.2 Mã VHDL/Verilog cho cổng logic (Đối với sinh viên, mã VHDL được yêu cầu viết với 2 trường hợp: Dùng thủ tục “process” và không dùng thủ tục này) 68
  19. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.4 Kết quả tổng hợp ở mức cổng cho cổng logic (Xem hình 3.8) Nhận xét 70
  20. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.6. Nhận xét kết quả sau khi đổ lên kít DE2 72
  21. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.2 Mã VHDL/Verilog cho hàm F 74
  22. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.4 Kết quả tổng hợp ở mức cổng cho hàm F (Xem hình 3.8) Nhận xét 76
  23. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.6. Nhận xét kết quả sau khi đổ lên kít DE2 II/ Mạch tổ hợp được thiết kế bằng cách gọi các thiết kế con thành phần 1. Yêu cầu + Tạo dự án thực hiện hàm F có mô tả như sau. F =∑(0, 2, 3, 8, 10) + Thực hiện rút gọn hàm F bằng bìa K để tạo hàm tối ưu trước khi viết code VHDL/Verilog + Trong quá trình viết code VHDL/Verilog, các cổng logic thành phần được yêu cầu chia nhỏ thành nhiều thiết kế con như mục 5 thuộc chương 2. Yêu cầu có ít nhất 2 thiết kế nhỏ thành phần trong quá trình viết code. Việc chia nhỏ thiết kế con như thế nào, gồm những logic gì tùy thuộc vào người thiết kế. + Kết nối ngõ vào của hàm F tối ưu với các SW và kết nối ngõ ra của hàm F tối ưu với các LEDR và kiểm tra chức năng + Hướng dẫn Tham khảo Chương 2 để hiểu quy trình sử dụng công cụ Tham khảo Chương 3 để biết cách sử dụng ngôn ngữ 78
  24. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.2 Mã VHDL/Verilog cho hàm F 80
  25. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.4 Kết quả tổng hợp ở mức cổng cho hàm F(Xem hình 3.8) III/ Bộ cộng toàn phần (Full Adder) 3 bit 1. Yêu cầu + Thiết kế bộ cộng 3 (Full Adder) 3 bit + Người dùng có thể thiết kế bằng cách gọi các bộ cộng bán phần (Half Adder) hoặc không chọn tùy thích + Bộ cộng này sẽ được tái sử dụng ở những bài sau + Hướng dẫn Tham khảo Chương 2 để hiểu quy trình sử dụng công cụ Tham khảo Chương 3 để biết cách sử dụng ngôn ngữ Tham khảo lý thuyết Kỹ Thuật Số để hiểu rõ về bộ cộng toàn phần 2. Báo cáo 82
  26. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.2 Mã VHDL/Verilog cho bộ cộng toàn phần 84
  27. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.4 Kết quả tổng hợp ở mức cổng cho bộ cộng toàn phần (Xem hình 3.8) Nhận xét 86
  28. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.6. Nhận xét kết quả sau khi đổ lên kít DE2 III/ Bộ giải mã 1. Yêu cầu + Thiết kế bộ giải mã từ 4 bít sang giá trị Led 7 đoạn + Bộ giải mã này sẽ được tái sử dụng ở những bài sau + Hướng dẫn Tham khảo Chương 2 để hiểu quy trình sử dụng công cụ Tham khảo Chương 3 để biết cách sử dụng ngôn ngữ Tham khảo lý thuyết Kỹ Thuật Số để hiểu rõ về bộ cộng toàn phần 2. Báo cáo 2.1 Bảng sự thật với 11 cột và 16 trường hợp, 4 cột đầu cho 4 bít ngõ vào quy đinh giá trị sẽ được sáng trên led 7 đoạn và 7 cột sau cho 7 bit ngõ ra (mỗi bít biểu diển một thanh led trên led 7 đoạn) 88
  29. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.2 Mã VHDL/Verilog bộ giải mã (7 hàm F1, F2 F7) 90
  30. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.4 Kết quả tổng hợp ở mức cổng cho bộ giải mã (Xem hình 3.8) Nhận xét 92
  31. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.6. Nhận xét kết quả sau khi đổ lên kít DE2 94
  32. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.2 Mã VHDL/Verilog cho dự án (project) 2.3 Kết quả biên dịch (Xem hình 2.22) Nhận xét: 96
  33. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm II/ Thiết kế mạch đếm xuống 4 bít nối tiếp (Bất đồng bộ) 1. Yêu cầu + Tạo dự án thực hiện thiết kế mạch đếm xuống 4 bit nối tiếp bất đồng bộ + Kết nối ngõ vào của thiết kế với các SW và kết nối ngõ ra của thiết kế với các LEDR và kiểm tra chức năng + Ngõ vào xung Clock nên được gán vào SW, việc gạt SW lên xuống để tạo xung ClOCK cho riêng mình. Chân CLOCK_27 hoặc CLOCK_50 trên FPGA cũng có thể được sử dụng, tuy nhiên tần số sẽ là 27 MHz và 50 MHz sẽ làm mắt thường không kịp nhìn thấy. Do đó để có thể sử dụng hai nguồn CLOCK này, một bộ chia tần số cần được thiết kế tùy thuộc vào tần số người dùng mong muốn. + Hướng dẫn Tham khảo Chương 2 để hiểu quy trình sử dụng công cụ Tham khảo Chương 3 để biết cách sử dụng ngôn ngữ 2. Báo cáo 2.1 Đặc tả thiết kế yêu cầu (Người thực hành vẽ chi tiết thiết kế mạch logic đếm xuống 4 bít). 98
  34. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.3 Kết quả biên dịch mạch đếm xuống 4 bít nối tiếp (Xem hình 2.22) Nhận xét: 100
  35. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.5 Kết quả giản đồ xung mạch đếm xuống 4 bít nối tiếp (Xem hình 2.44) Nhận xét 102
  36. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm III/ Thiết kế mạch đếm xuống 6 bít song song (đồng bộ) 1. Yêu cầu + Tạo dự án thực hiện thiết kế mạch đếm xuống 6 bit nối tiếp đồng bộ + Kết nối ngõ vào của thiết kế với các SW và kết nối ngõ ra của thiết kế với các LEDR và kiểm tra chức năng + Ngõ vào xung Clock nên được gán vào SW, việc gạt SW lên xuống để tạo xung ClOCK cho riêng mình. Chân CLOCK_27 hoặc CLOCK_50 trên FPGA cũng có thể được sử dụng, tuy nhiên tần số sẽ là 27 MHz và 50 MHz sẽ làm mắt thường không kịp nhìn thấy. Do đó để có thể sử dụng hai nguồn CLOCK này, một bộ chia tần số cần được thiết kế tùy thuộc vào tần số người dùng mong muốn. + Hướng dẫn Tham khảo Chương 2 để hiểu quy trình sử dụng công cụ Tham khảo Chương 3 để biết cách sử dụng ngôn ngữ 2. Báo cáo 2.1 Đặc tả thiết kế yêu cầu (Người thực hành vẽ chi tiết thiết kế mạch logic đếm xuống 4 bít). 104
  37. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.3 Kết quả biên dịch mạch đếm xuống 6 bít song song (Xem hình 2.22) Nhận xét: 106
  38. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.5 Kết quả giản đồ xung mạch đếm xuống 6 bít song song (Xem hình 2.44) Nhận xét 108
  39. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm IV/ Thiết kế mạch đếm lên 5 bít. 1. Yêu cầu + Tạo dự án thực hiện thiết kế mạch đếm lên 6 bit tuân theo quy luật 00000 00001 00011 . 01100 0000 (Trở về 0 tại 01100 rồi lại tiếp tục) + Có thể sử dụng mạch đếm nối tiếp hoặc song song tùy ý + Kết nối ngõ vào của thiết kế với các SW và kết nối ngõ ra của thiết kế với các LEDR và kiểm tra chức năng + Ngõ vào xung Clock nên được gán vào SW, việc gạt SW lên xuống để tạo xung ClOCK cho riêng mình. Chân CLOCK_27 hoặc CLOCK_50 trên FPGA cũng có thể được sử dụng, tuy nhiên tần số sẽ là 27 MHz và 50 MHz sẽ làm mắt thường không kịp nhìn thấy. Do đó để có thể sử dụng hai nguồn CLOCK này, một bộ chia tần số cần được thiết kế tùy thuộc vào tần số người dùng mong muốn. + Hướng dẫn Tham khảo Chương 2 để hiểu quy trình sử dụng công cụ Tham khảo Chương 3 để biết cách sử dụng ngôn ngữ 110
  40. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.2 Mã VHDL/Verilog cho mạch đếm lên 5 bít (project) 112
  41. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.4 Kết quả tổng hợp ở mức cổng mạch đếm lên 5 bít ( Xem hình 3.8) Nhận xét 114
  42. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.6. Nhận xét kết quả sau khi đổ lên kít DE2 116
  43. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm Vẽ lại đặc tả yêu cầu với các thiết kế con thành phần chi tiết (tham khảo hình 3.14). Đối với thiết kế này, người thực hiện được yêu cầu phân tích thiết kế và vẽ chi tiết thiết kế ở mức cổng đối với từng khối. Việc đặt tên cho từng tín hiệu ngõ vào, ngõ ra, các thiết kế con và các tín hiệu nội được yêu cầu chi tiết 118
  44. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 120
  45. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.4 Kết quả tổng hợp ở mức cổng ( Xem hình 3.8) Nhận xét 122
  46. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.6. Nhận xét kết quả sau khi đổ lên kít DE2 124
  47. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 126
  48. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 128
  49. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.4 Kết quả tổng hợp ở mức cổng ( Xem hình 3.8) Nhận xét 130
  50. Bộ Môn Điện Tử-ĐH Bách Khoa TP.HCM Phạm Đăng Lâm 2.6. Nhận xét kết quả sau khi đổ lên kít DE2 132