1. Trang chủ
  2. » Cao đẳng - Đại học

Giáo trình Vi mạch số lập trình (Nghề Điện tử công nghiệp CĐTC)

263 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giáo trình Vi mạch số lập trình (Nghề Điện tử công nghiệp CĐTC)
Trường học Trường Cao Đẳng Nghề Đồng Tháp
Chuyên ngành Điện Tử Công Nghiệp
Thể loại Giáo trình đào tạo
Năm xuất bản 2017
Thành phố Đồng Tháp
Định dạng
Số trang 263
Dung lượng 5,8 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • BÀI 1 (11)
    • 1. Lịch sử phát triển (11)
    • 2. Sự cần thiết và ý nghĩa thực tế của việc sử dụng mảng logic có thể lập trình đượ c (13)
    • 3. Cấu trúc cơ bản của PLD (14)
      • 3.1 PAL (14)
      • 3.2 PLA (16)
      • 3.3 GAL (16)
    • 4. Cấu trúc cơ bản của CPLD (17)
    • 5. Cấu trúc cơ bản của FPGA (19)
    • 6. Sự khác biệt giữa PLD, CPLD và FPGA (20)
    • 7. Ph ầ n m ề m h ỗ tr ợ (21)
  • BÀI 2 (22)
    • 1. Gi ớ i thi ệ u chung (9)
    • 2. Vi mạch CPLD (23)
  • BÀI 3 (29)
    • 2. Vi mạch FPGA (30)
      • 2.1. Mô tả FPGA (31)
      • 2.2. Thông s ố gi ớ i h ạ n (49)
      • 2.3. Đặc tính lưu trữ dữ liệu (49)
      • 2.4. Đặc tính điện DC (50)
      • 2.5. Công suất tiêu thụ (55)
      • 2.6. Sơ đồ chân (56)
      • 2.7. Ý nghĩa tên linh kiệ n (71)
    • 3. Lựa chọn phương án cấu hình cho FPGA (73)
  • BÀI 4 (75)
    • 1. Phương án lựa chọn CPLD và FPGA (75)
    • 2. Qui trình thiết kế cho CPLD của hãng Xilinx (76)
    • 3. Qui trình thiết kế cho FPGA của hãng Xilinx (80)
  • BÀI 5 (82)
    • 1. Cài đặt và khởi động ISE (82)
    • 2. Tạo Project trên ISE (90)
    • 3. Cài đặ t và kh ởi độ ng Modelsim (94)
    • 4. Mô phỏng dạng sóng trên ISE và Modelsim (101)
      • 4.1. Mô phỏng trên ISE (101)
      • 4.2. Mô ph ỏ ng trên modelsim (109)
    • 5. Gán chân thích ứng với thiết bị (123)
    • 6. Biên dịch và tổng hợp chương trình (125)
    • 7. Đổ chương trình vào CPLD và FPGA (130)
    • 8. T ạ o và s ử d ụ ng core có s ẵ n t ừ ISE (142)
  • BÀI 6 (148)
    • 1. Giới thiệu ngôn ngữ Verilog HDL (148)
      • 1.1. HDL là gì? (148)
      • 1.2. Tầm quan trọng của HDL (149)
      • 1.3. Đặc điểm nổi bật của Verilog (150)
      • 1.4. Xu hướng của HDL (150)
    • 2. Tổng quan về ngôn ngữ Verilog (151)
      • 2.1. Lịch sử ngôn ngữ Verilog (151)
      • 2.2. Phương pháp thiết kế hệ thống (152)
      • 2.3. Các khái niệm cơ bản trong Verilog (153)
      • 2.4. Module và các port (161)
    • 3. Verilog HDL và các mức thiết kế phổ biến (164)
      • 3.1. Thiết kế mức cổng (164)
      • 3.2. Các c ổng cơ bản được định nghĩa sẵ n (164)
      • 3.3. Thiết kế ở mức Dataflow (168)
      • 3.4. Thiết kế ở mức hành vi (179)
      • 3.5. Tast và Function (193)
    • 4. Bài t ậ p bài 6 (198)
  • BÀI 7 (200)
    • 1. Điều khiển led đơn (200)
      • 1.1. Chương trình chính (200)
      • 1.2. Chương trình testbench (0)
      • 1.3. kết quả mô phỏng (0)
    • 2. Thanh ghi d ị ch (0)
      • 2.1. Chương trình chính (0)
      • 2.2. Chương trình testbench (0)
      • 2.3. Kết quả mô phỏng (0)
    • 3. M ạch đế m (0)
      • 3.1. Chương trình chính (0)
      • 3.2. Chương trình testbench (0)
      • 3.3. Kết quả mô phỏng (0)
    • 4. Mạch đếm vòng xoắn Johson (0)
      • 4.1. Chương trình chính (0)
      • 4.2. Chương trình testbench (0)
      • 4.3. Kết quả mô phỏng (0)
    • 5. Bộ Mạch mã hóa và giải mã (0)
      • 5.1. Bộ mã hóa encoder 8 sang 3 (0)
      • 5.2. Bộ giải mã decoder 8 sang 3 (0)
    • 6. Mux/Demux (0)
      • 6.1. B ộ mux (0)
      • 6.2. Bộ demux (0)
    • 7. Bộ so sánh và cộng dữ liệu (0)
      • 7.1. B ộ so sánh (0)
      • 7.2. Bộ cộng dữ liệu (0)
    • 8. Giao tiếp với led ma trận (0)
    • 9. Điều chế độ rộng xung và chia tần (0)
      • 9.1. Chia t ầ n s ố (0)
      • 9.2. Điều chế độ rộng xung (0)
    • 10. Truyền dữ liệu song song (0)
      • 10.1. Chương trình chính (0)
      • 10.2. Ch ương trình testbench (0)
      • 10.3. Kết quả mô phỏng (0)
    • 11. Giao tiếp ADC và cảm biến nhiệt độ (0)
      • 11.1. Ch ương trình chính (0)
      • 11.2. Chương trình testbench (0)
      • 11.3. Kết quả mô phỏng (0)
    • 12. Tạo bộ đệm dữ liệu (0)
    • 13. S ử d ụ ng core có s ẵ n c ủ a ISE vào thi ế t k ế (0)
    • 14. Bài tập bài 7 (0)

Nội dung

Nội dung giáo trình được bố cục bao gồm 7 bài với nội dung như sau: Bài 1: Giới thiệu chung về PLD, CPLD và FPGA Bài 2: Họ CPLD Bài 3: Họ FPGA Bài 4: Qui trình thiết kế cho CPLD và FPGA

Lịch sử phát triển

Mục tiêu: khái quát cho người học nắm rõ lịch sử phát triển của vi mạch khả trình

Vi mạch khả trình gồm các dạng sau:

SPLD (Simple Programmable Logic Device) là họ IC khả trình bao gồm PROM, PAL, PLA và GAL Đặc điểm chung của SPLD là chứa số lượng cổng tương đương vài chục đối với PROM và vài trăm cổng đối với PAL, GAL, cho phép thiết kế các mạch logic tùy biến một cách linh hoạt và tiết kiệm không gian trên bảng mạch.

CPLD (Complex Programmable Logic Device) là IC khả trình phức tạp được ghép từ nhiều SPLD trên một chip đơn, với số lượng cổng tương đương từ hàng nghìn đến hàng chục nghìn cổng.

 FPGA (Field – Programmable Gate Array) là IC khả trình được cấu trúc từ mảng các khối logic lập trình được

PROM (Programmable Read-Only Memory) được phát minh bởi Wen Tsing Chow năm 1956 khi làm việc tại Arma Division của công ty American Bosch Arma ở Garden, New York PROM được chế tạo theo đơn đặt hàng từ lực lượng không quân Mỹ nhằm lưu trữ an toàn và linh hoạt các tham số mục tiêu, phục vụ cho hệ thống vũ khí và máy tính liên quan Thiết bị này được dùng trong máy tính của hệ thống phóng tên lửa Atlas E/F và được giữ bí mật trong vài năm trước khi Atlas E/F trở nên phổ biến PROM là vi mạch lập trình đầu tiên và đơn giản nhất trong nhóm vi mạch bán dẫn có thể lập trình được (PLD – Programmable Logic Device).

PAL (Programmable Array Logic) ra đời vào cuối những năm 1970 Cấu trúc PAL kế thừa từ PROM và dùng hai mảng logic: mảng AND có thể lập trình và mảng OR cố định, nghĩa là các tích có thể thay đổi nhưng tổ hợp của chúng sẽ cố định, giúp PAL linh hoạt hơn trong việc thực hiện các hàm khác nhau Điểm khác biệt giữa PAL và PROM là mỗi đầu ra của mảng OR được dẫn bởi một khối logic riêng gọi là Macrocell.

PLA (Programmable Logic Array) ra đời vào năm 1975 và là chip lập trình thứ hai sau PROM Khác với PAL ở chỗ PLA cho phép lập trình cả hai ma trận AND và OR, nhờ đó PLA có khả năng lập trình linh hoạt hơn Tuy nhiên, sự linh hoạt này khiến tốc độ xử lý của PLA thường chậm hơn so với PROM, PAL và các sản phẩm tương tự Do hạn chế về hiệu suất, PLA ít được ứng dụng rộng rãi và nhanh chóng bị thay thế bởi các công nghệ mới như GAL và CPLD.

GAL (Generic Array Logic) được phát triển bởi công ty Lattice Semiconductor vào năm 1983 Cấu trúc của GAL tương đồng với PAL nhưng khác ở công nghệ lập trình: GAL dùng công nghệ PROM CMOS có thể xóa bằng điện, thay cho công nghệ cầu chì ngược của PAL Do đó, GAL đôi khi ít được nhắc tới và thường được xem như PAL được cải tiến.

PROM, PAL và GAL là các chip khả trình có thiết kế đơn giản và chi phí sản xuất, thiết kế thấp cùng khả năng chuyển đổi dễ dàng giữa công nghệ khác Tuy nhiên, nhược điểm của chúng là tốc độ làm việc còn thấp và số lượng cổng logic giới hạn, nên không thể đáp ứng các thiết kế phức tạp đòi hỏi nhiều tài nguyên và tốc độ cao hơn Vì vậy, CPLD (Complex Programmable Logic Devices) ra đời để khắc phục hạn chế này, mang lại hiệu năng và khả năng tích hợp cao hơn cho các ứng dụng logic phức tạp.

CPLD (Complex Programmable Logic Device) được Altera tiên phong nghiên cứu và chế tạo nhằm tạo ra các IC khả trình dung lượng lớn, điển hình với các dòng MAX5000 và MAX7000 Thành công của Altera đã mở đường cho nhiều hãng khác tham gia nghiên cứu và chế tạo CPLD, nổi bật là Xilinx với dòng CPLD XC95xx và Lattice với ispMACH 4000, ispMACH XO và các sản phẩm CPLD khác.

Để đáp ứng các ứng dụng lớn và phức tạp ngày càng tăng, số cổng của CPLD được tối ưu hóa và thu nhỏ Năm 1985, công ty Xilinx đưa ra ý tưởng đột phá: kết hợp thời gian hoàn thành sản phẩm và khả năng điều khiển của PLD với mật độ và ưu thế về chi phí của Gate Array để tạo ra FPGA Sự kết hợp này mở ra một cách tiếp cận mới trong thiết kế mạch số, cho phép FPGA có tính tái cấu hình cao với hiệu suất và chi phí cạnh tranh so với các công nghệ tiền nhiệm.

Field-Programmable Gate Array (FPGA) Today, Xilinx remains the world’s leading FPGA chip manufacturer, and FPGAs have a more complex structure and operation than CPLDs.

Sự cần thiết và ý nghĩa thực tế của việc sử dụng mảng logic có thể lập trình đượ c

Mục tiêu: giải thích cho người học hiểu rõ mụch đích và ý nghĩa của việc sử dụng vi mạch khả trình trong mạch điện

Các IC số rất đa dạng, từ thực hiện các phép tính kỹ thuật số căn bản đến các chức năng phức tạp như bộ ghép kênh, phân kênh, bộ cộng, so sánh, bộ mã hóa, giải mã và bộ đếm Chúng là các IC số có chức năng cố định, mỗi IC thực hiện một chức năng chuyên biệt, và được sản xuất với số lượng lớn để đáp ứng nhu cầu ứng dụng phong phú Để thiết kế một mạch điện, nhà thiết kế có thể chọn từ các IC có sẵn phù hợp nhất cho mạch và phần thiết kế này có thể được chỉnh sửa để đáp ứng các yêu cầu chuyên biệt của những linh kiện này Ưu điểm của phương pháp này là rút ngắn thời gian thiết kế, giảm chi phí và tăng tính tin cậy nhờ sử dụng các IC tiêu chuẩn.

 Chi phí phát triển thấp

 Vận hành nhanh xung quanh bản thiết kế

 Tương đối dễ thử nghiệm các mạch điện

 Các yêu cầu về kích thước trong bảng mạch lớn

 Yêu cầu về điện lớn

 Thiếu tính bảo mật (Các bảng mạch có thể bị sao chép)

Để chỉnh sửa bản thiết kế hoặc trình bày các tính năng khác, các yêu cầu về chi phí bổ sung, khoảng trống và điện năng cần thiết phải được tính toán kỹ lưỡng Để khắc phục nhược điểm của thiết kế bằng cách sử dụng các IC có chức năng cố định, các mạch tích hợp ứng dụng chuyên biệt (ASIC - Application Specific IC) đã được phát triển Các ASIC được thiết kế để đáp ứng các yêu cầu đặc thù của một mạch và được giới thiệu bởi một nhà sản xuất IC Những thiết kế này quá phức tạp không thể thực hiện bằng các IC có chức năng cố định được Ưu điểm của phương pháp này là cho phép tối ưu hóa hiệu suất, tăng tính tùy biến và tích hợp các chức năng đặc biệt mà các IC cố định không thể đảm nhiệm.

 Giảm thiểu được kích thước thông qua việc sử dụng mức tích hợp cao

 Giảm thiểu được yêu cầu vềđiện

 Nếu được sản xuất theo một quy mô lớn thì chi phí giảm đáng kể

 Việc thiết kế được thực thi dưới dạng này thì hoàn toàn không thể sao chép được

 Chi phí phát triển ban đầu có thể cực kỳ lớn

Việc phát triển các phương pháp thử nghiệm là cần thiết, nhưng sẽ làm tăng chi phí Để tận dụng ưu điểm của hai phương pháp đã nêu và đồng thời xử lý các ứng dụng lớn, phức tạp, mảng logic lập trình được sử dụng.

Với các ưu điểm nổi bật như khả năng tái cấu hình linh hoạt, tốc độ hoạt động cao, thời gian sản xuất ngắn và chi phí giảm, mảng logic lập trình được trở thành giải pháp được ưa chuộng trong thiết kế hệ thống và điện tử Nhờ tính linh hoạt và hiệu suất tối ưu, công nghệ này được ứng dụng trong nhiều lĩnh vực như thiết bị nhúng, tự động hóa công nghiệp, vi mạch, truyền thông, ô tô, y tế và hàng không − vũ trụ, giúp rút ngắn thời gian đưa sản phẩm ra thị trường và tối ưu chi phí sản xuất.

Thiết kế các lõi IP cho các lĩnh vực chuyên dụng:

 Công nghiệp phát thanh truyền hình số (Broadcast Industry)

 Xử lý ảnh, thiết kế các bộ codec

 SoC thiết kế các Core CPU, bus

Thiết kế các sản phẩm công nghệ cao với số lượng ít và mức độ đặc chế cao là xu hướng chủ đạo cho các dự án tùy biến cao Các máy đo, phát và thu sóng viễn thông đóng vai trò thiết yếu trong hệ thống, đảm bảo đo đạc và truyền nhận tín hiệu với độ chính xác cao Mảng logic lập trình hoạt động như glue-logic, kết nối các chip chuyên dụng lại với nhau và thực thi các chức năng hỗ trợ cho CPU nhúng, giúp hệ thống vận hành nhanh hơn và hiệu quả hơn.

Cấu trúc cơ bản của PLD

Mục tiêu: trình bày cho người học hiểu rõ cấu trúc cơ bản của họ vi mạch khả trình PLD

Trong phần này trình bày cấu trúc của một số loại IC khả trình thuộc dòng SPLD như PAL, GAL, PLA

PAL (Programmable Array Logic) là một cấu trúc mạch gồm mảng AND có thể lập trình và mảng OR cố định; mỗi đầu ra của mảng OR được điều khiển bởi một khối logic gọi là Macrocell, như hình 1.1 mô tả.

Hình 1.2 minh họa một macrocell (MC) Mỗi macrocell chứa một flip-flop, một bộ mux2, một mux8 và một cổng logic ba trạng thái Tín hiệu điều khiển của mux4 có thể được lập trình để cho phép tín hiệu đi qua lần lượt các đầu vào 0, 1, 2 và 3 của bộ mux4 và được gửi ra ngoài cổng giao tiếp IO Tùy thuộc vào cấu hình này mà tín hiệu có thể được gửi ra IO hay không.

Nhờ có cấu trúc macrocell mà PAL có thể được sử dụng không những để thực hiện các hàm logic tổ hợp mà cả các hàm logic tuần tự

Cấu trúc PLA khác cấu trúc PAL là ở chỗ PLA có thể lập trình ở cả hai ma trận AND và ma trận OR (hình 1.3)

Hình 1.3 – Cấu trúc PLA 3.3 GAL

Như đã trình bày ở phần 1.1, cấu trúc cơ bản của GAL tương đồng với PAL; tuy nhiên, GAL sử dụng công nghệ PROM CMOS có thể xóa bằng điện thay cho công nghệ cầu chì nghịch của PAL Do đó, GAL có khả năng lập trình lại giống như EEPROM, mang lại tính linh hoạt và khả năng chỉnh sửa sau sản xuất.

Hình 1.4 – Cấu trúc họ vi mạch GAL

Cấu trúc cơ bản của CPLD

Mục tiêu: trình bày cho người học hiểu rõ cấu trúc cơ bản của họ vi mạch khả trình CPLD

Hình 1.5 – Cấu trúc cơ bản của CPLD

CPLD (Complex PLD) có mật độ logic cao hơn so với các PLD đơn giản đã được xem xét ở phần trước CPLD được cấu thành từ nhiều mạch logic, mỗi mạch có thể coi là một SPLD; một mạch đơn chỉ thực hiện các chức năng logic cơ bản, trong khi các chức năng phức tạp đòi hỏi nhiều khối hơn và cần dùng ma trận liên kết chung giữa các khối để tạo kết nối CPLD thường được dùng để điều khiển ghép các cổng phức tạp ở tốc độ rất cao, với thời gian đáp ứng khoảng 5 ns (tương đương với 200 MHz) Cấu trúc cơ bản của CPLD được minh họa trong hình 1.5.

CPLD có cấu trúc đồng nhất gồm nhiều Function Block được kết nối với nhau thông qua ma trận kết nối FastCONECT Switch matrix Mỗi Function Block gồm một khối logic chứa các tích AND và OR được sắp xếp giống PLA hoặc PAL, cho phép thực hiện các hàm logic tổ hợp, và nhiều Macrocell (MC) có chứa Trigger cho phép xây dựng các thanh ghi và mạch tuần tự Phần lõi bên trong của CPLD được nối ra bên ngoài thông qua các I/O, cho phép thiết lập chức năng cho các chân của IC có chức năng vào hoặc ra hoặc vừa là chân vào vừa là chân ra, ngoài ra còn có thể thiết lập các chân I/O này làm việc ở các mức logic khác nhau, có điện trở pull-up hoặc pull-down.

Với cấu trúc đồng nhất và chi phí thấp, CPLD mang lại tính năng mạnh, dễ sử dụng và đang được ứng dụng rộng rãi, giúp nhà sản xuất nhanh chóng phát triển sản phẩm với chi phí tối ưu Hiện nay các hãng đã phát triển các họ CPLD có hiệu năng cao, công suất tiêu thụ thấp và đang được dùng nhiều trong điện tử, viễn thông, công nghệ thông tin, đặc biệt ở các thiết bị cầm tay và di động Thực tế có nhiều loại CPLD khác nhau từ các hãng khác nhau, với nhiều chủng loại và thế hệ Cấu tạo, dung lượng, tính năng, đặc điểm và ứng dụng của từng loại CPLD cũng rất khác nhau Trong giáo trình này không đi sâu trình bày cấu tạo chi tiết của tất cả các họ CPLD, mà trình bày kiến trúc chung đơn giản nhất Khi sử dụng một loại CPLD cụ thể, người học nên tham khảo thêm các tài liệu khác, đặc biệt là datasheet do hãng cung cấp kèm theo cấu kiện, như của Xilinx và Altera.

Cấu trúc cơ bản của FPGA

Mục tiêu: trình bày cho người học hiểu rõ cấu trúc cơ bản của họ vi mạch khả trình FPGA

Hình 1.6 – Cấu trúc của FPGA

Hình 1.6 trình bày tổng quan kiến trúc FPGA hiện nay Cấu trúc chi tiết và tên gọi của các thành phần có thể thay đổi tùy theo hãng sản xuất, nhưng về cơ bản FPGA được cấu thành từ các khối logic (Logic Block) với số lượng từ vài trăm đến hàng chục nghìn, được bố trí thành ma trận và kết nối với nhau thông qua hệ thống các kênh nối khả trình Hệ thống này còn có nhiệm vụ kết nối các khối logic với IO_PAD (cổng giao tiếp vào ra) của FPGA, với số lượng chân vào ra thay đổi từ vài trăm đến hàng nghìn chân.

Ngoài các thành phần chính, các FPGA cỡ lớn còn được tích hợp sẵn các Hard IP cores (các IP cores) - những khối thiết kế cứng có thể là bộ nhớ RAM, ROM, khối thực hiện phép nhân, khối xử lý tín hiệu số DSP và thậm chí cả các vi xử lý cỡ nhỏ và vừa như PowerPC hoặc ARM.

Sự khác biệt giữa PLD, CPLD và FPGA

Mục tiêu: trình bày và giải thích cho người học hiểu rõ sự khác biệt giữa PLD, CPLD và FPGA

CPLD được cấu thành từ các SPLD, vì vậy ở bài viết này ta xem xét và so sánh giữa các dòng IC khả trình CPLD và dòng IC khả trình FPGA CPLD mang đặc trưng là tổ hợp một số lượng nhỏ các SPLD thành một mảng logic tổng hợp, trong khi FPGA cung cấp mức độ tùy biến và quy mô lớn hơn với khả năng lập trình linh hoạt Các tiêu chí so sánh thường được nêu bao gồm kích thước đóng gói, số lượng logic gates có thể triển khai, tốc độ làm việc, mức tiêu thụ điện năng, thời gian và chi phí phát triển, cũng như độ phức tạp của thiết kế và công cụ phát triển Hiểu rõ sự khác biệt giữa CPLD và FPGA giúp doanh nghiệp lựa chọn dòng IC phù hợp với yêu cầu ứng dụng, hiệu suất mong muốn và ngân sách dự án.

Bảng 1.1 – Bảng so sánh CPLD và FPGA

 Cấu trúc theo mảng các dạng tích  Cấu trúc dựa vào LUT

 Mảng kết nối trung tâm  Ma trận kết nối 2 chiều X – Y

 Mật độ tích hợp trung bình  Mật độ tích hợp cao

 Tỷ lệ số chân I/O trên macrocell lớn  Tỷ lệ số chân I/O trên macrocell

 Cấu hình được lưu lại khi mất nhỏ điện, và hoạt động không đổi trong quá trình hoạt động

 Cấu hình nạp vào SRAM, khi mất điện sẽ không còn, cần có bộ nhớ cấu hình PROM, cấu hình có thể được nạp trong quá trình hoạt động

 Cấu trúc đồng nhất  Cấu trúc không đồng nhất

 Nhiều tài nguyên: DLL (delay_Locked Loop: vòng khóa pha trễ), bộ nhớ, các bộ nhân,…

 Ứng dụng: mã hóa và giải mã logic, các máy trạng thái hay các giao diện bus chuẩn (SPI, I2C,

…), ưu điểm nổi bật khi thiết kế các mạch logic nhiều đầu vào

PCI (Peripheral Component Interface) là chuẩn giao tiếp nối tiếp tốc độ cao được dùng để kết nối các bộ vi xử lý với các thiết bị ngoại vi trong hệ thống máy tính và nhúng Với khả năng truyền dữ liệu nhanh và ổn định, PCI cho phép trao đổi thông tin giữa các thành phần một cách hiệu quả, đáp ứng các yêu cầu của các thiết kế phức tạp và đòi hỏi tài nguyên lớn Ứng dụng của PCI rất đa dạng, từ hệ thống máy chủ đến cấu hình vi xử lý ứng dụng, cho phép mở rộng và tối ưu hóa tài nguyên Ưu thế nổi bật của PCI là khả năng mở rộng băng thông và tích hợp dễ dàng, giúp giảm chi phí và phức tạp trong quá trình thiết kế, đặc biệt khi làm việc với các hệ thống cần thiết kế phức tạp và nhiều tài nguyên.

Ph ầ n m ề m h ỗ tr ợ

Mục tiêu: giới thiệu cho người học những phần mềm hỗ trợ khi thiết kế mạch điện sử dụng vi mạch khả trình

Mỗi hãng sản xuất IC FPGA khác nhau cung cấp những phần mềm lập trình riêng để thiết kế và cấu hình FPGA của họ, ví dụ Quartus Prime của Altera (nay thuộc Intel) và ISE của Xilinx Để thực thi mô phỏng thiết kế, các phần mềm này tích hợp công cụ mô phỏng riêng hoặc hỗ trợ các công cụ mô phỏng phổ biến như ISIM trong ISE của Xilinx, giúp kiểm tra chức năng và thời gian trước khi triển khai trên FPGA.

Mentor Graphics Corporation cung cấp phần mềm modelsim, là một công cụ hỗ trợ rất mạnh cho việc thực thi mô phỏng thiết kế

Trong giáo trình này, chúng tôi trình bày chi tiết quy trình thiết kế và lập trình chip CPLD và FPGA của hãng Xilinx bằng công cụ ISE, với phần mềm mô phỏng ISIM của Xilinx để xác thực chức năng, đồng thời so sánh với phần mềm mô phỏng ModelSim của Mentor để đánh giá hiệu suất và khả năng mô phỏng trong quá trình học tập và triển khai thiết kế số.

YÊU CẦU VỀ ĐÁNH GIÁ KẾT QUẢ HỌC TẬP BÀI 1:

- Về kiến thức: Trình bày được các kiến thức cơ bản về PLD, CPLD và FPGA.

- Về kỹ năng: Phân biệt được các loại PLD, CPLD và FPGA Xác định và lựa chọn linh kiện trong thiết kế logic.

- Về thái độ: Đảm bảo an toàn và vệ sinh công nghiệp.

- Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp.

Gi ớ i thi ệ u chung

FPGA, mảng logic lập trình được 5.5 5.5 0 0

4 Qui trình thiết kế cho CPLD và

5 Phần mềm ISE và modelsim 15 10 5 1

7 Viết một số chương trình ứng dụng 75 4 66 5

BÀI 1 GIỚI THIỆU CHUNG VỀ PLD, CPLD VÀ FPGA

PLD, CPLD và FPGA là các vi mạch số có thể lập trình được, cho phép thiết kế và tối ưu hóa logic số một cách linh hoạt theo yêu cầu dự án Vì vậy, trước khi đi sâu vào lĩnh vực vi mạch số lập trình, người học cần được trang bị kiến thức tổng quan về PLD, CPLD và FPGA cũng như các khái niệm cơ bản về cấu trúc, chức năng và cách vận hành của các vi mạch này để nắm bắt được nguyên lý và ứng dụng một cách hiệu quả.

- Giải thích được sự cần thiết và ý nghĩa trong thiết kế logic của họ PLDs, CPLDs, FPGA

- Trình bày cấu tạo, ý nghĩa thực tế của việc sử dụng mảng logic lập trình được trong các yêu cầu thiết kế phức tạp

- Phân biệt cấu tạo logic giữa các họ PLDs, CPLDs, FPGA

- Nêu phạm vi ứng dụng của các họ PLD, CPLD, FPGA

- Phân biệt sự khác nhau giữa PLD với CPLD và FPGA

- Cách xác định và lựa chọn linh kiện trong thiết kế logic

Mục tiêu: khái quát cho người học nắm rõ lịch sử phát triển của vi mạch khả trình

Vi mạch khả trình gồm các dạng sau:

SPLD (Simple Programmable Logic Device) là nhóm IC khả trình bao gồm các loại PROM, PAL, PLA và GAL Đặc điểm chung của SPLD là tích hợp từ vài chục cổng ở PROM đến vài trăm cổng ở PAL và GAL, cho phép người dùng lập trình chức năng logic theo nhu cầu thiết kế SPLD là giải pháp tối ưu cho các ứng dụng logic tùy biến với mức chi phí và tài nguyên phù hợp, đáp ứng nhanh các yêu cầu thiết kế điện tử nhỏ đến vừa.

CPLD (Complex Programmable Logic Device) là IC khả trình phức tạp, thường được ghép từ nhiều SPLD trên một chip đơn Số lượng cổng tương đương của CPLD đạt từ hàng nghìn đến hàng chục nghìn cổng, cho phép triển khai các chức năng logic phức tạp và kết nối tín hiệu trên một mạch tích hợp duy nhất.

 FPGA (Field – Programmable Gate Array) là IC khả trình được cấu trúc từ mảng các khối logic lập trình được

PROM (Programmable Read-Only Memory) được phát minh năm 1956 bởi Wen Tsing Chow khi làm việc tại Arma Division của công ty American Bosch Arma ở Garden, New York Thiết bị được chế tạo theo đơn đặt hàng của lực lượng không quân Mỹ nhằm lưu trữ an toàn và linh hoạt các tham số mục tiêu PROM được dùng trong máy tính của hệ thống phóng tên lửa Atlas E/F và được giữ bí mật trong vài năm trước khi Atlas E/F phổ biến PROM là vi mạch lập trình đầu tiên và đơn giản nhất trong nhóm các vi mạch bán dẫn có thể lập trình (PLD).

PAL (Programmable Array Logic) ra đời cuối những năm 1970 Cấu trúc của PAL kế thừa cấu trúc của PROM, sử dụng hai mảng logic nhưng nếu như ở các PROM mảng OR là mảng lập trình được thì ở PAL mảng AND lập trình được, còn mảng OR được gắn cứng, nghĩa là các thành phần tích có thể thay đổi nhưng tổ hợp của chúng sẽ cố định, cải tiến này tạo sự linh hoạt hơn trong việc thực hiện các hàm khác nhau Ngoài ra cấu trúc PAL còn phân biệt với PROM là ở mỗi đầu ra của mảng OR lập trình được được dẫn bởi khối logic gọi là Macrocell

PLA (Programmable Logic Array) ra đời năm 1975, và là chip lập trình thứ hai sau PROM Cấu trúc của PLA không khác nhiều so với cấu trúc của PAL, ngoại trừ khả năng lập trình ở cả hai ma trận AND và OR Nhờ cấu trúc đó mà PLA có khả năng lập trình linh động hơn, nhưng bù lại tốc độ của PLA thấp hơn nhiều so với PROM và PAL và các sản phẩm cùng loại Thực tế PLA được ứng dụng không nhiều và nhanh chóng bị thay thế bởi những công nghệ mới hơn như GAL, CPLD,…

GAL (Generic Array Logic) được phát triển bởi Lattice Semiconductor vào năm 1983 Cấu trúc của GAL tương tự PAL, nhưng GAL sử dụng công nghệ lập trình PROM CMOS có thể xóa bằng điện thay cho công nghệ lập trình bằng cầu chì nghịch ở PAL Vì vậy GAL thường được coi là phiên bản PAL được cải tiến và ít được gọi bằng tên riêng.

PROM, PAL và GAL là các chip khả trình có ưu điểm thiết kế đơn giản và chi phí sản xuất thấp, cùng khả năng chuyển đổi dễ giữa các công nghệ khác nhau Tuy nhiên, nhược điểm của chúng là tốc độ làm việc thấp và số lượng cổng logic hạn chế, nên không đáp ứng được các thiết kế phức tạp đòi hỏi nhiều tài nguyên và hiệu suất cao Vì vậy CPLD (Complex Programmable Logic Devices) ra đời để cung cấp một giải pháp tích hợp với hiệu suất và tài nguyên tốt hơn cho các ứng dụng yêu cầu khả năng tái cấu hình linh hoạt và kích thước nhỏ.

CPLD do Altera tiên phong nghiên cứu và chế tạo nhằm tạo ra các IC khả trình có dung lượng lớn, điển hình là MAX5000 và MAX7000 Thành công của Altera mở đường cho nhiều hãng khác tham gia nghiên cứu và sản xuất CPLD, ví dụ Xilinx với dòng CPLD XC95xx và Lattice với các dòng ISP Mach 4000, ISP Mach XO.

Đối với các ứng dụng ngày càng lớn và phức tạp, số lượng cổng của CPLD trở nên không đủ đáp ứng yêu cầu thiết kế Năm 1985, công ty Xilinx giới thiệu một ý tưởng đột phá: kết hợp khả năng điều khiển và thời gian đưa sản phẩm ra thị trường của PLD với mật độ và chi phí cạnh tranh của Gate Array để tạo ra FPGA (Field-Programmable Gate Array) Sáng kiến này mở ra nền tảng thiết kế kỹ thuật số linh hoạt, cho phép tối ưu hóa sự tích hợp và chi phí ở mức độ cao cho các hệ thống FPGA.

Field-Programmable Gate Arrays (FPGAs) are reconfigurable integrated circuits that deliver flexible, high-performance digital logic for diverse applications Today, Xilinx remains the world’s leading FPGA chip manufacturer, driving innovation across the industry FPGAs feature a more complex architecture and operation than CPLDs, enabling greater design versatility, scalability, and performance for modern electronics projects.

2 Sựcần thiết và ý nghĩa thực tế của việc sử dụng mảng logic có thểlập trình được:

Mục tiêu: giải thích cho người học hiểu rõ mụch đích và ý nghĩa của việc sử dụng vi mạch khả trình trong mạch điện

Các IC số rất đa dạng, từ thực hiện các phép tính kỹ thuật số cơ bản đến các chức năng phức tạp như bộ ghép kênh, phân kênh, bộ cộng, so sánh, mã hóa, giải mã và bộ đếm Đây là các IC số có chức năng cố định, mỗi IC đảm nhận một chức năng chuyên biệt, được sản xuất với số lượng lớn để đáp ứng nhu cầu ứng dụng phong phú Khi thiết kế một mạch điện, nhà thiết kế có thể chọn từ các IC có sẵn phù hợp nhất cho mạch và phần thiết kế có thể được chỉnh sửa để đáp ứng các yêu cầu riêng biệt của từng linh kiện Ưu điểm của phương pháp này là rút ngắn thời gian thiết kế, giảm chi phí sản xuất và tăng độ tin cậy nhờ được sản xuất ở quy mô lớn, đồng thời dễ dàng tích hợp vào các hệ thống điện tử số.

 Chi phí phát triển thấp

 Vận hành nhanh xung quanh bản thiết kế

 Tương đối dễ thử nghiệm các mạch điện

 Các yêu cầu về kích thước trong bảng mạch lớn

 Yêu cầu về điện lớn

 Thiếu tính bảo mật (Các bảng mạch có thể bị sao chép)

Để chỉnh sửa bản thiết kế hoặc trình bày các tính năng khác, cần cân nhắc các yêu cầu chi phí bổ sung, khoảng trống và điện năng Để khắc phục nhược điểm của thiết kế bằng cách dùng IC có chức năng cố định, các mạch tích hợp ứng dụng đặc thù (ASIC - Application-Specific Integrated Circuit) đã được phát triển nhằm đáp ứng các yêu cầu chuyên biệt của một mạch và được giới thiệu bởi nhà sản xuất IC Những thiết kế ASIC có mức độ phức tạp cao và không thể thực hiện với IC có chức năng cố định Ưu điểm của phương pháp này là tối ưu hóa hiệu suất và khả năng đáp ứng các chức năng đặc thù một cách hiệu quả, dù chi phí thiết kế và phát triển ban đầu có thể cao.

 Giảm thiểu được kích thước thông qua việc sử dụng mức tích hợp cao

 Giảm thiểu được yêu cầu vềđiện

 Nếu được sản xuất theo một quy mô lớn thì chi phí giảm đáng kể

 Việc thiết kế được thực thi dưới dạng này thì hoàn toàn không thể sao chép được

 Chi phí phát triển ban đầu có thể cực kỳ lớn

Việc phát triển các phương pháp thử nghiệm là cần thiết, nhưng điều này làm tăng chi phí Để tận dụng ưu điểm của hai phương pháp và đồng thời xử lý các ứng dụng lớn, phức tạp, mảng logic lập trình được sử dụng để tối ưu hóa quá trình xử lý.

Với các ưu điểm như khả năng tái cấu hình linh hoạt, tốc độ hoạt động cao, thời gian sản xuất ngắn và giá thành giảm, mảng logic lập trình được xem là giải pháp tối ưu cho thiết kế hệ thống số và điều khiển Những đặc tính này cho phép nhanh chóng thích nghi với yêu cầu mới, rút ngắn chu kỳ phát triển và giảm tổng chi phí sản phẩm Do đó, mảng logic lập trình được áp dụng rộng rãi trong các lĩnh vực như tự động hóa công nghiệp, viễn thông, máy tính nhúng, điện tử tiêu dùng và các hệ thống kiểm soát vừa và nhỏ, mang lại hiệu suất cao và tính linh hoạt cho các ứng dụng đòi hỏi sự tùy biến và tối ưu chi phí.

Thiết kế các lõi IP cho các lĩnh vực chuyên dụng:

 Công nghiệp phát thanh truyền hình số (Broadcast Industry)

 Xử lý ảnh, thiết kế các bộ codec

 SoC thiết kế các Core CPU, bus

Vi mạch CPLD

Mục tiêu: giới thiệu cho người học những kiến thức tổng quan về trấu trúc một họ CPLD cụ thể

Cấu trúc cơ bản của họ CPLD XC9500 được mô tả trong hình 2.1

Hình 2.1 – Cấu trúc họ CPLD XC9500

Mỗi khối chức năng (Function Block, FB) được thể hiện trong hình 2.1 và chứa 18 macrocell độc lập Mỗi macrocell có thể thực thi các hàm kết hợp hoặc thanh ghi, cho phép xử lý dữ liệu và lưu trữ trạng thái một cách riêng biệt.

Each FB block includes a clock-pulse receiver that drives its outputs and handles the set/reset signals These FB blocks generate 18 outputs that connect to the Fast CONNECT switch matrix.

Hình 2.2 – Khối FB của XC9500

Hình 2.3 – Cấu trúc macrocell bên trong khối FB Các khối I/O:

Khối IO (IOB) đảm nhiệm vai trò giao tiếp giữa logic bên trong và các chân người dùng ở phía ngoài, đảm bảo liên kết tín hiệu và điều khiển dữ liệu qua các đường dẫn ngoài–nội Mỗi IOB bao gồm bộ đệm ngõ vào, bộ lái, bộ mux ngõ ra và bộ điều khiển tiếp đất có thể lập trình được, cho phép tinh chỉnh tín hiệu và tối ưu hóa hiệu suất hệ thống, như minh họa ở hình 2.4.

Bộ đệm ngõ vào được thiết kế tương thích với chuẩn CMOS 5V, TTL 5V và các mức tín hiệu 3.3V, giúp kết nối dễ dàng giữa các thiết bị có mức điện áp khác nhau Bộ đệm ngõ vào còn dùng nguồn cung cấp nội bộ 5V (VCCINT) để ngưỡng ngõ vào luôn ở mức cố định, không bị lệch so với điện áp cấp, từ đó tăng tính ổn định và độ tin cậy cho tín hiệu đầu vào.

Ngõ ra kết nối có thể được tạo ra từ bốn nguồn chính: tín hiệu từ macrocell, các tín hiệu OE toàn cục, hoặc ở trạng thái cố định luôn ở mức 1 hoặc luôn ở mức 0 Thiết bị có hai ngõ vào kết nối toàn cục dành cho 144 macrocell và có bốn ngõ vào kết nối toàn cục để kết nối với các thành phần Cả hai cực của bộ điều khiển ba trạng thái của các chân (GTS) đều có thể được sử dụng trong thiết bị.

Hình 2.4 – Khối IO và kết nối ngõ ra của CPLD XC9500

Ma trận Fast CONNECT Switch:

Ma trận Fast CONNECT switch kết nối các tín hiệu tới các ngõ vào FB (xem hình 2.5) Toàn bộ ngõ IOB (tương ứng với các chân vào của người dùng) và tất cả các ngõ ra của ma trận Fast CONNECT được điều khiển bởi hệ thống này, đảm bảo tín hiệu được chuyển tiếp chính xác và ổn định.

Hình 2.5 – Ma trận Fast CONNECT Switch

Lập trình trong hệ thống:

XC9500 được lập trình trong hệ thống với chuẩn JTAG 4 chân (JTAG:

Joint Test Group) Khi lập trình, tất cả các port ngõ vào trong khối I/O được thiết lập ở mức cao “H”

Hình 2.6 – Kết nối CPLD với chuẩ JTAG

YÊU CẦU VỀ ĐÁNH GIÁ KẾT QUẢ HỌC TẬP BÀI 2 :

- Về kiến thức: Trình bày được các kiến thức tổng quan về cấu trúc và tính năng của họ vi mạch CPLD của hãng Xilinx.

- Về kỹ năng: phân biệt được các loại CPLD khác nhau Xác định và lựa chọn linh kiện CPLD trong thiết kế logic.

- Về thái độ: Đảm bảo an toàn và vệ sinh công nghiệp.

- Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp.

Vi mạch FPGA

Mục tiêu: giới thiệu cho người học những kiến thức cơ bản về họ FPGA Spartan 3E của hãng Xilinx

Hình 3.1 – Cấu trúc chung của họ FPGA Spartan 3E

FPGA spartan 3E được cấu trúc từ các thành phần sau:

 CLBs (Configuration Logic Blocks): là các khối chứa các LUTs

(Look Up Tables) để thực thi các phép lưu trữ logic như flip-flop hay chốt, thực thi các hàm logic

IOB (Input/Output Blocks) là các khối điều khiển dữ liệu giữa các chân I/O và logic bên trong thiết bị, đảm bảo giao tiếp giữa phần cứng và hệ thống xử lý được thông suốt Mỗi IOB hỗ trợ truyền dữ liệu hai chiều và hoạt động ở ba trạng thái, giúp tối ưu hóa điều phối tín hiệu và sự linh hoạt của mạch điều khiển.

 Khối RAM: cung cấp cho việc lưu trữ dữ liệu với các khối RAM

 Khối Multiplier : Tính toán các số nhị phân 18 bit

 Khối DCM (Digial Clock Manager): cung cấp các giải pháp đo, trễ, nhân, chia và dịch pha các tín hiệu clock

Trong FPGA của Xilinx, khối logic khả trình được triển khai dưới dạng các khối CLB (Configurable Logic Blocks) CLB là thành phần cơ bản cấu thành FPGA và là nguồn tài nguyên logic chính để thiết kế và triển khai các mạch logic tùy biến.

Mỗi CLB được cấu thành từ 4 Slice, mỗi Slice lại được cấu thành từ 2

LUT (Look Up Tables) Phân bố của các CLB được thể hiện ở hình 3.2

Hình 3.2 – Phân bố của các CLB trong FPGA

Các CLB được phân bổ theo hàng và theo cột, mỗi CLB được xác định bằng tọa độ X và Y trong ma trận, cho phép xác định vị trí chính xác trên lưới và tối ưu hóa quản lý nguồn lực Đối với Spartan 3E, số lượng hàng dao động từ 22 đến 76 và số lượng cột dao động từ 16 đến 56 tùy thuộc vào từng linh kiện cụ thể, cho phép điều chỉnh cấu hình hệ thống theo yêu cầu thiết kế a SLICE:

Mỗi CLB (Configurable Logic Block) được cấu thành từ 4 slice, chia thành hai nhóm: hai slice bên trái có khả năng thực hiện cả chức năng logic và lưu trữ như các phần tử nhớ nên được gọi là SLICEM (Slice Memory), trong khi hai slice bên phải chỉ thực hiện chức năng logic và gọi là SLICEL (Slice Logic) Thiết kế này bắt nguồn từ thực tế khi nhu cầu về logic thường lớn hơn nhu cầu lưu trữ dữ liệu; việc chỉ một nửa slice vừa đảm nhận chức năng nhớ vừa giảm kích thước và chi phí FPGA, đồng thời tăng tốc độ làm việc cho toàn bộ khối.

Hình 3.3 – Bố trí slice bên trong một CLB

Cả hai thành phần SLICEM và SLICEL có chứa các thành phần để thực thi các hàm logic, thuật toán và ROM:

 Hai bộ mux mở rộng F5MUX và FiMUX

 Logic nhớ và logic số học

Ngoài ra SLICEM hỗ trợ thêm hai RAM phân bố 16x1 gọi là RAM16 và hai thanh ghi dịch 16 bit là SRL16 như hình 3.4

Hình 3.4 – Phân bố tài nguyên trong SLICEM và SLICEL

Cấu trúc chi tiết của một slice được thể hiện ở hình 3.5

Hình 3.5 – Cấu trúc của slice

Những đường gạch đứt biểu thị các kết nối tới các tài nguyên chỉ có ở SLICEM, trong khi những đường gạch liền cho thấy các kết nối mà cả hai dạng slice đều có Việc phân biệt này giúp tối ưu việc quản lý nguồn lực và nhận diện nhanh các liên kết độc quyền so với liên kết chung giữa các dạng slice b Bảng tham chiếu LUT (Lookup Table) cung cấp cơ sở tham chiếu cho việc ánh xạ tín hiệu, hỗ trợ tối ưu hóa hiệu suất và độ tin cậy của hệ thống.

Hình 3.6 – Phân bố các LUT trên một slice

Bảng tham chiếu LUT được phân bố ở góc trên và góc dưới của mỗi slice và được gọi tên tương ứng là G-LUT và F-LUT Phần tử nhớ đóng vai trò là đầu ra của các LUT và được gọi lần lượt là flip-flop X (FFX) và flip-flop Y (FFY) LUT là đơn vị logic và là tài nguyên logic cơ bản của FPGA, có khả năng được cấu hình để thực hiện một hàm logic bất kỳ với bốn đầu vào Cấu trúc của LUT được thể hiện như sau:

LUT (Look-Up Table) là một bộ chọn kênh với 16 ngõ vào, trong đó các ngõ vào A[3:0] đóng vai trò tín hiệu chọn kênh và ngõ ra D là đầu ra của bộ chọn Khi thực hiện một hàm logic bất kỳ, một mảng nhớ SRAM 16 bit được tạo ra để lưu trữ bảng sự thật của hàm, với 16 giá trị tương ứng thành các kênh chọn của khối LUT Tuỳ theo giá trị của A[3:0], đầu ra D sẽ nhận đúng một trong 16 giá trị lưu trữ trong SRAM, nhờ đó một hàm logic bất kỳ với bốn đầu vào và một đầu ra có thể được triển khai trên LUT.

Hai LUT có trong SLICEM có thể được cấu trúc để làm việc như RAM

16x1 gọi là RAM phân tán hoặc được cấu trúc để làm việc như một thanh ghi dịch 16 bit SHL16

Các LUT có thể được kết hợp với nhau thông qua các bộ chọn kênh mở rộng để thực hiện các hàm logic tùy biến với số đầu vào lớn hơn 4 Ở các thế hệ FPGA sau này, nguyên lý làm việc của LUT vẫn không thay đổi, nhưng số lượng đầu vào có thể nhiều hơn, cho phép thiết kế phức tạp hơn mà vẫn duy trì tính linh hoạt Phần tử nhớ được tích hợp để lưu trữ trạng thái của hệ thống và hỗ trợ LUT trong các chức năng nhớ và điều khiển tín hiệu.

Phần tử nhớ trong CLB, gồm FFX và FFY, có thể được cấu hình để hoạt động như D flip-flop hoặc chốt, làm việc với tín hiệu clock hoặc không có clock, vì vậy cấu trúc của phần tử nhớ trong FPGA phức tạp hơn so với cấu trúc của D flip-flop thông thường Các đầu ra QX và QY của các phần tử nhớ cũng là các đầu ra của slice Trong hầu hết các ứng dụng phổ biến, phần tử nhớ được cấu hình để hoạt động như D flip-flop có xung clock d Bộ chọn kênh mở rộng:

Trong cấu trúc của slice có chứa hai bộmux đặc biệt gọi là bộ mux mở rộng F5MUX và FiMUX

Trong FPGA, mỗi LUT có thể thực hiện mọi hàm logic bốn đầu vào Các bộ chọn kênh được thiết kế để tăng tính linh động của FPGA bằng cách ghép nối các thành phần logic chức năng như LUT, chuỗi bit nhớ, thanh ghi dịch và RAM phân tán ở các slice và CLB khác nhau để tạo ra các hàm tùy biến với nhiều đầu vào hơn.

Hình 3.9 – Cấu tạo của F5MUX

Bảng sự thật của bộ F5MUX được thể hiện chi tiết trong bảng 3.2

Bảng 3.2 – Bảng sự thật bộ F5MUX

Tương tự, có thể xây dựng các hàm với số lượng đầu vào lớn hơn bằng cách sử dụng các bộ FiMUX tương ứng như F6MUX, F7MUX và F8MUX, giúp mở rộng khả năng xử lý và tối ưu hóa đường dẫn tín hiệu trong mạch, đồng thời tăng tính linh hoạt của thiết kế Các FiMUX này cho phép ghép nhiều đầu vào thành một đầu ra một cách hiệu quả, hỗ trợ tối ưu hóa kích thước và chi phí mạch Trong phần e, chúng ta sẽ khám phá sâu hơn về chuỗi bit nhớ và chuỗi số học, hai khía cạnh quan trọng liên quan đến cách lưu trữ và xử lý dữ liệu trong hệ thống số.

Spartan 3E và các FPGA thế hệ sau tích hợp sẵn các chuỗi carry (carry chain) và chuỗi số học (arithmetic chain) đặc thù, kết hợp với các LUT để tự động tối ưu hóa các phép toán số học phổ biến như cộng, trừ và nhân, từ đó tăng tốc xử lý và tiết kiệm tài nguyên logic (LUT) Các chuỗi này được hình thành từ các khối chọn kênh và các cổng logic riêng biệt, đồng thời các phần tử của chúng có thể được sử dụng độc lập để triển khai các hàm logic đơn giản khác.

Trong thiết kế mạch số cho phép thực hiện phép cộng, chuỗi bit nhớ là thành phần phổ biến Mỗi slice có một chuỗi bit nhớ bắt đầu từ tín hiệu CIN và kết thúc ở COUT Các chuỗi bit nhớ riêng lẻ có thể được nối trực tiếp giữa các CLB với nhau để tạo thành các chuỗi dài hơn theo yêu cầu thiết kế Mỗi chuỗi bit nhớ này có thể được bắt đầu tại bất kỳ đầu vào BY nào của các slice.

Trong thiết kế logic số, chuỗi số học logic mô tả cách thực hiện hàm XOR bằng các cổng XORG và XORF được phân bố ở phần trên và phần dưới của slice Các chuỗi AND được thực hiện qua các cổng GAND và FAND, và sự kết hợp của chúng với LUT (Look-Up Table) cho phép thực hiện phép nhân hoặc tạo thành các bộ đếm nhị phân Sự phối hợp giữa XOR và AND với LUT tối ưu hóa độ phức tạp mạch và hiệu năng, đồng thời hỗ trợ tái sử dụng cấu trúc trên FPGA thông qua phân phối dữ liệu và chu trình trong các slice Những yếu tố thiết kế này giúp mở rộng và tối ưu hóa kích thước mạch, đặc biệt khi triển khai các thuật toán nhị phân và các bộ đếm nhị phân trong hệ thống nhúng và FPGA.

Việc sử dụng các chuỗi này giúp tối ưu hóa tài nguyên và tăng tốc độ cho FPGA Thiết kế điển hình của bộ cộng 1 bit FULL_ADDER trên FPGA được minh họa trong hình 3.11, còn bộ nhân được thể hiện trong hình 3.12.

Hình 3.11- Sơ đồ logic của bộ cộng 1 bit FULL_ADDER trên

Hình 3.12 – Bộ nhân trong FPGA

Lựa chọn phương án cấu hình cho FPGA

Từ đặc tính lưu trữ dữ liệu chương trình cho FPGA ta có thể lựa chọn phương án cấu hình cho FPGA dựa vào đặc tính lưu trữ dữ liệu đó

Cấu hình trực tiếp trên FPGA: chương trình sẽ mất đi sau khi mất nguồn điện, do đó phương pháp cấu hình này thường được sử dụng khi cần kiểm tra chương trình đã hoạt động đúng như yêu cầu đã thiết kế hay chưa, ứng dụng vào giảng dạy, học tập,…

Cấu hình chương trình trên phần tử nhớ là phương pháp lưu giữ và tải lên chương trình để FPGA có thể hoạt động hiệu quả trong các hệ thống ứng dụng cụ thể Sau khi đã test xong chương trình, người dùng sẽ xác định cách lưu trữ và nạp lại chương trình phù hợp với thiết kế và yêu cầu của hệ thống Tùy thuộc vào thiết kế và mục đích ứng dụng, có thể lựa chọn các phương pháp cấu hình cho phần tử nhớ khác nhau như PROM, SPI hoặc thẻ CF, nhằm tối ưu độ tin cậy, tốc độ nạp và chi phí tích hợp.

YÊU CẦU VỀ ĐÁNH GIÁ KẾT QUẢ HỌC TẬP BÀI 3 :

- Về kiến thức: Trình bày được các kiến thức tổng quan về cấu trúc, tính năng và đặc tính của họ FPGA Phương án cấu hình cho FPGA.

- Về kỹ năng: phân biệt được các loại FPGA khác nhau Xác định và lựa chọn linh kiện FPGA trong thiết kế logic.

- Về thái độ: Đảm bảo an toàn và vệ sinh công nghiệp.

- Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp.

Ngày đăng: 23/10/2022, 07:25

🧩 Sản phẩm bạn có thể quan tâm