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

Giáo trình Thực hành Thiết kế Vi mạch số bằng VHDL - Xilinx do ThS. Nguyễn Đình Phú và ThS. Trương Thị Bích Ngà biên soạn, được Nhà xuất bản Thanh Niên phát hành. Tài liệu được biên soạn phục vụ công tác giảng dạy và thực hành trong chương trình đào tạo trình độ Đại học và Cao đẳng thuộc các khối ngành kỹ thuật như: Kỹ thuật Điện - Điện tử, Kỹ thuật Cơ điện tử, Điện tử Viễn thông, Kỹ thuật Điều khiển và Tự động hóa, và Kỹ thuật Máy tính.

Về vị trí trong chương trình đào tạo, môn học thực hành này đóng vai trò cầu nối giữa lý thuyết vi mạch số cơ bản, lý thuyết ngôn ngữ mô tả phần cứng (Hardware Description Language - HDL) với kỹ thuật thiết kế, hiện thực hóa hệ thống trên phần cứng thực tế. Mục tiêu học tập cốt lõi của giáo trình là giúp người học nắm vững cú pháp ngôn ngữ VHDL theo chuẩn IEEE 1076, làm chủ quy trình công nghệ thiết kế logic tự động (EDA) trên phần mềm Xilinx ISE Design Suite, và rèn luyện kỹ năng cấu hình, kiểm thử thiết kế trên kit phần cứng FPGA 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 và tăng dần độ phức tạp (progression logic): bắt đầu từ khảo sát phần cứng kit FPGA, làm quen công cụ phần mềm EDA, phát triển các khối mạch tổ hợp, mạch tuần tự, máy trạng thái, đến thiết kế hệ thống giao tiếp ngoại vi phức tạp như màn hình hiển thị, bộ nhớ bán dẫn và các chuẩn truyền thông công nghiệp.

Điểm đặc sắc của giáo trình là tính thực nghiệm trực quan. Toàn bộ các bài học đều được ánh xạ trực tiếp lên nền tảng phần cứng chip FPGA Xilinx Spartan-3E (mã hiệu XC3S500E - PQ208) với hệ thống chân I/O và mạch ngoại vi được định nghĩa chi tiết, giúp người học chuyển đổi trực tiếp từ mô hình thiết kế lý thuyết sang vận hành trên thiết bị vật lý.


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

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 từ mức độ cơ bản đến nâng cao:

  • Chương 1: Hướng dẫn sử dụng kit FPGA Xilinx Spartan-3E XC3S500E: Khảo sát cấu trúc chip FPGA XC3S500E dạng đóng gói PQ208 (158 chân I/O), mạch dao động 50 MHz (chân PIN183), và sơ đồ nguyên lý kết nối các ngoại vi trên kit như switch gạt (SW0–SW7), nút nhấn (BTN_N0–BTN_N4), 8 LED đơn tích cực mức thấp, 8 LED 7 đoạn anode chung quét transistor, LED ma trận 8x8, cảm biến nhiệt 1-Wire DS18B20, bộ nhớ SRAM/SDRAM, cổng VGA, cổng nối tiếp RS232 (MAX232) và module đệm công suất ULN2003.
  • Chương 2: Hướng dẫn sử dụng Xilinx ISE Design Suite: Trình bày quy trình thiết kế số hoàn chỉnh trên phần mềm ISE WebPACK 14.1/14.2: tạo project, soạn thảo mã nguồn VHDL (khai báo entity, architecture), tổng hợp logic bằng công cụ Synthesize - XST, gán chân vật lý cho thiết bị qua công cụ PlanAhead (tạo file ràng buộc .ucf), biên dịch tạo luồng bit (Generate Programming File), và nạp cấu hình vào chip qua phần mềm iMPACT (giao thức JTAG Boundary Scan).
  • Chương 3: Thiết kế mạch tổ hợp: Hướng dẫn xây dựng các mạch logic tổ hợp như bộ giải mã 2 sang 4 (GIAIMA2_24H), 3 sang 8, 4 sang 16; mạch mã hóa; mạch đa hợp (MUX), giải đa hợp (DEMUX); mạch giải mã LED 7 đoạn; mạch cộng/trừ nhị phân; và mạch chuyển đổi số nhị phân sang mã BCD. Chương này giới thiệu kỹ thuật lập trình theo cấu trúc phân cấp thông qua từ khóa PORT MAP, câu lệnh gán có điều kiện (WHEN...ELSE), và câu lệnh gán có lựa chọn (WITH...SELECT).
  • Chương 4: Thiết kế mạch tuần tự 1 (Chia xung, đếm nhị phân, máy trạng thái): Hiện thực hóa các mạch chia tần số từ nguồn xung 50 MHz, mạch tạo xung cho phép (enable), mạch đếm nhị phân tăng/giảm, mạch đếm vòng (Ring counter) và đếm Johnson. Chương trình tích hợp giải thuật chống dội phím nhấn (debounce) và thiết kế hệ thống theo hai mô hình máy trạng thái hữu hạn (FSM) kinh điển là Moore và Mealy.
  • Chương 5: Thiết kế mạch tuần tự 2 (Đếm hiển thị trên LED 7 đoạn và cảm biến): Kỹ thuật quét hiển thị đa LED 7 đoạn từ 1 đến 4 số, thiết kế ứng dụng đồng hồ số (giờ, phút, giây) có chức năng hiệu chỉnh bằng nút nhấn, và thiết kế máy trạng thái giao tiếp đọc dữ liệu nhiệt độ theo giao thức 1-Wire từ cảm biến DS18B20 hiển thị trên LED 7 đoạn.
  • Chương 6: Thiết kế mạch điều khiển LCD và GLCD: Khảo sát tập lệnh và cấu trúc bộ điều khiển LCD (HD44780), quản lý các vùng nhớ DDRAM và CGRAM; thiết kế bộ điều khiển LCD theo bus dữ liệu 8-bit và 4-bit; lập trình hiển thị chuỗi ký tự, ký tự tự tạo (custom font), ký tự số kích thước lớn, đồng hồ số và hiển thị đồ họa trên màn hình GLCD 128x64.
  • Chương 7: Thiết kế mạch giao tiếp bộ nhớ RAM: Phân tích giản đồ thời gian (timing waveforms) đọc/ghi của bộ nhớ SRAM IS61LV25616 (dung lượng 256K x 16 bit) và SDRAM IS42S16400/HY57V1620; thiết kế bộ điều khiển bộ nhớ (memory controller) trên VHDL để ghi và đọc dữ liệu, hiển thị kết quả lên LCD.
  • Chương 8: Thiết kế mạch truyền dữ liệu UART, I2C và module mở rộng: Thiết kế hệ thống truyền thông UART hoàn chỉnh gồm bộ tạo tốc độ baud (Baud Rate Generator), mạch phát (TX), mạch nhận (RX) có cơ chế lấy mẫu dữ liệu và hàng đợi FIFO kết nối với máy tính qua phần mềm Terminal; thiết kế giao thức I2C giao tiếp IC thời gian thực DS1307 và EEPROM AT24C04; điều khiển module mở rộng LED&KEY sử dụng IC TM1638.

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

Giáo trình cung cấp nền tảng lý thuyết và kỹ thuật thiết kế số ở mức truyền thanh ghi (RTL - Register-Transfer Level):

  • Lý thuyết mạch số & mô hình hóa: Khái niệm về đại số Boolean, logic tổ hợp, hệ thống mạch tuần tự đồng bộ điều khiển bằng xung clock cạnh lên/xuống, mạch chia tần số và nguyên lý quét hiển thị (multiplexing).
  • Mô hình máy trạng thái hữu hạn (FSM): Cấu trúc điều khiển dựa trên FSM mô hình Moore (ngõ ra phụ thuộc trạng thái hiện tại) và Mealy (ngõ ra phụ thuộc trạng thái hiện tại và tín hiệu vào), ứng dụng trong phân tích chuỗi tín hiệu và điều khiển giao thức truyền thông.
  • Cấu trúc bộ nhớ và giản đồ định thời: Cơ chế định địa chỉ, chu kỳ truy xuất bus, độ trễ thời gian (setup/hold time, access time) của SRAM, SDRAM, và các giao thức truyền thông nối tiếp đồng bộ (I2C, SPI) và bất đồng bộ (UART).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Viết mã VHDL tổng hợp được (synthesizable code); sử dụng thành thạo gói thư viện chuẩn IEEE.STD_LOGIC_1164 và IEEE.NUMERIC_STD; sử dụng các công cụ EDA để phân tích, tổng hợp logic, tối ưu hóa tài nguyên phần cứng và định cấu hình I/O qua file ràng buộc .ucf.
  • Kỹ năng phân tích (Analytical skills): Phân tích và chuyển đổi giải thuật điều khiển thành sơ đồ khối phần cứng; phân tích giản đồ sóng định thời của các vi mạch chuẩn; thiết kế bộ chia xung và giải mã địa chỉ chính xác.
  • Kỹ năng thực hành (Practical competencies): Kỹ năng gỡ lỗi phần cứng trên kit FPGA; kỹ năng tích hợp hệ thống số với các thiết bị ngoại vi đa dạng (cảm biến DS18B20, RTC DS1302/DS1307, DAC0832, LCD, SRAM); kiểm soát chống nhiễu và chống dội phím phần cứng/phần mềm.

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

Tiếp cận sư phạm (Pedagogical approach)

Giáo trình áp dụng phương pháp đào tạo định hướng thực hành (Lab-based learning) và phương pháp thiết kế phân cấp từ trên xuống (Top-down hierarchical design). Sinh viên được tiếp cận kiến thức theo một chu trình chuẩn 5 bước cho mỗi bài toán thiết kế:

  1. Phân tích yêu cầu chức năng, lập bảng trạng thái hoặc lưu đồ giải thuật.
  2. Mô hình hóa phần cứng bằng sơ đồ khối và phân chia thành các thực thể con (entity).
  3. Soạn thảo mã nguồn VHDL cho từng mô-đun và kết nối bằng PORT MAP trong mô-đun chính.
  4. Tổng hợp logic (XST), kiểm tra cú pháp và gán chân phần cứng (PlanAhead).
  5. Biên dịch luồng bit (Bitstream), nạp vào chip FPGA XC3S500E qua cáp nạp JTAG và kiểm thử trực tiếp trên phần cứng.

Bài tập và case studies thực tế

Các bài tập thực hành được xây dựng gắn liền với các ứng dụng kỹ thuật thực tế:

  • Mạch đếm nhị phân có chức năng Up/Down, nạp trước giá trị, điều khiển ngắt/chạy lựa chọn bằng switch.
  • Thiết kế hệ thống đồng hồ số thời gian thực hiển thị giờ/phút/giây, tích hợp phím bấm điều chỉnh thời gian thực tế.
  • Đo lường nhiệt độ môi trường sử dụng cảm biến số 1-Wire DS18B20, xử lý truyền tin 64-bit ROM và chuyển đổi dữ liệu nhiệt độ hiển thị lên LED 7 đoạn và màn hình LCD 16x2.
  • Hệ thống giao tiếp máy tính qua chuẩn RS232/UART, cho phép nhận lệnh điều khiển từ phần mềm Terminal trên PC và truyền ngược trạng thái hệ thống từ FPGA lên màn hình máy tính.

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

  • Phương pháp đánh giá: Đánh giá dựa trên mức độ hoàn thiện của thiết kế VHDL (tính tối ưu của mã nguồn, khả năng phân cấp mô-đun), mức độ chính xác trong việc gán chân I/O và tính ổn định khi vận hành thực tế trên kit Spartan-3E.
  • Hướng dẫn tự học: Người học được khuyến khích nghiên cứu tài liệu tham khảo chuẩn (đặc biệt là các công trình của Pong P. Chu và chuẩn IEEE std 1076), tải các tập tin mã nguồn mẫu được cung cấp kèm theo sách, tự tay chỉnh sửa tham số và quan sát sự thay đổi trên phần cứng để củng cố nguyên lý vận hành của từng khối mạch.

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

  • Tính thực nghiệm 100% trên phần cứng: Thay vì chỉ dừng lại ở các bài mô phỏng dạng sóng trên phần mềm (simulation), giáo trình hướng dẫn chi tiết quy trình đưa thiết kế vào chip FPGA thực tế, giải quyết các bài toán vật lý như xử lý mức logic tích cực (đảo mức logic cho LED đơn/LED 7 đoạn anode chung), xử lý dội tín hiệu cơ khí nút nhấn và tắt các ngoại vi không sử dụng (như vô hiệu hóa chuông Buzzer qua chân BELL P113 để tránh nhiễu âm thanh).
  • Tích hợp hệ thống ngoại vi toàn diện: Giáo trình bao quát dải ngoại vi đa dạng từ cơ bản (LED đơn, switch, nút nhấn) đến nâng cao (LED ma trận 8x8, LCD ký tự, GLCD đồ họa, VGA 8-bit màu, IC chuyển đổi DAC0832, IC công suất ULN2003 điều khiển động cơ bước).
  • Bao phủ các chuẩn giao tiếp công nghiệp thông dụng: Cung cấp mã nguồn và quy trình thiết kế hoàn chỉnh cho các chuẩn giao tiếp truyền thông nối tiếp phổ biến trong công nghiệp như UART (RS232 qua MAX232), I2C (DS1307, AT24C04), SPI (DS1302) và chuẩn 1-Wire (DS18B20).
  • Tài liệu tham khảo học thuật chuẩn mực: Cơ sở lý thuyết của sách được đối chiếu và tham chiếu từ các tài liệu uy tín quốc tế như RTL Hardware Design Using VHDL (Pong P. Chu, Wiley, 2006), FPGA Prototyping by VHDL Examples (Pong P. Chu, Wiley, 2008), Circuit Design with VHDL (V. A. Pedroni, MIT Press, 2004), và tiêu chuẩn IEEE Standard VHDL Language Reference Manual (IEEE std 1076-2002).

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

  • Sinh viên: Sinh viên năm thứ 3 và năm thứ 4 theo học các chương trình kỹ sư, cử nhân kỹ thuật thuộc các ngành: Kỹ thuật Điện - Điện tử, Kỹ thuật Cơ điện tử, Viễn thông, Tự động hóa, Kỹ thuật Máy tính, và Công nghệ Vi mạch.
  • Kiến thức tiên quyết (Prerequisites): Người học cần nắm vững kiến thức lý thuyết Mạch số (Kỹ thuật số), cấu trúc máy tính, lý thuyết mạch điện tử cơ bản và khái niệm cơ bản về lập trình cấu trúc.
  • Giảng viên: Sử dụng làm tài liệu giảng dạy chính, đề cương bài thí nghiệm hoặc tài liệu hướng dẫn thực hành cho các học phần: Thực hành Thiết kế Vi mạch số, Thiết kế Hệ thống Nhúng trên FPGA, Ngôn ngữ Mô tả Phần cứng VHDL.
  • Kỹ sư và học viên sau đại học: Kỹ sư thiết kế phần cứng, học viên cao học ngành Kỹ thuật Điện tử có thể sử dụng giáo trình làm tài liệu tra cứu kỹ thuật về giao tiếp ngoại vi, cấu hình chip Xilinx Spartan-3E và xây dựng các bộ điều khiển bus ngoại vi.

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

1. Giáo trình này phù hợp với ai?

Giáo trình được biên soạn chuyên biệt cho sinh viên Đại học, Cao đẳng các ngành Kỹ thuật Điện tử, Viễn thông, Tự động hóa, Cơ điện tử, Kỹ thuật Máy tính và các kỹ sư bắt đầu tiếp cận lĩnh vực thiết kế vi mạch số bằng ngôn ngữ VHDL.

2. Cần kiến thức nền nào để học?

Người học cần trang bị kiến thức nền tảng về Lý thuyết Kỹ thuật số (hệ đếm, đại số logic, cổng logic, flip-flop, bộ đếm, thanh ghi) và nguyên lý cơ bản của mạch điện tử. Không bắt buộc phải có kinh nghiệm lập trình phần cứng trước đó vì sách hướng dẫn cú pháp VHDL từ mức độ căn bản.

3. Điểm khác biệt với giáo trình khác?

Khác với các giáo trình lý thuyết chỉ tập trung vào ngữ nghĩa ngôn ngữ hoặc mô phỏng dạng sóng, giáo trình này tập trung hoàn toàn vào kỹ năng thực hành: hướng dẫn từ sơ đồ chân phần cứng cụ thể, quy trình thao tác trên phần mềm Xilinx ISE, đến việc nạp và chạy trực tiếp trên kit chip Spartan-3E XC3S500E.

4. Làm sao để tự học hiệu quả?

Để tự học hiệu quả, người học nên thực hiện tuần tự theo 8 chương: bắt đầu từ việc tạo project và nạp cổng logic đơn giản ở Chương 2, thực hành mạch tổ hợp ở Chương 3, tiến dần đến mạch tuần tự và máy trạng thái ở Chương 4 và 5 trước khi bước vào các chương giao tiếp bộ nhớ và truyền thông dữ liệu ở Chương 6, 7 và 8.

5. Có tài liệu bổ trợ nào kèm theo?

Tài liệu đi kèm bao gồm tập hợp các tệp mã nguồn VHDL mẫu cho từng bài thực hành, sơ đồ nguyên lý mạch của kit thực hành và liên kết tải các tài liệu điện tử (ebook) chuyên sâu về VHDL được các tác giả cung cấp trong phần tài liệu tham khảo của giáo trình.


Kết luận

Giáo trình Thực hành Thiết kế Vi mạch số bằng VHDL - Xilinx của ThS. Nguyễn Đình Phú và ThS. Trương Thị Bích Ngà cung cấp một hệ thống bài học thực hành có cấu trúc rõ ràng, gắn kết chặt chẽ giữa cú pháp ngôn ngữ VHDL chuẩn IEEE và quy trình hiện thực hóa trên chip FPGA Xilinx Spartan-3E.

Lộ trình học tập đề xuất đi từ việc nắm vững công cụ EDA Xilinx ISE, thiết kế các khối mạch số cơ bản (mạch tổ hợp, mạch tuần tự), làm chủ mô hình máy trạng thái hữu hạn, đến việc tích hợp các hệ thống số hoàn chỉnh giao tiếp màn hình, bộ nhớ bán dẫn và các chuẩn truyền thông công nghiệp. Nguồn học liệu bổ trợ bao gồm mã nguồn thực hành và hệ thống tài liệu tham khảo quốc tế (Pong P. Chu, Volnei A. Pedroni, IEEE 1076) giúp người học xây dựng kỹ năng thiết kế phần cứng vững chắc đáp ứng yêu cầu của ngành công nghiệp vi mạch hiện nay.