BẢNG CHÚ GIẢI T Ừ QUAN TRỌNG VÀ VIẾT TẮTApplication-Specific Integrated Circuit Mạch tích hợp chuyên dụng Programmable Logic Device Linh kiện logic lập trinh Complex Programmable Logic
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TR Ư Ờ N G ĐẠI HỌC KHOA H Ọ C T ự NHIÊN
THS LÊ QUANG THẢO
_ • *' Ị N
D r / 8 9 ^
HÀ NỘI - 2008
Trang 2ỉ Báo cáo tóm tắt {tiếng Việt)
ThS Lê Quang Thảo
d Mục tiêu và Itộỉ dung nghiên cứu
Xây đựng quy trinh nghiên cứu sử dụng và ứng dụng kĩ thuật FPGA ữong x.ử lí tín hiệu số
e< Các kểt quả đạt được
■ 01 bài báo VNU 2008:
R ad ar Digital Filters Design with VHDL and FPGA
* 01 chương trình mô phỏng kỹ thuật FPGA và ngôn ngữ VHDL
» Oi khóa luận tốt nghiệp sinh viên khóa K49, 2008
f Tình hình kinh phí của đề tài: Đã thanh toán hết kinh phỉ của đề tàiChi phí hết kinh phí tạm ứng của để tài là:
- Thuê khoán chuyên môn:
7
ThS Đặng HùngPGS.TS Nguyền Thế Bình
TRƯỜNG ĐẠI HỌC KHOA HỌC TỤ NHIÊN
Mtêu TRƯỚNG
oV—■ —
Trang 3-2 Summary (by English)
a Project, code
Digital Signal Processes using FPGA Technique
Code : QT-08-07
b Main responsible person
MS Dang Hung, Faculty of Physics,
Hanoi University o f Science (HUS), Hanoi National University
• 0Ỉ paper of VNƯ Journal
Radar Digital Filters Design with VHDL and FPGA
■ 01 simulation program o f FPGA and VHDL
■ 01 thesises o f undergraduated student K49, 2008
Trang 5MỤC LỤC
MỤC LỤC 4
BẢNG CHÚ GLẢI TỪ QUAN TRỌNG VÀ VIẾT TẮT 5
MỰC TIÊU ĐỀ T Ả I 6
CÁC KẾT QƯẢ CHÍNH 7
1 LINH KIỆN LOGIC LẬP TRÌNH PLD 7
1.1 Tồng quan hệ thống s ố 7
1.2 Cơ bản về mạch điện PLD 10
1.3 CPLD 12
1.4 FPGA (Field-Programmable Gate Array) 14
2 Ngôn ngừ mồ tả phần cứng VHDL 19
2.1 Các ưu điểm của VHDL 19
2.2 Cấu trúc một mô hình hệ thống mô tả bằng V H D L 22
3 Thiết kế bộ lọc số rađa với kỹ thuật V H D L 24
3.1 Khái niệm về bộ lọc chiều dài hữu hạn FIR (Finite Impulse Response) 24
3.2 Lưu đồ thiết kế VHDL 25
3.3 Thiết kế bộ lọc đùng FDAtool và chương trình mô phỏng M odelSím 26
KẾT LUẬN 29
TÀI LIỆU THAM KHẢO 30
PHỤ LỤC 31
TỚM TẲT CÁC CÔNG TRÌNH NGHIÊN cứu CỬA CẢ NH ÂN 36
SCIENCE PROJECT 37
PHIÊU ĐẢNG Kí KẾT QUẢ NGHIÊN c ứ u KHOA HỌC 38
Trang 6BẢNG CHÚ GIẢI T Ừ QUAN TRỌNG VÀ VIẾT TẮT
Application-Specific Integrated Circuit
Mạch tích hợp chuyên dụng
Programmable Logic Device
Linh kiện logic lập trinh
Complex Programmable Logic Device
Linh kiện logic lập trình phức hợp
Field Programmable Gate Array
Mảng cổng logic lập trình
VHSIC Hardware Description Language
Ngôn ngữ mô tả phần cứng VHSIC
Very High Speed Integrated Circuits
Mạch điện tích hợp tốc độ caoProgrammable Logic ArrayProgrammable Aưay LogicOne-Time Programmable
Trang 7M Ư CTIÊƯ ĐÈ TÀI
Mạch tích hợp chuyên dụng ASIC (Application-Specific Integrated Circuit): chỉ
các mạch linh kiện hiện đại, gồm các loại chính PLD, CPLD, FPGA Các công nghệ hiện nay đang được ưa chuộng nhất, vì với các chương trình phần mềm thiết lập, có
thể tạo nên các mạch điện tử số phần cứng trên các mạch này Giải pháp là phẩn mềm,
nhưng được thực hiện thành phẩn cứng Vì thế, vừa có được độ linh động như vi xử lí, DSP, vừa giải quyết được vấn đề tốc độ
Ngôn ngữ VHDL (VHSIC Hardware Description Language, VHSIC - Very High Speed Integrated Circuits) là ngôn ngữ mồ tả phần cứng, mô tả hành vi của các mạch
điện từ số, mà chắc chắn phần cứng từ các PLD sẽ thực hiện tương tự Các chương
trình VHDL được biên địch và nạp vào các linh kiện PLD để tạo thảnh các mạch điện
tử số tương ứng
Vỉ thế, với các chương trinh VHDL khác nhau, với các linh kiện PLD có thể tái lập trình, ta có thể có rất nhiều các mạch điện khác nhau xây dựng trên cùng một bo mạch, hoàn toàn không phải thay thế các linh kiện Đó chính là ưu điểm cực kì nổi bật của linh kiện PLD
Công việc chính của đề tài là tập trung vào tìm hiểu các loại linh kiện PLD và tìm hiểu cách viết các chương trình VHDL, cũng như tìm ra con đường ngắn và hiệu quả
để đẫn tới vận hành các linh kiện PLD Từ đó tìm ra cách phát triển phòng thí nghiệm PLD của Bộ môn Vật lí Vô tuyến
Nhân dịp này, tôi xin trân trọng cảm ơn Đại học Quốc gia Hà nội, Ban Giám hiệu, Phòng Khoa học và Công nghệ, Phòng Kế hoạch tài vụ, Ban chủ nhiệm Khoa Vật ỉý Trường Đại học Khoa học Tự nhiên đã giúp đỡ và tạo điều kiện về mặt tài chính và các thủ tục khác trong suổt thời gian tôi làm đề tài
Xin trân trọng cảm om
Trang 8Hệ thống số được chia thành 3 loại chính:
- Các IC logic chuẩn thông thường (Standard logic), thuộc các linh kiện họ TTL, CMOS, ECL phổ biến Hiện nay, CMOS được ưa chuộng hom vì sự tiêu thụ công suất thấp Tuy nhiên, các hệ thống TTL vẫn rất phổ biến
- Vi xử lí và DSP (M icroprocessor and DSP): đây là những hệ thống hoàn chỉnh,
có thể thực hiện bất cứ nhiệm vụ nào với các chương trình phần mềm điều khiển
Ưu điểm nổi bật là tính linh động, khi chỉ thay đồi phần mểm là có thể thay đổi được các thuật toán phần cứng Tuy nhiên, đây cũng ẩn chứa nhược điểm, chính là tốc độ Nếu ta thực hiện giải pháp phần cứng trực tiếp thì luôn có tốc độ nhanh hơn các giải pháp phần mềm
- Mạch tích hợp chuyên dụng ASIC (Application-Specific Integrated Circuit): chỉ
các mạch linh kiện hiện đại, gồm các loại chính PLD, CPLD, FPGA Các công nghệ mạch này hiện nay đang được ưa chuộng nhất, vì với các chương trình phần mềm thiết lập, có thể tạo nên các mạch điện tử sổ phần cứng trên các mạch này Giải pháp là phần mềm, nhưng được thực hiện thành phẩn cứng Vì thế vừa có được độ linh động như vi xừ lí, DSP, vừa giải quyết được vấn đề tốc độ
• PLD, trong một số trường hợp gọi là FPLD (Field-Programmable Logic
Trang 9Devices) có thể cấu hình theo ý muốn để tạo thành bất cứ mạch điện nào,
dù ỉà từ các cổng logic cho đến các mạch điện tử số phức tạp
• Gate Array: là các mạch điện ƯLSI (ultra-large scale integration), mạch tích hợp cỡ siêu lớn có hàng trăm ngàn các cổng logic Các hàm logic thực hiện băng cách kết nối giữa các cổng cơ bàn này với nhau Việc thiết lập kết nối được thực hiện bằng các mặt nạ, giống như trong trường hợp MROM Vì thế, các mảng gate này còn được gọi là MPGA (Mask Programmed Gate Array) Gate Array này rè hơn so vái các mạch PLD, nhưng việc chế tạo và đặt chế tạo mặt nạ trực tiếp với hẵng thì lại rất tốn kém và mất thời gian Vì thế, hình thành một công nghệ mới LPGA (Laser PGA), sử dụng chùm tia laser để cắt những kết nối không sử đụng trước khi đóng gói mạch thành chip Công nghệ mới này giảm thiểu được công đoạn chế tạo mặt nạ tổn kém và giảm được thời gian hàng tuần xuống còn vài ngày
• S tandar Cell: đó là các khối logic đã được định nghĩa chức năng tnrớc, kết nối chúng lại với nhau thành mạch điện cần thiết kế Bàn thiết kế của mỗi cell đã được thiết kế trước và được lưu trong thư viện dữ liệu Khi cần chỉ cần ráp chúng lại với những kết nối cỏ tương thỉch
Giá thành của thiết kế này còn đắt hơn so với MPGA Ngoài ra cung cần tốn rất nhiều thời gian cho việc tạo mặt nạ kết nổi cho các cell
Ưu điềm cùa Standard Cell so với Gate Array ở chỗ các khối chức năng cell cũng đã cỏ độ tích hợp nên mạch tổng thể sẽ nhỏ hơn nhiều so với các gate array rời rạc Vì thế sẽ có tốc độ hoạt động cao hơn và giá thành phần này giảm hơn
• Full-custom: đây là một lựa chọn quyết định trong công nghệ ASIC Theo tên gọi, đây là loại mạch mà các linh kiện như ừansistor, điện trờ, tụ điện và các dây nổi của nó hoàn toàn được chủ động thiết kế bời người thiết kể IC Những thiết kế này đòi hỏi sự tổn công sức, thời gian và rất tốn kém Nhưng bù lại, khi thiết kế xong, mạch sẽ có tốc độ hoạt động tối
ưu nhất, và đặc biệt là tính nhỏ gọn vì sự tối ưu hóa linh kiện Tính nhỏ gọn lại gẳn liền với độ tích hợp cao
Chi tiết về PLD - Linh kiện logic khả trinh
Sự phát triển của PLD liên tiếp trong suổt hơn 30 nãm gần đây Với những PLD đầu tiên chỉ có khoảng vài trăm cổng logic, với chi có vài đầu vào vả đầu ra Hiện nay linh kiện này có thể tích hợp hàng triệu cổng logic, số đầu vào ra lên đến hàng trăm PLD
cũ cũng thường chì cấu hình được 1 lần Nểu chương trinh thay dối cần bỏ đi linh kiện
Trang 10PLD cũ, thay vào đó !à IC PLD mới Nhưng hiện nay, PLD có thể cấu hinh được nhiều lần.
Nói chung, PLD được chia thành 3 loại:
- SPLD (Simple Programmable Logic Device): linh kiện logic đơn giản có thểlập trình
- CPLD (Complex Programmable Logic Device): linh kiện logic phức tạp có thểlập trinh
- FPGA (Field Programmable Gate Array): Mảng cổng logic có thể lập trình
Sự phân biệt giữa CPLD và FPGA là rất mờ nhạt, chúng thường được đề cập chung là HCPLD (High-capacity Programmable Logic Devices)
Sự phân biệt giữa SPLD và HCPLD là ở số lượng các cổng logic Với SPLD, sổ lượng cổng chỉ cỡ 600 cổng Trong khi với HCPLD có hàng nghìn, thậm chí hàng trăm nghìn cổng Các kết nối (interconnection) của SPLD ít hơn, Vì thế SPLD đan giản và rẻ hơn
Vì thế, với những ứng đụng đơn giàn thì SPLD là lựa chọn thích hợp Còn với những ứng dụng yêu cầu tính phức tạp cao, HCPLD sẽ là cần thiết
Trong phân ioại của SPLD, kể đến các linh kiện PLD thời đầu Đây ià những linh kiện chỉ có thể lập trình 1 lần OTP (one-time programmable) Các cầu chỉ (fuse) thực hiện các kết nối giữa các cổng AND và OR để thực hiện hàm logic Nói chung, tuân theo công nghệ của PROM, và có thể được gọi là PLA (Programmable Logic Array) Với thế hệ này không được ưa chuộng, cho đến khi PAL (Programmable Array Logic) ra đời PAL vẫn sử dụng kết nổi cầu chì, sau đó dựa trên phát triển đựa trên EPROM, EEPROM
CPLD là các thiết bị tổ hợp của các mảng PAL trên cùng i chip Mỗi khối logic (PAL) bản thân đã có các AND kết nối các OR cố định Mỗi khối logic được gọi là macroceỉỉ Khi các yêu cầu cao hơn, có thêm các flip-flop để hình thành các thanh ghi
FF dùng D, JK, T, hoặc SR trigơ CPLD là các linh kiện không bay hơi, dùng EPROM, EEPROM, flash Chủ yểu được sử dụng hiện nay là EEPROM nên CPLD có thể xóa và tái lập trình
FPGA cỏ thêm một số đặc tính khác biệt Chúng chửa nhiều môđun logic nhỏ, độc lập
có thể lập trinh và nối với nhau để tạo thành các chức năng lớn hơn Hầu hết các FPGA đều cỏ LƯT (look-up table) để tạo ra hàm logic LƯT gần tương tự bảng chân
lí Các môđun còn chứa thêm các thanh ghi
Các môđun này không nối trực tiếp vào các chân I/O Các chân I/O này được nổi vào các khối logic theo các kết nối xác định bởi lập trình
Các công nghệ đùng trong FPGA: SRAM, flash, cầu chỉ thuận nghịch (antifuse) SRAM được sử dụng nhiều hơn cả
Mô hình của FPGA như sau:
Trang 11Programmable interconnect Connecting segment Interconnect path
NOTE: Clock inputs may have special k>w-#k*w interconnect paths.
Hình L2 Cấu trúc cơ bàn của FPGA
1.2 C ơ bản về mạch điện PLD
Hình Ị 3 Bố (rí cùa mang AND và OR trong PLD
Mạch PLD có kết cấu nhờ các cổng AND để tổ hợp các trạng thái lối vào và lập trình
để đưa ra tại các lối ra OR
Trang 12Sum 0 1 product outputs
Hình J.4 Ví dụ về lồi ra xây dựng từ màng AND và OR
Mỗi cổng OR SỖ tạo ra lối ra là hàm cùa 2 biển lối vào A và B Mỗi lối ra này được lập trình bằng các cầu chì đặt giữa các cổng AND và mỗi cổng OR
Đầu ra của 4 cổng AND sẽ được bố tri để ra được cả 4 trạng thái AB, 3 b, AB, AB Mỗi
đầu ra của một cổng AND được gọi là một đường tích (product line).
Mỗi đường tích được nối vào một trong 4 cầu chì lối vào của OR 4 lốivào Nếu ban đầu cả 4 cầu chì được nối (intact fuse), các đầu ra OR đều bằng 1
Trang 13(•) Hard-wứed connection: kết nối giữa các biến lối vào A, /A, B, /B với các
đầu vào của AND
(X) intact fuse nối các đầu ra AND với íối vào tương ứng của OR
Theo hình vẽ trên, các lối ra được lập trình sẽ là:
O) = ÃB +AB
0 2 = a b
03 = 0
0 4 = 1
So sánh sư khác biẽt giữa PAL vói PLA
Hình ỉ 6 PAL với ỉổi ra có thêm trigơ
PAL là một phát triển cúa PLA Cũng giống PLA, PAL gồm các hệ AND để tạo ra các tích cơ bản của các lối vào (ANDing) Tuy nhiên, các hệ OR cố định, làm giới hạn các hàm logic có thề đưa được ra lối ra Một số cổng logic khác, chẳng hạn hợp kênh, XOR, các bộ chốt được đưa thêm vào lối vào và lối ra của PLA để thành PAL Quan trọng hơn, linh kiện có xung nhịp FF được thêm vào để thực hiện các mạch logic dãy
1.3 CPLD
CPLD chính xác theo tên gọi, là các mạch PLD phức tạp, một mạch gồm 1 lượng rất nhiều các PAL tích hợp trong cùng một chip Chúng cũng dùng những những công cụ phát triển, các phần mềm và công nghệ như PAL nhưng có độ phức tạp cao hơn nhiều
Cấu trúc CPLD
Mặc dầu có nhiều nhà sán xuất khác nhau, nhưng cấu trúc điển hình của CPLD gồm có: khối chức năng (function block FB), ỉổi vào / ra, ma trận giao tiểp (interconnect
Trang 14matrix) Các thiế bị này được lập trình dùng các yếu tố có thể iập trinh, phụ thuộc vào công nghệ của nhà chế tạo, EPROM, EEPROM, hoặc flash EPROM.
Hình ỉ 7 Cẩu trúc CPLD với các khối FB, ỈO, Interconnect Matrix
SharedLogic
ClearGeieci
Thường thì các FB được thiết kế giống cấu trúc PAL, chăng hạn 22 V 10 Khi đó, người thiết kế cỏ thể sử dụng các công cụ và thậm chí thiêt kê cũ mà không cân thav đôi gỉ
Trang 151.4 FPGA (Field-Program m able Gate Array)
Như trong phần trên, cấu trúc CPLD cổ điển gồm có PAL hoặc PLA với các kết nối có thể lập trình FPGA thì khác hẳn về cấu trúc, nó không dùng các mảng PAL/PLA và
có mật độ cao hơn CPLD Một FPGA có số lượng cổng gấp nhiều lần một CPLD Các yếu tố tạo hàm logic trong FPGA nói chung là nhỏ hơn so với CPLD và sổ ỉượng thì cũng nhiều hơn Ngoài ra, các kết nổi có thể lập trình trong FPGA được tồ chức dưới dạng hàng và cột
Cấu trúc FPGA tổng quát
Hình Ỉ.9 Cẩu trúc FPGA tổng quát
Ba khối chức năng chính trong FPGA là:
- Khối logic có thể cấu hình (CLB - Configurable Logic Block)
- Các kết nối có thể lập trinh (Programmable Interconnects)
- Khối vào ra (I/O Block)
CLB trong FPGA không phức tạp như các khối LAB và LE trong CPLD, nhưng có sổ lượng nhiều hơn
Các kết nối có thể lập trình có nhiệm vụ nối các CLB với nhau khi cẩn thiết và tạo giao tiếp với các tín hiệu vào/ra
Khối I/O điều khiển cho các chân linh kiện lả vào hay ra, hay hoạt động hai chiều traođổi tín hiệu với thế giới bên ngoài
v ề mặt công nghệ, FPGA được tái lập trình khi sừ dụng công nghệ SRAM hoặc cầuchi thuận nghịch (antifuse) cho các đường nối cỏ thể lập trình
Cấu trúc bên trong của mỗi khối CLB:
Trang 16Hình Ỉ.ỈO Cấu trúc CLB tổng quát
Các công nghệ dùng cho các kết nối có thể lập trình
I Cầu chì thuận nghịch (antifiise)
Hình ỉ Ị ỉ Cấu trúc cầu chì thuận nghịch
Cấu tạo cùa cầu chì thuận nghịch gồm có một lớp không dẫn điện bị kẹp giữa 2 lớp kim loại Lớp không đần điện này là vật liệu silicon không định hình (amorphous
Trang 17silicon), Khi có hiệu điện thế cung cấp vào lớp giữa này, vật liệu silicon không định hình biến thành polysilieon, là vật liệu có khả nâng đẫn diện.
ru- antifuse
Hình ỉ 12 Cẩu trúc cầu chì thuận nghịch cùa hãng Acteỉ
Sử dụng cầu chì thuận nghịch thì thông tin sẽ không bị bay hơi khi ngắt nguồn điện (non-volatile), nhưng cũng chỉ có thể ghi được 1 lần
Ưu khuyết điểm:
- Kích thước nhỏ
- Công nghệ chế tạo khác CMOS
2 Cấu trúc tế bào (SRAM)
WL
ƯU khuyết điểm;
Hình ỉ 13 Cấu trúc SRAM 6 transistor CMOS
- ► Q.
VWiTE
Trang 18- Có thể lập trinh nhiều lần và nâng cấp dễ dàng Cập nhật và thay đồi hệ thống
bằng tái cấu hình trực tiếp phần cứng
- Công nghệ chế tạo CMOS
- Dữ liệu bị mất khi ngắt nguồn
- Kích thước lớn hem antifuse
3 Nguyên lí EPROM và EEPROM
Hai loại linh kiện này đâ được trình bày chi tiết trong phần bộ nhớ
EEPROM and Flash Transistor
Hình ỉ ỉ 5 EPROM và EEPROM cùa hâng Xỉỉinx
Môđun logic (Logic M odule)
Môđun logic trong FPGA có thể cấu hình thành các mạch logic tồ hợp, mạch logic tuần tự, hoặc là tổ hợp cả hai Flip-Flop là một bộ phận của phần logic kết hợp (associated logic) và được dùng cho phần logic tuần tự Sơ đồ khối của một môđun logic với LƯT dùng để phát ra các hàm logic tổ hợp dạng SOP LUT giống như PAL
và PLA
Trang 19Hình Ì Ì 7 Ví dụ ỉ về hoạt động cùa LƯT
Với hàm lối ra:
"f HH ^j4 |A () i42i4|j4ộ Hh A 2 Ấ \A q
Trang 20Selection logic Mcrnofy
An
SOP output
Hình Ĩ.Ỉ8 Vỉ dụ ỉ về hoạt động của LƯT
2 Ngôn ngữ mô tả phần cứng VHDL
2.1 Các ưu điểm của VHDL
Ngày này ngành công nghệ chế tạo phần cứng luôn có những đột phá không ngừng
Từ các mạch điện đơn giản đến các mạch số, mạch tích hợp, kiến trúc mạch trở nên ngày một phức tạp hom Nhờ những ưu điểm hom hẳn so với các phương pháp phân tích, mô hình hoá, thiết kế mạch số kiểu truyền thống mà phưomg pháp sử dụng các ngôn ngữ mô phỏng phần cứng (HDL-Hard ware Description Languages ) đang trở thành một phương pháp thiết kế các hệ thống điện tử số phổ biến trên toàn thế giới VHDL ià loại ngôn ngữ chủ yếu được sử dụng để mô phòng phần cứng trong công nghệ CPLD, FPGA, ASIC
Những phương pháp truyền thống như dùng phương pháp tối thiểu hoá hàm Boolean hay dùng sơ đồ các phần tử không còn đáp ứng được các yêu cầu đặt ra khi thiết kế Nhược điểm lớn nhất của các phương pháp này là chúng chỉ mô tả được hệ thống dưới dạng mạng nổi các phần tử với nhau Người thiết kế cần phải đi qua hai bước thực hiện hoàn toàn thù công: đỏ là chuyển từ các yêu cầu về chức năng của hệ thống sang biểu diễn theo dạng hàm Boolean, sau các bước tối thiểu hoá hàm này ta lại phải chuyền từ hàm Boolean sang sơ đồ mạch của hệ thống Cũng tương tự khi phân tích một hệ thống người phân tích cần phải phân tích sơ đổ mạch của hệ thống, rồi chuyển nó thành các hàm Boolean, sau đó mới lập lại các chức nãng hoạt động cùa hệ thống Tất
cà các bước nói trên hoàn toàn phải ihực hiện thù công không có hất kỷ sự trợ giúp nào cùa máy tính Người thiết kế chi có thể sứ dụng máy tính làm cóng cụ hồ trợ trong việc