Quá trình thiết kế cơ bản trên FPGA

Một phần của tài liệu thiết kế hệ thống mã khối bằng công nghệ fpga (Trang 54 - 126)

2.1.2.1. Gi i thiệu về quá trình thiết kế.

Quá trình thiết kế trên FPGAs sử dụng hệ thống CAD (Computer Aided Design). Hình 2.10 biểu diễn các bƣớc trong hệ thống CAD tiêu biểu để tạo ra một mạch FPGA. Từ trên hình vẽ ta thấy, điểm bắt đầu cho mạch thiết kế là mạch lôgic ban đầu. Bƣớc này cần một sơ đồ biểu diễn mạch, hay một mô tả VHDL hoặc một đặc tả các biểu thức Boolean. Từ các đầu vào nhƣ vậy, chúng đƣợc chuyển thành dạng chuẩn nhƣ là các biểu thức Boolean. Các biểu thức Boolean này đƣợc xử lý bằng công cụ tối ƣu lôgíc (rút gọn các biểu thức), mục đích của việc này là để tối ƣu

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

về diện tích và tốc độ của mạch thiết kế. Sau khi đã đƣợc tối ƣu, các biểu thức Boolean đƣợc chuyển tới mạch lôgíc block của FPGA thông qua chƣơng trình ánh xạ công nghệ (technology mapping), bộ ánh xạ sẽ tối thiểu số khối đƣợc dùng và giảm đƣờng dẫn để tối ƣu về giữ chậm. Sau khi ánh xạ mạch vào các logic block thì cần phải quyết định đặt mỗi khối ở đâu, công việc này do chƣơng trình Placement giải quyết. Bƣớc cuối cùng trong hệ thống CAD là nối kết do phần mềm Rounting thực hiện, chúng ấn định các đoạn dây FPGA và chọn các chuyển mạch có thể lập trình phù hợp với các kết nối trong logic block. Sau khi thực hiện xong bƣớc này, kết quả của CAD sẽ đƣợc nạp vào đơn vị lập trình tạo ra chip FPGA cuối cùng.

Tối ƣu lôgic

Ánh xạ công nghệ Rounting Placement Đơn vị lập trình CAD Sản phẩm Mạch lôgic ban đầu

Hình 2.10. Quá trình thiết kế trên FPGA.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.1.2.2. Tối ưu lô gic.

Đây chính là công việc sửa lại cấu trúc để giảm sự phức tạp của mạch ban đầu. Trong giai đoạn này không chú ý đến kiểu của các phần tử sẽ đƣợc dùng sau này nên đƣợc gọi là tối ƣu không phụ thuộc vào công nghệ (technology-independent).

Tiến hành tối ƣu chính là làm giảm sự dƣ thừa hoặc loại bỏ những biểu thức con chung. Mạch sau khi đƣợc tối ƣu có chức năng tƣơng đƣơng với mạch ban đầu.

2.1.2.3. Ánh xạ công nghệ.

Sau khi tối ƣu logic, ánh xạ công nghệ sẽ biến đổi mạng này thành mạch cuối cùng. Điều này sẽ đƣợc làm bằng cách chọn lựa từng phần của mạng và mỗi cái sẽ đƣợc thực hiện bởi một trong những phần tử của mạch có sẵn, và xác định những mạch này sẽ đƣợc nối với nhau nhƣ thế nào. Sau đây là 3 phƣơng pháp ánh xạ công nghệ chính.

a) Ánh xạ công nghệ dựa vào thư viện: Phƣơng pháp ánh xạ công nghệ này đã đƣợc tiêu chuẩn hoá, trong này là tập các phần tử mạch có sẵn sẽ đƣợc biểu diễn nhƣ một thƣ viện các hàm và xây dựng tối ƣu đƣợc chia thành 3 vấn đề nhỏ: Phân rã (decomposition), so trùng (matching), lập phủ (convering). Đầu tiên mạng phân rã để biểu diễn bởi các cổng NAND 2 đầu vào, sự phân rã bảo đảm rằng không có nút nào trong mạng là quá lớn. Sau khi phân rã, mạng sẽ đƣợc phân hoạch thành một rừng cây, mạch con tối ƣu che phủ từng cây và cuối cùng mạch che phủ toàn bộ mạng đƣợc tập hợp từ các mạch con.

b) Ánh xạ công nghệ dùng bảng dò tìm: Bảng dò tìm (Lookup table _ LUTs) là cơ sở của những khối lôgíc trong FPGA. Một bảng gồm K đầu vào là một bộ nhớ kỹ thuật số mà nó có thể thực hiện bất kì hàm Boolean nào gồm K biến. K đầu vào

đƣợc sử dụng để định vị cho 2K

bit nhớ đƣợc lƣu trữ trong bảng sự thật của hàm Boolean. Với bảng LUT gồm K đầu vào có thể thực hiện đƣợc

K

2

2 hàm Boolean

khác nhau. Tuy nhiên thƣ viện biểu diễn bảng LUT K đầu vào lại không cần tất cả

K

2

2 hàm khác nhau do có sự hoán vị các đầu vào, đảo ngƣợc các cổng vào và cổng

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

c) Ánh xạ công nghệ dùng bộ dồn kênh (Multiplexer): Khối lôgic dựa trên Multiplexer bao gồm chủ yếu là một cây của những bộ Multiplexer, cổng vào của khối logic là bộ dồn kênh có cổng vào lựa chọn và cổng vào dữ liệu. Một khối logic độc lập đƣợc riêng biệt hoá để hiện thực những hàm khác nhau thông qua việc nối những cổng vào của nó tới các biến là các hằng số 0, 1. Những khối logic dựa trên Multiplexer có thể thực hiện đƣợc rất nhiều những hàm khác nhau và vì thế khó sử dụng ánh xạ công nghệ dựa vào thƣ viện.

2.1.2.4. Sắp xếp các phần tử (Placement).

Giai đoạn này của thiết kế gồm các công việc chính nhƣ sau:

Phân chia hệ thống (System Partitioning): Một hệ thống vi điện tử bao gồm nhiều khối chức năng, nếu một khối chức năng quá lớn thì chúng ta phải thực hiện việc tách hoặc phân chia chức năng của khối đó ra làm các khối nhỏ hơn theo mục đích và định hƣớng mà chúng ta cần chỉ định.

a) Lên sơ đồ mặt bằng, bố trí các khối (Floorplanning): Sau khi phân chia hệ thống xong sẽ thực hiện việc lên sơ đồ mặt bằng, bố trí các khối. Floorplanning thực hiện các công việc nhƣ tối thiểu hóa độ dài kết nối và trễ tín hiệu giữa các khối, sắp đặt các khối đã cố định và đặt lại các khối di độngđƣợc thực hiện trƣớc Placement, công việc sắp đặt, bố trí các phần tử logic trên từng khối, tổ chức các vùng kết nối giữa các khối, phân phối mặt bằng cho nguồn và các đƣờng vào ra...

b) Sắp xếp các phần tử (Placement): Placement là bƣớc tiếp theo của Floorplanning, nó thực hiện việc sắp đặt các phần tử logic vào một khối di động... đây là bƣớc quan trọng trong thiết kế mạch và rất phức tạp, nếu Placement không tốt sẽ dẫn đến việc chiếm diện tích lớn và giảm tốc độ thực thi, nhiều khi còn dẫn tới khả năng không Rounting đƣợc. Rất may là công việc này đƣợc thực hiện hoàn toàn tự động.

Placement, System Partitioning và Floorplanning có thể hiểu chung là phân chia hệ thống trên FPGA - tức là lên sơ đồ mặt bằng, bố trí các khối lô gic, và ta có thể gọi chung là Placement.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

c) Mục tiêu và đối tượng của Placement: Mục tiêu chính của một công cụ placement (Sắp đặt bố trí các phần tử logic trên từng khối) là sắp đặt tất cả các phần tử logic trong cùng các khối di động trên một chip. Về lý tƣởng mà nói, đối tƣợng của placement là:

- Bảo đảm công cụ định tuyến có thể hoàn chỉnh bƣớc định tuyến. - Tối thiểu hoá tất cả các khoảng trễ trên đƣờng kết nối.

- Làm cho mật độ của chíp càng cao càng tốt. - Tối thiểu hoá tiêu thụ nguồn.

- Tối thiểu hoá sự xuyên nhiễu giữa các tín hiệu.

Các đối tƣợng đó rất khó để định nghĩa theo cách giải quyết bằng thuật toán và thậm chí trong thực tế rất khó gặp. Các công cụ placement hiện nay thƣờng sử dụng nhiều đặc điểm và các tiêu chuẩn riêng.

d) Gán chân (Pin Assignmen) : Mục đích của việc gán chân là định nghĩa tín hiệu mà mỗi chân sẽ nhận đƣợc. Việc gán chân có thể thực hiện đƣợc trong quá trình placement hoặc sau quá trình này. Nếu các block không đƣợc thiết kế thì phép gán tốt cũng cải tiến đƣợc placement, nếu các block đã đƣợc thiết kế thì Pin Assignmen có thể thay đổi một vài chân nhờ chức năng tƣơng đƣơng.

2.1.2.5. Định tuyến trên FPGA (rounting).

Rounting là công việc cuối cùng trong quá trình thiết kế, sau khi ta đã sắp đặt và bố trí xong các phần tử logic trên các khối di động thì đây chính là việc kết nối bằng cách định tuyến cho chíp đó.

Việc định tuyến gồm 2 bƣớc: định tuyến tổng thể và định tuyến chi tiết. Định tuyến tổng thể đƣợc thực hiện trƣớc, sau đó các định tuyến chi tiết thực hiện theo định hƣớng chung của định tuyến tổng thể đã đƣa ra.

Định tuyến tổng thể lên kế hoạch đi dây bằng cách tìm ra các kênh sẽ đƣợc sử dụng cho mục đích gì, cho bộ phận nào. Có nhiều kiểu định tuyến tổng thể đối với các loại FPGA, tuy nhiên các thuật toán toán tìm đƣờng ngắn nhất thì tƣơng tự nhau. Có hai phƣơng pháp chính cho định tuyến tổng thể là: một đƣờng chính tại một thời điểm, hoặc tất cả các đƣờng cùng một lần. Cùng với sự có mặt của giản đồ

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

thời gian định tuyến các đối tƣợng, vấn đề định tuyến trở nên khó hơn và yêu cầu có sự hiểu biết về sự khác nhau giữa việc tìm đƣờng ngắn nhất và tìm đƣờng với độ trễ nhỏ nhất. Các kiểu định tuyến chi tiết khác nhau gồm có định tuyến kênh và định tuyến dựa trên vùng hoặc ma trận. Định tuyến chi tiết với 2 lớp kim loại là vấn đề đƣợc đề cập đến nhiều nhất.

Các vấn đề chính của định tuyến là:

- Định tuyến đƣợc phân thành định tuyến tổng thể và chi tiết.

- Các thuật toán định tuyến phải phù hợp với các thuật toán placement. - Định tuyến không thể hoàn thành nếu không đi dây đƣợc.

- Các đƣờng nguồn và xung nhịp đƣợc điều khiển trong trƣờng hợp đặc biệt. - Độ rộng các đƣờng nguồn và xung nhịp đồng bộ đƣợc thiết lập bằng tay.

2.1.2.6. Tải nạp chương trình.

Đây là khâu tạo ra sản phẩm của thiết kế. Tải chƣơng trình nhìn chung đƣợc xem nhƣ là tải thông tin xuống thiết bị dễ biến đổi nhƣ SRAM FPGA. Thông tin cấu hình của thiết bị đƣợc nạp vào trong bộ nhớ của thiết bị. Luồng các bit mà nó đƣợc truyền đi có chứa tất cả các thông tin định nghĩa logic và các đƣờng nối của thiết kế và thông tin này khác nhau đối với thiết kế khác nhau.

Các thiết bị SRAM mất đi cấu hình của chúng khi mất nguồn vì vậy các luồng bit cần phải cất ở đâu đó để giải quyết bài toán. Một nơi thƣờng đƣợc dùng để cất thông tin cấu hình thiết bị, đó là PROM nối tiếp. Đây là thành phần kết hợp với phần cứng mà nó nối từ máy tính tới bo mạch mà bo mạch này có chứa thiết bị đích. Nạp chƣơng trình đƣợc dùng cho để lập chƣơng trình cho tất cả các thiết bị logic có thể lập trình đƣợc không bị thay đổi, chẳng hạn nhƣ PROM nối tiếp. Việc nạp chƣơng trình thực hiện giống chức năng nhƣ tải chƣơng trình, riêng các thông tin về cấu hình vẫn còn sau khi mất điện.

2.1.3. Giới thiệu về FPGA của hãng ALTERA.

2.1.3.1. Các loại FPGA trên thị trường.

Trong ngành công nghiệp chế tạo IC đang rất phát triển và phạm vi ngày càng mở rộng khắp thế giới thì chỉ có một số hãng đi đầu và chiếm đƣợc thị trƣờng trong

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

việc cung cấp các sản phẩm FPGA. Trong đó phải kể tới ba hãng lớn là: Xilink, Actel và Altera. Hiện nay, ở Việt Nam Xilink và Altera đã đƣợc khá nhiều các hệ thống điện tử sử dụng các thiết bị FPGA và tốc độ ứng dụng của chúng đang ngày

một tăng lên. Mô tả tóm tắt một số loại FPGA trên thị trƣờng trong bảng 2.1.

Hãng Kiến trúc tổng quát Kiểu khối logic Công nghệ lập trình

Xilink Symmetrical Array Look-up Table Static RAM

Altera Hierachical-PLD PLD Block EPROM

Actel Row-based Multiplexers-Based Anti-fuse

Plessey Sea-of-gates NAND-gate Static RAM

Plus Hierachical-PLD PLD Block EPROM

AMD Hierachical-PLD PLD Block EPROM

QuickLogic Symmetrical Array Multiplexer-Based Anti-fuse

Algotronix Sea-of-gates Multiplexers &

Based Gates Static RAM

Concurent Sea-of-gates Multiplexers &

Based Gates Static RAM

Crosspoint Row-based Transistor Pairs &

Multiplexers Anti-fuse

Bảng 2.1: Một số loại FPGA trên thị trường.

2.1.3.2. Đặc điểm thiết bị FPGA của hãng Altera.

Kiến trúc cơ bản của Altera FPGA là dựa trên công nghệ lập trình EPROM, hình 2.11 minh họa kiến trúc tổng quát của Altera FPGA MAX 7000. Bao gồm một mảng lớn các Block lập trình đƣợc gọi là Logic Array Block (LABs) đƣợc kết nối với nhau bởi các nguồn tài nguyên rounting.

- Thời gian thiết kế, thời gian mô phỏng và chế tạo nhanh. - Tốc độ xử lý của các thiết bị cao.

- Giá thành, chi phí đầu tƣ thấp hơn so với các hãng khác, mức độ rủi ro trong đầu tƣ thấp.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Khả năng thừa hành cao.

- Đáp ứng hầu hết các yêu cầu từ đơn giản tới phức tạp. - Hệ thống có mức tích hợp và độ ổn định cao.

- Công cụ hỗ trợ và phát triển đƣợc cung cấp đầy đủ.

- Phù hợp với khả năng và xu thế phát triển của các hệ thống số.

Nhìn chung, hệ thống cũng nhƣ các thiết bị của Altera có mức chi phí đầu tƣ so với mức đầu tƣ ban đầu vào các công nghệ cao trong lĩnh vực điện tử - viễn thông ở Việt Nam hiện nay là tƣơng đối cao. Bên cạnh đó, nó đòi hỏi có đội ngũ khoa học để tiếp thu, nghiên cứu và sử dụng đƣợc đào tạo kỹ lƣỡng và có trình độ cao. I/ O C o n tr o lB lo ck I/ O C o n tr o lB lo ck I/O ControlBlock I/O ControlBlock LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB

Hình 2.11: Kiến trúc tổng quát của Altera FPGA MAX 7000.

2.1.3.3. Các họ FPGA của hãng Altera.

Tất cả các họ thiết bị Altera đƣợc chế tạo theo công nghệ CMOS. Gồm các họ: Ma trận logic lập trình đƣợc APEX (Advanced ProgrammablE logic matriX), ma trận phần tử logic linh hoạt FLEX (Flexible Logic Element MatriX) và ma trận chuỗi đa phần tử MAX (Multiple Array matriX), STRATIX... Mỗi họ thiết bị có

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

đặc điểm riêng với cấu trúc khác nhau phù hợp với nhiều hệ thống số có mức độ tích hợp khác nhau và tạo ra sự đa dạng trong các ứng dụng.

Họ thiết bị Các chân I/O sử dụng Số cổng lôgíc

APEX 20K 95 – 800 30.000 – 1.500.000 FLEX 10K 59 – 470 10.000 – 200.000 FLEX 8000 68 – 208 2.500 – 16.000 FLEX 6000 71 – 218 16.000 – 24.000 MAX 9000 52 – 216 10.000 – 12.000 MAX 7000 36 – 212 600 – 10.000 MAX 5000 28 – 100 600 – 3.750 Classic 22 – 68 300 – 900

Bảng 2.2: Số cổng sử dụng và các chân I/O của các họ FPGA Altera.

Họ linh kiện APEX 20K:

APEX 20K là dòng sản phẩm đƣợc thiết kế theo kiến trúc MultiCore, nó là sự kết hợp những tính năng mạnh của LUT (Look Up Table - bảng sự thật) và product- term (các kết nối) với một cấu trúc bộ nhớ đƣợc tăng cƣờng. Những sản phẩm đƣợc xây dựng theo kiểu LUT cho phép tối ƣu hoá tính năng hoạt động và hiệu quả cho các thiết kế đƣờng dẫn dữ liệu, thanh ghi, các bộ xử lý toán học và các bộ xử lý tín hiệu số. Kỹ thuật product-term đƣợc tối ƣu cho các đƣờng dẫn tổ hợp phức tạp nhƣ các máy trạng thái. Kỹ thuật LUT và product-term kết hợp với các chức năng bộ nhớ cùng với hàng loạt các MegaCore và các chức năng AMPP làm kiến trúc APEX 20K thích hợp đặc biệt cho thiết kế cần tích hợp toàn bộ hệ thống trên một chip. Sử dụng những kỹ thuật này, ta có thể tích hợp toàn bộ hệ thống vào một chip thuộc họ APEX 20K.

2.1.4. Các công cụ thiết kế.

2.1.4.1. Gi i thiệu về EDA.

Các công cụ EDA (Electronic Design Automation) ngày nay là các công cụ chủ yếu đƣợc sử dụng trong nghiên cứu và phát triển các vi mạch cũng nhƣ các họ

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Một phần của tài liệu thiết kế hệ thống mã khối bằng công nghệ fpga (Trang 54 - 126)