Tải bản đầy đủ (.pdf) (231 trang)

Các hệ phần mềm thiết kế chuyên dụng, Tự động thiết kế điện tử và lập trình FPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (8.22 MB, 231 trang )

BỘ QUỐC PHÒNG
TRUNG TÂM KHOA HỌC KỸ THUẬT–CÔNG NGHỆ QUÂN SỰ
VŨ LÊ HÀ (CHỦ BIÊN)
NGUYỄN TRƯỜNG SƠN
PHAN HỒNG MINH
NGUYỄN QUANG HƯNG

GIÁO TRÌNH

CÁC HỆ PHẦN MỀM
THIẾT KẾ CHUYÊN DỤNG
(HỆ PHẦN MỀM TỰ ĐỘNG
THIẾT KẾ ĐIỆN TỬ VÀ
LẬP TRÌNH FPGA)

Hà nội, năm 2007


MỤC LỤC
1 Chương 1: TỔNG QUAN VỀ EDA VÀ FPGA ....................................................15
1.1. Giới thiệu tổng quan về lĩnh vực tự động thiết kế điện tử .............................15
1.2. Linh kiện logic khả trình, công nghệ và công cụ phát triển ...........................16
1.3. Các chủng loại linh kiện khả trình..................................................................16
1.3.1. Linh kiện CPLD.......................................................................................16
1.3.2. Linh kiện ASIC........................................................................................17
1.3.3. Linh kiện pSoC ........................................................................................17
1.3.4. Linh kiện FPGA.......................................................................................18
1.4. Các công ty hàng đầu hoạt động trong lĩnh vực EDA....................................18
1.5. Các họ linh kiện CPLD và FPGA của Xilinx.................................................19
1.5.1. CPLD .......................................................................................................19
1.5.1.1. CoolRunner .......................................................................................20


1.5.1.1.1. CoolRunner XPLA3...................................................................20
1.5.1.1.2. CoolRunner-II ............................................................................20
1.5.1.2. XC9500 series ...................................................................................21
1.5.1.2.1. XC9500 ......................................................................................21
1.5.1.2.2. XC9500-XV ...............................................................................22
1.5.1.2.3. XC9500-XL................................................................................23
1.5.2. FPGA của Xilinx .....................................................................................24
1.5.2.1. Spartan ..............................................................................................24
1.5.2.1.1. Spartan-XL .................................................................................24
1.5.2.1.2. Spartan-II....................................................................................25
1.5.2.1.3. Spartan-IIE .................................................................................25
1.5.2.1.4. Spartan3......................................................................................26
1.5.2.1.5. Spartan-3L ..................................................................................26
1.5.2.1.6. Spartan-3 ....................................................................................26
1.5.2.1.7. Spartan-3E ..................................................................................27
1.5.2.1.8. Spartan-3A, -3A DSP, -3AN......................................................27
1.5.2.2. Virtex ................................................................................................29
1.5.2.2.1. Virtex / E / EM ...........................................................................29
1.5.2.2.2. Virtex™-II..................................................................................29
1.5.2.2.3. Virtex-II Pro FPGAs ..................................................................29
1.5.2.2.4. Virtex-II Pro X FPGAs ..............................................................30
1.5.2.2.5. Virtex-4 Multi-Platform FPGA..................................................31
1.6. Tổng kết chương và câu hỏi ôn tập ................................................................35
2 Chương 2: NGÔN NGỮ LẬP TRÌNH MÔ TẢ PHẦN CỨNG ...........................36
2.1. Giới thiệu chung về ngôn ngữ mô tả phần cứng ............................................36
2.2. Ngôn ngữ mô tả phần cứng VHDL ................................................................37

1



2.2.1. Mở đầu .................................................................................................... 37
2.2.2. Cấu trúc chương trình VHDL ................................................................. 38
2.2.2.1. Entity - Thực thể ............................................................................. 39
2.2.2.2. Architecture - Kiến trúc ................................................................... 39
2.2.2.3. Gán tín hiệu đồng thời...................................................................... 40
2.2.2.4. Định thời các sự kiện ....................................................................... 41
2.2.2.5. Phát biểu đồng thời .......................................................................... 41
2.2.2.6. Thiết kế có cấu trúc .......................................................................... 41
2.2.2.7. Hành vi tuần tự................................................................................. 42
2.2.2.8. Các phát biểu tiến trình .................................................................... 43
2.2.2.9. Các phát biểu cấu hình ..................................................................... 43
2.2.3. Tiến trình tuần tự .................................................................................... 44
2.2.3.1. Phát biểu tiến trình .......................................................................... 44
2.2.3.2. Danh sách tín hiệu tác động ............................................................. 44
2.2.3.3. Ví dụ về tiến trình ............................................................................ 44
2.2.4. Gán tín hiệu và gán biến ......................................................................... 46
2.2.5. Các phát biểu tuần tự .............................................................................. 49
2.2.5.1. Phát biểu IF ...................................................................................... 49
2.2.5.2. Phát biểu CASE................................................................................ 51
2.2.5.3. Phát biểu LOOP ............................................................................... 53
2.2.5.4. Phát biểu NEXT ............................................................................... 55
2.2.5.5. Phát biểu EXIT................................................................................. 56
2.2.5.6. Phát biểu ASSERT........................................................................... 58
2.2.5.7. Phát biểu WAIT ............................................................................... 61
2.2.5.7.1. WAIT ON.................................................................................. 63
2.2.5.7.2. WAIT UNTIL............................................................................ 63
2.2.5.7.3. WAIT FOR................................................................................ 63
2.2.5.7.4. Ghép các điều kiện cho WAIT .................................................. 64
2.2.5.7.5. WAIT time_out ......................................................................... 64
2.2.5.8. So sánh danh sách tín hiệu tác động và phát biểu WAIT ................ 66

2.2.6. Gán đồng thời ......................................................................................... 67
2.2.6.1. Tiến trình thụ động........................................................................... 70
2.2.7. Các hàm chuyển đổi................................................................................ 72
2.2.8. Các toán tử so sánh và số học ................................................................. 73
2.3. Tổng kết chương và câu hỏi ôn tập ............................................................... 74
3 Chương 3: THIẾT KẾ FPGA SỬ DỤNG MÔI TRƯỜNG PHẦN MỀM TÍCH
HỢP ISE – INTEGRATED SOFTWAVE ENVIRONMENT ................................ 75
3.1. Chu trình thiết kế FPGA................................................................................ 75
3.2. Phần mềm thiết kế ISE của Xilinx ................................................................ 77
3.2.1. Trình tự thiết kế trên ISE qua các bài tập thiết kế .................................. 81
3.2.2. Những đoạn chương trình mẫu ............................................................... 84
3.2.3. Soạn thảo module Counter...................................................................... 85

2


3.2.4. Mô phỏng chức năng ...............................................................................87
3.2.5. Lập trình mô tả trạng thái ........................................................................91
3.2.6. Thiết kế mức đỉnh của VHDL .................................................................97
3.2.7. Mô phỏng thiết kế..................................................................................103
3.2.8. Thiết kế sơ đồ nguyên lý mức đỉnh .......................................................105
3.2.8.1. Tạo một thiết kế sơ đồ nguyên lý mức đỉnh ...................................106
3.2.8.2. Đánh dấu các cổng vào ra ...............................................................108
3.2.8.3. Mô phỏng thiết kế sơ đồ nguyên lý mức đỉnh ................................110
3.3. Tổng kết chương và câu hỏi ôn tập ..............................................................112
4 Chương 4: MÔ PHỎNG THIẾT KẾ FPGA SỬ DỤNG MODELSIM...............113
4.1. Giới thiệu......................................................................................................113
4.2. Bài 1 – Mô phỏng cơ bản: Tạo thư viện thiết kế..........................................114
4.3. Bài 2 – Các dự án ModelSim .......................................................................123
4.4. Bài 3 – Làm việc với nhiều thư viện ............................................................132

4.5. Bài 4 - Quan sát mô phỏng trong cửa sổ Wave............................................138
4.6. Bài 5 - Quan sát và khởi tạo bộ nhớ .............................................................145
4.7. Bài 6 - Tự động mô phỏng ...........................................................................157
4.8. Tổng kết chương...........................................................................................161
5 Chương 5: THIẾT KẾ HỆ THỐNG DSP TRÊN NỀN FPGA SỬ DỤNG
SYSTEM GENERATOR........................................................................................162
5.1. Giới thiệu......................................................................................................162
5.2. Làm quen với System Generator..................................................................168
5.2.1. Bài 1: Các bước cơ bản để tạo một thiết kế...........................................168
5.2.2. Bài 2: Các toán tử Bit và con trỏ tĩnh ....................................................174
5.2.3. Bài 3: Điều khiển hệ thống ....................................................................180
5.2.4. Bài 4: Các hệ thống đa tốc độ................................................................185
5.2.5. Bài 5: Sử dụng bộ nhớ ...........................................................................188
5.2.6. Bài 6: Thiết kế bộ lọc.............................................................................192
5.3. Tổng kết chương và câu hỏi ôn tập ..............................................................195
6 Chương 6: PHÁT TRIỂN HỆ THỐNG NHÚNG SỬ DỤNG EDK –
EMBEDDED DEVELOPMENT KIT ....................................................................196
6.1. Tổng quan về EDK.......................................................................................196
6.1.1. Các khái niệm cơ bản.............................................................................196
6.1.2. Các công cụ hỗ trợ trong EDK ..............................................................196
6.1.2.1. Thư viện nền XPS (Xilinx Platforme Studio).................................196
6.1.2.2. Công cụ thiết kế phần cứng cơ bản Platgen (Hardware Platform
Generation Tool) ..........................................................................................197

3


6.1.2.3. Trình xây dựng hệ thống cơ bản BSB (Base System Builder) ...... 197
6.1.2.4. Công cụ tạo mẫu mô phỏng Simgen (Simulation Model Generation
Tool) ............................................................................................................ 197

6.1.2.5. Tạo dựng ngoại vi người dùng (Create and Import Peripheral)..... 197
6.1.2.6. Công cụ khởi tạo thư viện Libgen (Library Generation Tool)....... 197
6.1.2.7. Công cụ tạo chuỗi bit Bitinit (Bitstream Initializer) ...................... 197
6.1.2.8. Công cụ phát triển phần mềm GNU (Software Development Tools)
..................................................................................................................... 197
6.1.2.9. Công cụ gỡ rối cho các bộ vi xử lý của Xilinx XMD (Xilinx
Microprocessor Debugger).......................................................................... 197
6.1.3. Giao diện người dùng của XPS ............................................................ 198
6.1.3.1. Cửa sổ giao tiếp người dùng (1)..................................................... 198
6.1.3.2. Cửa sổ thông tin project (2) ........................................................... 198
6.1.3.2.1. Danh mục Project (4) .............................................................. 198
6.1.3.2.2. Danh mục Applications (5) ..................................................... 198
6.1.3.2.3. Danh mục IP Catalog (6)......................................................... 198
6.1.3.3. Cửa sổ ghép nối hệ thống (3) ......................................................... 199
6.1.3.4. Cửa sổ kết nối bus (7) .................................................................... 199
6.1.3.5. Filter (9) ......................................................................................... 199
6.1.4. Xây dựng nền phần cứng (Hardware Platform).................................... 200
6.1.4.1. Nền phần cứng ............................................................................... 200
6.1.4.2. Xây dựng nền phần cứng trong thư viện nền (Platform Studio).... 200
6.1.5. Xây dựng nền phần mềm (Software Platform)..................................... 200
6.1.5.1. Nền phần mềm. .............................................................................. 200
6.1.5.2. Xây dựng nền phần mềm ............................................................... 200
6.1.6. Hỗ trợ phần mềm ứng dụng .................................................................. 201
6.1.7. Các hỗ trợ của EDK và yêu cầu cấu hình cho máy tính ....................... 202
6.2. Quy trình thiết kế một project trên XPS...................................................... 202
6.2.1. Khái quát về quá trình thiết kế một Project .......................................... 202
6.2.1.1. Thiết kế project trên hai môi trường ISE và XPS .......................... 202
6.2.1.2. Thiết kế project chỉ với XPS .......................................................... 203
6.2.2. Xây dựng project trong môi trường XPS.............................................. 204
6.2.2.1. Phát triển phần cứng....................................................................... 204

6.2.2.2. Xây dựng phần mềm ứng dụng ...................................................... 205
6.2.2.3. Xây dựng phần mềm ứng dụng trong XPS .................................... 205
6.2.2.4. Mô phỏng và gỡ rối cho phần mềm ứng dụng ............................... 206
6.2.2.4.1. Mô phỏng - Simulation............................................................ 206
6.2.2.4.2. Gỡ rối - Debug......................................................................... 207
6.2.2.5. Khởi tạo và ghép nối phần mềm, phần cứng ................................. 208
6.2.3. Giới thiệu vê công cụ thiết kế hệ thống nền với BSB .......................... 209
6.2.3.1. Xây dựng một project không sử dụng BSB ................................... 209
6.2.3.2. Xây dựng project với BSB ............................................................. 210
6.3. Một ví dụ cụ thể với MicroBlaze processor trên Spartan-3 board .............. 211

4


6.3.1. Yêu cầu chung .......................................................................................211
6.3.2. Các bước tiến hành ................................................................................211
6.3.2.1. Khởi tạo XPS ..................................................................................211
6.3.2.2. Xậy dựng project với BSB..............................................................212
6.3.2.3. Xây dựng và sử dụng ngoại vi người dùng.....................................217
6.3.2.4. Phát triển thiết kế trên XPS.............................................................220
6.3.2.5. Thiết kế phần mềm..........................................................................222
6.3.2.5.1. Cấu hình BSP ...........................................................................222
6.3.2.5.2. Xây dựng phần mềm ứng dụng ................................................224
6.3.2.5.3. Biên dịch phần mềm ứng dụng ................................................225
6.3.2.5.4. Nạp file biên dịch lên board .....................................................225
6.4.

Tổng kết chương.......................................................................................226

Phụ lục: CÁC BÀI TẬP THỰC HÀNH .................................................................227

Bài 1. Thiết kế bộ đếm .......................................................................................227
Bài 2: Thiết kế đồng hồ báo thức – Alarm Clock ...............................................228
TÀI LIỆU THAM KHẢO.......................................................................................230

5


DANH MỤC HÌNH VẼ
Hình 1.1: Cấu trúc cơ bản của một FPGA ...........................................................................18
Hình 1.2: Các chủng loại linh kiện họ spartan3...................................................................26
Hình 3.1: Chu trình thiết kế FPGA ......................................................................................75
Hình 3.2. Project Navigator - Giao diện chính của phần mềm ISE .....................................78
Hình 3.3: Các cửa sổ file nguồn và quản lý các tín trình thiết kế dự án ..............................78
Hình 3.4: Cửa sổ quản lý tiến trình và các ký hiệu thông báo trạng thái biên dịch .............79
Hình 3.5: Chọn kiểu mô phỏng và công cụ mô phỏng ........................................................79
Hình 3.6: Quan sát chi tiết các tiến trình và công cụ biên dịch ...........................................80
Hình 3.7: Cửa sổ báo cáo kết quả tổng hợp .........................................................................80
Hình 3.8: Tạo file lập trình cho chip....................................................................................81
Hình 3.9: tạo một dự án mới ................................................................................................82
Hình 3.10: Khai báo thuộc tính linh kiện.............................................................................82
Hình 3.11: Chọn kiểu file nguồn..........................................................................................83
Hình 3.12: Khai báo các cổng vào ra ...................................................................................83
Hình 3.13: File nguồn được đưa và trong thiết kế ...............................................................84
Hình 3.14: Cửa sổ soạn thảo mã nguồn HDL (HDL Editor ) ..............................................84
Hình 3.15: Mã chương trình sau khi sửa đổi .......................................................................86
Hình 3.16: Tạo file testbench cho mô phỏng .......................................................................87
Hình 3.17: Cài đặt các tham số thời gian và tín hiệu cho mô phỏng ...................................88
Hình 3.18: Biểu đồ tín hiệu mô phỏng theo thời gian..........................................................88
Hình 3.19: Cài đặt các tín hiệu đầu vào ...............................................................................89
Hình 3.20: Chọn chế độ mô phỏng hành vi (Behavioral Simulation)..................................89

Hình 3.21: Thực hiện mô phỏng Behavioral Simulation .....................................................90
Hình 3.22: Kết quả mô phỏng..............................................................................................90
Hình 3.23: Chụp lại trạng thái dự án....................................................................................91
Hình 3.24: Tạo file nguồn mô tả trạng thái..........................................................................91
Hình 3.25: Thiết kế mô tả trạng thái sử dùng State Machine Wizard..................................92
Hình 3.26: Thiết lập số trạng thái của hệ thống ...................................................................92
Hình 3.27: Cài đặt các bước chuyển trạng thái....................................................................93
Hình 3.28: Sửa trạng thái .....................................................................................................93
Hình 3.29: Xác định giá trị đầu ra........................................................................................94
Hình 3.30: Lưu đồ mô tả trạng thái hệ thống.......................................................................94
Hình 3.31: Sửa đổi điều kiện trạng thái ...............................................................................95
Hình 3.32: Sửa đổi vector ....................................................................................................95
Hình 3.33: Thiết kế mô tả trạng thái hoàn chỉnh .................................................................96
Hình 3.34: Kết quả biên dịch từ lưu đồ trạng thái sang dạng mã HDL ...............................96
Hình 3.35: Mã HDL được biên dịch từ lư đồ trạng thái ......................................................97
Hình 3.36: File mô tả trạng thái (*.dia) được thêm vào thiết kế..........................................97
Hình 3.37: Lấy snapshot của dự án......................................................................................98
Hình 3.38: Tạo file mức đỉnh...............................................................................................98
Hình 3.39: Định nghĩa các tín hiệu vào ra của module mức đỉnh........................................99
Hình 3.40: Mã nguồn khai báo entity của module mức đỉnh - top ......................................99
Hình 3.41: Sử dụng Instantiation Template để tạo component Counter............................100
Hình 3.42: Đặt component Counter vào trong entity top...................................................100
Hình 3.43: Kết nối counter và state machine vào entity top ..............................................101
Hình 3.44: Kết nối tín hiệu giữa các component ...............................................................102

6


Hình 3.45: Thay đổi STAT_MAC Behavior và SHELL_STAT_MAC BEHAVIOR ......103
Hình 3.46: Các file nguồn thành phần đã nằm trong file nguồn mức đỉnh........................103

Hình 3.47: Tạo file mô phỏng thiết kế...............................................................................104
Hình 3.48: Thiết lập các tham số mô phỏng ......................................................................104
Hình 3.49: Thiết lập ESET ................................................................................................105
Hình 3.50: Kết quả mô phỏng............................................................................................105
Hình 3.51: Các file nguồn thành phần khi chưa có sơ đồ nguyên lý mức đỉnh.................106
Hình 3.52: Tạo sơ đồ nguyên lý mức đỉnh ........................................................................106
Hình 3.53: Tạo các symbol cho các file nguồn HDL thành phần......................................107
Hình 3.54: Các symbol của các file nguồn HDL thành phần ...........................................107
Hình 3.55: Kết nối các component ....................................................................................108
Hình 3.56: Đặt tên các tín hiệu ..........................................................................................108
Hình 3.57: Sơ đồ nguyên lý hoàn thiện .............................................................................109
Hình 3.58: Mã nguồn HDL được tạo tự động từ sơ đồ nguyên lý mức đỉnh.....................109
Hình 3.59: Tạo file mô phỏng sơ đồ nguyên lý mức đỉnh .................................................110
Hình 3.60: Khởi tạo các tham số mô phỏng ......................................................................110
Hình 3.61: Cài đặt tín hiệu đầu vào ...................................................................................111
Hình 3.62: Chạy mô phỏng................................................................................................111
Hình 3.63: Kết quả mô phỏng............................................................................................111
Hình 4.1: Hộp thoại Welcome to ModelSim .....................................................................115
Hình 4.2: Hộp thoại tạo thư viện mới ................................................................................116
Hình 4.3: Thư viện làm việc mới tạo.................................................................................116
Hình 4.4: Hộp thoại biên dịch các file nguồn HDL...........................................................117
Hình 4.5: Các moduleVerilog được biên dịch vào thư viện work.....................................118
Hình 4.6: Tải thiết kế vào bộ mô phỏng. ...........................................................................118
Hình 4.7: Tải thiết kế với hộp thoại Start Simulation........................................................119
Hình 4.8: Ô tab biểu diễn một thiết kế Verilog. ................................................................119
Hình 4.9: Đặt các tín hiệu vào cửa sổ Wave......................................................................120
Hình 4.10: Các dạng sóng được vẽ trong cửa sổ Wave.....................................................120
Hình 4.11: Một điểm dừng ở cửa sổ Source ......................................................................121
Hình 4.12: Hộp thoại Restart. ............................................................................................122
Hình 4.13: Để con trỏ chuột lên một biến trong cửa sổ Source ........................................122

Hình 4.14: Các giá trị biểu hiện trong cửa sổ Objects .......................................................123
Hình 4.15: Hộp thoại tạo một dự án ..................................................................................123
Hình 4.16: Hộp thoại thêm các file vào dự án ..................................................................124
Hình 4.17: Thêm các file vào dự án...................................................................................125
Hình 4.18: Các file mới được đặt hiển thị một kí hiệu’?’ cho ô cửa sổ trạng thái ............125
Hình 4.19: Thư viện work chứa các file nguồn của dự án.................................................126
Hình 4.20: Quan sát các module thành phần trong các file ...............................................127
Hình 4.21: Thêm thư mục mới ..........................................................................................128
Hình 4.22: Thư mục mới xuất hiện trong vùng làm việc...................................................128
Hình 4.23: Đạt tên thư mục ...............................................................................................128
Hình 4.24: Tên thư mục đã được thêm mới.......................................................................129
Hình 4.25: Hộp thoại Simulation Configuration ..............................................................130
Hình 4.26: Tạo cấu hình mô phỏng mới ............................................................................131
Hình 4.27: Biểu diễn tuỳ chọn cho Simulation Configuration ..........................................131
Hình 4.28: Các dẫn hướng biên dịch dòng lệnh ................................................................132

7


Hình 4.29: Biên dịch counter vào thư viện tài nguyên. ....................................................133
Hình 4.30: counter đã được đưa vào thư viện tài nguyên ..................................................134
Hình 4.31: Lỗi mô phỏng Verilog được thông báo trên cửa sổ Main................................135
Hình 4.32: Cảnh báo mô phỏng VHDL trên cửa sổ Main .................................................135
Hình 4.33: Ánh xạ tới thư viện parts_lib ...........................................................................136
Hình 4.34: Thiết lập một thư viện mới ..............................................................................137
Hình 4.35: Mã nguồn của testbench...................................................................................138
Hình 4.36: Cửa sổ wave.....................................................................................................139
Hình 4.37: Phóng to ...........................................................................................................140
Hình 4.38: Thu nhỏ ............................................................................................................141
Hình 4.39: Sử dụng 1 con trỏ.............................................................................................142

Hình 4.40: Đổi tên con trỏ .................................................................................................143
Hình 4.41: Đo khoảng thời gian giữa hai con trỏ ..............................................................143
Hình 4.42: Khóa con trỏ....................................................................................................144
Hình 4.43: quan sát bộ nhớ ................................................................................................146
Hình 4.44: Nội dung bộ nhớ ..............................................................................................146
Hình 4.45: Bộ nhớ khi mô phỏng ......................................................................................147
Hình 4.46: Thay đổi cơ số giá trị địa chỉ............................................................................147
Hình 4.47: Nội dung bộ nhớ ..............................................................................................148
Hình 4.48: Hộp thoại GOTO .............................................................................................148
Hình 4.49: Thay đổi địa chỉ trực tiếp .................................................................................149
Hình 4.50: Tìm giá trị dữ liệu ............................................................................................149
Hình 4.51: Hộp thoại lưu bộ nhớ .......................................................................................150
Hình 4.52: Hộp thoại nạp bộ nhớ.......................................................................................151
Hình 4.53: Khởi tạo bộ nhớ từ file và gán giá trị...............................................................152
Hình 4.54: nạp file dữ liệu bộ nhớ .....................................................................................153
Hình 4.55: Viết đè dữ liệu bộ nhớ......................................................................................153
Hình 4.56: Nội dung bộ nhớ gốc........................................................................................154
Hình 4.57: Thay đổi nội dung bộ nhớ trong một giải địa chỉ ............................................154
Hình 4.58: Nội dung bộ nhớ bất kỳ ...................................................................................155
Hình 4.59: Thay đổi nội dung bộ nhớ ................................................................................156
Hình 4.60: Nhập giá trị mới ...............................................................................................156
Hình 4.61: Thay đổi nội dung tại một địa chỉ xác định .....................................................156
Hình 4.62: Mở tập dữ liệu..................................................................................................159
Hình 5.1: Thiết kế trên cơ sở mô hình sử dụng System Generator....................................163
Hình 5.2: Các khối chức năng trong System Genrator ......................................................163
Hình 5.3: Khối chức năng biên dịch bộ lọc số...................................................................164
Hình 5.4: Kết hợp với MatLAB .........................................................................................165
Hình 5.5: Đánh giá tài nguyên hệ thống ............................................................................166
Hình 5.6: Đồng mô phỏng phần cứng và phần mềm .........................................................166
Hình 5.7: Tích hợp hệ thống ..............................................................................................167

Hình 5.8: Chu trình thiết kế sử dụng System Generator....................................................169
Hình 5.9: Tập công cụ của SysGen....................................................................................169
Hình 5.10: Xác định đường biên cho các khối chức năng FPGA......................................170
Hình 5.11: Khối Token trong System Generator ...............................................................171
Hình 5.12: Cấu trúc của một thiết kế DSP sử dụng System Generator .............................171
Hình 5.13: Tạo mã HDL ....................................................................................................172

8


Hình 5.14: Thiết kế trên cơ sở mô hình hóa ......................................................................173
Hình 5.15: Thiết lập các vector đầu vào sử dụng MATLAB.............................................173
Hình 5.16: biến đổi kiểu double từ Simulink sang dạng số dấu phảy tĩnh ........................175
Hình 5.17: Lượng tử hóa con trỏ tĩnh ................................................................................176
Hình 5.18: Các mode tràn (Overflow) và làm tròn (Round) .............................................177
Hình 5.19: Khối Reinterpret ..............................................................................................178
Hình 5.20: Khối Convert (biến đổi)................................................................................... 178
Hình 5.21: Khối Concat (ghép nối) ...................................................................................178
Hình 5.22: Khối Slice ........................................................................................................179
Hình 5.23: Khối BitBasher ................................................................................................179
Hình 5.24: Điều khiển một hệ thống DSP .........................................................................181
Hình 5.25: Khối MCode ....................................................................................................181
Hình 5.26: Máy trạng thái..................................................................................................182
Hình 5.27: Khối Expression...............................................................................................183
Hình 5.28: Các cổng Reset và Enable................................................................................184
Hình 5.29: Bursty Data ......................................................................................................184
Hình 5.30: Các hệ thống đa tốc độ.....................................................................................185
Hình 5.31: Up Sampling ....................................................................................................186
Hình 5.32: Down Sampling ...............................................................................................186
Hình 5.33: Quan sát sự thay đổi tốc độ trong Simulink ....................................................187

Hình 5.34: Các công cụ gỡ rối ...........................................................................................187
Hình 5.35: Các qui tắc về chu kỳ lấy mẫu .........................................................................188
Hình 5.36: Block và Distributed RAM (RAM khối và RAM phân tán) ...........................189
Hình 5.37: Khởi tạo các bộ RAM và ROM .......................................................................189
Hình 5.38: Các khối RAM trong System Generator..........................................................190
Hình 5.39: Các khối ROM trong System Generator..........................................................191
Hình 5.40: Khối giữ chậm .................................................................................................191
Hình 5.41: Cấu trúc khối SRL16E bên trong khối giữ chậm ............................................191
Hình 5.42: Khối FIFO........................................................................................................192
Hình 5.43: Khối DSP48 .....................................................................................................193
Hình 5.44: Khối biên dịch bộ lọc số ..................................................................................193
Hình 5.45: Thiết kế bộ lọc số sử dụng FDA Tools............................................................194
Hình 5.46: Sử dụng kết quả tính toán hệ số bộ lọc ............................................................195
Hình 6.1: Giao diện XPS ...................................................................................................199
Hình 6.2: Trình tự thiết kế một project. .............................................................................201
Hình 6.3: Các luồng thiết kế khác nhau trên ISE và XPS. ................................................ 204
Hình 6.4: Tạo mới một project. .........................................................................................206
Hình 6.5: Tiến hành các bước mô phỏng cho thiết kế. ......................................................207
Hình 6.6: Tạo một project trắng không sử dụng BSB. ......................................................209
Hình 6.7: Lựa chọn họ thiết bị FPGA................................................................................210
Hình 6.8: Tạo mới một project với BSB............................................................................212
Hình 6.9: Lựa chọn board phát triển..................................................................................212
Hình 6.10: Thiết lập các tham số cho MicroBlaze. ...........................................................213
Hình 6.11: Cấu hình các giao tiếp vào ra...........................................................................214
Hình 6.12: Cấu hình các giao tiếp vào ra...........................................................................215
Hình 6.13: Thiết lập phần mềm. ........................................................................................ 216
Hình 6.14: Cấu hình phần mềm ứng dụng kiểm tra bộ nhớ. .............................................216

9



Hình 6.15: Tóm tắt hệ thống. .............................................................................................217
Hình 6.16: Đặt tên và phiên bản cho ngoại vi tạo dựng.....................................................218
Hình 6.17: Lựa chọn các dịch vụ IPIF ...............................................................................219
Hình 6.18: Cấu hình các thanh ghi cho ngoại vi................................................................219
Hình 6.19: Các file được tạo ra khi xây dựng một thiết bị ngoại vi người dùng. ..............220
Hình 6.20: Bổ sung ngoại vi mới tạo dựng vào thiết kế. ...................................................221
Hình 6.21: Kết nối Bus cho ngoại vi mới. .........................................................................221
Hình 6.22: Kết nối các cổng vào ra cho ngoại vi...............................................................222
Hình 6.23: Cấu hình các tham số cho nền phần mềm........................................................223
Hình 6.24: Lựa chọn hệ điều hành và thư viện cho các ngoại vi.......................................223
Hình 6.25: Lựa chọn driver và phiên bản cho các ngoại vi. ..............................................224
Hình 6.26: Phần mềm ứng dụng cho kiểm tra bộ nhớ. ......................................................224
Hình 6.27: Kết quả biên dịch project. ................................................................................225
Hình 6.28: Kết quả chạy project đã xây dựng....................................................................225

10


DANH MỤC BẢNG BIỂU
Bảng 1-1: Các sản phẩm của dòng CoolRunner XPLA3.....................................................20
Bảng 1-2: Các sản phẩm dòng CoolRunner-II....................................................................21
Bảng 1-3: Các sản phẩm dòng XC9500...............................................................................22
Bảng 1-4: Các sản phẩm dòng XC9500-XV .......................................................................23
Bảng 1-5: Các sản phẩm dòng XC9500XL .........................................................................23
Bảng 1-6: Danh mục linh kiện Spartan 3………………………………………………… 28
Bảng 1-7: Danh mục linh kiện Virtex4...………………………………………………… 33
Bảng 1-8: Danh mục linh kiện Virtex5...………………………………………………… 34

11



BẢNG DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT
APU
ASIC
ASMBL
Bitinit
BSB
BSP
CPLD
CLB
DCM
DLL
DSP
EDA
EDK
ELF
FIFO
FIR
FPGA
FPU
FSM
GPIO
GUI
HDL
IOB
IP
ISE
JTAG
Libgen

LUT
MAC
MHS
MIPS
MSS
OPB
PLL
Platgen
PSOC
Simgen
SOC
UCF
UART
VHDL
XMD
XPS

Auxiliary Processor Unit
Application Specific Integrated Circuit
Advanced Silicon Modular Block
Bitstream Initializer
Base System Builder
Board Support Package
Complex Programable Logic Devices
Configurable Logic Block
Digital Clock Manager
Delay Locked Loop
Digital Signal Processing
Electronic Design Automation
Embedded Development Kit

Executable Linked Format
First In First Out
Finite Impulse Response
Field Programable Gate Arrays
floating point unit
Finite State Machine
General Purpose Input Output
Graphic User Interface
Hardwave Description Language
Input Output Block
Intellectual Properties
Integrated Software Environment
Joint Test Action Group
Library Generation Tool
Look Up Table
Media Access Control
Microprocessor Hardware Specification
Mega Instruction Per Second
Microprocessor Software Specification
On-Chip Peripheral Bus
Phase Locked Loop
Hardware Platform Generation Tool
Programable System On Chip
Simulation Model Generation Tool
System On Chip
User Constraints File
Universal Asynchronous Receiver-Transmitter
Very High Speed Hardwave Description Language
Xilinx Microprocessor Debugger
Xilinx Platform Studio


12


PHẦN MỞ ĐẦU
Giáo trình “Các hệ phần mềm thiết kế chuyên dụng – Hệ phần mềm tự
động thiết kế điện tử và lập trình FPGA” đề cập tới các lĩnh vực cơ bản bao gồm
các phương pháp thiết kế và kiểm tra các hệ thống điện tử trên cơ sở đồ hoạ
(graphic-based), các ngôn ngữ miêu tả phần cứng (hardware description languages HDLs), các mạch tích hợp chuyên dụng (application specific integrated circuits ASICs), các linh kiện logic khả trình (complex programable logic devices - CPLDs)
và các mảng cổng khả trình trường (field programable gate arrays - FPGAs).
Giáo trình đi sâu vào giới thiệu các công cụ thiết kế FPGA của hãng Xilinx,
một hãng hàng đầu trên thế giới trong lĩnh vực chế tạo các chủng loại linh kiện
FPGA cũng như cung cấp các công cụ phần mềm thiết kế với đầy đủ các chức năng
cần thiết cho một chu trình thiết kế FPGA từ cơ bản đến nâng cao.
Nội dung giáo trình được phân chia thành 6 chương:
Chương 1: Giới thiệu tổng quan về lĩnh vực tự động thiết kế điện tử
(Electronic Design Automation - EDA), bao gồm các công nghệ chế tạo tiên tiến.
Các hệ công cụ phần mềm với các chức năng khác nhau được sử dụng trong các
lĩnh vực thiết kế, mô phỏng và chế tạo các hệ thống điện tử. Giới thiệu chi tiết về
công nghệ FPGA và các chủng loại linh kiện FPGA của Xilinx.
Chương 2: Giới thiệu về ngôn ngữ lập trình mô tả phần cứng. Mặc dù có
nhiều phương pháp thiết kế hệ thống khác nhau như thiết kế trên cơ sở đồ họa, mô
tả máy trạng thái,…các ngôn ngữ mô tả phần cứng là một công cụ rất quan trọng
cho người thiết kế để xây dựng nên các hệ thống điện tử từ đơn giản đến phức tạp.
Ngôn ngữ VHDL được giới thiệu chi tiết.
Hai chương tiếp theo, giáo trình giới thiệu các công cụ thiết kế FPGA cơ bản,
bao gồm:
Chương 3: Giới thiệu môi trường phần mềm tích hợp ISE của Xilinx.
Nội dung cơ bản đi sâu vào giới thiệu hệ công cụ ISE – Integrated Sofware
Environment – Môi trường phần mềm tích hợp. Đây là môi trường tích hợp nhiều

phần mềm công cụ khác nhau phục vụ cho chu trình thiết kế FPGA cơ bản, từ bước
xác định yêu cầu hệ thống đến bước nạp chương trình cho phần cứng.
Chương 4: Giới thiệu chương trình mô phỏng ModelSim của MentorGraphics.
Đây là một chương trình mô phỏng được sử dụng nhiều cho các thiết kế FPGA.
Hai chương cuối giới thiệu các nội dung nâng cao, bao gồm:
Chương 5: Giới thiệu phần mềm thiết kế System Generator, sử dụng để thiết
kế các hệ thống DSP nâng cao trong môi trường MatLAB.
Chương 6: Giới thiệu phần mềm thiết kế nâng cao của Xilinx trong lĩnh vực
thiết kế hệ thống nhúng (EDK – Embedded Development Kit).
Nội dung giáo trình phù hợp với thời lượng học 90 tiết. Đối tượng học viên
phù hợp là các kỹ sư chuyên ngành điện, điện tử, công nghệ thông tin, có kiến thức
cơ sở về kỹ thuật số và các ngôn ngữ lập trình thông dụng như C/C++, Assemble,
VisualBasic.

13


Trong tài liệu, đối với nhiều thuật ngữ chuyên ngành mới chưa có trong các từ
điển chuyên ngành, bên cạnh việc dịch sang tiếng Việt, các tác giả giữ nguyên nghĩa
tiếng Anh để người đọc tiện tham khảo trong các tài liệu khác.

14


1 Chương 1: TỔNG QUAN VỀ EDA VÀ FPGA
1.1. Giới thiệu tổng quan về lĩnh vực tự động thiết kế điện tử
Trong những năm gần đây, sự phát triển rất nhanh về độ phức tạp của các hệ
thống điện tử đòi hỏi sự phát triển các phương pháp mới trong lĩnh vực thiết kế, mô
phỏng và sản xuất linh kiện cũng như các thiết bị điện tử, đặc biệt trong lĩnh vực số
(digital). Cùng với sự phát triển mạnh mẽ về công nghệ chế tạo mạch tích hợp, các

công cụ phần mềm trong lĩnh vực tự động thiết kế điện tử (EDA – Electronic
Design Automation) cũng phát triển không ngừng, cung cấp cho người thiết kế
những phương tiện ngày càng mạnh mẽ hơn trong lĩnh vực thiết kế điện tử. Đi tiên
phong trong lĩnh vực này có thể kể đến các công ty hàng đầu như Mentor Graphics,
Xilinx, Altera, Cadence,…
Với sự hỗ trợ của các công cụ thiết kế mới, các phương thức thiết kế cũng có
những thay đổi mang tính cách mạng và các vấn đề mới trong chu trình thiết kế
cũng nảy sinh. Bởi vì độ phức tạp và dung lượng của linh kiện hay thiết bị điện tử
ngày một nâng cao, các công cụ thiết kế mới cần phải đáp ứng được những yêu cầu
thiết kế như:
Hỗ trợ tốt cả thiết kế hệ thống và phân vùng thiết kế;
Hỗ trợ các phương thức thiết kế từ trên xuống (top-down) hoặc từ dưới
lên (bottom-up);
Cung cấp khả năng tái sử dụng (reused), phát triển thiết kế và vấn đề tích
hợp mạch ảo;
Hỗ trợ được nhiều mức độ trừu tượng khác nhau của thiết kế, từ mức
hành vi tới mức vật lý;
Cung cấp các thủ tục thiết kế tự động.
Hầu hết các công cụ EDA ngày nay được cung cấp để có thể làm việc tốt trong
các nền hệ điều hành thông dụng như MS Windows, UNIX, các trạm làm việc HP
và Sun hay Linux. Về chức năng, các công cụ thiết kế EDA có thể được phân chia
thành các loại như sau:
Thiết kế hệ thống số (Digital System Design);
Mô phỏng hệ thống số (Digital System Simulation);
Tổng hợp trên cơ sở ngôn ngữ mô tả phần cứng (HDLs);
Thiết kế kiểm tra (Design For Test);
Thiết kế mạch tương tự (Analog System Design);
Mô phỏng mạch tương tự (Analog System Simulation);
Thiết kế tín hiệu trộn (Mixed-signal Design);
Kiểm tra chức năng (Functional Verification);

Thiết kế hệ thống nhúng (Embedded System Design);
Đồng mô phỏng phần cứng/phần mềm (Hardware/Softwate Cosimulation);
Thiết kế hệ thống trên một chíp đơn (System On-chip);
Thiết kế mạch tích hợp (IC Design);
Thiết kế mạch tích hợp chuyên dụng (ASIC);

15


Thiết kế linh kiện mảng cổng khả trình (FPGA).
Sự tích hợp các công cụ cũng là một vấn đề rất quan trọng. Bởi lẽ không một
nhà sản xuất hay một công ty nào có thể cung cấp hoàn toàn tất cả các công cụ thiết
kế cũng như công nghệ chế tạo phần cứng trong mọi lĩnh vực thiết kế, việc thống
nhất các khuôn dạng tiêu chuẩn thiết kế để cho các công cụ thiết kế khác nhau có
thể được tích hợp trong một hệ thống duy nhất trở nên rất cấp thiết.
1.2. Linh kiện logic khả trình, công nghệ và công cụ phát triển
Trong lĩnh vực EDA nói chung, một mảng công nghệ đóng một vai trò rất
quan trọng và hiện nay đang là một trong những xu hướng phát triển chính, đó là
lĩnh vực công nghệ liên quan đến các linh kiện logic khả trình.
Một linh kiện logic khả trình (Programable Logic Device - PLD) là một linh
kiện điện tử có thể được sử dụng để xây dựng các mạch điện tử bên trong. Không
giống như các linh kiện truyền thống có sẵn các chức năng cố định tại thời điểm
xuất xưởng (ví dụ như các linh kiện số họ 74xx, 40xx,…), các PLD có các chức
năng ‘chưa được xác định’ sau khi sản xuất tại nhà máy, hay nói một cách khác,
chúng là một linh kiện ‘trắng’. Người thiết kế sau đó sẽ sử dụng các công cụ phần
mềm thiết kế phù hợp để tạo cho linh kiện PLD một chức năng xác định. Vì vậy,
trước khi PLD có thể được sử dụng trong hệ thống điện tử, chúng cần được lập
trình.
Những PLD đầu tiên xuất hiện vào khoảng thập niên 1970, được phát triển bởi
một số công ty của Mỹ như Texas Instrument, National Semiconductor. Từ đó đến

nay, với sự phát triển của khoa học công nghệ, PLD ngày càng đóng một vai trò
quan trọng trong các hệ thống điện tử. Các xu hướng phát triển cả về công nghệ chế
tạo và phương thức thiết kế liên quan đến PLD ngày càng được mở rộng và khả
năng ứng dụng của nó ngày càng được nâng cao.
Phân loại về công nghệ chế tạo, các PLD có thể được phân chia thành những
chủng loại chính: PAL, pSoC, CPLD, ASIC, FPGA. Các công cụ thiết kế và ngôn
ngữ lập trình cũng được phát triển theo để trợ giúp người thiết kế một cách tối đa
trong vấn đề lập trình và thiết kế hệ thống.
1.3. Các chủng loại linh kiện khả trình
1.3.1. Linh kiện CPLD
CPLD là viết tắt của thuật ngữ “complex programmable logic device” – linh
kiện logic khả trình phức tạp. Xét về mặt tính năng, nó có khá nhiều điểm tương tự
với các họ linh kiện logic có thể lập trình khác như FPGA, PAL hay ASIC. CPLD
là tiền thân của FPGA. Ngày nay, ranh giới phân biệt giữa CPLD và FPGA ngày
một nhỏ đi. Một vài điểm chính có thể dùng để so sánh (một cách tương đối) giữa
CPLD và các chủng loại linh kiện khác là:
Các đặc điểm giống với FPGA:

Cung cấp một số lượng lớn các cổng. Thông thường số lượng cổng
trong một CPLD nhỏ hơn trong một FPGA.

16


Hỗ trợ các tính năng nâng cao cho lập trình các mạch phức tạp. Ví dụ
như các thanh ghi số học, các bộ nhân, bộ nhớ,…
Một điểm khác biệt nữa giữa một CPLD lớn và một FPGA nhỏ là CPLD có
chứa bộ nhớ không mất thông tin khi ngắn nguồn điện, trong khi FPGA cần phải kết
hợp với một bộ nhớ ROM bên ngoài cho việc tải dữ liệu cấu hình lúc khởi động.



1.3.2. Linh kiện ASIC
Một “application-specific integrated circuit” (ASIC) là một mạch tích hợp
được thiết kế đặt hàng cho một chức năng chuyên dụng nào đó, chứ không phải
được sản xuất ra cho mục đích sử dụng đại trà. Ví dụ, một mạch tích hợp được thiết
kế chuyên chỉ để sử dụng trong mạch điện tử của điện thoại di động. Ngược lại, các
mạch tích hợp họ 74xx hay 40xx là các linh kiện logic được xây dựng sẵn, và có thể
được kết nối với nhau để tạo nên rất nhiều các mạch điện ứng dụng khác nhau.
Mặc dù ASIC có thể là linh kiện tương tự hoặc số, nhưng người ta thường sử
dụng ASIC để chỉ các mạch số. Nhờ sự phát triển của công nghệ chế tạo, hiện nay
một ASIC có thể tích hợp từ 5000 đến 100 triệu cổng logic. Các ASIC hiện đại có
thể tích hợp các những vi xử lý 32-bit. Các loại ASIC được coi như những SoC. Các
nhà thiết kế ASIC dùng HDL (hardware description language) như Verilog hay
VHDL để miêu tả các chức năng của ASIC.
1.3.3. Linh kiện pSoC
“System-on-a-chip” hoặc “system on chip” (SoC or SOC) mô tả việc tích hợp
toàn bộ các thành phần cần thiết của một máy tính hoặc một hệ thống điện tử vào
trong một mạch tích hợp đơn nhất. Nó có thể chứa đựng các thành phần là số, tương
tự, các tín hiệu trộn,… trong cùng một linh kiện.
PSoC - (Programmable System-on-Chip) là một SoC có thể lập trình, được
phát triển bởi công ty Cypress Semiconductor, và là một họ linh kiện tích hợp các
mảng tín hiệu trộn, bao gồm một bộ vi điều khiển và các thành phần ngoại vi số và
tương tự khả trình. Bộ vi điều khiển bên trong chip có tên là M8C. Đây là một vi xử
lý 8 bít được xây dựng theo kiến trúc Harvard. PSoC có 3 vùng nhớ: SRAM cho dữ
liệu, bộ nhớ Flash cho các lệnh và dữ liệu cố định, và các thanh ghi I/O cho các thao
tác điều khiển và truy nhập vào các hàm chức năng và các khối logic có thể cấu
hình. Linh kiện được thiết kế sử dụng công nghệ SONOS.
PSoC giống với một ASIC ở mức độ tích hợp và độ mềm dẻo của nó: các khối
có thể được gán một dải rộng các chức năng và gắn kết các khối trong chíp. Điểm
khác biệt là không có một tiến trình sản xuất đặc biệt nào để tạo ra một linh kiện

được cấu hình tùy biến theo nhu cầu sử dụng, mà nó chỉ sử dụng các đoạn mã được
thiết kế bởi phần mềm Cypress' PSoC Designer IDE.
PSOC giống FPGA ở chỗ nó được cấu hình tại thời điểm bật nguồn, thông qua
việc nạp chương trình từ bộ nhớ flash bên trong. Không giống như FPGA, vùng tín
hiệu số bên trong PSoC không được lập trình bằng các ngôn ngữ HDLs, thay vào
đó, nó được cấu hình thông qua việc cài đặt các thanh ghi.
PSoC giống với một bộ vi điều khiển nhất, xét về công năng sử dụng.

17


1.3.4. Linh kiện FPGA
FPGA là một vi mạch tích hợp, có thể lập trình được để thực hiện các chức
năng khác nhau. FPGA được xây dựng nên từ hai phần là PLD (Programmable
Logic Device) và ASIC (Application Specific Integrated Circuit), ngoài ra nó còn
có một đặc điểm nổi bật là có thể tái lập trình. Về cấu trúc FPGA bao gồm các CLB
(Configurable Logic Block) và IOB (Input Output Block) liên kết với nhau theo
dạng ma trận như hình dưới đây.

Hình 1.1: Cấu trúc cơ bản của một FPGA
Các CLB là các cổng logic khả trình. Nó bao gồm một số các flip-flop và một
mạch logic tổ hợp. Các CLB được liên kết với nhau theo cách thức mà người sử
dụng lập trình cho nó. Các IOB là các khối vào/ra được lập trình như cổng vào hoặc
ra hoặc theo cả hai hướng.
1.4. Các công ty hàng đầu hoạt động trong lĩnh vực EDA
Các công ty sản xuất linh kiện FPGA hàng đầu:
• Xilinx: được biết đến như công ty dẫn đầu trong công nghệ chế tạo
linh kiện FPGA. Các dòng linh kiện của Xilinx bao gồm Virtex (-2, -2Pro, 4, -5), Spartan (-2, -3), CoolRunner, XC9500. Xilinx cũng cung cấp một loạt
các công cụ lập trình có tính năng mạnh cho các thiết kế sử dụng linh kiện
của hãng như ISE, EDK, System Generator, ChipScope, PlanAhead,…

• Altera: được đánh giá như đối thủ của Xilinx trong lĩnh vực FPGA.
Các chủng loại linh kiện của Altera bao gồm các FPGA Cyclone (-III, -II),
Stratix (-III, -II), ASIC HardCopy (-III, -II), CPLD Max.
Ngoài ra, một số công ty khác với qui mô nhỏ hơn như:
• Lattice Semiconductor
• QuickLogic
• Cypress Semiconductor
• Atmel
• Achronix Semiconductor

18


MathStar, Inc.
Bên cạnh các hãng sản xuất linh kiện phần cứng, cũng có các hãng chuyên
cung cấp các công cụ phần mềm hỗ trợ thiết kế:
Accelchip: Cung cấp công cụ thiết kế FPGA ở mức cao trên nền Matlab và
Simulink.
Aldec: cung cấp các công cụ thiết kế và kiểm tra FPGA.
Altium: cung cấp các công cụ tổng hợp và mô phỏng
Annapolis Micro Systems: cung cấp các lõi IP (IP core) trong lĩnh vực xử lý
số tín hiệu.
Celoxica: cung cấp các công cụ SystemC và Handel-C cho bài toán thiết kế và
kiểm tra mức cao.
Gedae: cung cấp các công cụ lập trình cho DSP và FPGA mức cao.
Impulse: cung cấp bộ biên dịch Impulse C compiler và các công cụ tối ưu hóa
thiết kế và kiểm tra thiết kế.
LogicSim: cung cấp bộ mô phỏng và gỡ rối Verilog miễn phí, hữu ích cho bài
toán kiển tra thiết kế mức RTL.
Lyrtech: cung cấp các phần cứng tích hợp công nghệ FPGA và DSP cùng với

các công cụ thiết kế trên nền Matlab, Simulink, Xilinx Sysgen và Texas Instruments
CCS.
MathWorks: cung cấp công cụ Simulink, là một công cụ được sử dụng như
một môi trường thiết kế mức cao các dự án FPGA.
Mentor Graphics: cung cấp một loạt các công cụ tổng hợp, mô phỏng, gỡ rối
HDL như FPGA Advantage, ModelSim,…
Nallatech: cung cấp các giải pháp tính toán thiết kế COTS FPGA cho quân
đội, quốc phòng cũng như các ngành công nghiệp công nghệ cao.
National Instruments: cung cấp các bo mạch phát triển trên nền FPGA, công
cụ phần mềm LabVIEW FPGA hỗ trợ ngôn ngữ lập trình đồ họa sử dụng các khối
chức năng IP dựng sẵn.
Synopsys: cung cấp các công cụ tổng hợp và kiểm tra.
Synplicity: cung cấp các công cụ tổng hợp HDL, tổng hợp vật lý và kiểm tra.


1.5. Các họ linh kiện CPLD và FPGA của Xilinx
1.5.1. CPLD
Linh kiện CPLD của Xilinx có hai họ chính: CoolRunner và XC9500.
Họ CoolRunner có hai chủng loại hoạt động ở các mức điện áp khác nhau là
CoolRunner-II hoạt động ở mức điện áp 1.8V và CoolRunner XPLA3 hoạt động ở
mức điện áp 3.3V. CoolRunner-II tiêu thụ công suất hoạt động và chế độ standby
nhỏ nhất, cỡ hàng microAmpe. Tương tự như thế, CoolRunner XPLA3 cũng được
sử dụng rất rộng rãi trong các ứng dụng đòi hỏi công suất tiêu thụ thấp. CoolRunner
XPLA3 còn bao gồm cả công nghệ thiết kế Fast Zero Power (FZP), kết hợp cả tính
năng tiết kiệm nguồn và khả năng hoạt động tốc độ cao của linh kiện.
Họ XC9500 bao gồm 3 chủng loại hoạt động ở 3 mức điện áp khác nhau:
XC9500XL hoạt động ở 3.3V, XC9500XV ở 2.5V và XC9500 ở 5V.

19



1.5.1.1. CoolRunner
1.5.1.1.1. CoolRunner XPLA3
Điện áp nguồn 3.3V, chịu được vào/ra 5V, duới 100uA. Tốc độ thi hành lệnh
4.5 ns.
Dòng CoolRunner XPLA3 có khả năng đáp ứng yêu cầu về tiêu thụ công suất
thấp, tốc độ cao, mật độ cao, linh hoạt trong thay đổi thiết kế tại mọi trạng thái của
quá trình thiết kế.
Được hỗ trợ trong tất cả các phiên bản ISE của Xilinx, kiểm tra và mô phỏng
bằng MXE, HDL Bencher, Xpower và iMPACT.
Bảng 1-1: Các sản phẩm của dòng CoolRunner XPLA3
XCR
XCR
XCR
XCR
XCR
Feature/Product
3032XL 3064XL 3128XL 3256XL 3384XL
Macrocells
32
64
128
256
384
Usable Gates
750
1,500
3,000
6,000
9,000

Tpd (ns)
4.5
5.5
5.5
7.0
7.0
ƒSYS (MHz)
213
192
175
154
135
ICCSB (àA)
17
17
17
18
18
Package
User I/O
VQ44
36
36
PC44
36
36
CS48
36
40
CP56

48
VQ100
68
84
CS144
108
TQ144
108
120
118
PQ208
164
172
FT256
164
212
CS280
164
FG324
220
1.5.1.1.2. CoolRunner-II

Công nghệ bộ xử lý 0.18m, 0.16uA

Tiêu thụ công suất thấp

CPLD có kích thước nhỏ nhất

323MHz xung nhịp


Bảo mật cao với các thiết kế bên trong

Số lượng cổng vào/ra trên macrocell cao

20

XCR
3512XL
512
12,000
7.0
135
18

180
212
260


Bảng 1-2: Các sản phẩm dòng CoolRunner-II
XC2C XC2C
XC2C XC2C XC2C
Feature/Product
32A
64A
128
256
384
Macrocells
32

64
128
256
384
Tpd (ns)
3.8
4.6
5.7
5.7
7.1
ƒSYS (MHz)
323
263
270
256
217
I/O Banks
2
2
2
2
4
User
User
User
User
User
Packages
I/O
I/O

I/O
I/O
I/O
QF32
21
VQ44
33
33
PC44
33
33
QF48
37
CP56
33
45
VQ100
64
80
80
CP132
100
106
TQ144
100
118
118
PQ208
173
173

FT256
184
212
FG324
240

XC2C
512
512
7.1
179
4
User
I/O

173
212
270

1.5.1.2. XC9500 series
XC9500 là họ sản phẩm CPLDs giá rẻ, cung cấp hiệu suất cao, tập hợp các đặc tính
mở rộng, linh hoạt đối với các đòi hỏi về giảm bớt thiết kế hệ thống hiện nay. Cho
phép người thiết kế thay đổi các thiết kế của họ mà không cần thay đổi bố trí của bo
mạch. XC9500 series cung cấp thêm trên 12% mật độ phần tử logic mà không tăng
giá.
XC9500 Series có 3 dòng sản phẩm là : XC9500 -5 Volt
XC9500 XL 3.5 Volt
XC9500 XV 2.5 Volt
1.5.1.2.1. XC9500
Họ XC9500 có thể sử dụng cho các giải pháp toàn diện trong một phạm vi rộng lớn

các ứng dụng: các loại biến áp, chuẩn hóa vào/ra, các bộ thu phát, ASIC, rời rạc tín
hiệu, bộ thống nhất PAL/GAL, chuẩn giao tiếp bus (I2C, SPI, 8b/10b), giao tiếp với
vi xử lý, điều khiển DRAM, phát xung nhịp cho video, điều khiển hình ảnh, điều
khiển logic và trạng thái.

21


Bảng 1-3: Các sản phẩm dòng XC9500
Feature/Product
Macrocells
Usable Gates
Tpd (ns)
ƒSYS (MHz)
Package
PC44
VQ44
CS48
PC84
TQ100
PQ100
PQ160
HQ208
BG352

XC
9536
36
800
5.0

100
User
I/O
34
34
34

XC
9572
72
1,600
7.5
83.3
User
I/O
34

XC
95108
108
2,400
7.5
83.3
User
I/O

XC
95144
144
3,200

7.5
83.3
User
I/O

69
72
72

69
81
81
108

81
81
133

XC
95216
216
4,800
10.0
66.7
User
I/O

XC
95288
288

6,400
15.0
55.6
User
I/O

133
166
166

168
192

1.5.1.2.2. XC9500-XV
Điệp áp nguồn 2.5V, 2 bank vào/ra với mật độ cao, tín hiệu vào/ra tương thích
3.3V, 2.5V, 1.8V.
Dòng sản phẩm giá rẻ linh hoạt, cho phép thời gian sản xuất ngắn hơn. Điện áp
nguồn thấp cho công suất tiêu thụ thấp hơn 30% so với các CPLDs 3.3V, tỏa nhiệt
ít hơn nên đảm bảo độ tin cậy trong thời gian dài. XC9500 XV là giải pháp tận dụng
được sức mạnh của phần mềm ISE™ WebPACK™.
XC9500-XV có cùng kiến trúc và các đặc tính với dòng XC9500-XL, với 36, 72,
144, và 288 macrocells. XC9500-XV được hỗ trợ tối đa cho ISP thông qua chuẩn
IEEE 1149.1 JTAG và IEEE 1532.
Các đặc tính riêng của XC9500-XV:

54 khối đầu vào làm tăng khả năng pin-locking

Xây dựng trên hiệu ứng trễ để cải thiện tín hiệu, loại bỏ bớt nhiễu

Bus-hold thực hiện tốt hơn việc điều khiển vào/ra


Khả năng Hot-plugging cần cho việc quản lý công suất

Điều khiển Clock cục bộ và tổng thể tạo sự linh hoạt tối đa

22


Bảng 1-4: Các sản phẩm dòng XC9500-XV
XC
XC
XC
Feature/ Product
9536XV
9572XV
95144XV
Macrocells
36
72
144
Usable Gates
800
1,600
3,200
Tpd (ns)
5
5
5
ƒSYS (MHz)
222

222
222
User
User
User
Package
I/O
I/O
I/O
PC44
34
34
VQ44
34
34
TQ100
72
81
TQ144
117
PQ208
CS48
36
38
CS144
117
CS280
FG256

XC

95288XV
288
6,400
6
208
User
I/O

117
168

192
192

1.5.1.2.3. XC9500-XL
Dòng sản phẩm CPLDs giả rẻ, hiệu suất cao, giải pháp cho lập trình logic, miễn phí
các công cụ thiết kế. Cần cho thiết kế hệ thống logic linh hoạt, mở rộng.
Cung cấp tối đa sự mềm dẻo, linh hoạt trong thiết kế. XC9500 bao gồm:
Thế hệ thứ hai của công nghệ pin-locking cho việc thiết kế lại trở nên dễ dàng mà
không cần thay đổi bố trí trên bo mạch.
ISP và IEEE 1149.1 JTAG hỗ trợ hiệu quả trong gỡ rối và thiết kế lại.
Khả năng cấu hình lại cho phép cập nhật hệ thống, giải quyết các vấn đề phát sinh
cản trở hoạt động của hệ thống.
Có từ 36 tới 288 macrocells.
Đầu ra kiểm soát slew rate và có thể lập trình sử dụng chân nối đất để giảm bớt
nhiễu của hệ thống.

Feature/Product
Macrocells
Usable Gates

Tpd (ns)
ƒSYS (MHz)

Bảng 1-5:Các sản phẩm dòng XC9500XL
XC
XC
XC
9536XL
9572XL
95144XL
36
72
144
800
1,600
3,200
5.0
5.0
5.0
178
178
178

23

XC
95288XL
288
6,400
6.0

208


Package
PC44
VQ44
VQ64
TQ100
TQ144
PQ208
CS48
CS144
BG256
FG256
CS280

User
I/O
34
34
36

36

User
I/O
34
34
52
72


User
I/O

81
117

User
I/O

117
168

38
117
192
192
192

1.5.2. FPGA của Xilinx
So với CPLD, các sản phẩm FPGA của Xilinx cung cấp:

Mật độ tích hợp các cổng logic nhiều hơn.

Nhiều tính năng hơn.

Hiệu suất cao hơn.

Công nghệ FPGA : Sản phẩm Virtex của Xilinx tích hợp lên đến 8
triệu "system gates" với một số tính năng mới như các bộ vi xử lý cứng tích

hợp sẵn (built-in hardwired processors - IBM Power PC), các hệ thống quản
lý clock, dung lượng bộ nhớ, hỗ trợ công nghệ fast device-to-device
signaling.
• ứng dụng FPGAs: hầu hết các lĩnh vực ứng dụng điện tử như: xử lý tín hiệu
và lưu trữ, các thiết bị điện tử, truyền thông, xử lý tín hiệu số,...
Các sản phẩm FPGAs của Xilinx:
Spartan: gồm các chủng loại -XL,-II,-IIE, -3L, -3, -3E.
Virtex: gồm các chủng loại /E, /EM, - II, -II Pro / Pro X,-4, -5.
1.5.2.1. Spartan
1.5.2.1.1. Spartan-XL
Spartan-XL là dòng sản phẩm FPGAs đầu tiên có giá thành thấp của Xilinx, bị
giới hạn một số đặc tính trên chip. Spartan-XL có sẵn khoảng từ 5000 đến 40,000
“system gates”.
ứng dụng : Thay thế ASIC

Trong các thiết bị ngoại vi của máy tính

Trong các hệ thống lái tự động hoặc hệ thống định vị toàn cầu GPS

Trong truyền hình kỹ thuật số

Trong các thiết bị thu thập và xử lý hình ảnh

Trong các đầu đọc thẻ thông minh hoặc credit card

24


×