Tổng quan về công nghệ FPGA

19/03/2012 0 2535

Bạn muốn thiết kế một đầu đọc thẻ nhớ 5 trong 1? Dễ thôi, bạn mua 1 bộ điều khiển cho MMC, 1 bộ điều khiển cho SD,... rồi gắn tất cả lên trên 1 bo mạch? Nhưng tại một thời điểm chỉ có thể có (và chỉ cần) một loại card được sử dụng trong đầu đọc. Phải chăng là 1 sự lãng phí? Lãng phí tài nguyên phần cứng, lãng phí công suất tiêu thụ? Tại sao bạn không nghĩ đến FPGA?


Kiến trúc mạch FPGA

Với FPGA, khi bạn cho thẻ nhớ MMC vào, đầu đọc hoạt động theo chuẩn của MMC và khi bạn dùng thẻ SD, FPGA trong đầu đọc sẽ được tự cấu hình lại theo chuẩn của SD. Như vậy bạn đã tiết kiệm được tài nguyên cho hệ thống bởi chỉ với 1 platform bạn thực hiện được nhiều tác vụ và tất nhiên cả công suất tiêu tán trên nó. Trên thực tế không ai làm như vậy vì như thế là đem dao mổ trâu đi giết gà và còn phải giải quyểt vấn đề về mức điện áp logic của các chuẩn. Ý tưởng này chỉ tồn tại trong các hobby project :D

Vậy FPGA là gì?

FPGA là 1 chip silicon chứa trong nó rất nhiều “khối logic” có thể tái cấu hình CLB (Configurable Logic Blocks) được liên kết với nhau thành bằng các liên kết khả trình (Programmable Interconnect). Các khối vào ra được phân bố xung quanh chip tạo thành các liên kết với bên ngoài. Bên trong khối logic CLB có bảng LUT (Look-Up Table) và các phần tử nhớ (FlipFlop hoặc bộ chốt). Bảng LUT với nhiều đầu vào và 1 đầu ra tạo thành 1 mạch logic tổ hợp nhỏ, còn các phần tử nhớ dành cho logic synchronous và sequential.


LUT (Look-Up Table)

Bạn sẽ băn khoăn 1 CLB với 1 LUT với 4 hay 6 đầu vào thì làm được gì cho bạn? Nhưng 1 chip FPGA có chứa cỡ hàng nghìn, chục nghìn thậm chí lên đến hàng trăm nghìn CLB, nên nó có thể làm được rất nhiều chức năng phức tạp và bạn không phải quá quan tâm nội dung bên trong 1 CLB, bên trong 1 LUT như thế nào? Việc đó đã có bộ công cụ phần mềm chuyên dụng thực hiện cho bạn? Tất cả những gì bạn cần phải làm trước tiên là lập trình cho FPGA và để cho công cụ thực hiện các giai đoạn còn lại. Tất nhiên bạn phải tuân thủ chu trình thiết kế và thoả mãn các yêu cầu của công cụ.


FPGA Design Flow

Bạn yêu thích FPGA?

Hãy nhanh lên chọn và học một ngôn ngữ lập trình mô tả phần cứng HDL. Giới kỹ thuật ở Bắc Mỹ thì chuộng Verilog còn ở châu Âu lại khoái VHDL mặc dù cả 2 đều được sinh ra ở Mỹ. Đây cũng là 2 ngôn ngữ thông dụng nhất hiện nay. Ngoài ra còn có ABEL (được dùng từ lâu nhưng không phổ biến) và gần đây systemC. Bản thân tác giả không thể khuyên bạn nên dùng ngôn ngữ nào nhưng có một điều chắc chắn là Xilinx ISE và Altera Quartus đều hỗ trợ VHDL và Verilog.

Phần lớn các sản phẩm FPGA trên thị trường hiện nay đều dựa trên công nghệ SRAM với 2 hãng sản xuất lớn nhất là Xilinx và Altera. Dòng FPGA cao cấp nhất của Xilinx là Virtex với sản phẩm mới nhất là Virtex 5 (ra mắt trung tuần tháng 5/2006) còn với Altera là người anh cả Stratix 3 (tháng 11/2006). Ngoài ra còn có các hãng khác sản xuất FPGA nhưng với mục đích chuyên dụng (Atmel, Actel, Lattice,..)

 

Nguồn: thongtincongnghe.com

Đăng nhập