Hình 1.2: Mô hình hệ thống truyền tin mậtTrong đó: - Mã hoá là quá trình biến đổi các bản tin rõ R thành các bản tin mã M bằng thuật toán mã hoá E và được xem như một hàm : M = ER,KE - G
Trang 1LỜI NÓI ĐẦU
Cuộc cách mạng về công nghệ thông tin đang tác động sâu sắc đến các lĩnh vực của đời sống xã hội, đặc biệt trong lĩnh vực truyền thông Một trong các thể hiện là tốc độ truyền thông ngày càng cao, chuyển tải nhiều loại hình thông tin khác nhau Đặc điểm này đặt ra yêu cầu cho ngành mật
mã là các thiết bị xử lý bảo mật thông tin phải được chuyên dụng hoá và làm việc được trên các luồng thông tin tốc độ lớn Với những kỹ thuật bảo mật truyền thống, đòi hỏi trên là rất khó khăn, thậm chí không giải quyết được Do vậy, việc nghiên cứu thiết kế thiết bị bảo mật chuyên dụng, hoạt động với tốc độ lớn là nhu cầu cần thiết và cấp bách Nhằm góp phần giải
quyết vấn đề trên, tôi đã chọn đồ án “Tích hợp thuật toán mật mã DES trên FPGA”
Đồ án có nhiệm vụ: mô tả thuật toán mã hóa DES bằng ngôn ngữ mô
tả phần cứng VHDL, nắm chắc các giải pháp, công cụ hỗ trợ quá trình tích hợp thuật toán mã hóa DES trên FPGA Thực hiện thiết kế modul thuật toán DES trên môi trường phần mềm tích hợp ISE của Xilinx
Nội dung đồ án gồm 3 chương:
Chương 1: Thuật toán Mật mã DES
Chương 2: Công nghệ FPGA và ngôn ngữ VHDL
Chương 3: Tích hợp thuật toán Mật mã DES trên FPGA
Qua một thời gian nghiên cứu, đồ án đã hoàn thành được nội dung đặt ra Nhân dịp này, tôi xin bày tỏ lời cảm ơn chân thành đến thầy giáo TS
đã tận tình, trực tiếp hướng dẫn và có những ý kiến hết sức quý báu giúp tôi trong quá trình thực hiện đồ án
Trang 2Do thời gian làm đồ án không được nhiều, trình độ bản thân hạn chế,
đồ án không thể tránh được những sai sót, nội dung chưa được sâu sắc Kính mong nhận được sự đóng góp các thầy giáo
Tôi xin chân thành cảm ơn!
Trang 3MỤC LỤC
LỜI NÓI ĐẦU 1
MỤC LỤC 3
DANH MỤC CÁC HÌNH VẼ 5
THUẬT TOÁN MÃ HÓA DES 5
1.1 TỔNG QUAN VỀ HỆ THỐNG TRUYỀN TIN MẬT 5
1.1.1 Mô hình hệ thống truyền tin mật 5
1.1.2 Phân loại hệ mã 8
1.1.3 Đánh giá độ mật của hệ thống truyền tin mật 9
1.1.4 Một số giải pháp kỹ thuật thiết kế mã khối 11
1.2 CHUẨN MÃ DỮ LIỆU DES 13
1.2.1 Mở đầu 13
1.2.2 Thuật toán 13
1.3 KẾT LUẬN CHƯƠNG 1 22
Chương 2 23
CÔNG NGHỆ FPGA VÀ NGÔN NGỮ VHDL 23
2.1 TỔNG QUAN VỀ FPGA 23
2.1.1 Giới thiệu về FPGA 23
2.1.2 Cấu trúc của FPGA 24
2.1.3 Phân loại FPGA 27
2.1.4 Ứng dụng của FPGA 28
2.2 MÔI TRƯỜNG PHẦN MỀM TÍCH HỢP ISE CỦA XILINX 31
2.2.1 Mô tả khái quát về ISE 32
2.2.2 Các giai đoạn thiết kế sử dụng ISE 33
2.2.3 Ngôn ngữ lập trình được dùng trong thiết kế 38
Trang 42.3 NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL 40
2.3.1 Khái quát về VHDL 40
2.3.2 Cấu trúc một mô hình hệ thống mô tả bằng VHDL 41
2.4 KẾT LUẬN CHƯƠNG 2 43
Chương 3 44
TÍCH HỢP THUẬT TOÁN DES TRÊN FPGA 44
3.1 QUY TRÌNH VÀ CÔNG CỤ THIẾT KẾ 44
3.1.1 Quy trình thiết kế 44
3.2 SƠ ĐỒ KHỐI CHỨC NĂNG 45
57
KẾT LUẬN .58
TÀI LIỆU THAM KHẢO 60
PHỤ LỤC 61
Trang 5THUẬT TOÁN MÃ HÓA DES
1.1 TỔNG QUAN VỀ HỆ THỐNG TRUYỀN TIN MẬT
1.1.1 Mô hình hệ thống truyền tin mật
Trong cuộc sống, con người luôn có nhu cầu trao đổi thông tin với nhau có nghĩa là có nhu cầu truyền tin cho nhau Hình 1.1 biểu diễn mô hình của Hệ thống truyền tin bao gồm: Nguồn tin, kênh tin và nhận tin
Trang 6Hình 1.1: Mô hình hệ thống truyền tinTrong mô hình này:
- Nguồn tin là nơi sản sinh ra các tin tức cần truyền đi trên kênh tin dưới dạng các bản tin
- Kênh tin là môi trường vật lý xác định để truyền các bản tin dưới các dạng tín hiệu điện, quang …
- Nhận tin là cơ cấu khôi phục thông tin ban đầu từ tín hiệu lấy ở đầu ra của kênh tin
Do xã hội ngày càng phát triển, nên nhu cầu trao đổi thông tin cũng tăng theo không ngừng Các nội dung thông tin có liên quan đến lợi ích, quyền lợi của một số người hay một giai cấp nào đó cần được giữ kín, bí mật vì vậy nhu cầu bảo mật nội dung thông tin được truyền đi hình thành
và phát triển ngày càng lớn
Hệ thống truyền tin mật là hệ thống mà trong đó nội dung thông tin phải được bảo vệ và giữ bí mật khi truyền trên kênh tin trước sự tấn công, khám phá bất hợp pháp của mã thám Hình 1.2 mô tả một cách tổng quát về
mô hình của một hệ thống truyền tin mật
Trang 7Hình 1.2: Mô hình hệ thống truyền tin mậtTrong đó:
- Mã hoá là quá trình biến đổi các bản tin rõ R thành các bản tin mã
M bằng thuật toán mã hoá E và được xem như một hàm :
M = E(R,KE)
- Giải mã là quá trình biến đổi ngược của mã hoá có nghĩa là biến đổi các bản tin mã M từ đầu ra của kênh tin thành các bản tin rõ R để đưa tới nhận tin và cũng được xem như một hàm:
- Nhiễu là do sự tác động của môi trường truyền dẫn
Đôi khi thường bị đồng nhất hai khái niệm hệ thống truyền tin mật
và hệ mật khi đánh giá độ mật của hệ thống Hệ mật là một bộ 5 (R, M, K,
E, D) thoả mãn các điều kiện sau:
a R (không gian các bản tin rõ) là một tập hợp hữu hạn các bản rõ có thể có
b M (không gian các bản tin mã) là một tập hợp các bản tin mã có thể có
c K (không gian khoá) là một tập hợp hữu hạn các khoá mật mã có thể có
Trang 8d Đối với mỗi k∈K có một quy tắc mã hoá ek ∈E và một thuật toán
giải mã tương ứng dk ∈D, mà mỗi ek: R→M và d∈k: M→R là những hàm
được thoả mãn dk ∈ (ek(x)) = x với mọi bản tin rõ x ∈ R.
Điều kiện (d) là quan trọng nhất có nghĩa là nếu có một bản tin rõ x được mã hoá bằng thuật toán E và bản tin mã nhận được sau đó được giải
mã bằng thuật toán giải mã D thì phải thu được bản tin rõ x ban đầu
⊕ki = pi
- Mã khối: Vấn đề đặt ra theo một góc độ khác, mỗi một lần mã, khoá được lấy ngẫu nhiên trong không gian khoá sau đó cố định lại và dùng để mã hoá cho tất cả các khối bản rõ trong phiên liên lạc đó hoặc trong suốt thời gian ấn định nào đó
Song song với việc nghiên cứu các mã pháp, các nghiên cứu để tấn công, phân tích, thám mã các hệ này cũng phát triển Cho tới nay, có hai phương pháp tấn công mạnh nhất đối với mã khối là: tấn công vi sai và tấn công tuyến tính
Trang 91.1.3 Đánh giá độ mật của hệ thống truyền tin mật
Nhiệm vụ chủ yếu của hệ thống truyền tin mật là giữ bí mật của thông tin được truyền trên kênh tin trước sự tấn công, khám phá của mã thám Như vậy độ mật của hệ thống truyền tin mật hoàn toàn phụ thuộc vào
độ an toàn của hệ mật mà được dùng trong nó Có hai quan điểm cơ bản về
độ an toàn của một hệ mật:
- Thứ nhất là độ an toàn tính toán: Độ đo này liên quan đến khả năng tính toán cần thiết để khám phá, tấn công một hệ mật Một hệ mật là
an toàn về mặt tính toán nếu thuật toán tấn công, khám phá hệ thống đó cần
ít nhất N phép toán mà N là một số rất lớn nào đó Vấn đề là ở chỗ, không
có một hệ mật thực tế đã biết nào có thể chứng tỏ là an toàn theo định nghĩa này Trên thực tế, người ta gọi một hệ mật là “an toàn về mặt tính toán” nếu
có một phương pháp tốt nhất phá hệ này nhưng yêu cầu về mặt thời gian lớn đến mức không thể chấp nhận được
- Thứ hai là an toàn không điều kiện: Độ đo này liên quan đến độ an toàn của các hệ mật khi không có hạn chế nào được đặt ra về khả năng tính toán mà mã thám có thể thực hiện Một hệ mật được xem là an toàn không điều kiện (tuyệt mật hay lý tưởng) nếu nó không thể bị tấn công, khám phá với khả năng tính toán không hạn chế Tất nhiên ta cũng phải xét đến các kiểu tấn công của mã thám để xây dựng các hệ thống an toàn hơn nữa
Trong hệ thống truyền tin mật khoá mật mã quyết định độ bảo mật của toàn bộ hệ thống Người ta đã đưa ra tiêu chuẩn của hệ thống truyền tin mật như sau:
- Độ mật cần thiết sẽ xác định thuật toán phù hợp cho việc mã hoá
và giải mã Tiêu chuẩn này thể hiện một nguyên lý rất cơ bản là một thuật toán mã hoá đơn giản cũng có thể đủ mạnh để ngăn chặn các đối tượng mã
Trang 10thám "chặn bắt tình cờ" hoặc bảo mật truyền tin trong một khoảng thời gian ngắn.
- Không gian khoá và thuật toán mã hoá không được quá phức tạp Tiêu chuẩn này cho thấy rằng không nên hạn chế sự lựa chọn các khoá hoặc các kiểu bản tin rõ mà thuật toán mã hoá làm việc trên đó Nếu thuật toán mã hoá chỉ làm việc với các bản tin rõ có cùng độ dài thì đó là một thuật toán yếu, dễ bị khám phá Tương tự, rất khó lựa chọn khoá mà tổng các phần tử của khoá là một số nguyên tố Những hạn chế như vậy sẽ làm cho việc sử dụng thuật toán mã hoá rất phức tạp Mặc dù một thuật toán mã hoá phức tạp sẽ tăng độ bảo mật của hệ thống, nhưng sẽ làm thời gian xử
lý, truyền tin tăng lên một cách đáng kể Nên một thuật toán mã hoá phù hợp là thuật toán tối ưu giảm thiểu những trở ngại cho việc truyền tin
- Các lỗi trong quá trình mã hoá không được lan truyền và gây ngắt tin trong các bản tin rõ nhận được khi giải mã Mã hoá có thể gây lỗi cho quá trình truyền tin hoặc làm sai lệch nội dung thông tin từ đó các bản tin
mã cũng bị sai lệch theo hoặc bị gián đoạn toàn bộ quá trình truyền tin Do
đó chúng ta cần hạn chế tối đa việc gây lỗi bởi quá trình mã hoá
- Kích thước hay độ dài của bản tin mã không được lớn hơn độ dài của bản tin rõ ban đầu, nếu điều này xảy ra nó sẽ không thể mang được nhiều thông tin như bản tin rõ và thời gian truyền tin trên kênh cũng sẽ bị tăng theo
Nhìn chung các tiêu chuẩn này được đề xuất nhằm đánh giá chất lượng của hệ thống truyền tin mật Trong điều kiện hiện nay nhờ sự phát triển mạnh mẽ của khoa học và công nghệ đặc biệt là công nghệ FPGA, các thuật toán mã hoá, giải mã có thể được thiết kế để cứng hoá trong các thiết
bị bảo mật nên việc xây dựng độ mật tối ưu cho từng hệ thống với từng mục đích cụ thể sẽ được thực hiện một cách thuận lợi
Trang 111.1.4 Một số giải pháp kỹ thuật thiết kế mã khối
Việc thiết kế các thuật toán mã khối trong thiết bị bảo mật thông tin hiện nay có thể thực hiện theo các kỹ thuật như mô tả trong hình 1.3
Hình 1.3: Các kỹ thuật thiết kế mã khối
Thiết kế mã khối bằng chương trình phần mềm
Thiết kế thuật toán mã khối bằng chương trình phần mềm và thực hiện trên các bộ xử lý Intel, RISC hoặc nhúng trong môi trường DSP, Smart-Card , hoặc trên các máy PC Ưu điểm của kỹ thuật này là không phụ thuộc quá nhiều vào công nghệ thiết kế, cho phép thiết kế nhanh, có tính mềm dẻo cao khi cần thay đổi thuật toán mã hoá được thực hiện một cách đơn giản Tuy nhiên kỹ thuật này lại bị hạn chế về mặt tốc độ xử lý
mã hoá - giải mã, nó phù hợp với những hệ thống truyền tin có tốc độ không cao Mặt khác, việc sử dụng không hết các tính năng của một thiết bị sẵn có làm cho giá thành tăng lên, và không thuận lợi cho chuyên dụng hoá thiết bị bảo mật thông tin
Thiết kế mã khối bằng công cụ phần cứng
Trang 12Thiết kế thuật toán mã khối trên các công cụ phần cứng không mềm dẻo bằng phần mềm nhưng nó lại có một số ưu điểm: Tại cùng một thời điểm các thiết bị phần cứng cho phép thay đổi các phép xử lý dữ liệu một cách linh hoạt hơn so với phần mềm Tốc độ xử lý dữ liệu và an toàn về mặt vật lý cao hơn, bảo mật được thiết kế, không phụ thuộc vào hệ điều hành, rất thích hợp trong việc thiết kế những thiết bị bảo mật chuyên dụng
và bảo mật trong các hệ thống truyền tin có tốc độ cao
Trên thế giới một số hãng sản xuất các thiết bị bảo mật cũng đã nghiên cứu thiết kế các thuật toán mã khối bằng các công cụ phần cứng như: công nghệ ASIC, công nghệ FPGA ,
FPGA là một thiết bị logic có thể được người sử dụng lập trình trực tiếp mà không phải sử dụng bất kỳ một công cụ chế tạo mạch tích hợp nào Điều này cho phép chế tạo ngay thiết bị và vì vậy giá thành sản phẩm thấp
FPGA được ứng dụng rộng rãi và khá lý tưởng vì chúng có mức độ tích hợp cao trên chip, đáp ứng yêu cầu phức tạp và đa dạng Thay vì các
IC nguyên mẫu để lắp ghép vào hệ thống người thiết kế có thể tạo các kết nối theo các phần trong FPGA của mình bằng phần mềm Mặt khác chúng
ta có thể nạp lại chương trình một cách liên tục để thay đổi các thuật toán
mã khối hoặc thực hiện các thuật toán khác
Hiện nay các thuật toán mã khối chủ yếu được thiết kế bằng các chương trình phần mềm chạy trên máy PC, việc nghiên cứu để có thể cứng hoá các thuật toán mã khối trên các công cụ phần cứng nhằm đáp ứng các yêu cầu về tốc độ xử lý dữ liệu, tính chủ động, chuyên dụng hoá thiết bị bảo mật cũng như giá thành là một hướng nghiên cứu mới Công nghệ FPGA với những tính năng ưu việt của nó được lựa chọn để nghiên cứu thiết kế modul mã khối nhằm đáp ứng những yêu cầu trên
Trang 131.2 CHUẨN MÃ DỮ LIỆU DES
1.2.1 Mở đầu
DES (Data Encryption Standard) là một kỹ thuật mã khối, thực hiện
mã hoá một xâu bít x của bản rõ độ dài 64 bằng một khoá 56 bít Bản mã nhận được cũng là một xâu bít có độ dài 64
Hình 1.4: Thuật toán DES
1.2.2 Thuật toán
Thuật toán mã hoá DES tiến hành theo 3 giai đoạn:
1 Với bản rõ cho trước x, một xâu bít x0 sẽ được xây dựng bằng cách hoán vị các bít của x theo phép hoán vị cố định ban đầu IP
Ta viết: x0 = IP(X) = L0R0, trong đó L0 gồm 32 bít đầu và R0 là 32 bít cuối
2 Sau đó tính toán 16 lần lặp theo một hàm xác định Tã sẽ tính LiRi,
1≤ i ≤ theo qui tắc sau:
Li = Ri-1
Ri = Li-1 ⊕ f( Ri-1,Ki)
Trang 14Trong đó: ⊕ kí hiệu phép hoặc loại trừ của hai xâu bít (cộng theo module 2), f là một hàm bao gồm các phép hoán vị, phép thế, phép cộng modulo 2, còn K1, K2,… K16 là các xâu bít độ dài 48 bít được tính như hàm của khoá K (trên thực tế Ki là một phép toán chọn hoán vị bít trong K) K1,
Hình 1.5: Một vòng của DES
Hàm F trong thuật toán DES
Hàm F: Có hai biến vào:
- Biến thứ nhất A là xâu bít độ dài 32
- Biến thứ hai J là một xâu bít độ dài 48 Đầu ra của f là một xâu bít
độ dài 32
Trang 15Hàm F được thực hiện theo các bước như sau:
- Bước 1: Biến thứ nhất A được mở rộng thành một xâu bít độ dài
48 theo một hàm mở rộng cố định E E(A) gồm 32 bít của A (được hoán vị theo cách cố định) với 16 bít xuất hiện hai lần
- Bước 2: Tính E(A)⊕J và viết kết quả thành một chuỗi 8 xâu 6 bít
r ≤ 3) và bốn bít (b2b3b4b5) xác định biểu diễn nhị phân của cột c của Sj ( 0
≤ c ≤ 15 ) Khi đó Sj(Bj) sẽ xác định phần tử Sj(r,c); phần tử này viết dưới dạng nhị phân là một xâu bít có độ dài 4 (bởi vậy, mỗi Sj có thể được coi là một hàm mã mà đầu vào là một xâu bít có độ dài 2 và một xâu bít có độ dài
4, còn đầu ra là một xâu bít có độ dài 4) Bằng cách tương tự tính các Cj =
Trang 16Hình 1.6: Hàm f của thuật toán DESPhép hoán vị ban đầu IP
Bảng 1.1: Các tham số của phép hoán vị ban đầu IP
Trang 17Bảng này có nghĩa là bít thứ 58 của x là bít đầu tiên của IP(x); bít thứ
50 của x là bít thứ hai của IP(x), v.v
Phép hoán vị FP
Bảng 1.2: Các tham số của phép hoán vị FP
Bảng chọn E bít
Bảng 1.3: Các tham số của hàm mở rộng E
Trang 18Hộp thế S-Box
Trang 19Phép hoán vị P trong hàm F
Bảng 1.4: Các tham số của phép hoán vị P
Lược đồ tạo khoá mã dịch
Đây là phần mô tả việc tính toán bảng khoá từ khoá K Trên thực tế,
K là một xâu bít độ dài 64, trong đó 56 bít là khoá và 8 bít để kiểm tra tính chẵn lẻ nhằm phát hiện sai Các bít ở các vị trí 8,16,24,32,40,48,56,64 được xác định sao cho mỗi byte chứa một số lẻ các số "1" Bởi vậy một sai sót đơn lẻ có thể phát hiện được trong mỗi nhóm 8 bít Các bít kiểm tra bị bỏ qua trong quá trình tính toán bảng khoá Tính khóa theo 2 bước:
Trang 20- Bước 1: Với một khoá K có độ dài 64 bít cho trước, loại bỏ các bít kiểm tra tính chẵn lẻ và hoán vị các bít còn lại của K theo phép hoán vị cố định PC-1.
PC-1(K) = C0D0
- Bước 2: Với i thay đổi từ 1 đến 16:
Ci = LSi(Ci-1)
Di = LSi(Di-1)Trong đó LSi là phép dịch vòng trái, phụ thuộc vào giá trị của i Với i
= 1,2,9 hoặc 16 thì dịch vòng sang trái 1 vị trí, còn các giá trị khác của i thì dịch vòng sang trái 2 vị trí
Bảng 1.5: Các tham số của phép hoán vị PC-1
Trang 21Bảng 1.6: Các tham số của phép hoán vị PC-2Như đã nói ở trên, mỗi vòng sử dụng một khoá 48 bít gồm 48 bít nằm trong K.
Phép giải mã được thực hiện nhờ dùng cùng thuật toán như phép mã nếu đầu vào là Y nhưng dùng bảng khoá theo thứ tự ngược lại K16, K1 Đầu ra của thuật toán sẽ là bản rõ X
Trang 22Hình 1.7: Sơ đồ tính khoá của thuật toán DES
1.3 KẾT LUẬN CHƯƠNG 1
Chương này đã mô tả một cách khái quát về mô hình của một hệ truyền tin mật, các khái niệm cơ bản về mật mã Trình bày chi tiết thứ tự các bước thực hiện thuật toán Mã hóa DES
Trang 23Chương 2CÔNG NGHỆ FPGA VÀ NGÔN NGỮ VHDL
2.1 TỔNG QUAN VỀ FPGA
2.1.1 Giới thiệu về FPGA
Công nghệ chế tạo mạch vi điện tử ngày nay đang có một sự thay đổi lớn: từ một mạch tính hợp vi điện tử với cơ sở thiết bị công nghệ tiên tiến chế tạo ra với số lượng lớn chuyển dần sang các mạch chuyên dụng sản xuất với lô nhỏ tại các cơ sở có điều kiện công nghệ chưa phát triển Sự thay đổi đó được hình thành nhờ các công cụ thiết kế tự động Động lực chính của quá trình thay đổi này là giảm thời gian thiết kế, chế tạo vi mạch
và tăng tính linh hoạt cho người thiết kế lập trình với những ứng dụng riêng biệt
FPGA (Field-Programmable Gate Array), là mạch tích hợp cỡ lớn
trong đó cho phép người lập trình thay đổi các thiết kế của mình mà không phải sử dụng bất kỳ một công cụ chế tạo mạch tích hợp nào FPGA là công
nghệ tiên tiến nhất hiện nay của ngành công nghệ chế tạo IC (Integrated
Circuit) chuyên biệt.
Hình 2.1: Hình FPGA
Trang 242.1.2 Cấu trúc của FPGA
FPGA là mạch tích hợp chứa nhiều (64 đến hơn 10.000) ô logic
(logic cell) giống nhau có thể xem là các thành phần chuẩn Mỗi ô logic giữ
một hay một số chức năng độc lập Các ô giống nhau được kết nối bởi một
ma trận đường dẫn và các chuyển mạch khả trình Người thực hiện thiết kế bằng các đặc trưng lôgic đơn của mỗi ô và lựa chọn đóng các chuyển mạch trong ma trận kết nối Mảng của các ô lôgic và kiểu kết nối là kết cấu xây dung khối cơ bản trong mạch lôgic Các thiết kế phức tạp được tạo ra bằng cách kết hợp các khối cơ bản để tạo ra các mạch được mô tả
Mô hình tổng quát của FPGA gồm một dãy hai chiều các khối lôgic
(logic block) có thể được kết nối bằng các nguồn kết nối chung Các nguồn kết nối gồm các đoạn kết nối (segment) có thể có chiều dài khác nhau Bên
trong các kết nối là các chuyển mạch lập trình được dùng để nối các khối lôgic với các đoạn dây, các khối vào ra hay các đoạn dây với nhau Mạch lôgic cài đặt trong FPGA bằng cách ánh xạ lôgic vào các lôgic riêng rẽ và
sau đó nối các khối lôgic cấu hình (Configurable logic Block) cần thiết qua
các chuyển mạch Các khối CLB cung cấp các phần tử chức năng với cấu
trúc sử dụng logic Các khối vào/ra (I/O Block) cung cấp giao diện giữa các
gói chân và các đường tín hiệu bên trong Tài nguyên kết nối khả trình cung cấp các bộ phận truyền dẫn tới kết nối đầu vào và đầu ra của các CLB
và các IOB trong mạng riêng
Vậy cấu trúc FPGA gồm ba phần tử chính: Các khối lôgic cấu hình (CLB), các khối vào/ra (IOB) và các kết nối
- Các khối lôgic cấu hình (Configurable logic Block)
Cấu trúc và nội dung của logic block được gọi theo kiến trúc của nó Kiến trúc của khối lôgic có thể thiết kế theo nhiều cách khác nhau, có thể là
các cổng AND 2 ngõ nhập, các bộ dồn kênh (Multiplexer) hay các bảng tìm
Trang 25kiếm (Lock-up Table) Ngoài ra coa thể chứa các Flip-Flop để hỗ trợ cho
việc thực hiện một cách tuần tự
- Các nguồn kết nối (Routes)
Các nguồn kết nối có cấu trúc và nội dung được gọi là kiến trúc
đường (Routing Architecture) Kiến trúc Routing gồm các đoạn đây nối và
các chuyển mạch khả trình Các chuyển mạch khả trình có cấu tạo khác
nhau như pass-transistor, được điều khiển bởi các cell SRAM, các phần tử cầu chì nghịch, EPROM transistor và EEROM transitor Giống như các
khối lôgic có nhiều cách khác nhau để thiết kế các kiến trúc routing Một số FPGA cung cấp nhiều kết nối đơn giản giữa các khối logic, một số khác cung cấp ít kết nối hơn nên routing phức tạp hơn
- Các cổng vào/ra
Các đặc tính I/OB của các đầu vào và đầu ra được hỗ trợ tới 19 các chuẩn tín hiệu khác nhau bao gồm: LVDS, BLVDS, LVPECL, LVCMOS, HSTL, SSTL và GTL
Trang 26
Hình 2.2: Mô tả mô hình của một FPGACác khối cơ bản của LB (Logic Block) của FPGA chính là Logic Cell (LC: gọi là tế bào logic)
- Mỗi một Logic Cell bao gồm một bộ tạo chức năng 4 đầu vào, logic nhớ và phần tử lưu trữ (Flip - Flop loại D) Đầu ra bộ tạo chức năng của mỗi Logic Cell điều khiển cả đầu ra LB hoặc đầu vào D của Flip-Flop Mỗi một LB có chứa bốn Logic Cell và được tổ chức thành hai Slice tương
tự nhau
Trang 27Một FPGA có cấu trúc của các Logic Cell (hoặc các module) và các đường nối, mà các đường nối này nằm dưới sự điều khiển của người thiết
kế Có nghĩa là chúng ta có thể thiết kế, lập trình và thay đổi mạch khi muốn Với họ FPGA ngày nay đã vượt qua giới hạn 10 triệu cổng
Hình 2.3: Cấu trúc của FPGA
2.1.3 Phân loại FPGA
FPGA có nhiều loại khác nhau có cấu trúc và đặc tính riêng tuỳ theo từng hãng sản xuất, tuy nhiên chúng có bốn loại chính sau: cấu trúc mảng
đối xứng (Symmetrical Array), cấu trúc PLD phân cấp (hierachircal PLD), cấu trúc hàng (Row base) và cấu trúc đa cổng (Sea of Gate) mô tả dưới đây.
Trang 28Hình 2.4: Bốn loại cấu trúc của FPGA trên thực tế
2.1.4 Ứng dụng của FPGA
FPGA là thế hệ sau của IC khả trình nên chúng có thể ứng dụng trong hầu hét các ứng dụng của hiện đang dùng MPGA, PLD và các mạch tích hợp loại nhỏ (SSI)
a) Các mạch tích hợp là ứng dụng đặc biệt
FPGA là thiết bị tổng quát nhất để thực hiện các mạch lôgic số Chúng đặc biệt thích hợp cho các mạch tích hợp chuyên dụng đặc biệt (ASIC) như bộ cộng, bộ điều khiển lôgic Flip-Flop
b) Thiết kế mạch ngẫu nhiên
Mạch lôgic ngẫu nhiên thường được thực hiện bằng PAL Nếu tốc độ của mạch không đòi hỏi khắt khe (các PAL nhanh hơn hầu hết các FPGA) thì mạch có thể thực hiện bằng FPGA Hiện nay một FPGA cần từ 10 đến
20 PAL
Trang 29c) Thay thế các chíp SSI cho mạch ngẫu nhiên
Các mạch hiện tại trong các sản phẩm thương mại thường chứa nhiều chíp SSI Trong nhiều trường hợp có thể thay thế bằng FPGA để giảm diện tích bo mạch
d) Chế tạo mẫu
FPGA rất lý tưởng cho việc tạo mẫu các sản phẩm Giá thành thực hiện thấp và thời gian thực hiện thiết kế vật lý ngắn, cung cấp các ưu điểm hơn nhiều so với các phương tiện truyền thống khác để chế tạo mẫu phần cứng Các mẫu ban đầu có thể thực hiện rất nhanh và những thay đổi sau
đó được thực hiện rất nhanh và ít tốn kém
e) Máy tính dựa trên FPGA
Một loại máy tính dựa trên FPGA có thể tái lập trình ngay trên FPGA Các máy này có một bo mạch chứa các FPGA với các chân nối với các chíp lân cận giống như thông thường Ý tưởng là là một chương trình phần mềm có thể được “biên dịch” (sử dụng kỹ thuật tổng hợp mức cao, mức lôgic và mức sơ đồ bằng tay) vào ngay phần cứng Phần cứng này
sẽ được thực hiện bằng cách lập trình bo mạch FPGA Phương pháp này có hai ưu điểm chính: một là không cần quá trình lấy lệnh như các bộ xử lý truyền thống vì phần cứng đã gộp cả lệnh Kết quả là tốc độ có thể tăng lên hàng trăm lần Hai là, môi trường tính toán có thể thực hiện song song mức cao, làm tăng tốc thêm nữa
f)Tái cấu hình thành phần trực tiếp
FPGA cho phép có thể thay đổi theo mong muốn cấu trúc của một máy đang hoạt động Một ví dụ là các thiết bị máy tính từ xa có thể thay đổi trực tiếp để khắc phục sự cố hay có lỗi thiết kế Kiểu FPGA thích hợp nhất cho ứng dụng này là những FPGA có các chuyển mạch lập trình được
Trang 30g) Ứng dụng trong bảo mật
FPGA tự nó đã mang những thuộc tính thích hợp cho an toàn mật mã (như cấu trúc chip được đốt vật lý, bảo đảm toàn vẹn, chống tấn công thám thiết kế, không phụ thuộc vào hệ điều hành nào ) Ngoài ra đối với mật mã thì tính mềm dẻo là một tiêu chí cần phải xếp lên hàng đầu bởi thuật toán sinh khóa/mã hóa có thể thay đổi theo từng phiên liên lạc hoặc khi chuyển mạng Bởi vậy công nghệ thích hợp nhất để cứng hóa mật mã nên lựa chọn chính là FPGA với những ưu điểm chính:
- Tốc độ cao vì nó hoàn toàn dựa trên phần cứng (hardware)
là đã có một mạch thực hiện đúng các chức năng mà ta đã mô phỏng
Trang 312.2 MÔI TRƯỜNG PHẦN MỀM TÍCH HỢP ISE CỦA XILINX
Hiện nay trên thế giới có nhiều hãng tham gia sản xuất chế tạo FPGA trong đó có 3 hãng lớn là Altera, Xilinx và Actel Các FPGA của mỗi hãng có những đặc điểm về cấu trúc và tính năng kỹ thuật khác nhau Tuy nhiên các tinh thể FGPA của Xilinx và Altera được đặt ở mức đồng cấp với nhau về tính năng kỹ thuật và giá cả Mọi dự án phát triển ứng dụng thực tế trên cơ sở FPGA lấy riêng từ một trong hai hãng này đều có thể triển khai có kết quả Đặc biệt các FPGA của Xilinx có phần phù hợp hơn trong thực tế hoá các dự án tạo lập thiết bị xử lý tín hiệu và các mạch dịch chuyển nhanh
Sau đây là các họ FPGA của Xilinx
Spartan/XL – derived from XC4000
Spartan-II – derived from Virtex
Spartan-IIE – derived from Virtex-E
Spartan-3
Trang 32Cùng với các thiết bị FPGA hãng Xilinx còn đưa ra bộ công cụ phát triển nghiên cứu, thiết kế và ứng dụng FPGA bao gồm các công cụ mô tả cấu trúc chức năng bên trong FPGA, công cụ nạp cấu hình thiết kế và lắp ráp trên mạch in v v Các công cụ này được tích hợp bên trong môi trường phần mềm tích hợp (ISE)
2.2.1 Mô tả khái quát về ISE
ISE (Integrate Software Environment) - môi trường phần mềm tích
hợp - là một bộ phần mềm thiết kế của Xilinx ISE cho phép tạo ra các sản phẩm thiết kế thông qua việc nhập các thiết kế vào thiết bị chương trình hoá của Xilinx
ISE cho phép có thể lựa chọn một hoặc nhiều phương án thiết kế khác nhau bao gồm:
- Thiết kế bằng ngôn ngữ mô tả phần cứng HDL (VHDL,Verilog
HDL, ABEL)
- Thiết kế dưới dạng sơ đồ cổng Logic (Schematic)
- EDIF (Electronic Data Interchange Format)
- NGC/NGO (kết hợp với Core Gerenator)
- Đồ hình trạng thái (State Machines)
- IP codes
Với mỗi phương án thiết kế, có một fille nguồn, ISE cho phép nhanh chóng xác minh chức năng của fille nguồn này nhờ khả năng mô phỏng
tích hợp bên trong, bao gồm MODELSIM và HDL Bench Với phương án
thiết kế bằng ngôn ngữ mô tả phần cứng (HDL) thiết kế được tổng hợp
bằng công nghệ tổng hợp của Xilinx (XST), nó có thể là một phần mềm
chạy độc lập, hay được tích hợp vào trong ISE Công cụ thực hiện thiết kế
Trang 33tiếp tục quá trình sắp đặt và kết nối trong FPGA và kết thúc của quá trình một dòng bit được hình thành cấu hình nên thiết kế của ta Giao diện
Project Navigator cung cấp một cái nhìn toàn diện toàn bộ quá trình thiết
kế
2.2.2 Các giai đoạn thiết kế sử dụng ISE
Các giai đoạn thiết kế sử dụng ISE trên công nghệ FPGA bao gồm nhiều bước ISE cung cấp một bộ công cụ cần thiết để tạo ra những thiết kế
từ đơn giản đến phức tạp và đảm bảo thiết kế đạt được yêu cầu cần thiết
Một thiết kế có thể bắt đầu từ các ngôn ngữ mô tả phần cứng (VHDL,
Verilog) hay sơ đồ (Schematic) hoặc trong vài trường hợp nó là một sự pha
trộn giữa sơ đồ và ngôn ngữ mô tả phần cứng
Có thể gộp các giai đoạn thiết kế trên ISE thành một số bước chính như hình dưới:
Hình 2.5: Tổng quan một luồng thiết kế trên ISE