Nghiên cứu, thiết kế và tích hợp các chip FPGA PLD vào hệ thống thu nhận ảnh vệ tinh khí tượng luận văn ths kỹ thuật - Pdf 33

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Văn Hiệu

NGHIÊN CỨU, THIẾT KẾ VÀ TÍCH HỢP CÁC CHIP FPGA/PLD VÀO HỆ
THỐNG THU NHẬN ẢNH VỆ TINH KHÍ TƯỢNG

LUẬN VĂN THẠC SỸ

Hà nội, 2006


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Văn Hiệu

NGHIÊN CỨU, THIẾT KẾ VÀ TÍCH HỢP CÁC CHIP FPGA/PLD VÀO HỆ
THỐNG THU NHẬN ẢNH VỆ TINH KHÍ TƯỢNG

Ngành: Công nghệ thông tin
Mã số: 1.01.10

LUẬN VĂN THẠC SỸ

Người hướng dẫn khoa học :
PGS. TS. Ngô Diên Tập

Hà nội, 2006



3.1 Khối tạo mã giải ngẫu nhiên PN ……………..............................39
3.2 Khối nhận dạng đầu khung ảnh....................................................40
3.3 Khối giải mã PN............................................................................. 41
3.4 Khối chuyển đổi chuỗi bit nối tiếp thành song song.....................42
CHƢƠNG 4: THỰC NGHIỆM VÀ CÁC KẾT QUẢ................................43
4.1 Các bƣớc thực hiện một project trên FPGA.........................................43
4.1.1 Tạo một project.......................... ....................................................45
4.1.2 Sử dụng Graphic Editor.................................................................45
4.1.3 Tổng hợp mạch từ sơ đồ.................................................................53
4.1.4 Thực hiện mô phỏng chức năng....................................................54
4.1.5 Sử dụng Message Processor để định vị và sửa các lỗi .................61
4.2. Những kết quả……….…………………………………………………62
KẾT LUẬN ….……………………………………………………………..67
TÀI LIỆU THAM KHẢO………………………………...…….………....70

2


NHỮNG CHỮ VIẾT

TẮT

ASIC

Application Specific Integrated Circuit

CPLD

Complex Programmable Logic Device


Logic array block

LE

Logic element

LPM

library of parameterized module

LUT

Look Up Table

PAL

Programmable Array Logic device

PLA

Programmable Logic Array

PLD

Programmable Logic Device

PROM

Programmable Read Only Memory


MỞ ĐẦU

Năm 1985 hãng Xilinx (Mỹ) giới thiệu trên thị trường một dòng linh
kiện mới thuộc chủng loại linh kiện điện tử khả trình (PLD) với tên gọi là
FPGA (Field Programmable Gate Array) và ngay lập tức nhận đã được sự
hưởng ứng cao từ phía khách hàng. Từ đó đến nay các hãng sản xuất chip
FPGA không ngừng cải tiến phát triển các họ sản phẩm mới ngày càng hoàn
thiện hơn.
Thiết kế mạch điện tử sử dụng FPGA là điều không còn mới mẻ trên thế
giới, ở Việt Nam công nghệ FPGA cũng đã được du nhập khoảng 5-7 năm trở
lại đây và đã có khá nhiều đề tài khoa học-công nghệ của các Viện nghiên
cứu, các Trường đại học thậm chí các đơn vị sản xuất trong lĩnh vực này. Sinh
viện của một số trường đại học kỹ thuật cũng đã được học những giáo trình về
FPGA. Sử dụng các chip FPGA trong thiết kế mạch điện tử cho phép chúng ta
rút ngắn được đáng kể thời gian và công sức trong việc tạo ra các mạch mẫu
thử nghiệm, giảm một cách đáng kể kích thước của các bo mạch điện tử, tiết
kiệm được tối đa chi phí làm mạch in, cho phép cập nhật nhanh tới các linh
kiện điện tử mới trên thị trường thế giới và đặc biệt rất linh hoạt trong việc
thay đổi các phương án thiết kế.
Do những đặc điểm trên, công nghệ FPGA thường được sử dụng trong
một số lĩnh vực sau:
- Thiết kế sản phẩm mẫu
- Các hệ thống đa chức năng và cần thay đổi linh hoạt khi sử dụng
- Các hệ thống đặc biệt đơn chiếc như trong công nghệ vũ trụ và quốc
phòng.

5



Linh kiện khả trình gồm hai loại chính là CPLD (Complex Programmable
Logic Device) và FPGA (Field Programmable Gate Array). Trên hình 1 chỉ ra
cấu trúc tổng quát của một FPGA. Một FPGA gồm một mảng các ô (cell)
logic, các ma trận kết nối, và các chuyển mạch. [11]

7


1.1.1 Các logic block [11]
Cấu trúc và nội dung của logic block được gọi là kiến trúc của nó. Kiến
trúc của logic block có thể được thiết kế theo nhiều cách khác nhau. Một số
logic block có thể chỉ đơn giản là các cổng AND hai ngõ nhập. Các logic
block khác có cấu trúc phức tạp hơn như các bộ quét động (multiplexer) hoặc
các bảng tìm kiếm (look-up table). Trong một số loại FPGA, các logic block
có thể có cấu trúc hoàn toàn giống PAL. Hầu hết các logic block chứa một số
loại flip-flop để hỗ trợ cho việc thực hiện các mạch tuần tự.

Hình 2: Cấu trúc của Logic Block.
Các phần tử CLB (Configurable Logic block) cơ bản được thể hiện trong
hình 2. Mỗi một phần tử CLB bao gồm 2 flip-flop và 2 khối chức năng độc
lập 4 đầu vào. Các khối chức năng này có tính mềm dẻo cao bởi vì hầu hết
các chức năng lôgic kết hợp cần ít hơn 4 đầu vào. Mười ba đầu vào và bốn
đầu ra của CLB cung cấp đường dẫn tới các flip-flop chức năng. Các CLB
tiến hành hầu hết các logic trong một FPGA. Các phần tử CLB chủ yếu được
biểu diễn trong hình 2. Hai khối chức năng 4 đầu vào (F và G) tạo ra các chức
8


năng đa dạng. Hầu hết các chức năng logic kết hợp cần 4 đầu vào hoặc ít
hơn. Tuy nhiên, một chức năng thứ ba (H) thì được cung cấp. Khối chức năng

Hình 3: Cấu trúc của các kết nối.

Cấu trúc và nội dung của các nguồn kết nối trong FPGA được gọi là kiến
trúc routing (routing architecture). Kiến trúc routing gồm các đoạn dây nối và
các chuyển mạch lập trình được. Các chuyển mạch lập trình được có thể có
nhiều cấu tạo khác nhau như: pass-transistor được điều khiển bởi cell RAM,
các cầu chì nghịch (anti-fuse), EPROM tranzito và EEPROM tranzito. Giống
như logic block, 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 logic block, một số
khác cung cấp ít kết nối hơn nên routing phức tạp hơn.
Tất cả các đường nối bên trong thì bao gồm các đoạn kim loại với các
điểm nối có thể lập trình được để thực hiện định hướng (routing) mong
muốn. Sự phong phú các nguồn routing khác nhau được cung cấp để đạt được
routing tự động có hiệu quả. Số kênh routing được sắp xếp theo kích cỡ của
mảng; nó tăng với kích cỡ mảng. Các đầu vào và đầu ra CLB được phân bố
trên tất cả 4 mặt của block, tạo ra sự linh hoạt routing.

10


Có bốn loại liên kết chủ yếu, ba loại được phân biệt bởi độ dài tương
đối của các đoạn của chúng: các đường dài đơn, đường dài đôi và đường dài.
(Chú ý: Số lượng các kênh routing được biểu diễn trong bảng dưới đây chỉ là
mô tả, số lượng thực của các kênh routing thay đổi với kích cỡ mảng). Thêm
vào đó, tám buffer toàn bộ chạy nhanh, mạng lưới độ lệch thấp thường sử
dụng cho clock hoặc các tín hiệu điều khiển toàn bộ.
1.1.3 Khối vào ra [11,12]
Các khối vào/ra thường được viết tắt là IOB (input Output Block), cấu
hình cung cấp giao diện giữa các chân bên ngoài và các tín hiệu logic bên
trong. Mỗi IOB điều khiển một chân và có thể được xác định cho đầu vào,


Hình 5: Bốn loại cấu trúc FPGA trên thực tế.
12


1.3Công nghệ lập trình FPGA [11]
1.3.1 Công nghệ phản cầu chì antifuse
Một amorphous-silicon antifuse có thể được gắn trên cầu nối (via) hoặc
trên khoảng cách giữa lớp kim loại như được chỉ ra trên hình 6. Trong một ma
trận cổng semi-custom, các lớp trên và lớp dưới của kim loại tạo nên một
đường dẫn trực tiếp qua một metal interconnect via. Trong một FPGA dựa
trên silic vô định hình, hai lớp kim loại được cách biệt bằng silic vô định hình
tạo thành sự cách điện. Một xung khoảng 10V-12V trong một khoảng thời
gian cần thiết có thể được dùng bắc qua via, làm cho các lớp trên và dưới của
kim loại nối với nhau gây nên một đường dẫn (với điện trở khoảng 50 om),
như chỉ ra trên hình 6. Bởi vì kích thước của một amorphous-silicon antifuse
là giống như của một đường nối kim loại tiêu chuẩn, các bộ phận lập trình
được có thể đặt rất dầy đặc và chỉ bị giới hạn bởi kích thước của metal-line
pitch, như hình 7. Sau khi đã được lập trình, một antifuse sẽ không thể bị xoá
hoặc tái lập trình.

Hình 6: Một phần tử phản cầu chì.

13


Hình 7: Mảng mặt nạ phần tử phản cầu chì.
Để lập trình được một antifuse, một sự khác biệt về thế phải
được dùng giữa các thành phần antifuse. Mỗi thành phần antifuse
được cách biệt bởi một tranzito và do vậy các thành phần khác


thẳng đứng có thể nối với các dây ở hàng ngang tại những điểm giao
nhau. Một vài dây thành phần dài hơn chỉ độ 1 tế bào logic. Những cái này
có thể nối với các dây dẫn ở bộ phận ở trên hoặc ở dưới nhưng trên cùng
một lố kim loại thông qua một antifuse lập trình được, được gọi là các pass
link, được biển thị bởi một dấu x trong hình. Một thiết kế hệ thống được
làm hoàn toàn bằng dây có thể cung cấp độ linh hoạt lớn nhất. Tuy nhiên,
dùng các dây thành phần cho các đường dẫn dài sẽ đòi hỏi nhiều antifuse
cần được lập trình, mỗi cái lại thêm một giá trị điện trở vào đường dẫn.
Điện trở lớn làm chậm quá trình hoạt động. Do vậy, các dây khác cho phép
tăng chiều dài (bốn tế bào logic hoặc toàn bộ chiều dài chiều rộng của ma
trận) có thể được tối ưu hoá trong cả cấu trúc ở cục bộ địa phương và rộng.
1.3.2 Công nghệ SRAM [11]
Các tế bào Static RAM (SRAM) có thể được dùng để điểu khiển trạng
thái của các pass tranzito nhằm thiết lập đường nối giữa các dây nằm ngang
và dây nằm dọc. Hình 10 miêu tả sáu pass tranzito cho phép tạo nên sự tổ
hợp trong đường nối của 4 dây (N, S, E, W). Điện trở giữa cực S và D
(source-to-drain) là khoảng 1000 ôm. Các tế bào SRAM có thể được dùng
để lái các đầu vào của thể đa thành phần nhằm chọn một trong số nhiều tín
hiệu được truyền tải trên một đường dẫn nhất định.
Một tế bào bộ nhớ SRAM bao gồm 5 transistor (hình 11): hai cái dùng
cho mỗi cái cầu giao và một cái dùng để định địa chỉ (dùng để chọn tế bào
bộ nhớ cho chương trình). Một tế bào SRAM có thể được tái lập trình,
không giống như các thành phần antifuse, và bị thay đổi hình dạng sau khi
được lập trình. Tuy nhiên, các tế bào SRAM là không ổn định, tức là trạng
thái của các tế bào bộ nhớ sẽ bị mất đi khi ngắt điện. Các FPGA dựa trên
SRAM cần phải được lập trình mỗi khi mạch được đóng điện. Việc này
cũng giống như là các thành phần antifuse cần phải được định địa chỉ và tải
dữ liệu khi lập trình cho mạch.
16

(peripheral component interconnect Special Interest Group )
- Mạch kiểm tra quét đường biên BST (boundary-scan test ) JTAG tuân
theo chuẩn IEEE Std. 1149.1-1990 được cài đặt sẵn trên chip.
- Hỗ trợ giao diện vào ra nhiều điện áp I/O cho phép thiết bị chạy ở mức
5 V, trong khi các chân I/O thoả mãn với các mức lôgic 5 và 3,3 V.
- Nguồn năng lượng thấp (đặc trưng tiêu biểu là 0,5 mA hoặc thấp hơn
trong chế độ standby).
Liên kết nối linh hoạt

18


- Cấu trúc định tuyến liên tục liên kết nối FastTrack cho ta các trì hoãn
liên kết nối nhanh có thể đoán trước.
- Chuỗi nhớ (carry chain) chuyên dụng thực hiện các hàm số học như là
các bộ cộng nhanh, các bộ đếm, các bộ so sánh (tự động được sử dụng bởi
các công cụ phần mềm và các hàm lớn).
- Chuỗi nối tầng (cascade chain) chuyên dụng thực hiện các hàm logic
tốc độ cao, fan-in lớn (tự động được sử dụng bởi các công cụ phần
mềm và các hàm lớn).
- Mô phỏng 3- trạng thái thực hiện các bus 3 trạng thái nội (bên trong chip)
Các chân I/O đa năng
- Điều kiện cho phép ngõ ra 3 trạng thái riêng rẽ đối với mỗi chân
- Tuỳ chọn cực máng hở (open-drain) trên mỗi chân
- Điều khiển tốc độ chuyển trạng thái ngõ ra lập trình được (programmable output slew-rate control) để giảm nhiễu (do) chuyển mạch
(switching noise)
- Bộ ghi (register) ngoại vi có trì hoãn từ ngõ vào xung clock đến ngõ ra
hay gọi tắt là trì hoãn clock- ngõ ra (clock-to-output delay) và trì hoãn
thiết lập (setup delay) nhanh
- Tuỳ chọn vỏ linh hoạt tử 84 đến 304 chân xem trong bảng 2

một thiết bị. Bảng 3 mô tả sự thực hiện FLEX 8000 và các yêu cầu của LE
cho các ứng dụng tiêu biểu.
Bảng 3: Mô tả FLEX 8000.

20


Tất cả gói thiết bị FLEX 8000 cung cấp 4 đầu vào chuyên dụng cho
các tín hiệu điều khiển đồng bộ với hệ số phân đầu ra rộng. Mỗi chân I/O có
một thanh ghi hỗ trợ trên thiết bị ngoại vi. Như các đầu ra, các thanh ghi này
cung cấp fast clock-to-output times, như các đầu vào, chúng cung cấp thời
gian tiến hành nhanh.
Sự liên kết và lôgic trong cấu trúc FLEX 8000 thì được cấu hình với các
phần tử CMOS SRAM. Các thiết bị FLEX 8000 được cấu hình với hệ thống
năng lượng với dữ liệu được lưu trữ trong một EPROM song song chuẩn công
nghiệp hoặc một seri Altera các thiết bị cấu hình, hoặc với dữ liệu cung cấp
bởi một điều khiển hệ thống. Altera cung cấp các thiết bị cấu hình EPC1,
EPC1213, EPC1064 và EPC 1441, loại mà cấu hình các thiết bị FLEX 8000
thông qua một dòng dữ liệu nối tiếp. Dữ liệu cấu hình cũng có thể được lưu
trữ trong một chuẩn công nghiệp 32K - 8 bit hoặc thiết bị cấu hình lớn hơn,
hoặc lấy từ hệ thống RAM. Sau khi một thiết bị FLEX 8000 được cấu hình,
nó có thể được cấu hình lại trong bảng mạch bằng cách khởi động thiết bị và
lặp lại dữ liệu mới. Bởi vì cấu hình lại yêu cầu thời gian nhỏ hơn 100ms, thay
đổi thời gian thực có thể được làm trong suốt quá trình vận hành hệ thống.
Các thiết bị FLEX 8000 bao gồm một giao diện vi xử lý cái mà cho phép
vi xử lý cấu hình các thiết bị FLEX 8000 nối tiếp, song song, đồng bộ hoặc
không đồng bộ. Giao diện cũng cho phép vi xử lý khiến cho một thiết bị
FLEX 8000 như là một bộ nhớ và cấu hình thiết bị bằng cách ghi vào bộ nhớ
ảo, khiến cho người thiết kế tạo ra phần mềm cấu hình một cách dễ dàng.
Các chip FLEX 8000 được hỗ trợ bởi các hệ thống phát triển


22


Hình 12: Sơ đồ khối của chip FLEX 8000.

I/O element: phần tử I/O
Logic array block: khối dải logic LAB
Logic element: phần tử logic LE
FastTrack interconnect: liên kết FastTrack
Hình 12 mô tả sơ đồ khối cấu trúc của FLEX 8000. Mỗi một nhóm 8 LE
được kết hợp lại thành một LAB; Các LAB được sắp sếp thành hàng và cột.
Các chân IO được cung cấp bởi các phần tử IO cục bộ ở cuối mỗi dòng hoặc
cột. Một khối IOE bao gồm một bộ đệm hai hướng và một flip-flop.
Sự liên kết tín hiệu trong các thiết bị FLEX 8000 và giữa các chân thiết
bị được cung cấp bởi liên kết FastTrack, một loạt các kênh liên tiếp, nhanh
23


Trích đoạn Sử dụng Graphic Editor
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status