Là linh kiện bán dẫn có khả năng làm việc như một công tắc bật tắt hoặc dùng để khuếch đại tín hiệu. Transitor là phần tử cơ bản của mọi vi mạch số tích hợp, từ các cổng logic đơn giản AND, OR, NOT. đến các loại phức tạp như các mạch điều khiển ngoại vi, vi điều khiển, vi xử lý
280 trang |
Chia sẻ: haohao89 | Lượt xem: 3015 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Thiết kế logic số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
THIẾT KẾ LOGIC SỐ
2010
Bộ môn Kỹ thuật xung, số, vi xử lý
Khoa VTĐT – HV Kỹ thuật Quân sự
9/1/2010
Thiết kế logic số 2
Mục lục
Mục lục .................................................................................................................. 2
Chương mở đầu..................................................................................................... 8
1.Các khái niệm chung ........................................................................................ 8
1.1 Transitor .................................................................................................... 8
1.2 Vi mạch số tích hợp.................................................................................... 9
1.3. Cổng logic ............................................................................................... 10
1.4 Phần tử nhớ............................................................................................. 12
1.5 Mạch logic tổ hợp .................................................................................... 15
1.6 Mạch logic tuần tự................................................................................... 16
1.7 Các phương pháp thể hiện thiết kế.......................................................... 17
2. Yêu cầu đối với một thiết kế logic ................................................................. 19
3. Các công nghệ thiết kế mạch logic số............................................................ 20
4. Kiến trúc của các IC khả trình ........................................................................ 23
4.1. Kiến trúc PROM, PAL, PLA, GAL............................................................... 24
4.2 Kiến trúc CPLD, FPGA ............................................................................... 28
Câu hỏi ôn tập chương I.................................................................................... 32
Chương II: Ngôn ngữ mô tả phần cứng VHDL ...................................................... 33
1. Giới thiệu về VHDL........................................................................................ 33
2. Cấu trúc của chương trình mô tả bằng VHDL ................................................ 34
2.1. Khai báo thư viện.................................................................................... 35
2.2. Mô tả thực thể........................................................................................ 36
2.2. Mô tả kiến trúc ....................................................................................... 39
2.3 Khai báo cấu hình..................................................................................... 44
3. Chương trình con và gói................................................................................ 47
3.1. Thủ tục.................................................................................................... 47
3.2. Hàm ........................................................................................................ 49
Thiết kế logic số 3
3.3. Gói .......................................................................................................... 50
4. Đối tượng dữ liệu, kiểu dữ liệu ..................................................................... 52
4.1. Đối tượng dữ liệu.................................................................................... 52
4.2. Kiểu dữ liệu............................................................................................. 53
5. Toán tử và biểu thức..................................................................................... 60
5.1 Toán tử logic ............................................................................................ 61
5.2 Các phép toán quan hệ ............................................................................ 62
5.3 Các phép toán dịch .................................................................................. 62
5.4 Các phép toán cộng trừ và hợp................................................................ 64
5.5 Các phép dấu ........................................................................................... 65
5.6 Các phép toán nhân chia, lấy dư .............................................................. 65
5.6 Các phép toán khác.................................................................................. 66
6. Phát biểu tuần tự.......................................................................................... 66
6.1. Phát biểu đợi .......................................................................................... 67
6.2. Phát biểu xác nhận và báo cáo................................................................ 70
6.3. Phát biểu gán biến .................................................................................. 70
6.4. Phát biểu gán tín hiệu ............................................................................. 71
6.5. Lệnh rẽ nhánh và lệnh lặp....................................................................... 73
7. Phát biểu đồng thời ...................................................................................... 77
7.1. Phát biểu khối ......................................................................................... 78
7.2. Phát biểu quá trình ................................................................................. 79
7.3. Phát biểu gán tín hiệu đồng thời............................................................. 82
7.4. Phát biểu generate.................................................................................. 85
7.5. Phát biểu cài đặt module con.................................................................. 87
8. Phân loại mã nguồn VHDL............................................................................. 89
9.Mô tả VHDL của một số khối logic tổ hợp và tuần tự thường gặp. ............... 91
9.1. Khối cộng/trừ.......................................................................................... 91
Thiết kế logic số 4
9.2. Thanh ghi ................................................................................................ 95
9.3. Bộ cộng tích lũy....................................................................................... 96
9.4. Bộ đếm ................................................................................................... 98
9.6. Bộ dịch và thanh ghi dịch. ..................................................................... 101
9.7. Bộ nhớ RAM.......................................................................................... 104
9.8. Bộ nhớ ROM ......................................................................................... 107
9.9. Máy trạng thái hữu hạn ........................................................................ 109
10. Kiểm tra thiết kế bằng VHDL. .................................................................... 111
10.1.1. Kiểm tra nhanh ................................................................................ 112
10.1.1. Kiểm tra tự động nhiều tổ hợp đầu vào ........................................... 114
Các bài tập thực hành VHDL. .......................................................................... 121
1. Bài tập cơ sở. ........................................................................................... 121
2. Bài tập năng cao....................................................................................... 123
Câu hỏi ôn tập lý thuyết.................................................................................. 126
Chương III: Thiết kế vi mạch số trên FPGA ......................................................... 128
1 Tổng quan về kiến trúc FPGA ....................................................................... 128
1.2 Khái niệm FPGA...................................................................................... 128
1.2 Các công nghệ tái cấu trúc FPGA............................................................ 130
1.3 Kiến trúc tổng quan................................................................................ 131
2. Kiến trúc chi tiết Xilinx FPGA Spartan-3E. .................................................... 132
2.1 Configurable Logic Block ........................................................................ 134
2.2 Input/Output Block ................................................................................ 151
2.3 Progammable Interconnects.................................................................. 155
2.4. Các phần tử khác của FPGA................................................................... 157
3. Quy trình thiết kế FPGA .............................................................................. 163
3.1 Mô tả thiết kế ........................................................................................ 164
3.2 Tổng hợp thiết kế................................................................................... 166
Thiết kế logic số 5
3.3. Hiện thực hóa thiết kế .......................................................................... 171
3.4. Cấu hình FPGA ...................................................................................... 177
3.5. Kiểm tra thiêt kế trên FPGA .................................................................. 177
Bài tập thực hành trên FPGA .......................................................................... 180
1 Bài tập cơ sở ............................................................................................. 180
2 Bài tập nâng cao........................................................................................ 180
3. Câu hỏi ôn tập lý thuyết........................................................................... 181
Chương IV: Thiết kế vi mạch số trên thư viện cổng chuẩn ................................. 183
1. Công nghệ chế tạo IC .................................................................................. 183
2. Tổng quan về công nghệ ASIC trên thư viện cell chuẩn............................... 185
2.1 Khái niệm thư viện phần tử logic chuẩn................................................. 185
2.2 Các đặc trưng của cell ............................................................................ 186
2.3 Khái niệm thiết kế ASIC trên thư viện cell chuẩn.................................... 187
2.4 So sánh giữa ASIC và FPGA..................................................................... 188
3. Quy trình thiết kế ASIC trên thư viện cổng chuẩn. ...................................... 190
4. Tổng hợp thiết kế bằng Synopsys Design Compiler..................................... 192
4.4. Thiết lập điều kiện làm việc, mục tiêu thiết kế (Constraint design) ....... 193
4.2 Tổng hợp logic ....................................................................................... 201
4.3. Kiểm tra sau tổng hợp logic .................................................................. 203
5. Thiết kế vật lý (Physical design)................................................................... 203
Bài tập chương 4............................................................................................. 206
Bài tập ......................................................................................................... 206
Nội dung ôn tập lý thuyết ............................................................................ 210
Phục lục I: Thực hành mô phỏng VHDL trên ModelSim...................................... 211
1. Giới thiệu về chương trình mô phỏng Modelsim. ....................................... 211
2. Viết mã nguồn VHDL ................................................................................... 212
3. Biên dịch thiết kế. ....................................................................................... 218
Thiết kế logic số 6
4. Kiểm tra và mô phỏng thiết kế. ................................................................... 220
4.1 Kiểm tra nhanh....................................................................................... 220
4.2 Kiểm tra toàn bộ .................................................................................... 223
5. Tạo file TCL script. ....................................................................................... 227
Phụ lục 2: Hướng dẫn thực hành FPGA bằng Xilin ISE và Kit SPARTAN 3E .......... 229
1. Cấu hình chương trình Modelsim để hỗ trợ các thư viện UNISIM, SIMPRIM.229
2 Tạo Project và mã nguồn VHDL.................................................................... 233
3 Mô phỏng kiểm tra chức năng thiết kế. ....................................................... 240
4 Tổng hợp thiết kế......................................................................................... 241
4.1 Check syntax .......................................................................................... 241
4.1 Synthesis................................................................................................ 242
4.3. Đọc kết quả tổng hợp. .......................................................................... 243
4.4 Kết xuất sơ đồ công nghệ, và sơ đồ RTL (optional)................................ 246
4.5. Kiểm tra thiết kế sau tổng hợp.............................................................. 247
4.6. Gán chân vào ra sau tổng hợp............................................................... 249
5 Hiện thực hóa thiết kế ................................................................................. 251
5.1 Translate ................................................................................................ 251
5.2 Mapping................................................................................................. 252
5.3 Routing .................................................................................................. 253
6. Tạo file cấu hình FPGA ................................................................................ 254
7. Nạp cấu hình vào FPGA. .............................................................................. 254
Phụ lục 3: Thực hành tổng hợp trên thư viện cell chuẩn.................................... 260
1 Bài toán cộng hai số thực............................................................................. 260
2 Thiết lập cài đặt thư viện. ............................................................................ 268
2. Đọc file mô tả RTL. ...................................................................................... 270
3 Tổng hợp thiết kế......................................................................................... 271
4. Đọc kết quả tổng hợp sơ bộ........................................................................ 272
Thiết kế logic số 7
5. Tối ưu hóa thiết kế, xuất kết quả và netlist ................................................. 274
Tài liệu tham khảo ............................................................................................. 279
Thiết kế logic số 8
Chương mở đầu
1.Các khái niệm chung
1.1 Transitor
Là linh kiện bán dẫn có khả năng làm việc như một công tắc bật tắt hoặc
dùng để khuếch đại tín hiệu. Transitor là phần tử cơ bản của mọi vi mạch số
tích hợp, từ các cổng logic đơn giản AND, OR, NOT... đến các loại phức tạp
như các mạch điều khiển ngoại vi, vi điều khiển, vi xử lý…
Transitor được làm từ vật liệu bán dẫn (sermiconductor), là vật liệu vừa
có khả năng dẫn điện vừa có khả năng làm việc như những vật liệu cách điện,
khả năng này thay đổi tùy theo kích thích từ bên ngoài như nhiệt độ, ánh
sáng, trường điện từ, dòng điện… Chất bán dẫn dùng để cấu tạo transitor
thường là Germany (Ge) hoặc Silicon (Si) được kích tạp một lượng nhỏ
Photpho(P) hoặc Boron (B) với mục đích tăng mật độ electron (kiểu N) tự do
hoặc tăng mật độ lỗ trống (kiểu P) tương ứng trong tinh thể bán dẫn. Cấu trúc
nguyên lý của các dạng transitor được trình bày ở hình dưới đây:
Hình 1.1: Cấu trúc transitor lưỡng cực BJTS, đơn cực FETs, diode
Transitor lưỡng cực BJT (Bipolar Junction Transitor) sử dụng nhiều trong
thập kỷ 80s, đặc điểm của BJT là tốc độ chuyển mạch nhanh nhưng
nhược điểm là mức tiêu thụ năng lượng lớn ngay cả trong trạng thái nghỉ
và chiếm nhiều diện tích.
Sau đó BJTs dần được thay thế bằng transitor đơn cực FETs(Field Effect
Transitors) làm việc trên hiệu ứng trường và kênh dẫn chỉ dùng một loại
bán dẫn loại p hoặc n. MOSFETs (Metal-oxide-sermiconductor Field-
Effect-Transitors) là transitor FETs nhưng dùng cực Cổng metal (về sau
Thiết kế logic số 9
lớp metal được thay bằng polysilicon) phủ trên một lớp oxide cách điện
và lớp này phủ trên vật liệu bán dẫn, tùy theo loại vật liệu bán dẫn mà
transitor này có tên gọi là NMOS (kênh dẫn n) và PMOS (kênh dẫn p).
CMOS (Complementary-Symmetry Metal-Oxide Sermiconductor) là
transitor tạo thành từ việc ghép cặp bù PMOS và NMOS, có nhiều ưu
điểm so với các dòng transitor cũ như hiệu điện thế làm việc thấp, độ
chống nhiễu cao, tiêu tốn ít năng lượng và cho phép tích hợp trong IC số
với mật độ cao. CMOS là công nghệ transitor được sử dụng rộng rãi nhất
hiện nay.
1.2 Vi mạch số tích hợp
Còn được gọi là IC – Intergrated Circuits, chip, là cấu trúc mạch điện được
thu nhỏ bằng cách tích hợp chủ yếu từ các transitor với mật độ cao, ngoài ra
còn có thể có các linh kiện điện thụ động khác trên một khối bán dẫn mỏng.
Các vi mạch tích hợp đều có một số lượng tín hiệu đầu vào và đầu ra để
thực hiện một chức năng cụ thể nào đó. Trong khuôn khổ giáo trình này chủ
yếu nghiên cứu về vi IC số, tức là dạng IC chỉ làm việc với các tín hiệu số.
a) b)
Hình 1.2: a) Mô hình Vi mạch số tích hợp.
b) Vi mạch tích hợp thực tế.
Vi mạch tích hợp ra đời từ những năm 1960s và được ứng dụng rộng rãi
trong thực tế, đã và đang tạo ra cuộc cách mạng trong lĩnh vực điện tử. Ví dụ
về vi mạch tích hợp như các IC đa dụng (general purposes IC) họ 7400, 4000,
các dòng vi xử lý 80x86 dùng trong máy vi tính, chíp xử lý dùng cho điện thoại
di động, máy ảnh kỹ thuật số, các vi điều khiển dùng trong các thiết bị dân
dụng, ti vi, máy giặt, lò vi sóng… Các vi mạch này có mật độ tích hợp từ hàng
vài chục đến hàng trăm triệu, và hiện nay đã đến hàng tỷ transitor trong một
miếng bán dẫn có kích cỡ xỉ đồng xu. Mật độ tích hợp được định nghĩa là tổng
Thiết kế logic số 10
số những phần tử tích cực (transitor hoặc cổng logic) chứa trên một đơn vị
diện tích của khối tinh thể bán dẫn. Theo mật độ tích hợp chia ra các loại vi
mạch sau:
- Vi mạch cỡ nhỏ SSI (Small scale integration), có hàng chục transitor
trong một vi mạch.
- Vi mạch cỡ vừa MSI (Medium scale integration), có hàng trăm
transitor trong một vi mạch.
- Vi mạch cỡ lớn LSI (Large scale integration), có hàng ngàn đến hàng
chục ngàn transitor trong một vi mạch.
- Vi mạch cực lớn VLSI (Very large scale integration), có hàng vạn, hàng
triệu, hàng chục triệu transitor và lớn hơn trong một vi mạch, tới
thời điểm hiện nay đã xuất hiện nhưng vi mạch có độ tích hợp đến
hàng tỷ transitor.
- Vi mạch siêu lớn (ULSI – Ultra large scale intergration), vi mạch có độ
tích hợp với mức độ hàng triệu transitor trở lên.
- WSI (Wafer-scale-Intergration) là giải pháp tích hợp nhiều vi mạch
chức năng trên một tấm silicon (wafer) để tăng hiệu suất cũng như
giảm giá thành sản phẩm, ví dụ hệ vi xử lý nhiều nhân được tích hợp
bằng WSI.
- SoC (System-on-a-Chip) Khái niệm chỉ một hệ tính toán, xử lý mà tất
cả các khối chức năng số và cả tương tự được thiết kế để tích hợp
vào trong một chip đơn.
Trong khuôn khổ chương trình này sẽ dành thời lượng chính cho việc
nghiên cứu cơ bản về công nghệ, phương pháp, quá trình thiết kế các vi mạch
cỡ LSI, VLSI.
1.3. Cổng logic
Cổng logic hay logic gate là cấu trúc mạch điện (sơ đồ khối hình ) được
lắp ráp từ các linh kiện điện tử để thực hiện chức năng của các hàm logic cơ
bản y = f(xn, xn-1,..., x1, x0). Trong đó các tín hiệu vào xn-1, xn-2,..., x1, x0 của mạch
tương ứng với các biến logic xn-1, xn-2,..., x1, x0