Kiến trúc chung FPGA

Một phần của tài liệu bài giảng môn thiết kế vi mạch lập trình được - nguyễn thế dũng (Trang 35 - 38)

Mỗi nhà sản xuất FPGA có riêng cấu trúc FPGA, nhưng nhìn chung cấu trúc được thể hiện giống như trong hình bên trên. Cấu trúc FPGA bao gồm có configuration logic blocks (CLBs), configurable I/O blocks (IOB), và programmable interconnect. Và tất nhiên, chúng có mạch clock để truyền tín hiệu clock tới các logic block, và thêm vào đó có các logic resources như ALUs, memory và có thể có cả decoders.

Hình 2.2. Kiến trúc chung của FPGA

Các phần tử lập trình được của FPGA có 2 dạng cơ bản là các RAM tĩnh (Static RAM) và anti-fuses.

- Configurable Logic Blocks (CLBs):

Hình 2.3. Một Logic Block điển hình

Configurable Logic Blocks (CLBs) bao gồm các Look-Up Tables (LUTs) rất linh động có chức năng thực thi các logic và các phần tử nhớ dùng như là các flip-flop hoặc các chốt (latch). CLB thực hiện phần lớn các chức năng logic như là lưu trữ dữ liệu,..

- Configurable I/O Blocks:

Input/Output Blocks (IOBs) điều khiển dòng dữ liệu giữa các chân vào ra I/O và các logic bên trong của FPGA. Nó bao gồm có các bộ đệm vào và ra với 3 trạng thái và điều khiển ngõ ra dạng open collector. Phần lớn là có trở kéo lên ở ngõ ra và thỉnh thoảng lại có trở kéo xuống. IOBs hỗ trợ luồng dữ liệu 2 chiều (bidirectional data flow) và hoạt động logic 3 trạng thái (3 state).

Hỗ trợ phần lớn các chuẩn tín hiệu, bao gồm một vài chuẩn tốc độ cao, như Double Data-Rate (DDR).

Hình 2.4. Configurable Logic Blocks

- Programmable Interconnect:

Interconnect ở FPGA khác xa so với ở CPLD, tuy nhiên lại giống với của gate array ASIC. Có một line dài được dùng để nối các CLBs quan trọng mà chúng lại ở cách xa nhau mà không gây ra quá nhiều trễ. Chúng có thể được dùng như là các bus ở trong chip. Có các line ngắn được dùng để liên kết các CLBs riêng rẽ nhưng đặt gần nhau. Và cũng thường có vài ma trận chuyển đổi (switch matrices), giống như trong CPLD, nối giữa các line dài và ngắn lại với nhau theo một số cách đặc biệt. Các chuyển đổi lập trình được (Programmable switches) bên trong chip cho phép kết nối giữa CLBs tới các interconnect line và giữa interconnect line với các line khác và với switch matrix. Các bộ đệm 3 trạng thái được dùng để kết nối phần lớn các CLBs với các line dài (long line), tạo nên các bus. Các long line đặc biệt, gọi là các line clock toàn cục (global clock lines), được thiết kế đặc biệt cho trở kháng thấp và nhờ đó mà thời gian lan truyền nhanh hơn. Chúng được kết nối với các bộ đệm clock và với mỗi phần tử được clock trong mỗi CLB.Đó là cách mà clock có thể phân phối bên trong FPGA.

Hình 2.5. Programmable Interconnect

- Mạch đồng hồ (Clock Circuitry):

Các khối vào ra với bộ đệm clock high drive gọi là các clock driver,nằm rải rác xung quanh chip. Các bộ đệm này được nối với các chân clock vào và lái các tín hiệu clock vào các đường clock toàn cục (global clock line) như mô tả ở bên trên. Các đường clock được thiết kế sao cho thời gian thời gian lệch nhỏ nhất và thời gian lan truyền nhanh. Thiết kế đồng bộ là yêu cầu bắt buộc với FPGA, từ khi độ lệch tuyệt đối và trễ khôngđược bảo đảm. Chỉ khi dùng các tín hiệu clock từ các bộ đệm clock thì thời gian trễ tương đối và thời gian lệch mới được đảm bảo.

Một phần của tài liệu bài giảng môn thiết kế vi mạch lập trình được - nguyễn thế dũng (Trang 35 - 38)

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

(140 trang)