Phần cứng cấu hỡnh được là nhúm cỏc mạch tớch hợp được biết đến với cỏi tờn Linh kiện logic lập trỡnh được (PLD) hay Mảng cỏc cổng lập trỡnh được (FPGA). Cỏc linh kiện này cho phộp người thiết kế cấu hỡnh cho nú chỉ trong vài giõy, và mỗi FPGA cú thể thiết kế để thực hiện cỏc chức năng hoàn toàn khỏc nhau. Số lần cấu hỡnh lại của FPGA cũng là khụng giới hạn, do đú cú thể nghiờn cứu, phỏt triển và ứng dụng hệ thống ngay trờn chớnh chip đú.
Linh kiện FPGA cho phộp cấu hỡnh lại để thay đổi chức năng logic trong khi vẫn đang nằm trong hệ thống. Khả năng này cho phộp nhà thiết kế cú thể thoải mỏi phỏt triển, dễ dàng thay đổi chức năng phần cứng giống như đang thực hiện trờn phần mềm.Thậm chớ FPGA cũn cú thể tự động cấu hỡnh để thực hiện cỏc chức năng khỏc nhau trong những khoảng thời gian khỏc nhau. Khả năng cho phộp cấu hỡnh lại chức năng logic cú thể ứng dụng trong nhiều kiểu hệ thống để cài đặt hệ thống tự khắc phục lỗi, tạo hệ thống cú thể được cấu hỡnh cho nhiều mụi trường hoạt động, hoặc cài đặt thành phần cứng đa mục đớch cho cỏc ứng dụng khỏc nhau. Hơn nữa, sửdụng FPGA làm cho dễ thiết kế và kiểm tra phần cứng cũng như khả năng nhanh chúng tung sản phẩm ra thị trường. Cho đến nay, nhiều nhà thiết kế đó sử dụng FPGA để cài đặt trờn cựng một phần cứng cả thuật toỏn mó hoỏ khoỏ cụng khai dung trong tạo và thay đổi khoỏ phiờn và thuật toỏn khoỏ bớ mật truyền thống dựng trong mó hoỏ dữ liệu người dựng.
Bờn cạnh thời gian để thiết kế và phỏt triển ngắn hơn, linh kiện FPGA cũn cho phộp khả năng chế tạo cỏc bảng mạch mẫu cũng như cỏc giải phỏp giỏ rẻ. Thậm chớ đối với cả cỏc hệ thống đang cú giỏ thành rất cao thỡ cỏc nhà sản xuất FPGA cũng cú thể cung cấp cụng cụ và khả năng xử lý để cú thể chuyển thiết kế sang cỏc linh kiện lập trỡnh được này.
Đối với cỏc nhà thiết kế chip bảo mật di động, FPGA cho phộp thiết kế hệ thống một cỏch mềm dẻo nhất. Kiến trỳc bảo mật cú thể được thử nghiệm với mó hoỏ khối hoặc mó xoắn, với nhiều kiểu hàm băm, thay đổi giao diện với CPU chớnh để cú thể phõn tớch và đỏnh giỏ hiệu năng của hệ thống. Ứng dụng thực tế được nạp trực tiếp vào FPGA và cú thể thấy ngay cỏc hoạt động của nú. Quyết định cuối cựng khụng cũn là trờn cơ sở cảm tớnh, hay chỉ là mụ phỏng trờn phần mềm mà hoàn toàn theo hiệu năng thực của cỏc thành phần thớch hợp.
Hỡnh 4.2 Cấu trỳc CLB trong FPGA Hỡnh 4.3 Cấu trỳc slice trong FPGA
Vậy thỡ cấu trỳc bờn trong của FPGA như thế nào mà nú lại cú thể mềm dẻo như thế ? FPGA bao gồm hàng ngàn khối logic đa năng, hay cũn gọi là Khối logic cấu hỡnh được (CLB) được thiết kế và sắp xếp một cỏch mềm dẻo với kiến trỳc khả trỡnh. Cỏc CLB liờn kết với nhau thụng qua mạng cỏc đường định hướng và toàn bộ kiến trỳc logic này kết nối với thế giới bờn ngoài qua cỏc cổng vào/ra, cũng lập trỡnh được. Trong cỏc chip FPGA thế hệ mới nhất, ngoài cỏc thành phần cơ bản như trờn, cũn được nhỳng thờm rất nhiều khối chức năng tiến tiến khỏc, cú thể kể đến như Khối RAM cú dung lượng lớn, bộ Nhõn chia cho cỏc ứng dụng DSP, cỏc bộ Vi xử lý nhỳng 8 bit, 32 bit lừi mềm và thậm chớ cả bộ Vi xử lý cứng cũng được nhỳng trong FPGA. Hỡnh 4.1 trỡnh bày cấu trỳc tổng quỏt cỏc thành phần trong một FPGA cũn hỡnh 4.2 trỡnh bày cấu trỳc chung
của một CLB, mỗi CLB bao gồm bốn slice kết nối tới ma trận chuyển mạch. Hỡnh 4.3 và hỡnh 4.4 trỡnh bày cấu trỳc của một slice. Chi tiết về cổng vào ra khả trỡnh được mụ tả như trong hỡnh 4.6.
Dữ liệu cấu hỡnh cho FPGA được nạp vào cỏc ụ nhớ đặc biệt bờn trong chip để tuỳ chọn chức năng của nú. FPGA cú thể đọc dữ liệu cấu hỡnh của nú từ bộ nhớ PROM ngoài thụng qua cổng nối tiếp hoặc song song (chế độ master), hoặc được nạp từ thiết bị khỏc bờn ngoài (chế độ ngoại vi hay slave). Cỏc nhà sản xuất linh kiện FPGA cũng cung cấp cả cụng cụ phần mềm mạnh, hỗ trợ nhiều cỏch thiết kế khỏc nhau, từ vẽ sơ đồ cho đến mụ tả hoạt động, mỏy trạng thỏi, mụ phỏng, đặt và liờn kết cỏc khối chức năng để tạo, nạp vào chip và đọc ngược trở lại luồng bit cấu hỡnh cho chip.
Khi cấu hỡnh lại chip, chức năng của cỏc CLB và liờn kết giữa chỳng do đú cũng thay đổi theo, làm cho mạch cú chức năng hoàn toàn mới. Mỗi CLB cú thể cấu hỡnh thành hai chế độ - logic hoặc làm bộ nhớ. Hỡnh 4.4 trỡnh bày cấu trỳc chi tiết của khối logic, bao gồm bảng tra chức năng (LUT) và hai thanh ghi một bit. Khi cấu hỡnh thành bộ nhớ phõn tỏn, phần logic được thay bằng bộ nhớ 16 bit ( hỡnh 4.5).
Hỡnh 4.4: Cấu trỳc chi tiết một slice
Hỡnh 4.6: Cấu trỳc cơ bản của khối vào / ra IOB