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ể
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.
Hỡnh 4.1 Cấu trỳc cơ bản của FPGA
Đố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ừ
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.5 : Cấu hỡnh slice thành bộ nhớ RAM
Hỡnh 4.6: Cấu trỳc cơ bản của khối vào / ra IOB