9/5/2011

Programable Logic Array, cả ma trận AND và OR ñều lập trình ñược.

Programable Array Logic (a) Programable ROM (b)

PAL thương mại

Tiết kiệm dung lượng ma trận. Bị hạn chế bởi số lượng các cổng AND khi số ñầu vào của cổng OR lớn hơn số cổng AND. Trễ truyền lan lớn hơn và mật ñộ tích hợp nhỏ.

LậpLập trình trình

A

Yêu cầu: F = AB = ABC + ABC

B

C

email ktmt@soict.hut.edu.vn 49 email ktmt@soict.hut.edu.vn 50

FPGA gồm 3 thành phần chính

Khối logic – Logic Block (LB): ñơn vị xử lý. Khối Vào ra – IO cell: giao tiếp với bên ngoài. Liên kết nối – Interconnection: liên kết các ñơn vị xử lý.

Configurable Logic Block

I/O Block

Thành phần khác

Buffer ClockDll …

Ví dụ: Dùng GAL ñiều khiển ñèn giao thông:

Connect Connec t

Generic Array Logic nâng cấp từ PAL, gồm một ma trận AND lập trình ñược (cấu tạo từ EEPROM) và ma trận OR cố ñịnh. Tuy nhiên, các cổng OR nằm trong các macrocell ñược nối với flip-flop và các bộ dồn kênh ñể có thể chọn tín hiệu ra. Tên gọi chung của các thiết bị như PAL, PLA, GAL… là Programable Logic Device

email ktmt@soict.hut.edu.vn 51 email ktmt@soict.hut.edu.vn 52

1

9/5/2011

1/3

2/3

Cả 3 thành phần: khối logic, khối vào ra, liên kết nối, ñều lập trình ñược. Lập trình cho khối logic là hành ñộng: “có kết nối hay không phần tử logic A với phần tử logic B?” Lập trình cho khối vào ra là hành ñộng: “có kết nối hay không ñầu ra logic A với chuẩn ngoại vi B?” Lập trình cho liên kết nối là hành ñộng: “có kết nối hay không khối logic A với khối logic/vào ra B?”

Với FPGA, lập trình là quá trình ñịnh tuyến giữa các phần tử logic, flipflop… ñã ñược chế tạo cố ñịnh sẵn, ñể thực thi một tác vụ nào ñó. Một tuyến ñều ñược chế tạo sẵn, và ñính kèm một khóa ñóng mở. Tuyến ñược thiết lập hoặc hủy, tương ứng với trạng thái khóa ñóng hay mở. Mỗi trạng thái của khóa ñóng/mở ứng với một bit nhớ trạng thái 0/1 tương ứng. Tập hợp các bít nhớ tạo thành bộ nhớ cấu hình cho FPGA.

(cid:1) Bảng ñịnh tuyến ñược lưu trữ trong bộ nhớ. (cid:1) Công cụ CAD sẽ dịch HDL thành bảng ñịnh tuyến.

email ktmt@soict.hut.edu.vn 53

LB

3/3

Ánh xạ vào FPGA cụ thể

Phân tích

Tất cả ASIC lập trình ñược, bao gồm FPGA, ñều chứa các khối logic (cell logic) cơ bản giống nhau tạo thành dải.

RTL •

HDL • c := a + b; • if (c == 1) then cf := 1;

BIT file • 01000100 • 11010101 • 10001001

I/O Cell I/O Cell I/O Cell

I/O Cell I/O Cell I/O Cell

LB

LB

LB

I/O Cell Cell

I/O Cell Cell

BộBộ nhớnhớ cấucấu hìnhhình

LB

LB

LB

I/O Cell Cell

I/O Cell Cell

LB

LB

LB

I/O Cell Cell

I/O Cell Cell

I/O Cell I/O Cell I/O Cell

I/O Cell I/O Cell I/O Cell

Có 4 loại khối logic: Dựa vào bảng tìm kiếm (LUT – Lookup Table) Xilinx Dựa vào bộ ghép kênh (Multiplexers) Actel Dựa vào PAL/PLA Altera Transistor Pairs

email ktmt@soict.hut.edu.vn 56 email ktmt@soict.hut.edu.vn 55

2

9/5/2011

1/3

RAM 16bit

WE

MUX

A0

0

A1

1

GG FuncFunc.. Gen.Gen.

S

G4 G3 G2 G1

Mux 2x1 có thể thực hiện ñược các hàm bên

Biểu diễn mức transistor

SA

G4 G3 G2 G1 1

Cấu trúc cell logic ACT 1 (ñơn module)

G4

G3

G2

G1

Bảng tìm kiếm, LUT, Look-Up Table, là một SRAM có K ñầu vào với 2K bit nhớ, thực hiện ñược mọi hàm logic có K biến. Thông thường, K = 4.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1

Cell ACT 1 chỉ có một module logic. Cell ACT 2, 3 có nhiều module logic hơn và có Flip Flop riêng. Cấu tạo Flip Flop

Tín hiệu ra của một LUT có thể quay trở lại, thành ñầu vào của chính LUT ñó, hoặc LUT khác. Trong một LB, thường có 3 LUT và ñược gọi là bộ thực hiện hàm F, G và H.

2/3

3/3

email ktmt@soict.hut.edu.vn 57 email ktmt@soict.hut.edu.vn 58

Số liệu ñưa vào LB có thể ñược xử lý bởi các hàm 4 ñầu vào, có thể ñược chốt ở thanh ghi, có thể ñược chọn kênh, hoặc bởi cả 3 thao tác trên.

Các LUT F và G tương ñương và ñộc lập với nhau, thực thi các hàm 4 biến và ñưa kết quả tính toán ra ngoài CLB, hoặc nhớ vào FF. Nếu phép toán có nhiều hơn 4 biến thì LUT F, G sẽ ñưa kết quả tới LUT H ñể mở rộng thêm.

Khối logic lập trình ñược, CLB, của XC4000 E/X

Flip-Flop ñóng vai trò: • Bit nhớ hoặc • Chốt dữ liệu Hai FF có thể set/reset ñồng bộ/không ñồng bộ, tích cực theo sườn âm/dương…

Cấu trúc cơ bản của LB dạng LUT

email ktmt@soict.hut.edu.vn 59 email ktmt@soict.hut.edu.vn 60

3

9/5/2011

Còn ñược gọi là CrossPoint FPGA. Số lượng cổng ít, ~ 4000

I I

l

e n o c y C a r e

t l

A a ủ c )

B L ( E L

email ktmt@soict.hut.edu.vn 61 email ktmt@soict.hut.edu.vn 62

LB

LB

LB

LB

LB

LB

LB

LB

Ma trận ñối xứng Symmetrical Array

LB

LB

LB

LB

LB

LB

LB

LB

LB

LB

LB

LB

LB

LB

LB

LB

Cấu trúc dòng Row-based

Sea-of-Gates

PLD

PLD

PLD

PLD

PLD

PLD

PLD

PLD

PLD phân cấp Hierarchical (CPLD)

FPGA kế thừa nhiều ý tưởng thiết kế của các sản phẩm trước (cid:1) sự quen thuộc trong kiến trúc. Nhưng số chức năng, mức ñộ tích hợp, khả năng tính toán của từng ñơn vị xử lý trong FPGA có khác nhau, gồm Coarse /kɔ:s/ , và Fine. Coarse-grained: Đơn vị xử lý là một tập hợp của các PLD, các khối cấu hình ñược CLB, thực thi ñược hàm phức tạp, có yêu cầu tính toán lớn. Ví dụ: Actel Mux, Xilinx LUT. Fine-grained: Đơn vị xử lý chỉ gồm các khối cấu hình ñược CLB nhỏ, thực thi các hàm logic ñơn giản. Ví dụ Transistor Pairs.

email ktmt@soict.hut.edu.vn 63 email ktmt@soict.hut.edu.vn 64

4

9/5/2011

2/3

1/3

Kết nối dài

Kết nối dài

Kết nối trực tiếp

Kết nối ña năng

LB

LB

Kết nối trực tiếp

Kết nối ña năng

SM

SM

SM

Ma trận chuyển mạch

Liên kết nối dài, tín hiệu clk liên thông toàn bộ dải. Liên kết nối trực tiếp giữa 2 khối LB. Liên kết nối ña năng gồm nhiều kết nối và các chuyển mạch.

3/3

Kết nối dài

email ktmt@soict.hut.edu.vn 66 email ktmt@soict.hut.edu.vn 65

LB

LB

Phần lớn các kết nối tạo thành các lưới kết nối theo hàng và theo cột. Giao cắt giữa các kết nối theo hàng và theo cột sẽ tập trung các ñiểm cần lập trình kết nối, tạo thành ma trận chuyển mạch (Switching Matrix), nằm phân tán trong FPGA.

LB

LB

SM

LB

LB

email ktmt@soict.hut.edu.vn 67 email ktmt@soict.hut.edu.vn 68

5

9/5/2011

QuickLogic 2%

Cypress 2%

Lucent 6%

Lattice 6%

Spartan low end

Arrix middle end

Virtex high end

Vantis 7%

Xilinx 36%

Actel 10%

Altera 31%

Cyclone low end

Arria middle end

Stratix high end

Xem Flow của Aldec-Active

email ktmt@soict.hut.edu.vn 69 email ktmt@soict.hut.edu.vn 70

Ngôn ngữ HDL phù hợp. Bộ công cụ CAD, EDA phù hợp. Ước lượng ñược số lượng các CLB cần thiết Dự kiến số lượng các chân I/O cần thiết. Điện áp hoạt ñộng. Các FPGA mới sử dụng mức ñiện áp thấp LVTTL, LVCMOS, ñòi hỏi phải chuyển ñổi ñiện áp ñể tương thích với ñiện áp TTL, cung cấp một hoặc nhiều vùng sử dụng ñồng thời ña mức ñiện áp. Tốc ñộ FPGA. Khả năng tài chính.

email ktmt@soict.hut.edu.vn 72 email ktmt@soict.hut.edu.vn 71

6

9/5/2011

1/4

2/4

Bước 1 - Thiết kế hệ thống

Thiết kế hệ thống (System Design)

Tích hợp vào ra (I/O integration)

Phần chức năng thực hiện trên FPGA Phần chức năng này tích hợp (kết hợp) với phần còn lại của hệ thống như thế nào

Đặc tả thiết kế (Design Specification)

Bước 2 - Tích hợp vào ra với phần còn lại của hệ thống

Tổng hợp (Synthesis)

Kiểm tra thiết kế (Design Verification)

3/4

4/4

73 74 Copyright (c) 10/2006 by NPB Copyright (c) 10/2006 by NPB

Bước 3 - Đặc tả thiết kế

Bước 5 - Kiểm tra thiết kế

Mô tả chức năng của thiết kế bằng:

Các trình soạn sơ ñồ logic Các ngôn ngữ ñặc tả phần cứng

Thực hiện các mô phỏng, phân tích cuối cùng (RTL, thời gian…) Xác ñịnh các thông số của ASIC ñã thiết kế (tần số xung nhịp…)

Kết hợp mô phỏng Bước 4 - Tổng hợp logic

Giống bước Tổng hợp logic trong quy trình ñầy ñủ Kết hợp tối ưu:

Nạp chip và chạy thử trên hệ thống!

trễ năng lượng hao phí

75 76 Copyright (c) 10/2006 by NPB Copyright (c) 10/2006 by NPB

7

9/5/2011

1/3

2/3

ProASIC3 Evaluation Board

Userguide.pdf

Spactan II 200 Spactan II 300 PCI 32bits RS232

1/2

2/2

email ktmt@soict.hut.edu.vn 77 email ktmt@soict.hut.edu.vn 78

IDE của nhà sản xuất FPGA.

Một số gói chương trình của bên thứ 3:

Atera

Xilinx

Actel

Leonardo Spectrum, CT tổng hợp của Mentor Graphics Synplify, CT tổng hợp của Synplicity ModelSim , CT mô phỏng của Mentor Graphics. Active-HDL, CT thiết kế và mô phỏng của Aldec Active

Chỉ có nhà sản xuất mới thấu hiểu nguyên tắc hoạt ñộng của FPGA của họ. (cid:1) chỉ có các IDE của nhà sản xuất mới routing, timing, cấu hình ñược cho FPGA. EDA của bên thứ 3 chỉ xử lý mức logic, rồi gọi IDE của nhà sản xuất ñể ñảm nhiệm mức vật lý.

email ktmt@soict.hut.edu.vn 79 email ktmt@soict.hut.edu.vn 80

8