Chương 1: Giới thiệu về cấu hình kit FPGA: giới thiệu cấu hình kit, cấu hình chip, các kết nối chip FPGA với các ngoại vi, sơ đồ kết nối, chân kết nối, mức logic tích cực. Chương 2: Hướng dẫn sử dụng phần mềm EDA dùng để lập trình thiết kế chip. Chương 3: Thực hành thiết kế các mạch tổ hợp. Bao gồm các mạch giải mã, mã hóa, đa hợp, giải đa hợp, giải mã led 7 đoạn, mạch cộng, mạch trừ, mạch chuyển đổi.
Các bài tổ hợp này với các tín hiệu vào là switch, nút nhấn và ngõ ra điều khiển led đơn, led 7 đoạn. Chương 4: Thực hành thiết kế các mạch tuần tự 1. Bao gồm mạch chia tần số, mạch chia tần số với nhiều cấp tần số khác nhau, mạch tạo tín hiệu cho phép, mạch tạo nhiều tín hiệu cho phép khác nhau. Mạch đếm nhị phân, đếm lên, đếm xuống, điều khiển cho phép đếm, ngừng đếm.
Mô hình máy trạng thái Moore và Mealy. Chống dội nút nhấn và switch. Mạch đếm từ nút nhấn. Các mạch đếm vòng và đếm Johnson.
Chương 5: Thực hành thiết kế các mạch tuần tự 2. Bao gồm mạch đếm 1 số hiển thị trên 1 led 7 đoạn, đếm 2 số hiển thị trên 2 led 7 đoạn quét, đếm 3 số hiển thị trên 3 led 7 đoạn quét, đếm 4 số hiển thị trên 4 led 7 đoạn quét. Hai bộ đếm độc lập, đếm với các tần số khác nhau lựa chọn bằng switch, bằng nút nhấn tăng, giảm và nhiều yêu cầu điều khiển khác. Mạch đồng hồ số hiển thị giờ, phút, giây từ cơ bản đến nâng cao cho phép chỉnh được giờ, phút, giây bằng các nút nhấn giống như đồng hồ thực tế.
Mạch đọc nhiệt độ từ cảm biến nhiệt 1 dây DS18B20 hiển thị trên led 7 đoạn dùng máy trạng thái. Chương 6: Thực hành thiết kế mạch điều khiển LCD. Bao gồm mạch giao tiếp điều khiển LCD hiển thị chuỗi. Mạch đếm, mạch đồng hồ số, mạch đọc nhiệt độ từ cảm biến nhiệt DS18B20 hiển thị trên LCD.
Tương tự giao tiếp với GLCD trắng đen. Chương 7: Thực hành thiết kế mạch giao tiếp bộ nhớ RAM. Thiết kế bộ điều khiển bộ nhớ thực hiện chức năng đọc/ghi dữ liệu. Bài thực hành thiết kế gồm mạch giao tiếp ghi dữ liệu vào và đọc dữ liệu ra từ bộ nhớ SRAM và SDRAM hiển thị trên LCD.
Chương 8: Thực hành thiết kế mạch giao tiếp máy tính qua UART. Thiết kế mạch tạo tốc độ baud, mạch phát, mạch nhận và bộ đệm FIFO. Bài thực hành bao gồm mạch giao tiếp truyền dữ liệu giữa máy tính và FPGA hiển thị dữ liệu truyền và nhận trên LCD và máy tính, bên máy tính sử dụng phần mềm Terminal để thực hiện truyền và nhận dữ liệu với 4 kit FPGA. Tương tự giao tiếp với các thiết bị qua chuẩn I2C như đồng hồ thời gian thực, bộ nhớ Eeprom và các thiết bị hay bộ nhớ theo chuẩn SPI.
Trong quá trình biên soạn không thể tránh được các sai sót nên rất mong các bạn đọc đóng góp, xây dựng cho cuốn Giáo trình thực hành thiết kế vi mạch số với VHDL. Mọi góp ý xin hãy vui lòng gởi về nhóm tác giả theo địa chỉ phund@hcmute.vn hoặc phu_nd@yahoo. Nhóm tác giả xin cảm ơn các bạn bè đồng nghiệp đã đóng góp nhiều ý kiến, xin cảm ơn người thân trong gia đình đã tạo điều kiện thuận lợi để nhóm tác giả có nhiều thời gian biên soạn giáo trình này. Nguyễn Đình Phú Trương Thị Bích Ngà 5 DANH SÁCH HÌNH Hình 1-1.
Kit dùng chip – FPGA XILINX – XC3S500E – PQ208. Giao tiếp FPGA với các ngoại vi. Sơ đồ mạch giao tiếp với các switch. Sơ đồ mạch giao tiếp với các nút nhấn.
Sơ đồ mạch giao tiếp với các led đơn. Sơ đồ mạch giao tiếp với 8 led 7 đoạn anode chung. Sơ đồ mạch giao tiếp với 1 led ma trận 8x8. Sơ đồ mạch công suất của IC ULN 2003.
Sơ đồ mạch IC thời gian thực với FPGA. Sơ đồ mạch IC nhớ Eeprom AT24C04 với FPGA. Sơ đồ mạch IC DAC 0832. Sơ đồ mạch IC Max 232 với FPGA.
Sơ đồ mạch chuẩn PS2 với FPGA. Sơ đồ mạch kết nối SD card với FPGA. Sơ đồ mạch kết nối cổng VGA với FPGA. Sơ đồ mạch kết nối mạch dao động với FPGA.
Sơ đồ mạch kết nối bộ nhớ SRAM với FPGA. Sơ đồ mạch kết nối bộ nhớ SDRAM với FPGA. Biểu tượng chương trình Xilinx ISE Design Suite 14. Giao diện của chương trình ISE.
Tạo Project mới. Menu để nhập tên thư mục cho Project. Nhập tên thư mục cho Project. Menu dùng để chọn các thông số của Project.
Màn hình sau khi khai báo xong tên và chọn chip FPGA. Màn hình để tạo file nguồn mới. Màn hình chọn kiểu lập trình và đặt tên cho file nguồn mới. Màn hình thiết lập các tín hiệu vào ra.
Màn hình xuất hiện 2 tag. Màn hình file nguồn chưa có lệnh. Màn hình file nguồn sau khi nhập các lệnh. Chọn chức năng tổng hợp chương trình.
Kết quả tổng hợp thành công. Kết quả tổng hợp bị lỗi. Chọn mục để tiến hành gán chân. Hình phần mềm gán chân đang khởi động.
Giao diện phần mềm gán chân sau khi khởi động xong. Tiến hành mở cửa sổ để gán chân. Vị trí để gán chân. Kết quả sau khi gán chân.
Chọn biên dịch cho cả chương trình. Kết quả sau khi biên dịch thành công. Generate Target PROM/AC File. Giao diện chương trình nạp “ISE iMPACT”.
Khởi tạo kết nối. Khởi tạo kết nối để nhận dạng chip FPGA. Khởi tạo kết nối để nhận dạng chip FPGA. Chọn file để nạp vào chip FPGA.
Chọn file để nạp vào chip PROM. Chỉ nạp cho FPGA. Sẵn sàng nạp. Nạp thành công.
Hai mạch giải mã 2 sang 4: lệnh gán lựa chọn và điều kiện. Đặt tên dạng bus cho các tín hiệu vào ra. Cửa sổ xuất hiện các chương trình con. Bắt đầu tạo source cho chương trình con.
Chọn ngôn ngữ và đặt tên cho chương trình con. Đặt tên cho các tín hiệu vào ra của chương trình con. Kiểm tra cú pháp chương trình con. Kết quả kiểm tra cú pháp đúng.
Kết quả kiểm tra cú pháp đúng chương trình chính. Chọn biểu tượng add. Chọn file gán chân để add. Thông báo file gán chân OK.
Toàn bộ các chương trình. Tên các tín hiệu trong file gán chân. Hai mạch giải mã 2 sang 4: lệnh if và và case. Sơ đồ khối mạch mã hóa ưu tiên 4 sang 2: dùng lệnh gán lựa chọn và điều kiện.
Sơ đồ khối mạch đa hợp 4 kênh. Sơ đồ khối mạch đa hợp 4 kênh – 2 bit. Sơ đồ khối mạch giải đa hợp 4 kênh ra. Sơ đồ khối mạch giải mã led 7 đoạn.
Sơ đồ khối mạch cộng 2 số nhị phân 4 bit. Sơ đồ khối chuyển đổi số nhị phân 4 bit sang số BCD. Sơ đồ khối mạch chuyển đổi mã nhị phân sang mã Gray. Sơ đồ khái niệm của mạch tuần tự đồng bộ.
Sơ đồ khối mạch tạo xung 1Hz. Dạng sóng mạch chia 16 dùng mạch chia 16. Dạng sóng mạch chia 10 dùng mạch chia mod-10. Sơ đồ khái niệm mạch tạo xung 1Hz.
Sơ đồ khối chia 2 xung 1Hz và 10Hz. Sơ đồ khối mạch chia 10 xung. Sơ đồ khối mạch tạo xung cho phép 1Hz. Sơ đồ khái niệm mạch tạo xung cho phép 1Hz.
Sơ đồ khối mạch tạo xung cho phép 1Hz và xung cho phép 1Hz. Sơ đồ khối mạch đếm nhị phân đồng bộ 4 bit. Sơ đồ khối mạch đếm nhị phân 8 bit, đếm xung 5Hz. Sơ đồ khối mạch đồng bộ ngẫu nhiên FSM.
Đồ hình trạng thái FSM của mạch đếm. Sơ đồ mạch phát hiện mức 1 trong 3 xung liên tiếp. Mô hình trạng thái mạch phát hiện mức 1 trong 3 xung liên tiếp. Sơ đồ khối mạch phát hiện mức 1 trong 3 xung liên tiếp.
Sơ đồ kết nối switch và nút nhấn với FPFA. Dạng sóng của nút nhấn hay switch bị dội và sau khi chống dội. Mô hình trạng thái chống dội sw/btn. Mạch đếm nhị phân 4 bit từ nút nhấn có chống dội.
Mạch làm hẹp xung. Giản đồ thời gian của mạch làm hẹp xung. Mạch đếm nhị phân 4 bit từ nút nhấn có chống dội – cách 2. Mạch đếm nhị phân 4 bit từ nút nhấn có chống dội – cách 3.
Mạch đếm lên/xuống nhị phân 4 bit từ 2 nút nhấn có chống dội. Mạch điều khiển 8 led sáng tắt dần từ phải sang trái. Mạch điều khiển 8 led 2 chương trình lựa chọn bằng switch. Mạch điều khiển 8 led 2 chương trình tự động.
Mạch điều khiển 8 led 2 chương trình tự động: 1 điểm sáng di chuyển. Mạch điều khiển 8 led 4 chương trình tự động. Mạch điều khiển 8 led sáng dồn phải sang trái. Dữ liệu bit thứ 7 di chuyển từ thứ 0 đến thứ 7 – 8 vị trí.
Dữ liệu bit thứ 6 di chuyển từ thứ 0 đến thứ 6 – 7 vị trí, bit thứ 7 cố định. Lưu đồ điều khiển 8 led sáng dồn. Sơ đồ khối mạch đếm nhị phân 8 bit, đếm xung 5Hz. Tạo ký hiệu cho chương trình con CHIA_10ENA.
Tạo source mới theo Schematic. Sơ đồ mới khởi tạo. Sơ đồ sau khi lấy 3 ký hiệu tạo từ 3 file VHDL. Sơ đồ mới thêm cổng NOT.
Sơ đồ sau khi kết nối dây và port. Giao diện đổi tên cho tín hiệu CKHT. Sơ đồ mạch sau khi đã đổi tên các port IO. Có 2 chương trình chính.
Tổng hợp thành công. Mạch đếm từ 0 đến 9 hiển thị led 7 đoạn. Mạch đếm từ 00 lên 99 hiển thị led 7 đoạn. Mạch đếm từ 000 lên 999 hiển thị led 7 đoạn.
Mạch đếm từ 0000 lên 9999 hiển thị led 7 đoạn. Mạch đếm từ 0 đến 9 hiển thị led 7 đoạn – cách 2. Sơ đồ khối mạch “GIAIMA_HIENTHI_8LED_7DOAN”. Mạch đếm từ 00 đến 99 hiển thị led 7 đoạn – cách 2.
Mạch đếm từ 000 đến 999 hiển thị led 7 đoạn – cách 2. Mạch đếm từ 0 đến 999 hiển thị led 7 đoạn. Mạch đếm từ 0 đến 9999 hiển thị led 7 đoạn. Mạch đếm từ 00 đến 99 có lựa chọn đếm lên/xuống bằng switch .