Các lĩnh vực ứng dụng của FPGA

Một phần của tài liệu Luận án tiến sĩ kỹ thuật điện tử bảo mật bitstream FPGA (Trang 40)

1.2. FPGA

1.2.2. Các lĩnh vực ứng dụng của FPGA

Do tính chất có thể lập trình và lập trình lại được từng phần nên FPGA là rất lý tưởng cho việc phát triển nhiều thị trường ứng dụng khác nhau, có thể kể ra đây một số ngành nghề, lĩnh vực như sau:

Quốc phịng và hàng khơng vũ trụ; Tiền thiết kế mẫu ASICs; Điện tử ô tô; Phát thanh; Điện tử tiêu dùng; Trung tâm dữ liệu; Tính tốn hiệu năng cao và lưu trữ dữ liệu; Công nghiệp; Bảo mật; Xử lý hình ảnh và video; Truyền thơng khơng dây.

1.2.3. Cơng nghệ lập trình FPGA

Mỗi một FPGA dựa trên một cơng nghệ lập trình cơ bản để điều khiển các chuyển mạch đại diện cho khả năng lập trình của chúng. Có một số cơng nghệ lập trình và sự khác biệt của chúng ảnh hưởng đáng kể đến kiến trúc logic của FPGA. Các cơng nghệ đó bao gồm EPROM, EEPROM, flash, SRAM và antifuse, xem [72][73]. Trong đó, chỉ có các

công nghệ dựa trên flash, SRAM và antifuse được sử dụng rộng rãi trong các FPGA hiện đại. Dưới đây, chúng ta xem xét qua các công nghệ lập trình này. Trong đó đặc biệt chi tiết hơn về những ưu nhược điểm của công nghệ SRAM-based.

1.2.3.1. Cơng nghệ lập trình dựa trên SRAM

Các tế bào bộ nhớ tĩnh (SRAM cells) là cơ sở cho công nghệ lập trình SRAM, chúng được sử dụng rộng rãi trong các thiết bị của Xilinx, Lattice, và Altera. Trong các thiết bị này, các tế bào SRAM, như thể hiện trong Hình 1.10, được phân phối trên tồn FPGA để cung cấp tính năng có thể cấu hình được. Có hai cấp sử dụng cho các tế bào SRAM. Thứ nhất, hầu hết được sử dụng để thiết lập các đường dẫn đến các bộ ghép kênh. Thứ hai, phần tế bào SRAM còn lại được sử dụng để lưu trữ dữ liệu trong các bảng tra cứu (LUTs), thường được sử dụng trong SRAM-based FPGA, để thực hiện các chức năng logic.

Một SRAM-based FPGA được lập trình bằng cách nạp các tế bào bộ nhớ cấu hình (configuration memory cells) từ một nguồn lưu trữ bên ngoài. Các tế bào bộ nhớ cấu hình điều khiển các logic và liên kết để thực hiện các chức năng ứng dụng của FPGA. Khơng có vùng RAM riêng biệt trên chip, các tế bào bộ nhớ được phân bố trong các logic mà chúng kiểm sốt.

Bộ nhớ cấu hình được ghi một lần duy nhất cho mỗi ứng dụng. Như vậy, không giống như các chip bộ nhớ thương mại, tốc độ đọc/ghi cao đối với bộ nhớ cấu hình là khơng quan trọng lắm. Tính ổn định và mật độ của nó mới chính là mối quan tâm hàng đầu. Hình 1.10(a) cho thấy tế bào bộ nhớ năm transistor CMOS được sử dụng trong các FPGA của Xilinx. Các pass transistor đọc/ghi được sử dụng để nạp các tế bào bộ nhớ cấu hình và đọc lại lập trình. Trong hoạt động bình thường nó tắt, và các tế bào giữ ngun lập trình của nó.

27 Các tế bào bộ nhớ sáu transistor được sử dụng trong các bộ nhớ CMOS sử dụng các bit dữ liệu trong cả hai dạng sự thật và bổ sung (Hình 1.10(b)), hỗ trợ tốc độ đọc/ghi nhanh với chi phí thêm vào chỉ là một transistor. Các tế bào bộ nhớ bốn transistor (Hình 1.10(c)) thường được sử dụng trong SRAM-based FPGA mật độ cao có điện trở polysilicon thay vì các transistor đẩy kéo kênh P.

Hình 1.10 Các dạng tế bào bộ nhớ SRAM [72].

Cơng nghệ lập trình SRAM-based đã trở thành phương pháp tiếp cận chủ đạo cho FPGA thương mại hiện nay vì hai lợi thế chính của nó:

- Khả năng tái lập trình và sử dụng các cơng nghệ xử lý CMOS tiêu chuẩn: Thực tế,

một tế bào SRAM có thể được lập trình với số lần khơng giới hạn. Mạch chuyên dụng trên FPGA khởi tạo tất cả các bit SRAM khi mở nguồn và cấu hình các bit với cấu hình người dùng cung cấp. Không giống như các cơng nghệ lập trình khác, việc sử dụng các tế bào SRAM không yêu cầu các bước xử lý mạch tích hợp đặc biệt vượt qua CMOS tiêu chuẩn. Kết quả là, SRAM-based FPGA có thể sử dụng cơng nghệ CMOS mới nhất có sẵn và do đó, lợi ích là tích hợp tăng lên, tốc độ cao hơn và tiêu thụ điện năng thấp hơn.

- Chất lượng: Một cách gián tiếp, khả năng tái lập trình được dẫn đến các thành phần có

chất lượng rất cao vì mỗi phần có thể được kiểm tra đầy đủ mà khơng phải phá hủy nó. Tất cả các điểm lập trình và đường dẫn đều được kiểm tra. Việc kiểm tra SRAM-based FPGA bao gồm tất cả những lỗi điển hình cũng như nhiều mẫu lỗi khác mà các bộ kiểm tra ASIC có thể bị bỏ qua. Hiệu suất lập trình cho SRAM-based FPGA ln ln

28 là 100%. Khơng có bước lập trình riêng biệt, và khơng có việc tháo bỏ hoặc chèn lại đối với lập trình.

Tuy nhiên đối với cơng nghệ lập trình SRAM-based, FPGA có một số nhược điểm sau: - Kích thước lớn: Các tế bào SRAM cần phải có 5 hoặc 6 transistor và các phần tử có

thể lập trình được sử dụng để kết nối tín hiệu địi hỏi ít nhất một pass transistor.

- Sự bay hơi: Sự bay hơi của các tế bào SRAM mỗi khi tắt nguồn của thiết bị nên địi

hỏi phải có các thiết bị bên ngồi để lưu trữ dữ liệu cấu hình. Việc sử dụng Flash hoặc EEPROM bên ngồi sẽ làm tăng thêm chi phí của một SRAM-based FPGA.

- Vấn đề bảo mật: Thơng tin cấu hình phải được nạp vào thiết bị mỗi khi bật nguồn, dẫn

đến có khả năng rằng các thơng tin cấu hình này có thể bị chặn và bị đánh cắp. Một số họ FPGA hiện đại cung cấp các kỹ thuật mã hóa thơng tin cấu hình có hiệu quả để loại bỏ nguy cơ này [74], [75].

1.2.3.2. Cơng nghệ lập trình dựa trên flash

Cơng nghệ lập trình dựa trên flash cung cấp một số lợi thế, trong đó quan trọng nhất là sự khơng bay hơi. Tính năng này giúp loại bỏ sự cần thiết đối với các thiết bị hỗ trợ bên ngoài để lưu trữ và tải lại dữ liệu cấu hình như cơng nghệ lập trình dựa trên SRAM. Ngồi ra, một thiết bị dựa trên flash có thể hoạt động ngay khi mở nguồn thay vì phải chờ nạp dữ liệu cấu hình. Cách tiếp cận flash cũng hiệu quả hơn về tài nguyên so với công nghệ dựa trên SRAM đòi hỏi đến sáu transistor để thực hiện lưu trữ lập trình được. So với cơng nghệ cầu chì nghịch, một cơng nghệ lập trình khơng dễ bay hơi khác, flash-based FPGA có thể cấu hình lại và có thể được lập trình lại mà khơng cần phải gỡ bỏ khỏi bảng mạch in.

Một nhược điểm của các flash-based FPGA là chúng khơng thể lập trình lại được vơ số lần. Các thiết bị hiện tại như Actel ProASIC3 chỉ có khả năng cho khoảng 500 lần lập trình lại [76]. Đối với hầu hết cơng dụng của FPGA, số lần lập trình này là hồn toàn chấp nhận được. Trong nhiều trường hợp, FPGA được lập trình chỉ có một lần cho việc sử dụng lâu dài. Một nhược điểm đáng kể nữa của các thiết bị dựa trên flash là cần một quy trình CMOS khơng chuẩn.

1.2.3.3. Cơng nghệ lập trình dựa trên antifuse

Ưu điểm chính của cơng nghệ lập trình dựa trên cầu chì nghịch (antifuse) là sự tiêu tốn tài nguyên của nó nhỏ. Với liên kết kim loại-kim loại, khơng có v ng silicon để thực hiện các kết nối nên giảm được chi phí tài nguyên lập trình. Một lợi thế nữa của cơng nghệ lập trình antifuse là chúng có điện trở và điện dung ký sinh thấp hơn các cơng nghệ lập trình khác. Sự không bay hơi cũng làm cho các thiết bị dựa trên công nghệ lập trình cầu chì nghịch hoạt động ngay lập tức mỗi khi mở nguồn. Điều này làm giảm chi phí hệ thống từ việc khơng cần bộ nhớ bổ sung để lưu trữ các dữ liệu lập trình và cũng cho phép các FPGA

29 được sử dụng trong các tình huống địi hỏi thiết bị phải hoạt động ngay khi được cung cấp nguồn. Cuối cùng, việc nạp dữ liệu cấu hình cho FPGA chỉ được thực hiện một lần, điều này có thể được thực hiện trong một mơi trường an tồn giúp cải thiện sự bảo mật của các thiết kế trên FPGA. Để duy trì tính bảo mật này, các thiết bị hiện nay cung cấp chế độ bảo mật bằng cách vơ hiệu hóa giao diện lập trình khi thiết bị đã được lập trình [77].

Cũng có những nhược điểm đáng kể cho cơng nghệ lập trình cầu chì nghịch. Đặc biệt, khi các antifuse-based FPGA địi hỏi một quy trình CMOS khơng chuẩn. Hơn nữa, cơ chế cơ bản của lập trình cầu chì, trong đó bao gồm việc thay đổi đáng kể các tính chất của vật liệu trong các cầu chì, dẫn đến mở rộng quy mơ quy trình chế tạo vi mạch là một thách thức cần được xem xét. Thực tế cho thấy cơng nghệ lập trình cầu chì nghịch khơng cịn nhiều trong các thiết bị tiên tiến nhất sử dụng công nghệ 0.15μm [77], là các thế hệ công nghệ sử dụng với thiết bị CMOS tiêu chuẩn mới.

Antifuse-based FPGA khơng có khả năng tái lập trình cũng làm cho chúng khơng thích hợp cho các ứng dụng địi hỏi thường xun cập nhật cấu hình. Việc lập trình một lần làm cho nó khơng thể thử nghiệm để phát hiện tất cả các lỗi có thể. Một số lỗi sẽ chỉ được phát hiện sau khi lập trình sẽ khơng thể khắc phục được. Lập trình thành cơng của một số thiết bị FPGA dựa trên cầu chì nghịch hiện nay được dự báo là đạt khoảng 90% [77].

Tóm lại: Ba cơng nghệ lập trình được xem xét trong phần này đều được sử dụng trong

các FPGA hiện đại. Tuy nhiên, công nghệ lập trình dựa trên SRAM được sử dụng rộng rãi nhất. Bảng 1.6 tóm tắt sự khác biệt giữa các cơng nghệ lập trình khác nhau. Một cơng nghệ

lý tưởng sẽ là công nghệ không bay hơi và lập trình lại được sử dụng một quy trình CMOS chuẩn và yêu cầu điện trở và điện dung ký sinh thấp. Rõ ràng, khơng có cơng nghệ nào

trong số các công nghệ hiện nay đáp ứng được tất cả các yêu cầu này. Một trong những lý do mà công nghệ SRAM đã thống trị là việc sử dụng các quy trình sản xuất CMOS chuẩn. Sự thống trị này của cơng nghệ lập trình dựa trên SRAM dự kiến sẽ tiếp tục trong tương lai gần với công nghệ CMOS chuẩn mới.

Bảng 1.6 Tóm tắt các đặc tính của các cơng nghệ lập trình [78]

Các đặc tính SRAM Flash Antifuse

Tính bay hơi Có Khơng Khơng

Có thể lập trình lại Có Có Khơng

Tài ngun (kích thước phần tử lưu trữ)

Cao Vừa Thấp

Quy trình sản xuất CMOS chuẩn Flash antifuse

Có thể lập trình trong hệ thống Có Có Khơng

Điện trở chuyển mạch ~500-1000 ~500-1000 20-100

Điện dung chuyển mạch ~1-2 fF ~1-2 fF <1 fF

30

1.2.4. Thiết kế và bảo mật hệ thống dựa trên SRAM-based FPGA

1.2.4.1. Quy trình thiết kế

Quy trình thiết kế một hệ thống dựa trên SRAM-based FPGA được chỉ ra trong Hình 1.11 [79], trong đó:

- Thiết kế kiến trúc. Giai đoạn này liên quan đến việc phân tích các yêu cầu của dự án,

triển khai các vấn đề và mô phỏng các chức năng. Đầu ra của giai đoạn này là một tài liệu mô tả kiến trúc thiết bị trong tương lai, các khối cấu trúc, các chức năng và giao diện của chúng.

- Nhập thiết kế HDL. Thiết bị cần thiết kế được mô tả bằng ngôn ngữ mô tả phần cứng

HDL. Các ngôn ngữ mô tả phần cứng phổ biến nhất hiện nay là VHDL và Verilog.

- Thiết kế môi trường thử nghiệm. Giai đoạn này liên quan đến việc viết về môi trường

kiểm tra và mơ hình hành vi. Sau đó chúng được sử dụng để đảm bảo rằng các mô tả HDL của một thiết bị là chính xác.

- Mơ phỏng hành vi. Đây là một giai đoạn quan trọng để kiểm tra tính đúng đắn của

HDL bằng cách so sánh kết quả đầu ra của mơ hình HDL và mơ phỏng hành vi được đặt trong điều kiện tương tự.

Hình 1.11 Quy trình thiết kế FPGA

- Tổng hợp. Giai đoạn này liên quan đến việc chuyển đổi một mô tả HDL thành một

netlist. Theo một cách cơ bản và chính thức, netlist cịn được gọi là sơ đồ mạch số (digital circuit schematic). Tổng hợp được thực hiện bởi một phần mềm đặc biệt được gọi là bộ tổng hợp. Với một mã HDL được viết một cách chính xác và đã được mơ phỏng, việc tổng

31 hợp sẽ khơng có bất kỳ vấn đề gì. Tuy nhiên, tổng hợp có thể tiết lộ một số vấn đề và lỗi tiềm năng mà không thể phát hiện bằng cách sử dụng mơ phỏng hành vi. Do đó, một thiết FPGA nên chú ý đến những cảnh báo được chỉ ra bởi bộ tổng hợp.

- Thực hiện. Một netlist được bộ tổng hợp tạo ra được ánh xạ vào cấu trúc bên trong

của thiết bị cụ thể. Giai đoạn chính của giai đoạn thực hiện là đặt chỗ và định tuyến hoặc bố trí tài ngun của FPGA. Sau đó dữ liệu cấu hình được ghi vào một tập tin đặc biệt bởi một chương trình được gọi là bộ tạo bitstream.

- Phân tích thời gian tĩnh. Trong q trình phân tích thời gian, phần mềm đặc biệt

kiểm tra xem thiết kế được thực hiện đáp ứng các ràng buộc về thời gian (chẳng hạn như tần số xung đồng hồ) được chỉ định bởi người sử dụng hay không.

Tất cả các bước thiết kế, các công đoạn và các công cụ hỗ trợ đều được cung cấp trong các gói phần mềm thiết kế của các hãng sản xuất FPGA, như gói phần mềm ISE của Xilinx, Quatus của Altera.

1.2.4.2. Dữ liệu thiết kế và bảo mật thiết kế

Như phần ở trên ta thấy, dữ liệu thiết kế hệ thống dựa trên SRAM-based FPGA có thể được lưu trữ ở ba giai đoạn với ba mức dữ liệu khác nhau:

- Dữ liệu thiết kế ở mức HDL. HDL là ngôn ngữ mơ tả phần cứng hay là ngơn ngữ

máy tính chun d ng để lập trình cấu trúc, thiết kế và vận hành các mạch điện tử, và phổ biến nhất là các mạch logic kỹ thuật số. HDL được viết dưới dạng văn bản (text) về cấu trúc của hệ thống điện tử và hành vi của chúng theo thời gian. HDL có thể được sử dụng để thể hiện các thiết kế theo cấu trúc, hành vi hoặc kiến trúc mức chuyển dịch thanh ghi RTL (register-transfer-level) cho các chức năng của mạch điện.

Dữ liệu thiết kế ở mức HDL là quá “rõ ràng” đối với bất cứ ai có hiểu biết về ngơn ngữ lập trình phần cứng. Đây là dạng dữ liệu mà kẻ tấn công cần nhất. Rất may là chúng thường chỉ nằm trong tay của nhà thiết kế, ít trao đổi qua mạng. Nó khơng phải là dữ liệu cấu hình nên chúng cũng khơng có mặt trên các thiết bị, cách ly hoàn toàn với người sử dụng. Việc bảo mật chúng như bảo mật các văn bản thông thường và không là mối quan tâm giải quyết của luận án này.

- Dữ liệu thiết kế ở mức netlist. Netlist mô tả các kết nối của một thiết kế điện tử.

Các netlist thường truyền đạt thông tin kết nối và khơng có gì hơn ngoài các đối tượng (instances), các lưới (nets), và có thể một vài thuộc tính (attributes). Đối tượng có thể là bất cứ cái gì từ một transistor MOSFET hoặc một transistor lưỡng cực tới một điện trở, một tụ điện, hoặc chip tích hợp. Lưới là mạng dây dẫn kết nối mọi thứ với nhau trong mạch. Có thể có hoặc khơng có thuộc tính đặc biệt nào liên quan đến lưới trong một thiết kế, t y thuộc vào ngôn ngữ cụ thể mà netlist được ghi với các tính năng của ngơn ngữ đó.

32 Dữ liệu thiết kế ở mức netlist có thể được xem như một “hộp đen” (black box) đối với các hacker thông thường. Nhưng với các hacker có tổ chức với các công cụ tinh vi thì chúng có thể phân tích và đảo ngược thiết kế. Các nghiên cứu về bảo mật các dữ liệu ở

Một phần của tài liệu Luận án tiến sĩ kỹ thuật điện tử bảo mật bitstream FPGA (Trang 40)

Tải bản đầy đủ (PDF)

(120 trang)