Cơ bản về FPGA: Khái niệm FPGA và ASIC
1. FPGA là gì??
FPGA là viết tắt của Field Programmable Gate Array, tạm dịch sang tiếng Việt là một loại vi mạch dùng cấu trúc mảng phần tử logic có thể lập trình được. Hay có thể hiểu nôm na nó là một loại chip trắng cho phép người dùng có thể tái cấu hình lại kiến trúc theo ý người dùng để thực thi một chức năng cụ thể. Các phần tử logic ở đây chính là các cổng logic (AND, OR, NOT, NAND, NOR...), các Look-up-table, các Flip-flop (RS, RSH, JK, D, T). Ta có thể viết code để hiện thức hoá những kết nối vật lý (với dây dẫn) giữa những phần tử này và thực hiện các chức năng mong muốn.
Như ta thấy trong hình ở đầu bài thì FPGA chính là con chip ở giữa board, còn những phần tử khác là ngoại vi được kết nối với FPGA để ta có thể dễ dàng phát triển.
2. ASIC là gì??
ASIC là viết tắt của Application Specific Integrated Circuit. ASIC về lý thuyết là giống với FPGA, trừ 1 điểm là nó được sản xuất như 1 mạch tuỳ biến. Điều đó có nghĩa là khác với FPGA thì ASIC không khả trình. Vì ASIC là mạch cố định được tuỳ chỉnh nên chúng rất nhanh và tiêu tốn ít điện năng hơn FPGA. Điều này rất quan trọng ở những ứng dụng công suất tiêu thụ thấp như là điện thoại di động, máy phát nhạc MP3 và những thiết bị khác.
Hạn chế lớn nhất của ASIC là giá thành. Để 1 công ty xây dựng một ASIC thì phải tốn hàng trăm nghìn dollar chỉ cho việc chi phí đầu tư ban đầu.
Cả FPGA và ASIC đều được thiết kế với một ngôn ngữ mô tả phần cứng (HDL). 2 ngôn ngữ mô tả phần cứng phổ biến nhất là VHDL và Verilog.
3. FPGA hay ASIC??
Để dễ hình dung hơn về hai 2 khái niệm này, nếu như những ai đã biết về lập trình vi điều khiển hoặc ARM, thì những vi điều khiển này như (8051/PIC/MSP430, …) hoặc ARM SoC (STM32, …) đều là loại chip được thiết kế trên công nghệ ASIC, tức kiến trúc phần cứng do nhà sản xuất thiết kế được cố định trong quá trình sản xuất, người dùng không thể nào thay đổi hoặc chỉnh sửa được. Người kĩ sư lập trình ứng dụng hoặc lập trình firmware đều phải nghiên cứu nắm vững kiến trúc của từng loại VĐK trên để phát triển phần mềm, giải thuật tương ứng. Do đó, lập trình vi điều khiển còn được hiểu là lập trình phần mềm dựa trên phần cứng có sẵn. Còn đối với FPGA, người dùng có thể tự thiết kế lại kiến trúc phần cứng theo ý mình muốn, kèm theo xây dựng các driver tương ứng để phát triển các phần mềm ứng dụng và giải thuất tối ưu hơn.
Như vậy, ưu điểm thứ nhất của FPGA là tính linh động đối với người dùng, giúp phát triển các giải pháp tốt hơn mà không phụ thuộc vào phần cứng của nhà sản xuất. Chúng ta có thể sử dụng FPGA để thiết kế cũng như lập trình được hầu hết các chức năng của bất kì mạch số nào.
Cũng giống như vi điều khiển, số lần nạp FPGA hầu như không giới hạn. Dữ liệu (chương trình) nạp cho FPGA sẽ bị mất khi mất nguồn (điện) giống như RAM trong máy tính. Nếu muốn lưu giữ lại file nạp này thì cần phải có một bộ nhớ ngoài Flash/ROM(do đặc tính của loại bộ nhớ này là lưu dữ liệu cho dù có mất nguồn) để mỗi lần bật nguồn, file dạng binary sẽ tự động nạp lại vào FPGA.
Lưu ý về khác nhau giữa FPGA và CPLD: Nếu không hiểu rõ thì ta hay gọi nhầm CPLD là FPGA, CPLD (viết tắt của Complex Programmable Logic Device) cũng là một vi mạch mà người dùng có thể lập trình được. Nó cũng tương tự như FPGA về ứng dụng nhưng không có nhiều cổng logic (logic gates) như FPGA. Do đó nếu cần thiết kế những mạch phức tạp (Ví dụ như khi thiết kế một CPU mềm thì nên dùng FPGA.) CPLD chỉ phù hợp cho những thiết kế đơn giản. Trong khi FPGA thì dựa trên SRAM, CPLD lại dựa trên EEPROM, do dó nó không bị mất dữ liệu khi tắt nguồn điên. Chỉ cần nạp điện lên là CPLD có thể hoạt động mà không cần phải tải lập trình xuống như FPGA.
KIT ALTERA EPM240 V1 với giá thành rẻ phù hợp với sinh viên sử dụng chip CPLD EPM240T100C5N TQFP100.
4. Các hãng chế tạo FPGA
Xilinx (nay là AMD) và Altera (hiện là công ty con của Intel) là 2 hãng chế tạo FPGA phổ biến nhất, vào năm 2016 thì 2 hãng này nắm giữ 90% thị trường. Các hãng còn lại là Microchip, Lattice Semiconductor, QuickLogic, Achronix.
Nguồn:
What is an FPGA? What is an ASIC? (nandland.com)
LẬP TRÌNH Fpga/vhdl – Posts | Facebook
Field-programmable gate array - Wikipedia
Nhận xét
Đăng nhận xét