1. Trang chủ
  2. » Giáo án - Bài giảng

giáo trình thiết kế logic số

358 363 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 358
Dung lượng 6,6 MB

Nội dung

CHƯƠNG 3 – CĂN BẢN VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL CHƯƠNG 4 – PHƯƠNG PHÁP THIẾT KẾ LOGIC DÙNG VHDL CHƯƠNG 5 – THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG DÙNG VHDL PHỤ LỤC I – QUY ƯỚC VỀ ĐẶT T

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

- -

Đỗ Mạnh Hà Đặng Hoài Bắc Nguyễn Ngọc Minh

GIÁO TRÌNH

THIẾT KẾ LOGIC SỐ

Hà nội 2013

Trang 2

“Thiết kế logic số” là môn học chuyên ngành quan trọng cho sinh viên ngành Kỹ thuật Điện – Điện tử tại Học viện Công nghệ Bưu chính Viễn thông Trong môn học này, sinh viên được trang bị các kiến thức về phương pháp mô tả, thiết kế theo cấu trúc, RTL

và hành vi các hệ thống số dùng ngôn ngữ mô tả phần cứng: thiết kế mạch số tổ hợp, thiết kế mạch số tuần tự, máy trạng thái, hazard, phát hiện lỗi, thử nghiệm thiết kế các

hệ thống số sử dụng những cấu kiện logic khả trình như CPLD, FPGA Từ đó sinh viên

có thể thực hiện thiết kế logic cho hệ thống điện tử số sử dụng ngôn ngữ mô tả phần cứng VHDL phục vụ mô phỏng, kiểm tra, thử nghiệm, thực thi một một hệ thống điện tử số hoàn chỉnh trong thực tế Bên cạnh đó môn học còn giúp sinh viên tích lũy các kỹ năng

chuyên môn như kỹ năng phân tích, thiết kế kỹ thuật hệ thống thống số dùng VHDL

Giáo trình gồm các nội dung chính như sau:

CHƯƠNG 1 – GIỚI THIỆU CHUNG VỀ THIẾT KẾ HỆ THỐNG SỐ

CHƯƠNG 2 – CẤU KIỆN LOGIC KHẢ TRÌNH (PLD)

CHƯƠNG 3 – CĂN BẢN VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL

CHƯƠNG 4 – PHƯƠNG PHÁP THIẾT KẾ LOGIC DÙNG VHDL

CHƯƠNG 5 – THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG DÙNG VHDL

PHỤ LỤC I – QUY ƯỚC VỀ ĐẶT TÊN TRONG VHDL

PHỤ LỤC II – CẤU TRÚC LỆNH CƠ BẢN CỦA VHDL

PHỤ LỤC III – GIỚI THIỆU CPLD/FPGA CỦA XILINX

PHỤ LỤC IV – HƯỚNG DẪN PHẦN MỀM ISE CỦA XILINX

Giáo trình được thực hiện trong một thời gian ngắn, nên khó tránh khỏi những thiếu sót Các tác giả rất mong nhận được những ý kiến đóng góp các đồng nghiệp để giáo trình được hoàn thiện hơn Mọi góp ý xin vui lòng gửi về Bộ môn kỹ thuật điện tử - Khoa Kỹ thuật Điện tử 1- Học viện Công nghệ Bưu chính Viễn thông hoặc email: bacdh@ptit.edu.vn Chúng tôi xin chân thành cảm ơn các đồng nghiệp đã đóng góp các ý kiến quý báu; xin chân thành cảm ơn lãnh đạo Học viện, Phòng Đào tạo và NCKH, Khoa

Kỹ thuật Điện tử 1, 2 đã tạo điều kiện để chúng tôi hoàn thành giáo trình này

Hà nội, tháng 10 năm 2014

Nhóm tác giả

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU 2

MỤC LỤC 3

CHƯƠNG 1 – GIỚI THIỆU CHUNG VỀ THIẾT KẾ HỆ THỐNG SỐ 7

1.1 GIỚI THIỆU CHUNG 7

1.2 QUY TRÌNH PHÁT TRIỂN HỆ THỐNG ĐIỆN TỬ 8

1.2.1 Quy trình phát triển sản phẩm tuần tự 8

1.2.2 Quy trình phát triển sản phẩm song song 10

1.2 MÔ HÌNH KIẾN TRÚC VÀ CÁC MỨC THIẾT KẾ HỆ THỐNG SỐ 11

1.2.1 Kiến trúc của hệ thống số 12

1.2.2 Các mức thiết kế hệ thống số 13

1.3 TỔNG QUAN VỀ CÁC CÔNG NGHỆ THỰC HIỆN HỆ THỐNG SỐ 14

1.3.1 Phân loại các công nghệ logic số 14

1.3.2 So sánh các loại cấu kiện chuẩn 17

1.4 QUY TRÌNH THIẾT KẾ VI ĐIỆN TỬ 22

1.5 VAI TRÒ CỦA THIẾT KẾ VI ĐIỆN TỬ SỬ DỤNG HDL 24

1.6 LƯU ĐỒ THIẾT KẾ VI ĐIỆN TỬ DÙNG HDL 27

1.6.1 Thiết kế logic 27

1.6.2 Tổng hợp thiết kế (Synthesis) 27

1.6.3 Thiết kế mức vật lý (Physical Design) 28

1.6.4 Kiểm tra thiết kế (Verification) 29

1.6.5 Sản xuất và đóng gói 30

1.7 CÁC PHẦN MỀM EDA HỖ TRỢ THIẾT KẾ LOGIC SỐ DÙNG HDL 30

CHƯƠNG 2 – CẤU KIỆN LOGIC KHẢ TRÌNH (PLD) 31

2.1 GIỚI THIỆU CHUNG VỀ CÔNG NGHỆ LOGIC KHẢ TRÌNH (PLD) 31

2.1.1 SPLD 31

2.1.2 CPLD (Complex PLD) 34

2.1.3 FPGA 35

2.2 GIỚI THIỆU PHƯƠNG PHÁP THIẾT LẬP CẤU HÌNH CHO CPLD/FPGA 38

2.2.1 Phương pháp dùng sơ đồ mô tả 38

2.2.2 Phương pháp dùng ngôn ngữ mô tả phần cứng (HDL) 39

2.3 YÊU CẦU CHUNG KHI THIẾT KẾ VỚI CPLD/FPGA 40

2.3.1 Chọn vi mạch CPLD hoặc FPGA phù hợp 40

2.3.2 Chọn giải pháp cấu hình cho CPDL/FPGA 41

Trang 4

2.4 LƯU ĐỒ THIẾT KẾ CHO CPLD/FPGA 44

2.4.1 Lưu đồ thiết kế cho CPLD 44

2.4.2 Lưu đồ thiết kế cho FPGA 48

2.5.3 Ví dụ thiết kế đơn giản dùng phần mềm ISE 50

CHƯƠNG 3 – CĂN BẢN VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL 65

3.1 LỊCH SỬ PHÁT TRIỂN CỦA VHDL 65

3.2 NHỮNG ƯU ĐIỂM CỦA VHDL 66

3.3 CẤU TRÚC NGÔN NGỮ CỦA VHDL 67

3.3.1 Đối tượng trong VHDL 68

3.3.2 Kiểu dữ liệu trong VHDL 71

3.3.3 Các phép toán trong VHDL 82

3.3.4 Các đơn vị thiết kế trong VHDL 89

3.3.5 Cấu trúc chung của một chương trình mô tả VHDL 97

3.3.6 Môi trường kiểm tra “testbench” 99

3.3.7 Các cấu trúc lệnh song song 102

3.3.8 Cấu trúc lệnh tuần tự 114

3.3.9 Hàm và thủ tục 123

BÀI TẬP 128

CHƯƠNG 4 – PHƯƠNG PHÁP THIẾT KẾ LOGIC DÙNG VHDL 131

4.0 GIỚI THIỆU CHUNG VỀ THIẾT KẾ LOGIC DÙNG HDL 131

4.1 MÔ HÌNH BIỂU DIỄN HỆ THỐNG SỐ 132

4.1.1 Mô hình hoạt động (Behavioral views) 133

4.1.2 Mô hình cấu trúc (Structural views) 133

4.1.3 Mô hình vật lý (Physical views) 133

4.2 CÁC MỨC ĐỘ TRỪU TƯỢNG TRONG MÔ TẢ HỆ THỐNG SỐ 133

4.2.1 Mô tả mức mạch điện (Circuit Level or Transistor Level) 135

4.2.2 Mô tả mức logic (Logic Lever or Gate Level) 135

4.2.3 Mô tả mức RTL (Register Transfer Level – Mức truyền đạt thanh ghi) 136

4.2.4 Mô tả mức hệ thống (System Level or Processor Level) 136

4.2.5 Ví dụ các mô hình hệ thống số 136

4.3 MÔ TẢ THEO MÔ HÌNH HOẠT ĐỘNG (BEHAVIORAL) 139

4.3.1 Mô tả theo mức hệ thống 139

4.3.2 Mô tả theo mức RTL 141

4.3.3 Viết mô tả Testbench 143

4.3.4 Mã mô tả VHDL không tổng hợp được 158

4.4 CÁC MÔ HÌNH TÍN HIỆU SỐ 159

4.5 MÔ TẢ THEO MÔ HÌNH CẤU TRÚC 160

4.6 MÔ TẢ MẠCH LOGIC TỔ HỢP 165

4.6.1 Các cấu trúc lệnh VHDL dùng cho mô tả mạch tổ hợp 165

Trang 5

4.6.2 Mô tả các mạch tổ hợp cơ bản 168

4.6.3 Phương pháp thiết kế dùng chung phép toán 187

4.6.4 Phương pháp thiết kế dùng chung chức năng 192

4.7 MÔ TẢ MẠCH LOGIC TUẦN TỰ CƠ BẢN 194

4.7.1 Cấu trúc lệnh VHDL dùng cho mô tả mạch tuần tự 195

4.7.2 Mô tả các phần tử nhớ 196

4.7.3 Bộ đếm (Counter) 202

4.7 MÁY TRẠNG THÁI HỮU HẠN – FSM 211

4.7.1 Giới thiệu chung về máy trạng thái hữu hạn - FSM 211

4.7.2 Đồ hình máy trạng thái - FSMD 213

4.7.3 Lưu đồ giải thuật máy trạng thái – ASM 215

4.7.4 Mô tả VHDL cho FSM 217

4.8 PHƯƠNG PHÁP THIẾT KẾ TOP-DOWN 226

BÀI TẬP 226

CHƯƠNG 5 – THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG DÙNG VHDL 229

5.1 THIẾT KẾ MẠCH ĐIỀU KHIỂN HIỂN THỊ LED 229

5.1.1 Thiết kế mạch điều khiển màn chỉ thị số LED 229

5.1.2 Thiết kế mạch điều khiển ma trận LED 233

5.1.3 Thiết kế ứng dụng điều hiển thị 8 led đơn sáng theo quy luật 240

5.2 THIẾT KẾ BỘ ĐẾM THUẬN NGHỊCH THEO ĐIỀU KHIỂN 245

5.3 THIẾT KẾ BỘ ĐẾM TẦN TỰ ĐỘNG THAY ĐỔI THANG ĐO 249

5.4 THIẾT KẾ MẠCH GIAO TIẾP ĐIỀU KHIỂN VGA 255

5.5 THIẾT KẾ MẠCH ĐIỀU KHIỂN HIỂN THỊ LCD 264

5.6 THIẾT KẾ MẠCH ĐIỀU KHIỂN MA TRẬN PHÍM 271

5.7 THIẾT KẾ GIAO TIẾP PS2 VỚI BÀN PHÍM 276

5.8 THIẾT KẾ BỘ ĐIỀU KIỂN TRUYỀN THÔNG NỐI TIẾP UART 283

PHỤ LỤC I – QUY ƯỚC VỀ ĐẶT TÊN TRONG VHDL 292

I.1 Quy ước chung về đặt tên trong VHDL 292

I.2 Quy ước đặt tên các đối tượng trong VHDL 293

I.3 Quy ước đặt tên các đơn vị thiết kế 294

PHỤ LỤC II – CẤU TRÚC LỆNH CƠ BẢN CỦA VHDL 296

PHỤ LỤC III – GIỚI THIỆU CPLD/FPGA CỦA XILINX 301

III.1 GIỚI THIỆU CHUNG VỀ CPLD/FPGA CỦA XILINX 301

III.1.1 CPLD của Xilinx 301

III.1.2 FPGA của Xilinx 304

III.2 CẤU TRÚC CPLD CỦA XILINX 306

Trang 6

III.2.2 CoolRunner XPLA3 312

III.2.3 CoolRunner II 315

III.3 GIỚI THIỆU CÁC DÒNG FPGA CĂN BẢN 319

III.3.1 Spartan-3 319

III.3.2 Virtex 324

PHỤ LỤC IV – HƯỚNG DẪN PHẦN MỀM ISE CỦA XILINX 331

IV.1 GIỚI THIỆU CHUNG 331

IV.2 HƯỚNG DẪN CÀI ĐẶT 331

IV.3 THỰC HIỆN LƯU ĐỒ THIẾT KẾ TRÊN ISE 332

TÀI LIỆU THAM KHẢO 351

Trang 7

CHƯƠNG 1 – GIỚI THIỆU CHUNG VỀ THIẾT KẾ HỆ

THỐNG SỐ

 Giới thiệu chung

 Quy trình phát triển hệ thống điện tử

 Mô hình kiến trúc và các mức thiết kế hệ thống số

 Tổng quan về các công nghệ thực hiện hệ thống số

 Quy trình thiết kế vi điện tử

 Vai trò của thiết kết vi điện tử sử dụng HDL

 Lưu đồ thiết kế vi điện tử dùng HDL

 Các phần mềm EDA hỗ trợ thiết kế logic dùng HDL

1.1 GIỚI THIỆU CHUNG

Hiện nay, Hệ thống số đang là trung tâm của các hệ thống điện tử Mọi phát triển hiện nay đều dựa vào công nghệ số Trang bị kiến thức và kỹ năng thiết kế hệ thống số là

rất quan trọng đối với kỹ sư điện tử Các phương thức nền tảng cho phát triển hệ thống

số như sau:

+ Phát triển hệ thống số trên cở sở dùng rút gọn hàm logic, bảng trạng thái, máy trạng thái dùng các cấu kiện logic chuẩn chức năng cố định như: Các cổng logic đơn giản, các mô-đun mạch tổ hợp và tuần tự cơ bản

+ Phát triển hệ thống số trên cơ sở dùng các hệ vi xử lý, vi điều khiển, bộ xử lý tín hiệu số, và thực hiện ghép nối máy tính: Chức năng hệ thống chủ yếu được phát triển nhờ lập trình phần mềm

+ Phát triển hệ thống số trên cơ sở thiết kế logic số: Sử dụng ngôn ngữ mô tả phần cứng HDL mô tả được hệ thống số cần thiết kế, thực hiện tổng hợp và thực hiện chúng trên các cấu kiện logic khả trình PLD hay chuyển sang các mức thiết kế vật lý, layout và thực hiện trên các vi mạch số VLSI Đây là những tiền đề tốt cho thiết kế IC số và thiết

kế hệ thống VLSI

Cả ba hướng trên đều có thể được sử dụng để phát triển các hệ thống số nhưng mức

độ đơn giản hay phức tạp là khác nhau và đều được đào tạo cho sinh viên ngành Điện – Điện tử và Kỹ thuật Máy tính ở các môn học với các mức độ khác nhau Trong môn học Thiết kế logic số chủ yếu tập trung vào hướng thứ 3 Hướng phát triển này vừa phù hợp với môi trường giáo dục đại học và yêu cầu phát triển khả thi được các ứng dụng đa dạng trong thực tế với mức độ phức tạp cao Trong đó phương pháp thiết kế trọng tâm mà sinh viên sử dụng để phát triển các hệ thống số là Thiết kế logic dùng HDL, đây cũng là phương pháp thiết kế đòi hỏi sinh viên phải có kiến thức nền tảng tổng hợp tốt của cả hai

Trang 8

sắc về hoạt động của đối tượng mình định thiết kế, và đặc biệt là phát huy được tính sáng tạo của sinh viên Hơn thế nữa thiết kế logic số dùng HDL hiện vẫn đang được giảng dạy phổ biến trong các Trường đại học tiên tiến trên thế giới và vẫn là phương pháp thiết

kế phổ biến của các phần mềm Thiết kế điện tử hiện đại đang được sử dụng phổ biến cho các nhà Thiết kế của nhiều doanh nghiệp điện tử trên thế giới

Trước khi tập trung vào trình bày về phương pháp thiết kế logic số dùng HDL ở các chương tiếp theo, trong chương này sẽ nêu bật được vai trò và vị trí của Thiết kế điện

tử nói chung và Thiết kế logic nói riêng trong toàn bộ quá trình phát triển hệ thống điện

tử số hiện đại

1.2 QUY TRÌNH PHÁT TRIỂN HỆ THỐNG ĐIỆN TỬ

Phát triển hệ thống điện tử nói chung, hệ thống số nói riêng sẽ được thưc hiện trên

cơ sở phát triển các hệ thống con và ghép chúng với nhau tạo thành toàn bộ hệ thống Tuy nhiên, trước khi xem xét đến quá trình phát triển cũng như thiết kế hệ thống điện tử chúng ta chú ý ba điểm như sau trong quá trình thiết kế:

1 Luôn luôn sử dụng chung

2 Không bao giờ tự bỏ bất cứ điều gì để thay đổi

3 Hầu hết có nhiều hơn một cách để giải quyết một vấn đề: Người thiết kế có nhiệm vụ tìm ra cách giải quyết vấn đề hợp lý nhất Giải pháp được phát triển đầu tiên không nhất thiết phải là tốt nhất

Quy trình phát triển một hệ thống số (một sản phẩm hệ thống số) là quá trình một thiết kế được phát triển từ những ý tưởng ban đầu đến sự hiện thực hóa được một sản phẩm (thương mại hoặc phi lợi nhuận) Quá trình phát triển một sản phẩm hệ thống số có thể tiếp cận theo một trong hai hướng sau:

+ Quy trình phát triển tuần tự

+ Quy trình phát triển song song

1.2.1 Quy trình phát triển sản phẩm tuần tự

Trong quá trình phát triển sản phẩm tuần tự, mỗi một bước trong quá trình phát triển (từ ý tưởng thiết kế đến quá trính sản xuất và kiểm tra sản phẩm) được hoàn thành trước khi thực hiện bước tiếp theo Quy trình phát triển truyền thống này được minh họa như hình vẽ và gồm các bước chính như sau:

1 Xác định yêu cầu sản phẩm: Xác định các yều cầu, tham số kỹ thuật cần phát triển cho sản phẩm

2 Thiết kế: Tạo ra thiết kế ban đầu

3 Kiểm tra thiết kế: Kiểm tra chức năng của thiết kế ban đầu có đúng yêu cầu không?

Trang 9

4 Chế mẫu: Tạo ra sản phẩm mẫu vật lý của thiết kế và kiểm tra hoạt động của mẫu theo yêu cầu thiết kế

Hình 1.1 – Quy trình phát triển sản phẩm tuần tự

5 Kiểm tra mẫu: Xác định xem liệu chức năng của thiết kế có như kỳ vọng hay không và kiểm tra xem có xuất hiện những vấn đề của thiết kế mà cần được giải quyết hay không?

6 Thiết kế lại: Dựa vào những vấn đề đã phát hiện ở bước trên, thực hiện thiết kế lại sản phẩm để giải quyết những vấn đề đó

7 Kiểm tra lại thiết kế: Kiểm tra chức năng của thiết kế mới có đúng yêu cầu không?

8 Sản xuất sản phẩm: Khi thiết kế đã được kiểm tra thành công, thì có thể sản xuất hoạt loạt sản phẩm

9 Kiểm tra sản phẩm: Các sản phẩm đã được sản xuất sẽ được kiểm tra để phát

Trang 10

Mặc dù cách tiếp cận của quy trình trên có vẻ đơn giản, dễ thực hiện, dễ quản lý, nhưng cách tiếp cận tuần tự đó thường không có hiệu quả cao Nó không cho phép một bước nào đó tác động đến các bước khác trừ các bước ngay trước và sau nó Ví dụ bước Chế mẫu không tác động đến bước sản xuất Những ràng buộc vốn có trong bước chế mẫu có thể không tạo ra lỗi được mà chỉ được phát hiện trong bước sản xuất Những thông tin quan trọng có thể được phát sinh trong bước sản xuất đã bị bỏ qua trong bước Chế mẫu và thậm trí là trong cả bước Thiết kế

1.2.2 Quy trình phát triển sản phẩm song song

Trong quy trình phát triển song song, mỗi bước từ ý tưởng thiết kế đến bước sản xuất và kiểm tra được liên kết với nhau, cho phép thông tin được chuyển qua lại giữa các bước Quy trình phát triển sản phẩm theo cách tiếp cận này được minh họa như Hình 1.2 Trong đó các bước khác nhau trong quy trình được thực hiện tại cùng thời điểm Toàn bộ quá trình có cấu trúc dàn flatter, ngược lại so với cách tiếp cận theo tuần tự, quy trình phát triển song song cho phép nhiều vấn đề được giải quyết cùng nhau Điều đó cho phép tất cả các thành viên tham gia vào phát triển sản phẩm có những thông tin liên quan và đánh giá các khía cạnh của vấn đề thiết kế và thay đổi các thành phần của họ trong quá trình phát triển sản phẩm

Tính song song trong quy trình phát triển này đặc biệt được thực hiện rất rõ trong bước thiết kế sản phẩm Trong bước thiết kế sản phẩm đã có tính đến các yếu tố khác nhau, và hướng nhiều đến các mục đích khác ngoài Yêu cầu kỹ thuật của sản phẩm Đó

là các quá trình thiết kế hướng mục đích như:

- DFA: Design for Assembly – Thiết kế tính đến quá trình lắp rắp sản phẩm

- DFD: Design for Debug – Thiết kế tính đến việc gỡ rối

- DFM: Design for Manufacturability – Thiết kế tính đến quá trình sản xuất

- DFR: Design for Reliability – Thiết kế tính đến mức độ tin cậy

- DFT: Design for Testability – Thiết kế hỗ trợ việc đo kiểm

- DFY: Design for Yield - Thiết kế tính đến yêu cầu sản lượng

Như vậy Thiết kế là một bước rất quan trọng trong quá trình phát triển sản phẩm điện tử, nó quyết định rất lớn đến sự thành công của sản phẩm Nắm bắt các công nghệ

và thực hành kỹ năng thiết kế điện tử là rất cần thiết đối với sinh viên ngành Điện – Điện

tử và Kỹ thuật máy tính

Trang 11

Hình 1.2 – Quy trình phát triển sản phẩm song song

1.2 MÔ HÌNH KIẾN TRÚC VÀ CÁC MỨC THIẾT KẾ HỆ THỐNG SỐ

Hệ thống số: là hệ thống điện tử xử lý tín hiệu số trên cơ sở các mạch điện tử số

Hệ thống số hiện nay chủ yếu xử lý tín hiệu nhị phân và được xây dựng trên cơ sở các hệ thống tính toán số Ví dụ các hệ thống số điển hình như máy tính, điện thoại số, Một

hệ thống điện tử có thể bao gồm cả các mạch xử lý tín hiệu tương tự, tuy nhiên hiện nay

DFT: Design for Testability DFY: Design for Yield

Trang 12

Thiết bị điện tử

Linh kiện, phụ kiện điện tử Thiết kế vi điện tử: linh kiện, IC, IP ,

phụ kiện Thiết kế mạch, PCB

Thiết kế firmware : (Device Driver, OS, Midleware)

Thiết kế, phát triển phần mềm ứng dụng

Quản lý, tích hợp,

và thiết kế hệ thống

Hình 1.3 – Kiến trúc hệ thống số và các mức thiết kế

- Phần mềm ứng dụng: là các phần mềm được thiết kế để thực thi một tác vụ thực

tế dựa trên tài nguyên do nền phần cứng cung cấp Ví dụ như các phần mềm chơi nhạc trên các máy MP3, ứng dụng game trên các máy PS2, bộ công cụ Microsoft Office trên các PC,

- Phần mềm hệ thống: Ví dụ như các hệ điều hành Windows, Linux, Unix, và các

chương trình hỗ trợ như trình biên dịch, loader, linker, debugger, giúp quản lý các tài nguyên phần cứng ở mức thấp Về cơ bản nó cho phép các phần của hệ thống làm việc với nhau, cấp phát các tài nguyên cho các phần mềm ứng dụng

- Phần cứng : chỉ các thành phần vật lý của hệ thống, được cấu tạo về cơ bản từ

các linh kiện vậy lý.Ví dụ như với một PC, phần cứng gồm các thành phần bo mạch chủ, Ram, ở cứng, nguồn nuôi, Các bo mạch chủ thì được cấu tạo từ các linh kiện bán dẫn, các linh kiện thụ động như điện trở, tụ điện, cuộn cảm,

Từ kiến trúc trên của hệ thống số, có thể phân chia việc thiết kế một hệ thống thành các mảng công việc khác nhau như sau:

- Quản lý, tích hợp và thiết kế hệ thống

- Thiết kế, phát triển phần mềm ứng dụng

Trang 13

- Thiết kế firmware (device driver, OS, middleware)

- Thiết kế mạch, PCB

- Thiết kế vi điện tử : linh kiện, IC, IP, Phụ kiện

Đối với từng mảng công việc, đòi hỏi người thực hiện cần có các kĩ năng tương ứng

1.2.2 Các mức thiết kế hệ thống số

a Quản lý, tích hợp, thiết kế hệ thống:

Đây là một trong những mặt có vai trò quan trọng đối với sự thành công của một

dự án thiết kế một hệ thống số Nó bao gồm các công việc:

- Hoạch định các yêu cầu của hệ thống, từ đó xây dựng kết cấu chung của hệ thống

- Phân tách, tích hợp hệ thống, kiểm tra hệ thống, đảm bảo hệ thống hoạt động ổn định, đáp ứng được các yêu cầu về hiệu năng, giá thành, tuổi thọ,

- Xác định các tài nguyên có sẵn bao gồm nhân lực và vật lực

- Lên kế hoạch các bước thực hiện

- Giám sát quá trình thực hiện

b Thiết kế, phát triển phần mềm ứng dụng

Đối với các hệ thống số, điều quan trọng là ứng dụng thực tiễn của nó trong đời sống, quan trọng hơn, chức năng được quyết định bởi phần mềm ứng dụng được cài đặt trên hệ thống Vì vậy, các thiết kế, phát triển phần mềm ứng dụng là không thể thiếu đối với thiết kế hệ thống số hiện nay Quá trình phát triển phần mềm ứng dụng thường được dựa trên các kỹ thuật về xây dựng cấu trúc dữ liệu và giải thuật; cơ sở dữ liệu; các phương thức lập trình hướng cấu trúc , hướng đối tượng; đồ họa; đa phương tiện; xử lý tín hiệu Và sử dụng các ngôn ngữ lập trình ứng dụng như C/C++, VC++, VB, Delphi, ASP, PHP, JAVA để thực hiện trên các nền tẳng hệ điều hành khác nhau

c Thiết kế firmware

Điều quan trọng của các ứng dụng hệ thống số đó là tận dụng được các tài nguyên của hệ thống : CPU, memory, các ngoại vi, các giao diện, Hầu hết quá trình xử lý bên trong của hệ thống là sự giao tiếp giữa các thành phần phần cứng bên trong Vì vậy đòi hỏi xây dựng firmware để quản lý các tài nguyên này một cách hữu hiệu, cung cấp các giao diện truy cập các tài nguyên này cho lớp cao hơn( lớp ứng dụng)

Nó gồm các lĩnh vực về thiết kế trình điều khiển thiết bị - Device Driver, thiết kế

OS – hệ điều hành, thiết kế phần mềm Middleware

d Thiết kế mạch, PCB:

Phần cứng có thể coi như phần xác của hệ thống, cũng là một phần không thể thiếu

Trang 14

phần tử mạch điện tử cơ bản, phần cứng vi xử lý, vi điều khiển, IC chức năng, FPGA, CPLD , và các phụ kiện khác để tạo lên 1 hệ thống hoàn chỉnh Quá trình thiết kế thường được hỗ trợ bằng các công cụ phần mềm thiết kế mạch, mô phỏng mạch như Altium, ISE, proteus,

e Thiết kế vi điện tử : linh kiện, IP, IC, phụ kiện

Vi điện tử là các vấn đề liên quan đến nghiên cứu, chế tạo các linh kiện điện tử Những linh kiện này làm từ các chất bán dẫn Chúng là những thành phần cơ bản trong các thiết kế điện tử như transistor, tụ điện, điện trở, diode, IC, Có thể nói các linh kiện,

IP core, IC, phụ kiện, là những “viên gạch” xây lên “ngôi nhà” phần cứng hệ thống Thiết kế vi điện tử là quá trình thiết kế các thành phần linh kiện này Hiện nay các thiết

kế vi điện tử chủ yếu được thực hiện ở mức thiết kế layout, ASIC, VLSI sử dụng các phần mềm EDA như MentorGraphic, Cadence, ADS,

Như vậy trong quá trình phát triển Hệ thống số, tùy theo công nghệ logic số được

sử dụng mà các mức thiết kế ở trên được thực hiện ở với các mức độ khác nhau Có những công nghệ chỉ cần sử dụng 1 mức thiết kế, và có những công nghệ phải sử dụng một vài mức hay tất cả các mức thiết kế kể trên để hoàn thiện sản phẩm

1.3 TỔNG QUAN VỀ CÁC CÔNG NGHỆ THỰC HIỆN HỆ THỐNG SỐ

1.3.1 Phân loại các công nghệ logic số

Ngày nay công nghệ Logic số đã phát triển rất mạnh mẽ và là công nghệ chủ đạo trong việc phát triển các hệ thống số trong các lĩnh vực công nghiệp và dân dụng, điều khiển – tự động, viễn thông và công nghệ thông tin Hiện nay có có rất nhiều loại công nghệ logic số khác nhau được sử dụng để phát triển các hệ thống số Biểu đồ phân loại các công nghệ logic số được sử dụng để phát triển các hệ thống số như Hình 1.4 Trong

đó gồm có:

1 Sử dụng cấu kiện chuẩn (Standard Components): gồm có 2 hướng chính:

- Sử dụng cấu kiện logic chuẩn có ứng dụng/chức năng cố định: Đây là công nghệ

logic truyền thống gồm có các IC số chức năng cố định, công nghệ này có 2 họ cấu kiện logic điển hình là TTL 74xx và CMOS 4xxx Chức năng của mỗi cấu kiện là cố định do nhà sản xuất tạo ra, người sử dụng chỉ thực hiện kết nối chúng với nhau để xây dựng mạch ứng dụng Các IC số theo công nghệ logic chuẩn này rất đa dạng từ IC chức năng thực hiện các phép toán logic căn bản đến IC thực hiện các chức năng phức tạp khác như:

bộ hợp kênh, phân kênh, bộ cộng, so sánh, bộ mã hoá, giải mã, bộ đếm… Chúng là các

IC số có chức năng cố định, tức là mỗi IC thực hiện một chứ năng chuyên biệt Những cấu kiện này được sản xuất một số lượng lớn để đáp ứng nhu cầu ứng dụng phong phú

Để thiết kế một mạch số, nhà thiết kế có thể chọn từ các IC có sẵn phù hợp nhất cho mạch điện Phần thiết kế này có thể được chỉnh sửa để đáp ứng các yêu cầu chuyên biệt của những linh kiện này

Trang 15

- Sử dụng lập trình để phát triển ứng dụng (Application by programming): Sử dụng

các IC số chức năng đa dụng đã được chế tạo sẵn để phát triển ứng dụng theo hai cách khác nhau như sau:

+ Lập trình phần mềm (Software Programming): Phát triển hệ thống số dựa trên

các hệ vi xử lý hoặc vi điều khiển đa dụng, hoặc Bộ xử lý tín hiệu số (DSPs) Các ứng dụng của hệ thống được phát triển bằng cách lập trình phần mềm cho các hệ vi xử lý, vi điều khiển hoặc DSPs đó

+ Lập trình/Cấu hình phần cứng (Hardware Programming/Configuring): Phát

triển hệ thống số dựa trên lập trình phần cứng để cấu hình cho các cấu kiện logic khả trình (PLD) Đây là một chip LSI có chứa nhiều cấu trúc logic đồng nhất và các kết nối khả trình cho phép nhà thiết kế tạo tuỳ biến cho nó để dùng cho bất kỳ ứng dụng đặc biệt nào, tức là nó có thể được người dùng lập trình lại cấu hình phần cứng để thực hiện một chức năng cần thiết cho ứng dụng của họ.Các PLD có các ưu điểm sau:

 Thời gian thiết kế ứng dụng ngắn

 Chi phí phát triển thấp

 Giảm thiểu được yêu cầu khoảng trống trên bảng mạch

 Giảm thiểu được yêu cầu về điện

 Bảo đảm tính bảo mật của thiết kế

 Tốc độ chuyển mạch nhanh hơn

 Mật độ tích hợp cao

 Chi phí sản xuất số lượng lớn thấp

 PLD cũng cho phép nhà thiết kế có nhiều phương tiện linh động hơn để thí nghiệm với các bản thiết kế bởi vì chúng có thể được lập trình lại trong vài giây

Với nhiều ưu điểm như vậy nên hiện nay có một số lượng lớn các PLD được các nhà sản xuất IC tạo ra với nhiều tính năng đa dạng và nhiều tuỳ chọn có sẵn để nhà thiết

kế mạch có thể sử dụng một cách phổ biến Một số cấu trúc của PLD như: Mảng logic khả trình (PLA) Logic mảng khả trình (PAL), Cấu kiện logic khả trình đơn giản (SPLD),

và Mảng cổng có thể lập trình theo trường (FPGA) sẽ được đề cập kỹ hơn trong các phần sau

2 Công nghệ ASIC (Application specific Integrated Circuit):

Để khắc phục những nhược điểm của việc thiết kế bằng cách sử dụng các IC chức năng cố định, các mạch tích hợp chuyên biệt ứng dụng (ASIC-Aplication Specific IC) đã được phát triển Các ASIC đã được thiết kế để đáp ứng các yêu cầu chuyên biệt của một mạch và được giới thiệu bởi một nhà sản xuất IC Các thiết kế này quá phức tạp không thể thực hiện bằng cách sử dụng các IC chức năng cố định được Người sử dụng có thể

Trang 16

xuất cuối cùng tại nhà máy để tạo ra một lại IC chuyên dụng cho mục đích riêng của người sử dụng Hiện nay công nghệ ASIC gồm 2 loại là: Gate Arrays và Standard Cell Cấu kiện Gate Arrays được cấu tạo từ mảng các logic cell cố định đã được sản xuất trước Mỗi logic cell gồm có vài cổng logic hoặc một Flip-Flop Cần có một bước sản xuất cuối cùng để thực hiện tạo ra lớp kết nối các logic cell này theo mẫu kết nối đã được tạo ra bởi người sử dụng khi thực hiện một thiết kế xác định

Cấu kiện Standard Cell không có cấu trúc cố định, nhà sản xuất tạo ra mặt nạ riêng

để xây dựng IC dựa vào những lựa chọn linh kiện của người sử dụng như các bộ điều khiển, ALU, RAM, ROM, vi xử lý từ thư viện standard cell mà nhà sản xuất đã đưa ra Các lớp mặt nạ này sẽ được thực hiện trong quá trình sản xuất tại nhà máy

SoC

Digital Circuit

Standard Components

ASICs Full-custom

Fixed

application

Standard Cell

Gate Arrays

Hình 1.4 – Các công nghệ Logic số

3 Công nghệ thiết kế vi mạch số mật độ tích hợp lớn (Full Custom VLSI Design):

Công nghệ thực hiện việc thiết kế vi mạch số ở mức Transistor trên bề mặt của tinh thể bán dẫn, cho phép tạo ra vi mạch có chức năng mong muốn, thường sử dụng để thiết

kế các vi mạch đa dụng có tính năng mạnh, và có phạm vi ứng dụng lớn, điển hình như các họ vi xử lý (MicroProcessor), Bộ nhớ RAM , các vi mạch số có độ phức tạo cao, tính năng mạnh Khi sử dụng các họ vi xử lý để phát triển ứng dụng, thiết kế của người

sử dụng được chương trình hoá và được cài đặt vào các thiết bị nhớ Nhiệm vụ chính của việc thiết kế là lập trình cho các vi xử lý này theo bài toán đã đặt ra

Trang 17

4 Công nghệ SoC (System on Chip)

Hệ thống trên một vi mạch, là một khái niệm dùng để chỉ các hệ thống được xây dựng trên ý tưởng tích hợp tất cả các thành phần của một hệ thống máy tính lên trên một

vi mạch đơn (hay còn gọi là một chip đơn) Hệ thống trên một vi mạch có thể bao gồm các khối chức năng số, tương tự, tín hiệu kết hợp (mixed-signal) và cả các khối tần số radio (RF) Ứng dụng điển hình của các hệ thống trên một vi mạch là các hệ thống nhúng Các SoC này thường được phát triển nhờ phương pháp thiết kế vi mạch điển hình

là thiết kế hệ thống VLSI

So sánh chung giữa các công nghệ logic số

Sự phức tạp khi sử dụng, thời gian thiết kế, cũng như độ phức tạp của ứng dụng là khác nhau đối với mỗi loại công nghệ logic số

Việc phát triển vi mạch VLSI đa dụng cũng như SoC cho một thiết kế ở mức transistor có thể mất tới vài năm cho việc thiết kế và kiểm tra Do đó công nghệ này phù hợp cho việc phát triển những loại cấu kiện có số lượng cao nhất, hiệu năng cao nhất, đa dụng nhất ví dụ như vi xử lý, bộ nhớ, vi điều khiển sử dụng trong trong các hệ máy tính cũng như trong các hệ thống số khác

Giá thành và thời gian phát triển sản phẩm dùng ASIC giảm hơn công nghệ thiết kế VLSI, tuy vậy vẫn cần thời gian và chi phí phát triển cho công đoạn sản xuất cuối cùng ở nhà máy Việc kiểm tra được thực hiện bởi người sử dụng sau công đoạn sản xuất cuối cùng đó, nên nếu có bất kỳ lỗi thiết kế nào cũng sẽ dẫn đến việc tăng thời gian và giá thành phát triển Công nghệ này thích hợp với phát triển các sản phẩm có số lượng và thời gian sống lớn

Sử dụng Công nghệ Cấu kiện chuẩn, mà điển hình là sử dụng Vi xử lý, Vi điều khiển, và Công nghệ logic khả trình (điển hình nhất là CPLD và FPGA) rất thích hợp cho yêu cầu phát triển sản phẩm nhanh, số lượng không lớn và có mật độ tích hợp cũng độ phức tạp không quá lớn, và đặc biệt tiện lợi trong giai đoạn nghiên cứu phát triển, chế thử sản phẩm Tuy nhiên sự cân bằng về hiệu năng và tính kinh tế giữa ASIC, CPLD, FPGA,

Vi xử lý sẽ liên tục thay đổi với mỗi thế hệ cấu kiện và công cụ thiết kế mới

Tóm lại trong số các công nghệ logic số hiện nay, công nghệ Cấu kiện chuẩn là lựa chọn khá thích hợp cho việc phát triển các hệ thống số không quá phức tạp, với số lượng không lớn, thời gian phát triển nhanh, nhất là ở những nước có nền công nghiệp điện tử cũng như sản xuất vi mạch mới phát triển như Việt Nam và đặc biệt là trong môi trường giáo dục

1.3.2 So sánh các loại cấu kiện chuẩn

Các cấu kiện chuẩn phổ biến nhất hiện nay dùng cho phát triển các hệ thống số gồm các công nghệ sau: Cấu kiện logic chuẩn, ASSP, MCU, RISC/GPP, DSP, Vi xử lý

Trang 18

Các công nghệ đều nhằm đáp ứng lợi ích người dùng là thiết bị phải nhỏ hơn, nhanh hơn, thông minh hơn, tiêu thụ ít năng lượng hơn, tương tác được với nhau nhưng cũng làm các nhà thiết kế bối rối nhiều hơn khi lựa chọn công nghệ thích hợp cho sản phẩm của mình Tiêu chí để đánh giá so sánh chúng bao gồm:

- Thời gian đưa sản phẩm ra thị trường ***

(Các dấu (*) xác định tầm quan trọng của các tiêu chí)

Thời gian đưa sản phẩm ra thị trường: đây là tiêu chí quan trọng nhất trong một

chu trình phát triển, từ vài năm đến vài tháng Theo bài báo “Mind of the Engineer” của Cahners thì thậm chí Thời gian ra thị trường còn điều khiển cả nền công nghiệp

Hiệu năng thực hiện: là tiêu chí quyết định năng lực của sản phẩm Tăng hiệu năng

thực hiện sẽ thêm chức năng và tốc độ cao hơn, cũng như giảm kích thước và đạt chất lượng cao hơn Hiệu năng thực hiện có thể đo bằng nhiều cách, nói chung là số triệu thao tác trên một giây (MIPS), số triệu phép nhân trên một giây (MMACS); hoặc, đôi khi, đơn giản hơn đo bằng số chu kỳ clock trên một giây (MHz)

Giá thành: thường là tiêu chí hiển nhiên nhất, nhưng trong đa số trường hợp vẫn

xếp sau Thời gian ra thị trường và Năng lực thực hiện Nói chung số lượng sản phẩm và khách hàng càng nhiều thì tiêu chí này càng được đẩy lên cao và giá càng thấp

Dễ phát triển: tiêu chí này đi cùng với hỗ trợ phát triển, công cụ phát triển, giá phát

triển và có thể phân chi tiết thành Hỗ trợ kỹ thuật, Đào tạo kỹ thuật, Trang web có giá trị của thành phần thứ ba, Công cụ phần mềm, Tài liệu, Thời gian thiết kế.Rõ ràng là càng nhiều hỗ trợ kỹ thuật thì người kỹ sư thiết kế càng có điều kiện tập trung vào công việc sáng chế của mình, thay vì phải tự nghiên cứu thì anh ta có thể thuê ý kiến của các chuyên gia Công cụ phát triển cũng là chìa khóa để thiết kế Các công cụ mạnh như DSP Starter Kits, Môi trường phát triển tích hợp, Compiler và Công cụ cho phần cứng đích giúp thiết kế trực quan và dễ dàng hơn Tất cả những điều đó đều cho phép rút ngắn đáng

kể thời gian phát triển và thời gian ra thị trường, cũng đồng nghĩa với giảm tổng chi phí phát triển và hạ giá thành sản phẩm

Năng lượng tiêu thụ: Tiêu chí này quan trọng trong các sản phẩm xách tay như điện

thoại di động Năng lượng tiêu thụ thấp tức là thời gian sống của ắcquy kéo dài – mối quan tâm lớn của người dùng cuối Năng lượng tiêu thụ thấp cũng làm giảm phát xạ nhiệt, điều này có ý nghĩa lớn trong các thiết bị kín vì nhiệt độ trong vỏ kín tăng cao sẽ là nhân tố giảm mật độ kênh hoặc một số chức năng của thiết bị

Trang 19

Tính mềm dẻo: là khả năng sửa đổi hay tăng thêm chức năng cho thiết bị khi có yêu

cầu Chẳng hạn các thiết bị làm việc theo chuẩn (như chuẩn truyền thông hay chuẩn nén) được tung ra thị trường trong khi chuẩn còn đang tạm thời Như thế các nhà thiết kế cần tính toán sao cho sản phẩm có khả năng upgrade một cách dễ dàng và nhanh chóng khi chuẩn đã được phê chuẩn

Sau đây chúng ta sẽ phân tích các công nghệ với từng tiêu chí kể trên

1 Công nghệ logic chuẩn

Ưu điểm của việc sử dụng công nghệ logic chuẩn này là:

- Thực hiện thiết kế đơn giản

- Chi phí phát triển ứng dụng thấp

- Thay đổi nhanh xung quanh bản thiết kế

- Tương đối dễ thử nghiệm các mạch

Nhược điểm:

- Các yêu cầu về kích thước trong bảng mạch lớn

- Khó tạo được những mạch ứng dụng phức tạp

- Yêu cầu về điện lớn

- Thiếu tính bảo mật (Các bảng mạch có thể bị sao chép)

- Các yêu cầu về chi phí bổ sung, khoảng trống, điện…cần thiết để chỉnh sửa bản thiết

kế hoặc bổ sung các tính năng khác

Giá thành của ASSP được coi là tốt cho loạt sản phẩm nhỏ, tuy nhiên kém hơn chút

ít so với DSP

Năng lượng tiêu thụ của ASSP được coi là rất tốt khi nó được thiết kế tối ưu cho ứng dụng xác định Tuy nhiên nếu thay vì Năng lượng tiêu thụ mà thiết kế hướng đến Giá thành thì tiêu chí này thua DSP

Khả năng dễ phát triển của ASSP được coi là khá, vì giả thiết một số khó khăn khi thiết kế các đặc điểm riêng biệt làm chậm quá trình phát triển Tài liệu phát triển chung không tốt vì ASSP định hướng cho thiết kế chuyên dụng

Trang 20

Tính mềm dẻo của ASSP bị coi là kém vì ngay từ đầu ASSP đã định hướng cho các sản phẩm đích xác định

3 Công nghệ MCU

MCU (Microcontroller): vi điều khiển

Thời gian ra thị trường của MCU được coi là rất tốt, cũng như DSP, RISC Về xử

lý thời gian thực thì mặc dù MCU không thật tốt nhưng do nó được phổ biến rất rộng rãi, cũng như có rất nhiều công cụ và các trang web có giá trị nên MCU được xếp đứng hàng thứ hai

Về Năng lực thực hiện MCU được coi là khá So với RISC/GPP thì tài nguyên để thực hiện các phép toán của MCU nhỏ hơn và tần số làm việc cũng chậm hơn

Giá thành của MCU là rất tốt do nói chung MCU là các chip nhỏ tương đối rẻ và đứng hàng thứ hai sau ASIC

Về Năng lượng tiêu thụ thì MCU được đánh giá là khá MCU tiêu thụ ít năng lượng hơn RISC và FPGA do nó sử dụng ít tài nguyên silicon hơn Tuy nhiên kém DSP, ASSP

và bộ xử lý có thể cấu hình

Tính Dễ phát triển của MCU được đánh giá là tốt Khả năng lập trình được của các chip MCU đang có cho phép phát triển các chức năng theo nhu cầu nhanh hơn đối với ASIC hoặc các chip chuyên dụng cho ứng dụng xác định Sử dụng đúng ngôn ngữ lập trình bậc cao và/hoặc sử dụng các mô-đun code chuẩn có thể giảm đáng kể, dẫn đến hạ giá thành phát triển

Về việc hỗ trợ phát triển, hầu hết các nhà cung cấp MCU đều có mạng lưới giúp đỡ tốt, tuy vậy không được đánh giá là rất tốt vì nhiều mạng này đơn thuần là các ứng dụng nhúng mà không phải ứng dụng thời gian thực

Tính mềm dẻo MCU được đánh giá là rất tốt, tương tự như các chip có thể lập trình

4 Công nghệ GPP

GPP (General Purpose Processor) - Bộ xử lý mục đích chung

Thời gian ra thị trường của GPP được coi là tốt, cũng như DSP, các bộ xử lý cấu hình được và MCU Đối với xử lý tín hiệu thời gian thực, GPP đứng hàng thứ ba sau MCU Tuy nhiên nó không đủ mạnh cho các ứng dụng thời gian thực và không định hướng cho các ứng dụng nhúng mà mục tiêu tập trung vào máy tính để bàn

Hiệu năng thực hiện của GPP được coi là tốt Tần số làm việc cao, tăng hiệu suất

xử lý tín hiệu Tuy vậy do không có các lệnh thực hiện phép toán trong một chu kỳ và không có các khối nhân làm việc thực hiện thời gian thực của nó bị giới hạn

Giá thành của GPP được coi là khá Các bộ xử lý GPP tốt với các ứng dụng để bàn, nhưng về mặt giá thì chỉ được coi là khá với xử lý tín hiệu thời gian thực

Trang 21

Năng lượng tiêu thụ của GPP được đánh giá là khá, xếp dưới so với DSP, ASSP hay các bộ xử lý cấu hình lại

Khả năng dễ phát triển của GPP được đánh giá là tốt Khả năng lập trình được của GPP đang có cho phép phát triển các chức năng theo nhu cầu nhanh hơn đối với ASIC hoặc các chip chuyên dụng cho ứng dụng xác định Sử dụng đúng ngôn ngữ lập trình bậc cao và/hoặc sử dụng các mô-đun code chuẩn có thể giảm đáng kể, dẫn đến hạ giá thành phát triển

Về giúp đỡ phát triển, có những hỗ trợ chung cho các nhà thiết kế GPP, nhưng không có những hỗ trợ cho một ứng dụng xác định nào cũng như không có hỗ trợ về thời gian thực do kiến thức của những nhà cung cấp GPP về các nội dung này không mạnh Tính mềm dẻo của GPP được đánh giá là rất tốt so với thực hiện bằng phần cứng, giống như các loại có khả năng lập trình khác

5 Công nghệ DSP

DSP (Digital Signal Processor): Bộ xử lý tín hiệu số

Thời gian ra thị trường của DSP được coi là rất tốt Các bộ xử lý có thể lập trình như DSP, RISC và MCU đều có khả năng lập trình bằng phần mềm để có được các chức năng và đặc điểm khác nhau, tiết kiệm thời gian so với các thực hiện tương tự bằng phần cứng Trong ba loại kể trên thì thì DSP được coi là tốt nhất và cũng vì thế mà công cụ và thông tin dành cho DSP cũng nhiều nhất

Năng lực thực hiện của DSP được coi là rất tốt Các DSP có cấu trúc multi-MAC VLIW như TMS320C6000 có tốc độ MIPS rất cao

Về Giá thành DSP được coi là tốt, không rẻ như ASIC nhưng không quá cao so với MCU

Năng lượng tiêu thụ của DSP được coi là rất tốt, nhất là với loại DSP được thiết kế đặc biệt cho tiêu chí này cho các ứng dụng xách tay như TMS320C5000

Tính Dễ phát triển được đánh giá là rất tốt Các nhà cung cấp DSP có một mạng lưới thành phần thứ ba cho mọi lĩnh vực để giúp phát triển DSP, từ các chuyên gia cố vấn cho phần cứng, phần mềm, đến hệ thống

Cũng vậy, có các công cụ phát triển DSP rất mạnh, dễ sử dụng Có mạng lưới hỗ trợ kỹ thuật và các kỹ sư am hiểu luôn sẵn sàng giúp đỡ khách hàng đạt được các thiết kế thời gian thực của mình

Về giá thành phát triển, khả năng lập trình của DSP cho phép chu kỳ phát triển nhanh hơn so với các chip định hướng cho ứng dụng xác định hoặc ASIC Sử dụng đúng ngôn ngữ lập trình bậc cao kết hợp các mô-đun code chuẩn sẽ rút ngắn đáng kể thời gian phát triển, và như vậy tiết kiệm giá thành

Trang 22

Tính mềm dẻo của DSP là rất tốt, nhất là so với các thực hiện tương tự bằng phần cứng Đối với xử lý tín hiệu thời gian thực, có nhiều công cụ tốt và thích đáng nhất cũng như có nhiều trang web có giá trị dành cho DSP hơn so với RISC và MCU

6 Công nghệ Configurable Processor

Configurable Processor: Bộ xử lý có khả năng cấu hình

Thời gian ra thị trường bị coi là kém, nhưng Năng lực thực hiện lại được đánh giá

là rất tốt do có thể cấu hình đặc biệt cho ứng dụng xác định

Về Giá thành và Năng lượng tiêu thụ được coi là tốt Về tính Dễ phát triển thì kém Tính mềm dẻo được đánh giá là khá: có thể thay đổi cấu hình để có được đặc điểm mới, tuy nhiên do định hướng cho ứng dụng xác định nên sau khi đã đưa ra vào sử dụng thì tính mềm dẻo trở nên kém

7 Công nghệ FPGA

FPGA (Field Programmable Gate Array): mảng cổng có thể lập trình theo yêu cầu Thời gian ra thị trường của FPGA được đánh giá là tốt Có thể modify các trường của FPGA để được các chức năng khác nhau, nhưng không mềm dẻo như lập trình bằng phần mềm của DSP, MCU và RISC trong góc độ đưa ra thị trường Tuy nhiên FPGA được hỗ trợ tốt hơn và chu kỳ thời gian nhanh hơn ASSP, các bộ xử lý có thể cấu hình và ASIC và như thế có thể coi tiêu chí Thời gian ra thị trường của FPGA tốt hơn

Năng lực thực hiện của FPGA được đánh giá là rất tốt vì các nhà phát triển có thể

vi chỉnh đến các cổng hardware của FPGA cho sát với ứng dụng

Về Giá thành thì FPGA bị coi là kém, đắt hơn nhiều so với 6 loại còn lại

Về Năng lượng tiêu thụ cũng bị đánh giá là kém nhất so với các loại khác do đặc điểm của công nghệ FPGA và do các cổng không dùng đến tiêu thụ năng lượng quá mức Công nghệ mới ngày nay đã giảm năng lượng tiêu thụ của FPGA nhưng dường như vẫn chưa đủ để xếp FPGA vào hàng ngũ các loại hiệu quả về Năng lượng tiêu thụ

Về Dễ phát triển, FPGA được coi là rất tốt Giá phát triển sẽ là tốt nhất với giả thiết

2 điều kiện: 1) công cụ lập trình FPGA không quá đắt; và 2) các nhà phát triển căn bản phải thông thạo phần cứng Nếu các nhà phát triển là các kỹ sư thiên về phần mềm thì phải nỗ lực nhiều và tăng giá thành

Về hỗ trợ cho phát triển thì các công cụ và cấu trúc cho thiết kế FPGA khá tốt và

có khả năng chấp nhận OEM

Tính mềm dẻo của FPGA được coi là tốt Nó có thể được cấu hình lại để tăng thêm hoặc thay đổi đặc điểm Tuy nhiên lập trình lại phần cứng khó hơn và các chức năng thêm cũng hạn chế hơn so với các giải pháp lập trình phần mềm như DSP

1.4 QUY TRÌNH THIẾT KẾ VI ĐIỆN TỬ

Như đã trình bày ở trên, Thiết kế vi điện tử bao gồm là quá trình thiết kế những thành phần tạo lên mạch điện tử như: Linh kiện cơ bản Transistor, tụ điện, điện trở,

Trang 23

diode, Mạch tích hợp (IC), IP core Hiện nay các thiết kế vi điện tử chủ yếu được thực hiện ở mức thiết kế layout, ASIC, hệ thống VLSI, Cấu hình phần cứng cho PLD Quá trình thiết kế có thể được thực hiện tự động bởi phần mềm EDA (Electronic Design Automation - Tự động thiết kế điện tử) Một số phần mềm EDA nổi tiếng như MentorGraphic, Cadence, ADS, ISE

Quy trình thiết kế vi điện tử nói chung được bắt đầu từ việc xác định chỉ tiêu kỹ thuật của chíp và trải qua một loạt các bước để đi đến cuối cùng là tạo ra bản thiết kế vật

lý cho phép sản xuất và đóng gói chíp (Thực hiện chíp) Quy trình thiết kế vi điện tử cho một Chíp số gồm có các bước cơ bản sau:

1 Design Idea (Ý tưởng thiết kế)

Xây dựng ý tưởng và mô hình hệ thống, các yêu cầu của hệ thống trong ứng dụng Xây dựng ý tưởng thiết kế, mô hình thiết kế

2 Behavioral Design (Thiết kế chức năng)

Thiết kế hệ thống ở mức chức năng hoạt động của hệ thống, kết quả của quá trình này có thể là các Flow Graph, Flow chart, hay các Pseudocode, Trong giai đoạn này chúng ta chỉ xác định các chức năng chung của hệ thống, các lối vào và lối ra Chưa xây dựng kiến trúc cụ thể hay các khối chức năng cụ thể của hệ thống

3 Data Path Design (Thiết kế cấu trúc đường dữ liệu)

Xây dựng kiến trúc của hệ thống theo mô hình RTL (Register-Transfer Level) gồm cấu trúc Bus, Cấu trúc thanh ghi, Các khối lôgic cần thiết, các thủ tục điều khiển Bus để thực hiện truyền thông giữa các khối trong hệ thống, cũng như kiến trúc tập lệnh Các thành phần được xây dựng trong bước này như sau:

o Bộ thanh ghi và hàm chuyển đổi (Mô hình đường dữ liệu Data Path)

o Máy trạng thái (Xây dựng bộ điều khiển theo Mô hình FSM)

Trang 24

o Tập các kết nối giữa các khối chức năng (Mô hình kết nối cấu trúc)

o Kiến trúc tập lệnh điều khiển hoạt động của của hệ thống

4 Logic Design (Thiết kế mạch logic)

Tạo ra Gate Wirelist, Netlist,

Trong giai đoạn này chúng ta sử dụng các cấu trúc logic cơ bản, các flip-flop để xây dựng các thanh ghi dữ liệu, bus, các khối logic và các mạch điều khiển các khối đó Kết quả cuối cùng là chúng ta thu được một netlist gồm các gate và flip-flop cơ bản Phần này chưa đề cập đến công nghệ chế tạo gate và các vấn đề khác liên quan đến gate

5 Physical Design (Thiết kế mạch mức vật lý)

Tạo ra Transistor List, Layout,

Trong khâu này, chúng ta thay thế các gate và các flip-flop bằng các transistor tương đương hoặc các cell trong thư viện cấu trúc linh kiện trong phần mềm thiết kế Bên cạnh đó chúng ta phải xét đến các vấn đề về loading và timing trong quá trình chọn lựa Transistor Bản thiết kế layout cho phép chuyển sang khâu sản xuất để chế tạo hệ thống

số (chíp số) Đó có thể là bản thiết kế cấu hình để cấu hình các Chíp FPGA (công nghệ FPGA) hay tạo ra một IC mask để đặt lên một wafer (công nghệ ASIC hay hệ thống VLSI)

1.5 VAI TRÒ CỦA THIẾT KẾ VI ĐIỆN TỬ SỬ DỤNG HDL

Ngày nay, các mạch tích hợp có mật độ ngày càng lớn và ngày càng thực hiện được nhiều chức năng, hệ thống điện tử nói chung, hệ thống số nói riêng ngày trở lên phức tạp

Do đó, vấn đề thiết kế mạch càng trở nên phức tạp Để thực hiện được các bước thiết kế

từ 1 đến 4 như trong quy trình thiết kế Chip số ở trên, 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 thực hiện thủ công không có bất kỳ sự trợ giúp nào của máy tính Người thiết kế chỉ có thể sử dụng máy tính làm công cụ hỗ trợ trong việc vẽ sơ đồ mạch của hệ thống và chuyển từ sơ đồ mạch sang

Trang 25

công cụ tổng hợp mạch logic cũng như mạch vật lý dùng các công cụ tổng hợp

“Synthesis”

Một nhược điểm khác nữa của phương pháp thiết kế truyền thống là sự giới hạn về

độ phức tạp của hệ thống được thiết kế Phương pháp dùng hàm Boolean chỉ có thể dùng

để thiết kế hệ thống lớn nhất biểu diễn bởi vài trăm hàm Còn phương pháp dựa trên sơ

đồ chỉ có thể dùng để thiết kế hệ thống lớn nhất chứa khoảng vài nghìn phần tử

Hình 1.5 – Quy trình thiết kế truyền thống và thiết kế dùng HDL

Nhờ sự trợ giúp đắc lực của máy tính, phương pháp thiết kế, thử nghiệm, phân tích các hệ thống số sử dụng các ngôn ngữ mô tả phần cứng nổi bật lên với các ưu điểm hơn hẳn và sẽ dần thay thế các phương pháp truyền thống Sự ra đời của ngôn ngữ mô tả phần

cứng HDL (Hardware Description Language) đã giải quyết được rất nhiều nhược điểm

lớn của các phương pháp thiết kế trước đây: Nếu các phương pháp cũ đòi hỏi phải chuyển đổi từ mô tả hệ thống (các chỉ tiêu về chức năng) sang tập hợp các hàm logic bằng tay thì bước chuyển đó hoàn toàn không cần thiết khi dùng HDL Hầu hết các công

cụ thiết kế dùng ngôn ngữ mô phỏng phần cứng đều cho phép sử dụng đồ hình trạng thái cho các hệ thống tuần tự cũng như cho phép sử dụng bảng chân lý cho hệ thống mạch tổ hợp Việc chuyển đổi từ các biểu đồ trạng thái, hay bảng chân lý sang mã ngôn ngữ mô phỏng phần cứng được thực hiện hoàn toàn tự động nhờ phần mềm thiết kế trên máy tính So sánh hai quy trình thiết kế truyền thống và thiết kế dùng HDL như Hình 1.5

Mô tả yêu cầu chức năng mạch số

Mô tả bằng hàm Boolean

Sơ đồ mạch nguyên lý (Schematic)

Tổng hợp thành mạch số

Mô tả bằng HDL

Trang 26

Nhờ tính dễ kiểm tra thử nghiệm hệ thống trong suốt quá trình thiết kế dùng HDL

mà người thiết kế có thể dễ dàng phát hiện các lỗi thiết kế ngay từ những giai đoạn đầu, giai đoạn chưa đưa vào sản xuất thử, do đó tiết kiệm được lượng chi phí đáng kể bởi từ ý tưởng thiết kế đến tạo ra sản phẩm đúng như mong muốn là một việc rất khó tránh khỏi những khó khăn, thất bại

Khi mọi lĩnh vực của khoa học đều phát triển không ngừng thì sự phức tạp của hệ thống điện tử cũng ngày một tăng theo và gần như không thể tiến hành thiết kế thủ công

mà không có sự trợ giúp của các loại máy tính hiện đại Ngày nay, ngôn ngữ mô tả phần cứng HDL được dùng nhiều để thiết kế vi điện tử từ các thiết bị logic khả trình PLD loại đơn giản đến các loại phức tạp như FPGA, cũng như thiết kế hệ thống VLSI

Hình 1.6 –Mô tả mạch nguyên lý và mô tả VHDL cho mạch Cộng toàn tổng (FullAdder)

Trong quá trình thiết kế có sự trợ giúp của máy tính, bước nhập thiết kế là bước quan trọng và tốn nhiều công sức nhất, nó quyết định phần lớn đến kết quả của công việc thiết kế Các công cụ thiết kế hỗ trợ nhiều phương pháp nhập thiết kế khác nhau, tuy nhiên phương pháp nhập thiết kế dùng ngôn ngữ mô tả phần cứng HDL là ưu việt hơn cả

và được sử dụng chủ yếu trong quá trình thiết kế số nói chung và thiết kế cho CPLD/FPGA nói riêng Hiện nay có nhiều ngôn ngữ HDL được sử dụng (như VHDL, VERILOG, ABEL…), tuy nhiên trong tài liệu này chỉ giới thiệu phương pháp thiết kế dùng ngôn ngữ VHDL và giới thiệu những đặc điểm của VHDL khiến nó được trở thành

Mạch nguyên lý mạch FullAdder

Mã VHDL mô tả cấu trúc,

hoạt động của mạch FullAdder

ENTITY FullAdder IS

PORT (Ai, Bi, Ci1: IN BIT;

Si, Ci: OUT BIT);

END FullAdder;

ARCHITECTURE dataflow OF

FullAdder IS

BEGIN

Si<= Ai XOR Bi XOR Ci1;

Ci<=(Ai AND Bi) OR (Ai AND

Ci1) OR (Bi AND Ci1);

END dataflow;

Mạch số FullAdder

Trang 27

một ngôn ngữ HDL không những được giảng dạy và sử dụng ở nhiều trường đại học trên thế giới mà còn được sử dụng bởi hãng điện tử lớn

Tóm lại người sử dụng có thể dùng VHDL để mô tả cấu trúc và hoạt động của một mạch số, sau đó mã VHDL này có thể dùng để mô phỏng hoạt động của mạch số trên máy tính, hay được tổng hợp thành file netlist rồi được ánh xạ đến một phần cứng thực dùng công nghệ logic số nào đó để thực hiện mạch số như đã mô tả Ví dụ mô tả VHDL cho mạch cộng toàn tổng như Hình 1.6

1.6 LƯU ĐỒ THIẾT KẾ VI ĐIỆN TỬ DÙNG HDL

Thiết kế vi điện tử là quá trình phức tạp, gồm nhiều bước cho phép biến những ý tưởng thiết kế thành bản thiết kế layout cho cấu trúc của Chíp cho phép thực hiện sản xuất và đóng gói Chíp theo bản thiết kế đó Hiện nay các thiết kế vi điện từ chủ yếu được thực hiện trên các phần mềm EDA sử dụng ngôn ngữ mô tả phần cứng HDL Lưu đồ thiết kế của chúng cũng thay đổi so với lưu đồ thiết kế truyền thống Nhiều công đoạn thiết kế được thực hiện tự động trên phần mềm Lưu đồ thiết kế vi điện tử dùng VHDL điển hình như Hình 1.7, trong đó gồm các công đoạn chính như sau:

- Thiết kế logic

- Tổng hợp thiết kế (Synthesis)

- Thiết kế mức vật lý (Physical Design)

- Kiểm tra thiết kế (Verification)

1.6.1 Thiết kế logic

Từ ý tưởng thiết kế (các chỉ tiêu kỹ thuật, tính năng, tham số, … của hệ thống), người thiết kế thực hiện phân tích thiết kế và thực hiện các bước thiết kế ở các mức khác nhau kiến trúc hệ thống, chức năng hoạt động, cấu trúc đường dữ liệu, cũng như như cấu trúc logic của hệ thống,… và từ đó sử dụng ngôn ngữ HDL để mô tả lại thiết kế ở các mức độ trừu tượng cao Kết quả của bước thiết kế logic là file mô tả HDL có thể tổng hợp cho hệ thống Trong giáo trình này sẽ tập chung chủ yếu bước thiết kế logic dùng HDL này

1.6.2 Tổng hợp thiết kế (Synthesis)

Đây là bước mô tả hệ thống cấu trúc hệ thống ở mức độ trừu tượng thấp Kết quả bước này là các file netlist mô tả cấu trúc của hệ thống ở mức cổng dưới dạng các cấu trúc logic cơ bản (cổng logic cơ bản, Flop-Flops,…), bước tổng hợp thường được thực hiện tự động bằng các công cụ tổng hợp của các phần mềm EDA từ các mô tả HDL của

hệ thống ở mức trừu tượng cao như mô hình hoạt động, mô hình RTL,… Để dễ dàng cho quá trình thực hiện và quản lý, bước tổng hợp thiết kế còn được chia thành các bước nhỏ như:

Trang 28

+ Tổng hợp mức cao: biến đổi các mô tả ở mức giả thuật, hệ thống, hành vi thành

mô tả mức truyền đạt thanh ghi RTL Do sự biến đổi phức tạp nên bước này nên chỉ giới hạn ở những giải thuật đơn giản và có phạm vi ứng dụng nhất định

+ Tổng hợp mức truyền đạt thanh ghi RTL: Phân tích các mô tả chức năng hoạt động ở mức RTL, tìm và thay thế những cấu trúc mức RTL để thực hiện chức năng hoạt động đó Bước này cũng nên thực hiện với mức độ tối ưu hạn chế để giảm số lượng các cấu trúc được sử dụng

+ Tổng hợp mức cổng: Tương tự tổng hợp mức RTL, nhưng các cấu trúc cổng được lựa chọn để thực hiện các mô tả chức năng hoạt động ở mức RTL Sau khi mạch đã được tổng hợp, có thể cần thiết thưc hiện bước tối ưu ở nhiều cấp độ khác nhau dê tối thiểu hóa kích thước của mạch cũng như để phù hợp với những ràng buộc về định thời Các cấu trúc cơ bản được sử dụng cho tổng hợp mức cổng nên kết quả của nó độc lập với công nghệ thực hiện mạch Thông thường đây là bước cuối cùng của quá trình tổng hợp + Ánh xạ theo công nghệ logic số: Để tối ưu cho bước tổng hợp thiết kế, bước này

có thể được thực hiện thêm vào để chuyển những mô tả hệ thống ở mức cổng cơ bản sang sử dụng những phần tử, cấu trúc cơ bản đã được thiết kế trước ứng với công nghệ logic thực hiện mạch số, như vậy kết quả của bước tổng hợp phụ thuộc vào công nghệ thực hiện mạch

1.6.3 Thiết kế mức vật lý (Physical Design)

Thiết kế mức vật lý gồm 2 phần chính: Phần thứ nhất là quá trình sàn lọc giữa mô hình cấu trúc và mô hình vật lý đẻ tạo ra layout cho netlist Bước thứ 2 là phân tích và điều chỉnh các đặc tính điện cảu mạch Như vậy thiết kế mức logic gồm có các nhiệm vụ :Phân vùng (Floor planning), Đặt (Placement), Định tuyến (Routing), Rút gọn mạch (Circuit Extraction)

+ Phân vùng (Floor planning): tạo ra layout mức RTL và hệ thống Hệ thống được phân chia thành các khối chức năng và đặt chúng vào các vị trị phù hợp để thuận lợi cho việc định tuyến sau này và đạt mục tiêu định thời nhất định

+ Đặt và Định tuyến ((Placement and Routing) : tạo ra layout ở mức cổng, bao gồm các vị trí của cổng cũng như định tuyến cho các đường kết nối giữa chúng

+ Rút gọn mạch (Circuit Extraction): Thực hiện rút gọn chiều dài, vị trí của mỗi kết nối xác định, và tính toán các tham số điện dung, điện cảm ký sinh…

Trang 29

Hình 1.7 – Lưu đồ thiết kế Vi điện tử dùng HDL

1.6.4 Kiểm tra thiết kế (Verification)

Bước này được thực hiện để xác định xem các thiết kế ở các mức có thỏa mãn các mục tiêu thiết kế hay không Bước này được thực hiện bằng mô phỏng ở các giai đoạn khác nhau gồm: Mô phỏng chức năng (thực hiện trước khi tổng hợp), mô phỏng sau tổng hợp, mô phỏng và phân tích định thời (thực hiện sau bước thiết kế mức vật lý)

Logic Design Synthesis Physical Design Verification

Thiết kế logic

nestlist

Tổng hợp thiết kế

Mô phỏng chức năng Testbench

Sản xuất và đóng gói Testing

Mô tả HDL

Trang 30

1.6.5 Sản xuất và đóng gói

Đây là quá trình đưa các thiết kế vật lý vào chíp Đó là quá trình nạp cấu hình cho chip trong công nghệ PLD, hay tạo các mặt lạ (IC mask) để xác định các khoảng không gian trên tấm wafer mà vùng đó được lắng đọng, khuếch tán, hay loại bỏ để tạo ra các lớp bán dẫn, điện cực được sắp xếp phù hợp theo bản thiết kết vật lý để tạo ra cấu trúc bán dẫn của hệ thống Sau đó các wafer được cặt thành các chip riêng rẽ Mỗi chip được đóng gọi và kiểm tra (Testing) để đảm bảo ràng chúng thỏa mãn các chỉ tiêu kỹ thuật thiết kế cũng như hoạt động đúng với chức năng thiết kế

1.7 CÁC PHẦN MỀM EDA HỖ TRỢ THIẾT KẾ LOGIC SỐ DÙNG HDL

Phần mềm

EDA

Hãng sản xuất

Ngôn ngữ HDL hỗ trợ Công nghệ logic số

hỗ trợ

Active-HDL Aldec VHDL,Verilog,SystemC,system

verilog,EDIF

FPGA,ASIC Quartus Altera VHDL,VerilogHDL,systemverilog CPLD,FPGA , ASIC

Spectrum Graphic Mentor system verilog,VHDL, verilog CPLD,FPGA

Synplify pro Synplicity VHDL,Verilog, system

verilog,systemC

CPLD, FPGA CPLD,FPGA,PLDs ISE Design

Suite

Trang 31

CHƯƠNG 2 – CẤU KIỆN LOGIC KHẢ TRÌNH (PLD)

 Giới thiệu chung về công nghệ logic khả trình (PLD)

 Giới thiệu phương pháp thiết lập cấu hình cho CPLD/FPGA

 Yêu cầu chung khi thiết kế với CPLD/FPGA

 Lưu đồ thiết kế cho CPLD/FPGA

2.1 GIỚI THIỆU CHUNG VỀ CÔNG NGHỆ LOGIC KHẢ TRÌNH (PLD)

Vào cuối thập kỷ 70, các thiết bị logic chuẩn xuất hiện ồ ạt, đi kèm với đó là sự xuất hiện mạch in Người ta đặt ra câu hỏi: “Chuyện gì xảy ra nếu người thiết kế có thể thực hiện các kết nối khác nhau trong một thiết bị lớn hơn?” Điều này cho phép người thiết kế tích hợp nhiều thiết bị logic chuẩn trong một linh kiện Để có thiết kế linh hoạt nhất, nhà sản xuất Ron Cline từ Signetics (sau này được Philips và thậm chí cả Xilinx) đưa ra ý tưởng dùng hai ma trận kết nối khả trình Hai ma trận kết nối khả trình này có thể tổ hợp tuỳ ý giữa các cổng AND và cổng OR, đồng thời cho phép nhiều cổng OR cùng sử dụng chung một cổng AND Kiến trúc này rất linh hoạt, nhưng tại thời điểm đó, trễ lan truyền từ đầu vào tới đầu ra (Tpd) khá cao (do cấu trúc 10µm) nên thiết bị hoạt động tương đối chậm Và dạng công nghệ logic khả trình đầu tiên xuất hiện chính là SPLD Sau này công nghệ CPLD và FPGA ra đời có mật độ tích hợp cao hơn, cấu trúc linh hoạt hơn cho phép tạo ra nhiều mạch logic phức tạp hơn

Vi mạch lập trình, viết tắt là PLD (Programmable Logic Device), là loại cấu kiện điện tử có nhiều ưu điểm và hiện nay đang được phát triển rất mạnh Về nguyên lý, chúng có cấu tạo rất giống với PROM Việc lập trình cho PLD có thể được thực hiện bằng các công nghệ khác nhau, dựa trên cơ sở bẻ cầu chì hoặc chuyển mạch Tuy nhiên, ứng dụng của PLD lại rất khác với PROM Một PLD, được tạo thành bằng một số cổng AND, OR, XOR hoặc cả các Flip-Flop, có thể thực hiện nhiều hàm Boole khác nhau

2.1.1 SPLD

SPLD - cấu kiện logic khả trình đơn giản Đây là loại cấu kiện số có nhiều ưu điểm

và cũng đã được phát triển rất mạnh Về nguyên lý, chúng có cấu tạo rất giống với PROM Việc lập trình cho SPLD có thể được thực hiện bằng các công nghệ khác nhau, dựa trên cơ sở thực hiện các kết nối bằng cách sử dụng cầu chì hoặc chuyển mạch Một SPLD, được tạo thành bằng một số mảng cổng AND, OR, XOR hoặc cả các trigơ, có thể thực hiện nhiều hàm Boole khác nhau

Các SPLD đều có cấu tạo dựa trên một trong hai dạng cấu trúc chính: mảng logic khả trình PLA (Programmable Logic Array) và logic mảng khả trình PAL

Trang 32

Hình 2.1 - Kiến trúc PAL

Thành phần cơ bản của PLA là một mảng AND và một mảng OR lập trình được Mỗi mảng AND, OR gồm các hàng và các cột liên kết với nhau Tại mỗi điểm giao giữa hàng và cột, có một cầu chì Khi cầu chì đóng, tại điểm đó có kết nối giữa hàng và cột, khi cầu chì ngắt, tại đó không có kết nối Việc đóng ngắt cầu chì được thực hiện bằng phần mềm (do lập trình viên hoặc sử dụng công cụ lập trình trên hệ thống (ISP: In- System Programming)

Cấu trúc PLA tạo ra sự tổ hợp tùy ý giữa các cổng AND và OR, cho mật độ logic cao nhưng tốc độ chậm, số lượng cầu chì lớn Vì vậy, sau này người ta đã đưa ra một kiểu kiến trúc khác là logic mảng khả trình PAL (Programmable Array Logic)

Công nghệ PLD xuất hiện từ rất sớm với các công ty như Xilinx – sản xuất vi mạch CMOS công suất cực thấp dựa trên công nghệ Flash PLD dựa trên công nghệ Flash cho phép lập trình và xoá vi mạch nhiều lần bằng điện, nhờ đó tiết kiệm được thời gian so với xoá vi mạch bằng tia cực tím

Ví dụ việc lập trình ma trận kết nối cho PLA tạo ra mạch logic thực hiện các hàm F0, F1, F2, F3 như Hình 2.3:

F1 AB C

Đầu vào

Đầu ra Điểm kết nối

khả trình

Trang 33

Đầu ra

Trang 34

A B C

AB BC AC BC A

AB BC AC BC A

Hình 2.3 - Thực hiện mạch logic dùng PLA

2.1.2 CPLD (Complex PLD)

CPLD thuộc về dòng chip khả lập trình PLD nhưng thiết bị logic khả trình phức hợp (CPLD) có mật độ logic cao hơn so với các PLD đơn giản như đã xét ở trên (PLA và PAL) CPLD bao gồm nhiều mạch logic, mỗi mạch có thể coi là một SPLD Trong một mạch đơn chỉ thực hiện các chức năng logic đơn giản Các chức năng logic phức tạp hơn cần số lượng khối nhiều hơn, sử dụng ma trận liên kết chung giữa các khối để tạo kết nối CPLD thường dùng để điều khiển ghép cổng phức hợp ở tốc độ rất cao (5ns, tương đương với 200MHz) Kiến trúc cơ bản của CPLD được minh hoạ trong Hình 2.4

Hình 2.4 - Kiến trúc chung của CPLD

Trang 35

CPLD có cấu trúc đồng nhất gồm nhiều khối chức năng "Function Block" được

kết nối với nhau thông qua một ma trận kết nối trung tâm "Interconnect Array" Mỗi

khối chức năng gồm có một khối logic (logic block) - gồm các hạng tích AND và hạng

tổng OR sắp xếp giống như PLA hoặc PAL, cho phép thực hiện các hàm logic tổ hợp và nhiều khối MC (Macrocell) có chứa tài nguyên là các Trigơ cho phép xây dựng mạch số tuần tự như các thanh ghi và mạch tuần tự Phần lõi bên trong của CPLD được nối ra bên ngoài thông qua các khối vào/ra I/O cho phép thiết lập chức năng cho các chân của

IC có chức năng vào hoặc ra hoặc vừa là chân vào vừa là chân ra, ngoài ra còn có thể thiết lập các chân I/O này làm việc ở các mức logic khác nhau, có điện trở pull-up hoặc pull-down

Với cấu trúc đồng nhất, giá thành rẻ, tính năng khá mạnh, dễ sử dụng CPLD đã và đang được sử dụng rất rộng rãi trong thực tế, giúp cho nhà sản xuất phát triển nhanh sản phẩm của mình với giá thành rẻ Đặc biệt hiện nay các hãng đã phát triển các họ CPLD với tính năng rất mạnh, công suất tiêu thụ thấp, chúng đang được sử dụng rất nhiều để phát triển các sản phẩm điện tử, viễn thông, công nghệ thông tin, nhất là trong các thiết bị cầm tay, di động…

Trong thực tế rất có nhiều loại CPLD khác nhau, của các hãng khác nhau và đã được phát triển với nhiều chủng loại, thế hệ CPLD khác nhau Cấu tạo, dung lượng, tính năng, đặc điểm, ứng dụng… của mỗi loại CPLD cũng rất khác nhau Trong giáo trình này không đi sâu trình bày cấu tạo cụ thể của các họ CPLD, mà chỉ trình bày kiến trúc chung đơn giản nhất của CPLD Khi sử dụng cụ thể loại CPLD nào, người học nên tham khảo các tài liệu khác, nhất là tham khảo các tài liệu kỹ thuật được cung cấp kèm theo cấu kiện do các hãng đưa ra Các hãng điện tử nổi tiếng trên thế giới đang sở hữu, phát triển, cung cấp các loại cấu kiện CPLD là Xilinx, Altera…

2.1.3 FPGA

Trang 36

Hình 2.5 - Kiến trúc chung của FPGA

FPGA (Field Programmable Gate Array - Ma trận cổng lập trình được theo trường): có cấu trúc và hoạt động phức tạp hơn CPLD Nó có thể thực hiện những chức năng phức tạp ưu việt hơn CPLD Năm 1985, công ty Xilinx đưa ra ý tưởng hoàn toàn mới, đó là kết hợp thời gian hoàn thành sản phẩm và khả năng điều khiển được của PLD với mật độ và ưu thế về chi phí của GateArray Từ đó, FPGA ra đời Hiện nay, Xilinx vẫn là nhà sản xuất chip FPGA số một trên thế giới

Cấu trúc FPGA đơn giản gồm các tế bào logic (Logic Cell hay logic Block), các khối cách đều nhau, liên kết nhờ các đường kết nối có thể thay đổi được theo yêu cầu của người thiết kế Nghĩa là người thiết kế có quyền thiết kế, lập trình và thay đổi mạch điện Hiện nay, FPGA có mật độ khá cao, lên tới hàng trăm tỷ cổng và cấu trúc cũng đa dạng, phức tạp hơn Nhiều chức năng phức tạp đã được tích hợp sẵn để tăng hiệu quả sử dụng FPGA Ví dụ như ngoài những tế bào logic, nhiều họ FPGA đã được tích hợp thêm các khối chức năng khác như các bộ nhân cứng, khối nhớ, PLL, thậm chí cả một bộ vi xử lý mạnh…

Có hai loại FPGA cơ bản: Loại lập trình lại được, dựa trên công nghệ SRAM và loại lập trình một lần

Loại lập trình lại được (dựa trên SRAM):

Trang 37

Hình 2.6 Cấu trúc của tế bàologic đơn giản

Hai dạng này khác nhau về quy trình thực hiện tế bào logic và cơ chế được sử dụng

để tạo kết nối trong thiết bị

Chip FPGA lập trình một lần sử dụng phương pháp bẻ cầu chì (kết nối được tạo ra

bằng cách đóng cầu chì) để tạo kết nối tạm thời trong chip, do đó không cần SPROM

hoặc các phương tiện khác để nạp chương trình vào FPGA Tuy nhiên, mỗi lần thay đổi

thiết kế, phải bỏ hoàn toàn chip cũ đi Tế bào logic OTP tương tự như PLD với các cổng

và các trigơ định trước

Dạng FPGA quan trọng hơn và được dùng phổ biến hơn cả là dạng lập trình lại

được, dựa trên SRAM Trên thực tế, FPGA SRAM được lập trình lại mỗi khi bật nguồn,

vì FPGA là dạng chip nhớ tạm thời Do đó, mỗi chip FPGA đều cần có một bộ nhớ

PROM nối tiếp hoặc một bộ nhớ hệ thống

Trong tế bào logic SRAM, thay vì các cổng thông thường, người ta sử dụng bảng

ánh xạ (LUT) Bảng này xác định các giá trị đầu ra dựa trên các giá trị đầu vào, sử dụng

để xây dựng các hàm logic tổ hợp Trong sơ đồ “Tế bào logic SRAM” minh hoạ ở Hình

2.6, 16 tổ hợp khác nhau của 4 đầu vào sẽ xác định giá trị của đầu ra) Các ô nhớ SRAM

cũng được sử dụng để điều khiển kết nối

Bảng 2.1 - So sánh giữa CPLD và FPGA

CPLD FPGA

- Cấu trúc theo mảng các hạng tích - Cấu trúc dựa vào LUT

Trang 38

- Mảng kết nối trung tâm - Ma trận kết nối 2 chiều X-Y

- Mật độ tích hợp trung bình - Mật độ tích hợp cao

- Tỷ lệ số chân I/O trên microcell

lớn

- Tỷ lệ số chân I/O trên microcell nhỏ

- Cấu hình được lưu lại khi mất

điện và không thay đổi trong quá

trình hoạt động

- Cấu hình nạp vào SRAM, khi mất điện sẽ không còn, cần có bộ nhớ cấu hình PROM, cấu hình có thể được nạp tự động trong quá trình hoạt động

- Cấu trúc đồng nhất – Cấu trúc không đồng nhất

Loop: Vòng khoá pha trễ ), bộ nhớ, các bộ nhân

– Ứng dụng: Mã hoá và giải mã

logic, các máy trạng thái hay các

giao diện bus chuẩn (SPI, I2C,

SMBus ), ưu điểm nổi bật khi

thiết kế các mạch logic nhiều đầu

vào

- Ứng dụng: PCI (Peripheral Component Interface: Giao diện thành phần ngoại vi), giao tiếp nối tiếp tốc độ cao và các bộ vi xử lý nhúng , ưu thế nổi bật khi thiết kế phức tạp, cần nhiều tài nguyên

2.2 GIỚI THIỆU PHƯƠNG PHÁP THIẾT LẬP CẤU HÌNH CHO CPLD/FPGA

Để thiết kế và thiết lập cấu hình của các chip CPLD và FPGA, có hai phương pháp phổ biến: phương pháp dùng sơ đồ mô tả và phương pháp dùng ngôn ngữ mô tả phần cứng (HDL: Hardware Descripition Language) Hai phương pháp trên được tóm tắt dưới đây

2.2.1 Phương pháp dùng sơ đồ mô tả

Sơ đồ mô tả là phương pháp truyền thống người thiết kế sử dụng để xác định ma trận cổng và các cấu kiện logic khả trình, nó cho phép xác định chính xác các cổng cũng như cách kết nối các cổng đó để được thiết kế mong muốn Phương pháp sử dụng sơ đồ

mô tả gồm 4 bước chính như sau:

Bước 1: Chọn thư viện cấu kiện và công cụ mô tả thiết kế Sau đó, chọn các cổng cần cho thiết kế từ thư viện, có thể kết hợp tuỳ ý các cổng với nhau Ở bước này, phải lựa chọn họ cấu kiện sẽ sử dụng, nhưng chưa phải quyết định sử dụng cấu kiện cụ thể nào trong họ để đáp ứng các yêu cầu về tốc độ và kích thước

Bước 2: Thực hiện kết nối các cổng với nhau, sử dụng lưới hoặc dây nối Người thiết kế có thể điều chỉnh kết nối giữa các cổng tuỳ ý theo mục đích thiết kế

Trang 39

Bước 3: Gắn thêm và phân bố các bộ đệm đầu vào và đầu ra Các bộ đệm này sẽ xác định các chân I/O cho thiết bị

Bước 4: Bước cuối là tạo ra Netlist Netlist là file mô tả mạch số dưới dạng text, được tạo bởi công cụ thiết kế Bản mô tả thiết kế giúp các chương trình khác nắm được các cổng logic có trong mạch, cách kết nối các cổng đó và số các chân I/O Chuẩn để viết file Netlist phổ biến nhất là dạng EDIF (Electronic Digital Interchange Format: Định dạng trao đổi điện tử số)

Phương pháp thiết kế dùng sơ đồ mô tả có hai nhược điểm chính:

- Khi thiết kế trở nên phức tạp và dùng nhiều cổng hơn, việc sử dụng phương pháp này trở nên khó khăn, việc sửa lỗi cũng khó khăn hơn, thậm chí không khả thi

- Một nhược điểm khác của phương pháp thiết kế theo sơ đồ là khó thay đổi công nghệ hay nhà cung cấp Giả sử ban đầu, sử dụng chip FPGA của nhà sản xuất X để thiết

kế mạch 10 000 cổng, sau đó chuyển sang sử dụng ma trận cổng, sẽ phải thay đổi toàn bộ các trang sơ đồ có sử dụng ma trận cổng trong thư viện của nhà sản xuất X

2.2.2 Phương pháp dùng ngôn ngữ mô tả phần cứng (HDL)

Để khắc phục các nhược điểm trên, người ta có thể dùng phương pháp dùng ngôn ngữ mô tả phần cứng (HDL) Có hai ngôn ngữ mô tả phần cứng phổ biến nhất: VHDL và Verilog

Trong phương pháp này, thay vì dùng các sơ đồ mô tả và các kết nối, người lập trình dùng ngôn ngữ mô tả phần cứng để mô tả các tính năng và hoạt động của từng phần trong hệ thống Các bước chính để thiết lập cấu hình cho PLD như sau:

Bước 1: Dùng ngôn ngữ mô tả phần cứng (HDL) để mô tả các tính năng và hoạt động của từng phần trong hệ thống Đồng thời có thể dùng ngôn ngữ mô tả phần cứng HDL mô tả kết nối giữa các phần trong một hệ thống Đầu ra của quá trình này là một file ở dạng text

Bước 2: Dùng công cụ synthesis (tổng hợp) để tạo ra file Netlist từ file ở trên Công cụ synthesis xác định các cổng được sử dụng dựa trên mô hình hoạt động (trong phương pháp thiết kế truyền thống, người thiết kế phải thực hiện thao tác này) Vì Netlist đặc trưng cho họ thiết bị và nhà sản xuất, nên phải sử dụng thư viện của nhà sản xuất tương ứng Hầu hết các công cụ thiết kế đều cung cấp tên các nhà sản xuất mảng cổng, FPGA và CPLD

Ngoài ra, khi lựa chọn hay sắp xếp ở mức cổng, người sử dụng có thể tối ưu hoá thiết kế để số lượng cổng sử dụng ít nhất; tối ưu hoá từng phần thiết kế để tăng tốc độ; sử dụng cấu hình cổng phù hợp để giảm công suất; sử dụng cấu hình thanh ghi cho máy trạng thái

Trang 40

Người thiết kế có thể thử nghiệm với nhiều nhà cung cấp khác nhau, nhiều họ thiết

bị khác nhau, nhiều phương pháp tối ưu khác nhau, từ đó có được nhiều giải pháp thiết

kế thay vì chỉ có một giải pháp như với phương pháp sơ đồ

Một ưu điểm nữa của phương pháp dùng ngôn ngữ mô tả phần cứng là rất dễ nâng cấp hệ thống Sử dụng ngôn ngữ HDL rút ngắn thời gian thiết kế và khi thay đổi thiết kế cũng rất đơn giản Người thiết kế chọn thư viện và các thông số tối ưu (về tốc độ, diện tích,…), công cụ synthesis sẽ xác định kết quả Người thiết kế có thể lựa chọn phương án thiết kế tối ưu sau khi thử các phương án khác nhau

Sau khi đã tạo được file Netlist, để lập trình chip PLD dựa trên cấu hình đã được thiết lập, người lập trình cần dùng các công cụ khác Ngoài ra, người lập trình có thể chạy mô phỏng và kiểm tra thiết kế của mình Các vấn đề này sẽ được đề cập rõ hơn trong các chương sau

2.3 YÊU CẦU CHUNG KHI THIẾT KẾ VỚI CPLD/FPGA

Số lượng chân vào/ra: Phải xác định vi mạch thiết kế cần bao nhiêu đầu vào, bao nhiêu đầu ra

Yêu cầu về tốc độ: Tuyến tổ hợp nhanh nhất sẽ xác định tpd (trễ truyền trong vi mạch, tính theo ns) Mạch tuần tự nhanh nhất sẽ xác định tần số tối đa của vi mạch (fmax)

Đóng vỏ: Phải xác định vi mạch cần gọn nhất hay chỉ sử dụng dạng QFP (Quad Flat Package: Kết hợp sơ đồ bên trong) thông thường Hoặc vi mạch thiết kế thuộc dạng

có lắp chân cắm, trong trường hợp này là vi mạch PLCC (Programmable Logic Contronller Circuit)

Công suất thấp: Phải xác định sản phẩm sẽ sử dụng nguồn pin hay năng lượng mặt trời, thiết kế có yêu cầu công suất tiêu thụ thấp hay không, vấn đề tổn hao nhiệt có quan trọng hay không?

Chức năng cấp hệ thống: Phải xác định bo mạch có bao gồm nhiều vi mạch đa mức điện áp hay không, giữa các vi mạch có phải chuyển mức hay không, có yêu cầu sửa

Ngày đăng: 01/07/2016, 17:53

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Volnei A. Pedroni, Circuit Design with VHDL, Massachusetts Institute of Technology, 2004 Sách, tạp chí
Tiêu đề: Circuit Design with VHDL
[2]. Pong P. Chu, RTL Hardware Design using VHDL – Coding for Efficiency, Portability, and Scalability”, Wiley, ISBN 978-0-471-72092-8, 2006 Sách, tạp chí
Tiêu đề: RTL Hardware Design using VHDL – Coding for Efficiency, Portability, and Scalability
[3] M. Morris Mano, Digital Design, Third Edition, Prentice Hall, 2002 [4]. VHDL for Programmable Logic by Kevin Skahill, Addison Wesley, 1996 [5]. The Designer's Guide to VHDL by Peter Ashenden, Morgan Kaufmann, 1996 Sách, tạp chí
Tiêu đề: Digital Design", Third Edition, Prentice Hall, 2002 [4]. "VHDL for Programmable Logic "by Kevin Skahill, Addison Wesley, 1996 [5]." The Designer's Guide to VHDL
[6]. Analysis and Design of Digital Systems with VHDL by Dewey A., PWS Publishing, 1993 Sách, tạp chí
Tiêu đề: Analysis and Design of Digital Systems with VHDL
[7] Tài liệu các hãng, các phần mềm thiết kế mạch logic số, các dòng chip của: Xilinx, Altera, Actel,… Khác
[8] Tài liệu các hãng, các phần mềm thiết kế điện tử của: Altium, Cadence, Mentor Graphic, Proteus,… Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w