Tổng quan về giáo trình

Giáo trình Thực hành Thiết kế Vi mạch số với VHDL do ThS. Nguyễn Đình Phú và ThS. Trương Thị Bích Ngà biên soạn, được Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh ấn hành năm 2017. Tài liệu được biên soạn phục vụ học phần thực hành trong chương trình đào tạo kỹ sư và cử nhân các ngành Kỹ thuật Điện tử Công nghiệp, Điện tử Truyền thông và Kỹ thuật Máy tính tại các trường đại học.

Mục tiêu đào tạo của giáo trình tập trung vào việc hiện thực hóa các kiến thức lý thuyết về mạch logic số và ngôn ngữ mô tả phần cứng VHDL (VHSIC Hardware Description Language) lên phần cứng khả trình FPGA (Field-Programmable Gate Array). Sau khi hoàn thành chương trình thực hành, người học có khả năng sử dụng thành thạo phần mềm thiết kế vi mạch chuyên dụng, làm chủ quy trình tổng hợp mạch, gán chân I/O, nạp cấu hình và kiểm chứng hoạt động của các khối vi mạch số từ cơ bản đến phức tạp trên phần cứng thực tế.

Cấu trúc giáo trình gồm 8 chương, được xây dựng theo phương pháp tiếp cận mô-đun hóa (modular design) và tịnh tiến độ khó. Nội dung đi từ việc khảo sát phần cứng của Kit thí nghiệm và hướng dẫn công cụ phần mềm EDA, tiến đến thiết kế các khối mạch tổ hợp, mạch tuần tự, và kết thúc bằng việc tích hợp các hệ thống giao tiếp ngoại vi, bộ nhớ và chuẩn truyền thông số.

Điểm đặc trưng của tài liệu là tính định hướng thực nghiệm cao. Toàn bộ các bài thực hành đều được xây dựng đồng bộ trên kit FPGA Xilinx Spartan-3E (chip XC3S500E-PQ208) và môi trường phần mềm Xilinx ISE Design Suite 14. Mọi sơ đồ kết nối phần cứng, giản đồ thời gian đọc/ghi, bảng phân bổ chân I/O và mã nguồn mô tả phần cứng VHDL đều được cung cấp chi tiết nhằm phục vụ công tác kiểm chứng trực tiếp trên phần cứng.


Nội dung kiến thức cốt lõi

[Chương 1-2: Phần cứng XC3S500E & ISE Design Suite 14]
      [Chương 3: Thiết kế khối Mạch tổ hợp]
   [Chương 4-5: Thiết kế Mạch tuần tự, FSM & LED/Sensor]
 [Chương 6-8: Hiển thị LCD, Bộ nhớ SRAM/SDRAM & Bus UART/I2C]

Các chương và chủ đề chính

Nội dung giáo trình được triển khai qua 8 chương chuyên đề với cấu trúc logic chặt chẽ:

  • Chương 1: Cấu hình kit FPGA: Khảo sát cấu trúc phần cứng chip Xilinx Spartan-3E XC3S500E-PQ208 (gói 208 chân PQFP, hỗ trợ 158 chân I/O, nguồn 5V/3.3V, mạch dao động 50MHz tại chân PIN_183). Giới thiệu sơ đồ kết nối ngoại vi: 8 switch gạt, 5 nút nhấn, 8 LED đơn tích cực mức 0, 8 LED 7 đoạn anode chung quét transistor, LED ma trận 8x8, cảm biến nhiệt 1-Wire DS18B20, IC đệm công suất ULN2003, IC thời gian thực DS1302/DS1307, DAC 0832, MAX232, cổng PS/2, VGA 8-bit, thẻ nhớ SD, bộ nhớ SRAM IS61LV25616 và SDRAM IS42S16400.
  • Chương 2: Hướng dẫn sử dụng phần mềm lập trình: Trình bày quy trình làm việc trên bộ công cụ Xilinx ISE Design Suite 14 (ISE WebPACK), bao gồm: khởi tạo project, soạn thảo mã nguồn VHDL, tổng hợp mạch (Synthesis), kiểm tra cú pháp, gán chân I/O (PlanAhead / Constraints Editor) và nạp file bitstream xuống chip FPGA hoặc chip PROM cấu hình thông qua phần mềm ISE iMPACT.
  • Chương 3: Thiết kế mạch tổ hợp: Xây dựng các khối chức năng không lưu trạng thái: mạch giải mã 2 sang 4, mạch mã hóa ưu tiên 4 sang 2, mạch đa hợp (Multiplexer) 4 kênh 1-bit/2-bit, mạch giải đa hợp (Demultiplexer), mạch giải mã LED 7 đoạn (mã hex anode chung), mạch cộng/trừ nhị phân 4-bit, mạch chuyển đổi số nhị phân sang mã BCD (Binary-Coded Decimal) và mạch chuyển đổi mã nhị phân sang mã Gray. Khảo sát các cấu trúc lệnh VHDL: lệnh gán có điều kiện (when-else), lệnh gán lựa chọn (with-select), cấu trúc rẽ nhánh (if-then-else) và cấu trúc lựa chọn (case-when).
  • Chương 4: Thiết kế mạch tuần tự 1 (Giao tiếp nút nhấn, switch, LED đơn): Thiết kế mạch chia tần số (Frequency Divider) từ xung clock hệ thống 50MHz tạo các cấp tần số 1Hz, 5Hz, 10Hz; mạch tạo xung cho phép (Enable Pulse Generator); mạch đếm nhị phân 4-bit/8-bit đếm lên/xuống; máy trạng thái hữu hạn (FSM) mô hình Moore và Mealy; mạch chống dội nút nhấn (Debounce circuit); mạch làm hẹp xung; mạch đếm vòng (Ring counter) và đếm Johnson; mạch điều khiển 8 LED hiệu ứng chạy điểm sáng và sáng dồn; phương pháp thiết kế phối hợp giữa sơ đồ khối (Schematic) và mã nguồn VHDL.
  • Chương 5: Thiết kế mạch tuần tự 2 (Giao tiếp nút nhấn, switch, LED 7 đoạn): Thiết kế mạch đếm từ 1 đến 4 chữ số hiển thị quét trên LED 7 đoạn; mạch 2 bộ đếm độc lập điều khiển đa tần số; mạch đồng hồ số hiển thị giờ-phút-giây có chức năng hiệu chỉnh phím bấm, hẹn giờ và đồng hồ thể thao; mạch đọc dữ liệu nhiệt độ từ cảm biến DS18B20 theo giao thức 1-Wire sử dụng máy trạng thái thuật toán (ASM) để điều khiển các chu kỳ Reset/Presence, Write Scratchpad, Convert T và Read Scratchpad.
  • Chương 6: Thiết kế mạch tuần tự 3 (Giao tiếp LCD, GLCD): Kỹ thuật điều khiển LCD 16x2 và 20x4 qua bus dữ liệu 8-bit và 4-bit; quản lý vùng nhớ hiển thị DDRAM; lập trình vùng nhớ CGRAM (Character Generator RAM) để hiển thị ký tự tự tạo và ghép ký tự tạo font số lớn (kích thước đa dòng); giao tiếp màn hình đồ họa GLCD 128x64.
  • Chương 7: Thiết kế mạch giao tiếp bộ nhớ RAM bằng VHDL: Khảo sát cấu trúc bộ nhớ tĩnh SRAM IS61LV25616 (256K x 16-bit) và SDRAM; thiết kế bộ điều khiển bộ nhớ (Memory Controller) tạo các tín hiệu điều khiển /CE, /OE, /WE, /UB, /LB chuẩn hóa theo giản đồ thời gian chu kỳ đọc/ghi dữ liệu; ứng dụng lưu và xuất dữ liệu từ SRAM lên LCD.
  • Chương 8: Giao tiếp truyền dữ liệu: Thiết kế hệ thống truyền thông nối tiếp bất đồng bộ UART hoàn chỉnh gồm: bộ tạo tốc độ baud (Baud Rate Generator), bộ phát (Transmitter), bộ nhận (Receiver) và bộ đệm FIFO (First-In First-Out) kết nối máy tính qua phần mềm Terminal; thiết kế bộ điều khiển giao tiếp bus nối tiếp đồng bộ I2C đọc/ghi dữ liệu IC thời gian thực DS1307, EEPROM AT24C04, IC mở rộng cổng PCF8574; thiết kế mạch giao tiếp module hiển thị và phím quét TM1638 (LED&KEY).
Chương Tên chương Khối mạch / Ngoại vi trọng tâm Giao thức / Kiến trúc áp dụng
1 Cấu hình kit FPGA Kit Spartan-3E XC3S500E-PQ208 158 chân I/O, Clock 50MHz, Bus ngoại vi
2 Hướng dẫn sử dụng phần mềm Xilinx ISE 14, iMPACT Synthesis, Pin Constraints, JTAG/PROM
3 Thiết kế mạch tổ hợp Bộ cộng, MUX/DEMUX, Decoder when-else, with-select, case-when
4 Mạch tuần tự 1: I/O cơ bản Mạch chia tần, Debounce, Ring Counter FSM Moore/Mealy, Xung cho phép (ENA)
5 Mạch tuần tự 2: LED 7 đoạn Đếm 1-4 số, Đồng hồ số, DS18B20 Quét Anode chung, Giao thức 1-Wire, ASM
6 Mạch tuần tự 3: LCD / GLCD LCD 16x2, 20x4, GLCD 128x64 Bus 8-bit/4-bit, Quản lý DDRAM/CGRAM
7 Giao tiếp bộ nhớ RAM SRAM IS61LV25616, SDRAM Khối Memory Controller, Giản đồ /CE, /OE, /WE
8 Giao tiếp truyền dữ liệu UART, I2C, SPI/Serial (TM1638) Bộ đệm FIFO, Baud Generator, Master-Slave

Kiến thức nền tảng được xây dựng

Giáo trình củng cố và hệ thống hóa các nguyên lý thiết kế hệ thống số:

  • Lý thuyết mạch số và máy trạng thái: Đại số Boolean, logic tổ hợp, mạch tuần tự đồng bộ (Synchronous sequential circuits), mô hình hóa hệ thống bằng máy trạng thái hữu hạn FSM (Moore, Mealy) và sơ đồ máy trạng thái thuật toán (ASM/ASMD chart).
  • Phương pháp luận mô tả phần cứng: Cấu trúc phân cấp thiết kế vi mạch (Hierarchy design), phân biệt giữa xử lý luồng đồng thời (concurrent execution) và luồng tuần tự (sequential process), kỹ thuật thiết kế mô-đun hóa kết hợp component và thiết kế dựa trên sơ đồ nguyên lý (Schematic-based design).
  • Nguyên lý điều khiển thời gian và tín hiệu: Kỹ thuật phân chia tần số không làm trôi pha, nguyên lý tạo xung cho phép một chu kỳ clock (Clock Enable), phương pháp quét hiển thị dồn kênh theo thời gian (Time-division multiplexing), kỹ thuật lấy mẫu tín hiệu (oversampling) trong truyền nhận bất đồng bộ.

Kỹ năng phát triển

Tài liệu rèn luyện cho người học ba nhóm kỹ năng chuyên môn:

  • Kỹ năng kỹ thuật (Technical Skills): Soạn thảo cú pháp VHDL chuẩn tổng hợp (Synthesizable VHDL), sử dụng công cụ EDA để phân tích cú pháp, tổng hợp logic (Logic Synthesis), gán chân phần cứng (I/O Pin Assignment) và nạp tệp bitstream cấu hình phần cứng.
  • Kỹ năng phân tích (Analytical Skills): Đọc hiểu và phân tích giản đồ thời gian (Timing diagrams) của các linh kiện từ datasheet gốc; tính toán thông số chia xung, tính toán tốc độ baud rate; chuyển đổi lưu đồ thuật toán điều khiển sang mô hình trạng thái ASM/FSM.
  • Kỹ năng thực hành ứng dụng (Practical Competencies): Kết nối ngoại vi và kiểm soát mức logic tích cực; nhận diện và xử lý hiện tượng rung phím phần cứng bằng thuật toán số; debug hệ thống vi mạch số trên kit thực tế; tích hợp các giao diện truyền thông nối tiếp UART, I2C phục vụ trao đổi dữ liệu với máy tính và các vi mạch chức năng.

Phương pháp giảng dạy và học tập

Giáo trình được thiết kế theo phương pháp sư phạm thực hành tích hợp (Lab-oriented learning), lấy việc kiểm chứng phần cứng làm trọng tâm của quá trình đào tạo.

[Khảo sát Datasheet & Giản đồ thời gian]
[Mô tả kiến trúc phần cứng bằng mã VHDL]
[Tổng hợp mạch & Gán chân trên Xilinx ISE]
[Nạp Chip qua iMPACT & Kiểm chứng trên Kit]

Phương pháp tiếp cận sư phạm

Mỗi bài học được tổ chức theo quy trình kỹ thuật chuẩn:

  1. Khảo sát nguyên lý hoạt động của đối tượng điều khiển (đặc tính linh kiện, cấu trúc thanh ghi, giản đồ thời gian đọc/ghi).
  2. Xây dựng sơ đồ khối chức năng và mô hình máy trạng thái (FSM/ASM).
  3. Viết mã mô tả phần cứng VHDL từ mức cổng, mức truyền thanh ghi (RTL) đến mức hành vi.
  4. Tổng hợp mạch, phân tích lỗi cú pháp/lỗi logic trên phần mềm Xilinx ISE.
  5. Gán chân I/O tương ứng với sơ đồ phần cứng của kit XC3S500E-PQ208.
  6. Nạp file cấu hình vào FPGA/PROM bằng iMPACT và quan sát phản hồi trực tiếp trên kit thí nghiệm.

Hệ thống bài tập và nghiên cứu tình huống

Hệ thống bài tập thực hành được xây dựng gắn liền với các bài toán điều khiển và truyền thông thực tế:

  • Mạch tạo xung cho phép điều khiển LED sáng dồn và đếm nhị phân có chống dội phím.
  • Mạch đồng hồ thời gian thực đa chức năng (chỉnh giờ/phút/giây qua nút nhấn, đếm thời gian thể thao, hẹn giờ kích hoạt còi buzzer).
  • Hệ thống đọc dữ liệu cảm biến nhiệt độ số 1-Wire DS18B20 hiển thị đa kênh trên LED 7 đoạn và màn hình LCD.
  • Bộ truyền nhận dữ liệu UART giao tiếp 2 chiều với máy tính qua cổng RS-232, hiển thị chuỗi ký tự nhận được lên LCD 16x2 hoặc màn hình Terminal.

Phương pháp đánh giá và hướng dẫn tự học

  • Phương pháp đánh giá: Đánh giá kết quả học tập thông qua khả năng tổng hợp mã nguồn VHDL không phát sinh cảnh báo (warning) nghiêm trọng, mức độ tối ưu tài nguyên phần cứng (Logic slices, I/O blocks), và sự chính xác trong vận hành của mạch trên kit thực nghiệm.
  • Hướng dẫn tự học: Giáo trình cung cấp danh sách bảng chân I/O chi tiết từ Bảng 1-1 đến Bảng 1-18 cùng hệ thống mã hex mẫu (Bảng mã 7 đoạn, bảng mã ký tự ma trận 8x8, bảng mã CGRAM LCD font lớn). Người học có thể tự kiểm tra, đối chiếu lỗi tổng hợp và độc lập thực hiện các bài toán mở rộng bằng cách thay đổi cấu hình mã nguồn.

Điểm nổi bật và cập nhật

Giáo trình phản ánh các tiêu chuẩn kỹ thuật trong thiết kế phần cứng số tại thời điểm xuất bản:

  • Chuẩn hóa trên công cụ EDA chuyên dụng: Sử dụng trực tiếp môi trường Xilinx ISE Design Suite 14 WebPACK. Tài liệu minh họa chi tiết từng giao diện phần mềm: từ cửa sổ khởi tạo project, soạn thảo VHDL, công cụ gán chân I/O đến giao diện phần mềm nạp ISE iMPACT, giúp giảm thiểu rào cản thao tác cho người mới bắt đầu.
  • Trực quan hóa thiết kế bằng giản đồ thời gian và lưu đồ ASM: Giáo trình trích xuất chi tiết các giản đồ thời gian chuẩn của nhà sản xuất (như giản đồ đọc/ghi SRAM IS61LV25616, khe thời gian chuẩn 1-Wire DS18B20, giản đồ xung I2C SDA/SCL, cấu trúc byte UART). Kèm theo đó là các lưu đồ máy trạng thái thuật toán (ASMD chart), giúp người học hình dung chính xác cách thức điều khiển phần cứng ở cấp độ từng chu kỳ xung clock.
  • Tích hợp các khối IP giao tiếp truyền thông và ngoại vi công nghiệp: Không dừng lại ở các bài thực hành logic cơ bản, tài liệu cung cấp mã nguồn VHDL hoàn chỉnh cho các giao thức truyền thông phức tạp: bộ điều khiển UART tích hợp FIFO, bus I2C cho RTC DS1307 / EEPROM AT24C04, chuẩn 1-Wire, điều khiển bộ nhớ SRAM dung lượng cao, giao tiếp điều khiển LED&KEY qua IC TM1638.

Đối tượng sử dụng giáo trình

Giáo trình được biên soạn phục vụ các nhóm đối tượng cụ thể:

  • Sinh viên đại học và cao đẳng: Sinh viên năm thứ 3 và năm thứ 4 thuộc các ngành Kỹ thuật Điện tử Công nghiệp, Điện tử Truyền thông, Kỹ thuật Máy tính, Tự động hóa và Cơ điện tử. Giáo trình cung cấp nội dung thực hành cho các môn học: Thực hành Thiết kế Vi mạch số, Thiết kế Hệ thống số, Lập trình FPGA/VHDL.
  • Điều kiện tiên quyết (Prerequisites): Người học cần hoàn thành học phần Kỹ thuật số (Logic gates, Flip-Flops, mạch tổ hợp, mạch đếm, thanh ghi) và nắm vững ngữ pháp cơ bản của ngôn ngữ lập trình mô tả phần cứng VHDL ở môn học lý thuyết trước khi bước vào các bài thực hành trên kit.
  • Giảng viên chuyên ngành: Sử dụng tài liệu làm khung bài giảng thực hành phòng thí nghiệm, ngân hàng đề thi thực hành hoặc tài liệu hướng dẫn sinh viên làm đồ án môn học, đồ án tốt nghiệp liên quan đến công nghệ FPGA và thiết kế vi mạch.
  • Kỹ sư và người tự học: Kỹ sư nhúng, kỹ sư phần cứng và người nghiên cứu cần tài liệu tham khảo để tra cứu sơ đồ chân, mô hình FSM và mã nguồn VHDL mẫu khi triển khai các dự án giao tiếp ngoại vi với FPGA Xilinx.

Câu hỏi thường gặp

1. Giáo trình này phù hợp cho đối tượng người học nào?

Giáo trình phù hợp nhất cho sinh viên chuyên ngành Kỹ thuật Điện tử, Điện tử Truyền thông, Kỹ thuật Máy tính đã học qua lý thuyết kỹ thuật số và ngôn ngữ VHDL, chuẩn bị làm việc trong lĩnh vực thiết kế vi mạch hoặc kỹ thuật nhúng.

2. Cần chuẩn bị kiến thức nền tảng nào trước khi học?

Người học cần có kiến thức về cấu trúc mạch logic số (cổng logic, mạch tổ hợp, mạch tuần tự, flip-flop), đại số logic Boolean, lý thuyết máy trạng thái hữu hạn (FSM) và cú pháp VHDL căn bản.

3. Giáo trình sử dụng loại phần cứng và phần mềm nào để thực hành?

Tài liệu được biên soạn dựa trên phần cứng là Kit thí nghiệm FPGA Xilinx Spartan-3E (chip XC3S500E-PQ208) và bộ công cụ phần mềm Xilinx ISE Design Suite 14 (gồm ISE WebPACK và ISE iMPACT).

4. Nội dung giáo trình có bao gồm các giao thức truyền thông số không?

Có. Giáo trình dành riêng Chương 8 để hướng dẫn chi tiết việc thiết kế bộ phát/nhận UART kết hợp bộ đệm FIFO kết nối PC, thiết kế giao tiếp bus I2C (với IC DS1307, AT24C04, PCF8574), và giao tiếp chuẩn 1-Wire (với DS18B20 ở Chương 5).

5. Người học có thể tự học bằng giáo trình này nếu không có kit phần cứng không?

Người học vẫn có thể sử dụng giáo trình để học cú pháp VHDL, thực hành phân tích mã nguồn, thiết kế máy trạng thái FSM/ASM và thực hiện bước tổng hợp mạch (Synthesis) kiểm tra lỗi trên phần mềm Xilinx ISE. Tuy nhiên, để đạt hiệu quả cao nhất, cần có kit phần cứng FPGA XC3S500E để nạp bitstream và quan sát hoạt động thực tế của ngoại vi.


Kết luận

Giáo trình Thực hành Thiết kế Vi mạch số với VHDL của ThS. Nguyễn Đình Phú và ThS. Trương Thị Bích Ngà là tài liệu đào tạo thực nghiệm hệ thống, chuẩn hóa toàn bộ quy trình thiết kế vi mạch số từ mức mô tả phần cứng VHDL đến kiểm chứng trên chip FPGA Xilinx Spartan-3E.

Lộ trình học tập do tài liệu thiết lập dẫn dắt người học qua các bước tuần tự: nắm bắt công cụ EDA $\rightarrow$ thiết kế khối logic tổ hợp $\rightarrow$ làm chủ mạch tuần tự và máy trạng thái $\rightarrow$ tích hợp các giao diện ngoại vi, bộ nhớ và chuẩn truyền thông số. Để hỗ trợ quá trình học tập, người học nên khai thác bổ sung các tài liệu kỹ thuật đi kèm gồm: tài liệu thông số (datasheet) của chip Spartan-3E XC3S500E, hướng dẫn sử dụng phần mềm Xilinx ISE WebPACK, cùng các datasheet chuyên biệt của cảm biến DS18B20, IC thời gian thực DS1307 và bộ nhớ SRAM IS61LV25616.