Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
LÊ THÀNH TỚI
THIẾT KẾ BỘ VI XỬ LÝ RISC 16 BIT
Chuyên ngành : Kỹ thuật vô tuyến - điện tử
Mã số ngành : 2.01.07
LUẬN VĂN THẠC SỸ
TP. HỒ CHÍ MINH, tháng 07 năm 2006
TÓM TẮT
Trong thời đại ngày nay, cùng với sự phát triển ngày càng mạnh mẽ của
ngành công nghệ thông tin và viễn thông thì vấn đề nâng cấp và cải tiến kỹ thuật
là một vấn đề không thể thiếu được. Với các bộ vi xử lý thông thường vẫn có thể
khắc phục được vấn đề này, tuy nhiên về tốc độ xử lý nhanh và công suất tiêu thụ
thấp thì không thể đảm bảo được. Với sự ra đời của bộ vi xử lý RISC – Bộ vi xử lý
có tập lệnh rút gọn – sẽ đáp ứng được yêu cầu nâng cấp và cải tiến kỹ thuật, đồng
thời đảm bảo được vấn đề về tốc độ xử lý và công suất tiêu thụ.
Trong những năm gần đây, các bộ vi xử lý RISC đã được ứng dụng rộng rãi
trong nhiều thiết bị như : máy in, máy ảnh số, điện thoại, trong xe hơi … , đặc biệt
nhất là trong các thiết bị cầm tay.
Trong luận văn này, chúng tôi trình bày quá trình thiết kế và thực thi của
bộ vi xử lý RISC 16 bit trên FPGA.
ABSTRACT
In the age of today, together with the development of powerful information
technology and telecommunications, technical innovation and upgrade is one of
the most important factors that can’t be missed. The normal processor can solve
this problem but it can not ensure the fast processing speed and low power
consumpsion. The appearance of RISC ( reduce instructions set computer )
processor not only responds demands of technical innovation and upgrade but also
ensures processing speed and power consumption.
In these recent years, RISC processors are applied widely for a lot of
devices including cars, phone, digital cameras, printers, etc . . . Specially, they are
the key for realization of portable electronic devices.
In this thesis, I will present the design and implementation of 16 bit RISC
on FPGA.
Mục lục
Lời cảm ơn
Tóm tắt
Abstract
Chương 1 : Giới thiệu
1.1 Tổng quan về đề tài ................................................................................ 1
1.1.1 Máy tính tập lệnh phức ( CISC ) .................................................. 1
1.1.2 Đặc điểm chính của CISC ............................................................ 1
1.1.3 Máy tính tập lệnh rút gọn ( RISC ) ............................................. 1
1.1.4 Đặc điểm chung của cấu trúc RISC............................................. 2
1.2 Tổ chức của luận văn ............................................................................ 3
1.3 Các công việc liên quan ........................................................................ 3
Chương 2 : Ngôn ngữ mô tả phần cứng và công nghệ FPGA.
2.1 Xu hướng phát triển của ngành thiết kế phần cứng .......................... 4
2.2 Những công cụ thông dụng hổ trợ việc thiết kế ................................. 4
2.2.1 Các thiết bị logic lập trình được ................................................... 5
2.2.2 Ngôn ngữ mô tả phần cứng ........................................................... 5
2.2.3 Phần mềm hỗ trợ thiết kế số ........................................................ 6
2.3 Công nghệ fpga
2.3.1 Giới thiệu FPGA............................................................................. 6
2.3.2 Sự phát triển của các thiết bị lập trình được .............................. 7
2.3.3 Cấu trúc FPGA............................................................................... 8
2.3.3.1 Các khối logic ......................................................................... 8
2.3.3.2 Các nguồn kết nối.................................................................. 9
2.3.3.3 Ứng dụng của FPGA.............................................................. 9
2.3.3.4 Quá trình cài đặt.................................................................. 10
2.3.4 Công nghệ lập trình chip............................................................ 11
2.3.4.1 Công nghệ lập trình dùng RAM tónh................................. 12
2.3.4.2 Công nghệ lập trình dùng cầu chì nghịch ( anti – fuse ). 13
2.3.4.3 Công nghệ lập trình EPROM và EEPROM .................... 14
2.3.4.4 Tóm tắt công nghệ lập trình chip ..................................... 15
2.3.5 Các loại FPGA trên thị trường ..................................................... 15
2.4 Ngôn ngữ VHDL ................................................................................ 17
2.4.1 Khái quát về VHDL..................................................................... 17
2.4.1.1 VHDL là gì ?........................................................................ 17
2.4.1.2 Lịch sử phát triển ............................................................... 17
2.4.1.3 Các điểm mạnh của VHDL ............................................... 18
2.4.2 Cấu trúc ngôn ngữ VHDL........................................................... 18
3.4.2.1. Khai báo ENTITY ( Entity Declaration) ......................... 19
2.4.2.2. Thân kiến trúc .................................................................... 19
2.4.3 Các mô hình VHDL .................................................................... 20
2.4.3.1 Mô hình cấu trúc................................................................. 20
2.4.3.2 Mô hình luồng dữ liệu ........................................................ 20
2.4.3.3 Mô hình hành vi .................................................................. 20
2.4.3.4 Mô hình hổn hợp ................................................................. 20
Chương 3 : Cấu trúc phần cứng của bộ vi xử lí
3.1 Cấu trúc tổng quát của bộ vi xử lý .................................................. 21
3.2 Cấu trúc chi tiết của bộ vi xử lý ....................................................... 22
3.2.1 Bộ phận nạp lệnh ......................................................................... 22
3.2.1.1 Bộ đếm chương trình PC ( Program Counter )................ 22
3.2.1.2 Bộ nhớ lệnh ......................................................................... 22
3.2.1.3 Đơn vị quyết định rẽ nhánh ............................................... 22
3.2.2 Bộ phận giải mã lệnh.................................................................. 23
3.2.2.1 Đơn vị điều khiển ................................................................ 25
3.2.2.2 Taäp thanh ghi ...................................................................... 25
3.2.2.3 Thanh ghi Y ......................................................................... 25
3.2.2.4 Đơn vị mở rộng dấu ............................................................. 25
3.2.2.5 Khối inport ........................................................................... 25
3.2.2.6 Khối outport ......................................................................... 25
3.2.3 Bộ phận thực thi .......................................................................... 25
3.2.3.1 Bộ cộng nhánh ( Branch Adder ) ...................................... 26
3.2.3.2 Bộ nhân ................................................................................ 27
3.2.3.2.1 Bộ mã hóa Booth ( Booth encoder )......................... 27
3.2.3.2.2 Bộ tạo tích thành phần PPG .................................... 27
3.2.3.2.3 Wallace tree................................................................ 27
3.2.3.2.4 Carry Lookahead Adder ( CLA ) ............................ 27
3.2.3.3 Đơn vị logic số học .............................................................. 27
3.2.3.4 Đơn vị điều khiển ALU....................................................... 28
3.2.4 Bộ nhớ .......................................................................................... 28
3.2.5 Bộ phận writeback...................................................................... 29
3.2.6 Đơn vị data forward .................................................................... 29
3.2.7 Đơn vị phát hiện hazard ............................................................. 29
Chương 4 : Tập leänh
4.1 Định dạng lệnh kiểu thanh ghi ......................................................... 31
4.2 Định dạng lệnh kiểu tức thời ............................................................ 31
4.3 Định dạng lệnh kiểu nhánh .............................................................. 31
4.4 Tập lệnh .............................................................................................. 32
4.4.1 Tóm tắt tập lệnh được hỗ trợ bởi bộ vi xử lý. ........................... 32
4.4.2 Tập lệnh chi tiết ........................................................................... 33
Chương 5 : Mô tả cấu trúc của bộ vi xử lý bằng ngôn ngữ VHDL
5.1 Mô tả bộ phận nạp lệnh..................................................................... 38
5.1.1 Mô tả giao diện của bộ phận nạp lệnh bằng VHDL ................ 38
5.1.2 Mô tả cấu trúc của bộ phận nạp lệnh bằng VHDL................. 39
5.1.3 Kết quả mô phỏng bộ phận nạp lệnh ....................................... 40
5.2 Mô tả bộ phận giải mã lệnh............................................................... 40
5.2.1 Mô tả cấu trúc đơn vị điều khiển ............................................... 41
5.2.1.1 Mô tả cấu trúc đơn vị điều khiển bằng VHDL................. 41
5.2.1.2 Kết quả mô phỏng đơn vị điều khiển ................................ 44
5.2.2 Mô tả cấu trúc tập thanh ghi ...................................................... 44
5.2.2.1 Mô tả cấu trúc tập thanh ghi bằng VHDL ....................... 45
5.2.2.2 Kết quả mô phỏng tập thanh ............................................. 47
5.2.3 Mô tả thanh ghi Y ........................................................................ 47
5.2.3.1 Mô tả thanh ghi Y bằng VHDL .......................................... 47
5.2.3.2 Kết quả mô phỏng thanh ghi Y .......................................... 48
5.2.4 Mô tả cấu trúc của bộ phận giải mã lệnh ................................. 49
5.2.4.1 Mô tả cấu trúc bộ phận giải mã lệnh bằng mã VHDL............. 49
5.2.2.3 Kết quả mô phỏng bộ phận giải mã lệnh.......................... 53
5.3 Mô tả cấu trúc bộ phận thực thi ...................................................... 53
5.3.1 Bộ cộng giá trị địa chỉ offset của PC ( Branch adder ) ........... 54
5.3.1.1 Mô tả bộ cộng địa chỉ offset bằng ngôn ngữ VHDL ........ 54
5.3.2.3 Kết quả mô phỏng bộ cộng địa chỉ offset......................... 55
5.3.2 Mô tả cấu trúc bộ nhân ............................................................... 57
5.3.2.1 Mô tả bộ mã hóa booth bằng mã VHDL........................... 55
5.3.2.2 Mô tả bộ tạo tích thành phần PPG.................................... 57
5.3.2.3 Wallace tree CSA ................................................................ 59
5.3.2.4 Boä coäng CLA ( Carry Lookahead Adder ) ....................... 65
5.3.2.5 Mô tả cấu trúc bộ nhân bằng mã VHDL .......................... 69
5.3.3 Mô tả đơn vị điều khiển alu ...................................................... 71
5.3.3.1 Mô tả cấu trúc của đơn vị điều khiển bằng mã VHDL ... 71
5.3.3.2 Kết quả mô phỏng đơn vị điều khiển ALU ...................... 73
5.3.4 Mô tả đơn vị logic số học ( ALU ) .............................................. 73
5.3.4.1 Mô tả cấu trúc ALU bằng mã VHDL................................ 74
5.3.4.2 Kết quả mô phỏng ALU bằng phần mềm Xilinx ISE ..... 78
5.3.5 Mã VHDL mô tả cấu trúc của bộ phận thực thi ..................... 78
5.3.6 Kết quả mô phỏng bộ phận thực thi ......................................... 83
5.4 Mô tả bộ nhớ ...................................................................................... 84
5.4.1 Mô tả cấu trúc của bộ nhớ bằng mã VHDL ............................. 84
5.4.2 Kết quả mô phỏng bộ nhớ........................................................... 86
5.5 Bộ phận writeback ............................................................................... 86
5.5.1 Mô tả cấu trúc của bộ phận writeback bằng mã VHDL......... 87
5.5.2 Kết quả mô phỏng bộ phận writeback ...................................... 87
5.6 Đơn vị forward data .............................................................................. 88
5.6.1 Mô tả cấu trúc bộ phận forward data bằng mã VHDL........... 89
5.6.2 Kết quả mô phỏng bộ phận forward data................................. 89
5.7 Bộ phận phát hiện hazard ..................................................................... 90
5.7.1 Mô tả cấu trúc của bộ phận phát hiện hazard ......................... 90
5.7.2 Kết quả mô phỏng bộ phận phát hiện hazard .......................... 91
5.8 Mô tả cấu trúc tổng quát của RISC 16 bit bằng ngôn ngữ VHDL.... 91
5.8.1 Giao diện của bộ vi xử lí RISC ................................................... 91
5.8.2 Mã VHDL mô tả tổng quát cấu trúc RISC............................... 92
5.8.3 Kết quả mô kiểm tra tập lệnh của bộ vi xử lí RISC ............. 102
5.8.3.1 Đoạn code chương trình kiểm tra tập lệnh ...................... 102
5.8.3.2 Kết quả mô phỏng đoạn chương trình kiểm tra tập lệnh103
Chương 6 : Kết luận và hướng phát triển của đề tài ................................. 104
6.1 Kết luận.......................................................................................... 104
6.2 Hướng phát triển của đề tài ........................................................ 104
Tài liệu tham khảo ......................................................................................... 105
CÔNG TRÌNH ĐƯC HOÀN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : TS. Nguyễn Như Anh
Ths. Hồ Trung Mỹ
Cán bộ chấm nhận xét 1 :
Cán bộ chấm nhận xét 2 :
Luận văn thạc só được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN
THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày . . . . . . tháng . . . . . . naêm 2006
TRƯỜNG ĐẠI HỌC BÁCH KHOA
PHÒNG ĐÀO TẠO SĐH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐỘC LẬP – TỰ DO – HẠNH PHÚC
Tp. HCM, ngày . . . .tháng . . . . năm 2006
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên : Lê Thành Tới
Ngày, tháng, năm sinh : 1977
Chuyên ngành : Kỹ thuật vô tuyến – Điện tử
Phái : nam
Nơi sinh : Tây Ninh
MSHV : 01403332
I. TÊN ĐỀ TÀI : THIẾT KẾ BỘ VI XỬ LÝ RISC 16 BIT
II. NHIỆM VỤ VÀ NỘI DUNG :
THIẾT KẾ BỘ VI XỬ LÝ RISC 16 BIT
CÀI ĐẶT BỘ VI XỬ LÝ RISC 16 BIT TRÊN FPGA
III. NGÀY GIAO NHIỆM VỤ : 06 / 02 / 2006
IV. NGÀY HOÀN THÀNH NHIỆM VỤ : 06 / 07 / 2006
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : TS. NGUYỄN NHƯ ANH
Ths. HỒ TRUNG MỸ
CÁN BỘ HƯỚNG DẪN
CHỦ NHIỆM NGÀNH
BỘ MÔN QUẢN LÝ CHUYÊN
Ø
Nội dung đề cương luận văn thạc só đã được hội đồng chuyên ngành thông qua.
PHÒNG ĐÀO TẠO SĐH
Ngày . . . tháng . . . năm 2006
KHOA QUẢN LÝ NGÀNH
TÓM TẮT LÝ LỊCH TRÍCH NGANG
Họ và tên : Lê Thành Tới
Ngày, tháng, năm sinh : 1977
Nơi sinh : Tây Ninh
Địa chỉ liên lạc : 353Bis, Nguyễn Trãi, Phường Nguyễn Cư Trinh, Quận I, TP.H
CM
QUÁ TRÌNH ĐÀO TẠO
ĐẠI HỌC :
Chế độ học : Chính qui
Thời gian học : từ tháng 9 năm 1996 đến tháng 12 năm 2000
Nơi học : Đại Học Bách Khoa TP. Hồ Chí Minh
Ngành học : Điện tử – Viễn Thông
Tên luận án tốt nghiệp : Nghiên cứu công nghệ ASIC
Nơi bảo vệ luận án tốt nghiệp :ĐH Bách Khoa
Người hướng dẫn : Ths.Trần Văn Sư
HOẠT ĐỘNG KHOA HỌC KỸ THUẬT
Từ năm 2001 đến năm 2003 làm việc tại công ty MASECO
Từ năm 2003 đến 2005 làm việc tại Trường Cao Đẳng Công Nghiệp Thực Phẩm
Thiết kế bộ vi xử lý RISC 16 bit
Chương 1
GIỚI THIỆU
1.1 Tổng quan về đề tài:
1.1.1 Máy tính tập lệnh phức tạp(CISC):
CISC (Complex instructions set computer) có nghóa là máy tính có tập
lệnh phức tạp, những máy tính này cũng hoạt động trên nhiều kiểu dữ liệu và
có nhiều chế độ địa chỉ. Khi giá thành thực hiện phần cứng số ngày càng giảm
thì tập lệnh máy tính có xu hướng tăng về số lượng lẫn tính phức tạp. Một máy
tính với số lượng lớn các lệnh thường được gọi là máy tính có tập lệnh phức tạp
hay còn gọi là CISC.
1.1.2 Đặc điểm chính của CISC :
• Có nhiều lệnh khoảng từ 100 đến 250 lệnh.
• Có nhiều lệnh thực hiện chức năng đặc biệt và ít được sử dụng
thường xuyên.
• Có nhiều chế độ địa chỉ, điển hình từ 5 đến 10 chế độ địa chỉ khác
nhau.
• Định dạng lệnh có chiều dài thay đổi.
• Có nhiều lệnh thực hiện trên các toán hạng bộ nhớ.
1.1.3 Máy tính tập lệnh rút gọn (RISC):
Đầu những năm 1980, những nhà thiết kế máy tính đã chất vấn nhiều
vấn đề về tập lệnh phức tạp sử dụng trong máy tính ở thời điểm này. Qua
nhiều nghiên cứu về hệ thống máy tính, họ đã nhận thấy rằng hầu hết khoảng
80% các lệnh ít khi được sử dụng. Vì thế họ mới đề xuất ra một máy tính có số
lệnh ít hơn và cấu trúc đơn giản hơn. Kiểu máy tính như thế người ta gọi là
máy tính có tập lệnh rút gọn hay còn gọi là RISC.
Đặc điểm đầu tiên của RISC là mỗi lệnh được thực hiện trong một chu
kỳ. Nạp lệnh trong một chu kỳ có thể thực hiện được bằng cách giữ cho các
lệnh ở một kích thước chuẩn. Kích thước lệnh chuẩn bằng với số đường dữ liệu
trong bus hệ thống. Ở mỗi chu kì nạp lệnh, một lệnh đơn hoàn chỉnh sẽ được
chuyển đến CPU. Chẳng hạn kích thước từ cơ bản là 16 bit và port dữ liệu của
bus hệ thống là 16 đường thì chiều dài lệnh chuẩn là 16 bit.
Một số lệnh có liên quan đến các phép toán logic trên thanh ghi thì có
thể được thực hiện trong một chu kì mà không có vấn đề gì. Những lệnh khác
liên quan đến quá trình truy xuất bộ nhớ (truy xuất dữ liệu từ bộ nhớ, lưu dữ
liệu vào bộ nhớ) hoặc những toán hạng nhiều chu kỳ thì không thể thực hiện
trong một chu kỳ đơn.
HVTH: Lê Thành Tới
1
Thiết kế bộ vi xử lý RISC 16 bit
Tóm lại thì những lệnh nào sẽ được chọn vào trong danh sách tập lệnh
rút gọn? Câu trả lời chính xác đó là các lệnh hay sử dụng nhất, trong số các
lệnh đó tập trung chủ yếu là các lệnh di chuyển dữ liệu, lệnh liên quan đến các
phép toán logic, các lệnh liên quan đến các phép toán số học.
Để thuận tiện cho các phép toán xảy ra trên các toán hạng thanh ghi thì
tập các thanh ghi phải đủ lớn . Với tập thanh ghi đủ lớn thì cho phép lưu trữ
tạm thời các kết quả trung gian của những phép toán mà không cần sử dụng
bộ nhớ. Điều này sẽ làm giảm đi bớt các hoạt động truy xuất bộ nhớ tương ứng
với việc giảm đi bớt các lệnh lấy và lưu dữ liệu vào trong bộ nhớ. Với RISC 16
bit thì tập thanh ghi tối thiểu là 16 thanh ghi.
1.1.4 Đặc điểm chung của cấu trúc RISC:
• Mỗi lệnh chỉ được thực hiện trong một chu kỳ.
• Định dạng lệnh đơn giản, dễ giải mã và kích thước lệnh phải cố
định.
• Ít lệnh
• Ít chế độ địa chỉ
• Truy xuất bộ nhớ bị giới hạn, chỉ có lệnh load và store
• Tất cả các phép toán được thực hiện bên trong thanh ghi.
• Tập thanh ghi phải nhiều.
Với bộ vi xử lí RISC thì nó cũng có những hoạt động như bộ vi điều khiển
nhưng nó không có nhiều lệnh, vì vậy tốc độ xử lí của nó nhanh hơn, đồng thời
có thể dễ dàng nâng cấp và cải tiến kỹ thuật khi có nhu cầu cần thiết.
Ngày nay bộ xử lí RISC được sử dụng rộng rãi trong nhiều ứng dụng như
trong xe ô tô, máy điện thoại, máy ảnh số, máy in, và cũng như trong nhiều
thiết bị khác. Lý do của việc sử dụng rộng rãi các bộ xử lí RISC là công suất
của nó thấp và kích thước của nó nhỏ, do đó nó không phải chiếm nhiều diện
tích và cũng như chí phí cho việc chế tạo.Với những lí do vừa nêu trên, bộ xử lí
RISC còn là chìa khóa để thực hiện các thiết bị điện tử xách tay, trong các
thiết bị đó sự tiêu thụ công suất là một nhân tố quan trọng. Công suất tiêu thụ
thấp làm giảm đi quá trình tỏa nhiệt, kéo dài thời gian sử dụng của nguồn cung
cấp và làm tăng độ tin cậy của thiết bị.
Vì vậy, việc nghiên cứu, nắm vững và thực thi được phần cứng cũng như
phần mềm thực thi các bộ vi xử lí RISC là vấn đề cần thiết trong tình hình hiện
nay.
Mục tiêu chính của đề tài thiết kế và thực thi bộ vi xử lí RISC 16 bit
bằng ngôn ngữ VHDL và tổng hợp trên phần cứng FPGA.
HVTH: Lê Thành Tới
2
Thiết kế bộ vi xử lý RISC 16 bit
1.2 Tổ chức của luận văn.
Chương 1: Giới thiệu tổng quan về đề tài luận văn.
Chương 2: Ngôn ngữ mô tả phần cứng và công nghệ FPGA.
Chương 3: Cấu trúc phần cứng của bộ vi xử lí
Chương 4: Tập lệnh
Chương 5: Mô tả cấu trúc bộ vi xử lí bằng ngôn ngữ VHDL
Chương 6: Kết luận và hướng phát triển của đề tài
1.3 Các công việc có liên quan
Ngoài nhiệm vụ chính của luận văn là thiết kế cấu trúc của bộ vi xử lí
RISC, tác giả còn nghiên cứu thiết kế mạch ứng của bộ vi xử lí để minh họa
cho đề tài. Để thiết kế trên FPGA, tác giả phải hiểu rõ về FPGA và ngôn
ngữ mô tả phần cứng VHDL để lập trình cho thiết bị. Công cụ chính để
thực hiện đề tài là:
+ Phần mềm Xilinx Integrated Software Environment (ISE version 7.1)
+ Phần cứng: board Spartan III
HVTH: Lê Thành Tới
3
Thiết kế bộ vi xử lý RISC 16 bit
Chương 2
NGÔN NGỮ MÔ TẢ PHẦN CỨNG VÀ CÔNG NGHỆ FPGA
2.1 Xu hướng phát triển của ngành thiết kế phần cứng
Với sự phát triển nhanh chóng của PLD (Programmable Logic Device)
và ASIC (Application Specific Integrated Circuit), quá trình thiết kế phần
cứng có những thay đổi rất lớn trong những năm gần đây. Không giống
như những kỹ thuật thiết kế trước, các board mạch bao gồm rất nhiều chip
SSI (Small Scale Integration) chứa các cổng cơ bản, hiện nay hầu hết các
thiết kế đều sử dụng chip mật độ cao. Điều này không chỉ đúng trong
trường hợp mạch dùng các bộ vi xử lý hoặc bộ nhớ mà còn đúng cho cả
mạch số như các bộ điều khiển máy trạng thái (State machine controllers),
mạch đếm, thanh ghi và mạch giải mã. Khi các mạch số như vậy cần được
sử dụng trong các board mạch với số lượng lớn thì người ta có khuynh
hướng tích hợp chúng trong các mảng cổng (Gate Arrays) mật độ cao. Vì lý
do đó, hầu hết các sản phẩm trên thị trường hiện nay được xây dựng trên
cơ sở:
• Với các sản phẩm có số lượng không lớn lắm hoặc trung bình đều
theo phương pháp sử dụng PLD. Những ưu điểm chính của PLD là:
đầu tư ban đầu thấp, rủi ro tài chính thấp, và dễ dàng thay đổi
thiết kế (vì người dùng có thể lập trình lại được).
• Với sản phẩm có số lượng lớn, nhà sản xuất đầu tư thiết kế vi
mạch chuyên dùng ASIC. Những đặc điểm chính của ASIC là: khi
đã ra thành sản phẩm thì giá thành thấp mặc dù đầu tư chi phí ban
đầu rất cao và thời gian chế tạo mẫu thử rất lâu.
Để có được một IC hoàn chỉnh thực hiện được nhiệm vụ của nhà sản
xuất, người ta phải thực hiện qua nhiều giai đoạn, những giai đoạn cơ bản và
quan trọng nhất là:
• Tổng hợp
• Mô phỏng
• Kiểm tra
Các giai đoạn này đòi hỏi người sử dụng phải có nhiều kiến thức chuyên
môn sâu rộng về lónh vực điện tử và kinh nghiệm phong phú. Giai đoạn này
cũng yêu cầu người sử dụng có các công cụ chuyên nghiệp đủ mạnh để giải
quyết một cách nhanh chóng hiệu quả và chính xác.
2.2 Những công cụ thông dụng hỗ trợ việc thiết kế
HVTH: Lê Thành Tới
4
Thiết kế bộ vi xử lý RISC 16 bit
Với những yêu cầu phát triển mạch số ngày càng phức tạp, lần lượt các
công cụ ra đời hỗ trợ đắc lực trong việc thiết kế.
2.2.1 Các thiết bị logic lập trình được
Thiết bị logic lập trình được (PLD – Programmable Logic Device) là chip
LSI hoặc VLSI chứa các cấu trúc mảng mà cho phép các nhà thiết kế có thể
tùy biến theo từng thiết kế riêng biệt. Nói cách khác PLD có thể được lập
trình bởi người sử dụng cho những chức năng cụ thể. Cấu trúc mảng trong
PLD bao gồm các tế bào (cells) được hình thành từ tập hợp các cổng logic.
Các dạng thiết bị lập trình được, có chức năng giống như PLD gồm có
PAL (Programmable Logic Array), CPLD (Complex PLD), FPGA (Field
Programmable Gate Array). Với các công nghệ số hiện nay, các nhà sản xuất
đã cho ra đời các PLD với mức độ tích hợp cao với số cổng logic lên đến vài
trăm ngàn cổng đến hàng triệu cổng.
2.2.2 Ngôn ngữ mô tả phần cứng
Ngôn ngữ mô tả phần cứng (HDL – Hardware Decription Language) là
một trong những nền tảng quan trọng trong lónh vực thiết kế số hiện đại. Hiện
nay có hai ngôn ngữ được xem là quan trọng nhất VHDL và Verilog HDL.
Những ngôn ngữ này cho phép các nhà thiết kế mô tả các mạch logic phức tạp
và có thể đưa sản phẩm ra thị trường một cách nhanh chóng. Chúng còn hỗ trợ
việc tạo ra các thư viện chứa các mẫu thiết kế sẵn. Với những mẫu thiết kế
bằng ngôn ngữ cấp cao này, các nhà sản xuất có thể áp dụng vào các thiết bị
logic lập trình được như PLD, CPLD, FPGA . . . VHDL đã được công nhận là
một chuẩn IEEE vào năm 1987, còn Verilog HDL vào năm 1995.
VHDL, viết tắt từ chữ VHSIC HDL (VHSIC – Very High Speed
Integrated Circuit), là một sản phẩm của chương trình VHSIC của bộ quốc
phòng Mỹ vào thập niên 70 và 80. Khi lần đầu tiên được công bố, VHDL chủ
yếu được sử dụng như ngôn ngữ mô tả mạch số có thể được xử lí bằng một
phần mềm với mục đích mô phỏng. Ngày nay VHDL là một ngôn ngữ chuẩn để
mô tả, mô phỏng, tổng hợp cho các mạch và hệ thống số. Thị trường các sản
phẩm phần mềm sử dụng VHDL tăng tốc độ nhanh chóng cho thấy đóng góp to
lớn của nó cho ngành thiết kế số.
Verilog HDL, ngôn ngữ khác được xem là ngắn gọn hơn VHDL, lần đầu
tiên được giới thiệu vào năm 1985 bởi hãng Gateway Design System
Corporation, bây giờ là một phần của Cadence Design Systems, Inc’s System
Division. Verilog HDL cho phép các nhà thiết kế phần cứng mô tả mạch số ở
mức cấp cao như cấu trúc architectural hay cấu trúc Bahavioral hoặc cấp thấp
như cấu trúc cổng. Cùng với VHDL, Verilog HDL cũng góp phần vào nền phát
triển công nghệ số hiện đại.
HVTH: Lê Thành Tới
5
Thiết kế bộ vi xử lý RISC 16 bit
2.2.3 Phần mềm hỗ trợ thiết kế số
Để lập trình cho FPGA hay CPLD đòi hỏi phải có phần mềm hỗ trợ thiết
kế (CAD – Computer Aided Design) để cho phép thiết kế trên máy tính, kiểm
tra, mô phỏng và nạp vào chip. Phần mềm này cho phép các nhà thiết kế có
thể vẽ sơ đồ logic hoặc sử dụng ngôn ngữ mô tả phần cứng để tạo ra các mạch
số.
Hiện nay trên thế giới có nhiều hãng chế tạo các thiết bị logic lập trình
được như PLD, CPLD, FPGA (trong đó hai hãng lớn là Altera và Xilinx) và các
hãng đồng thời phát riển các phần mềm CAD có thể thực hiện từ bước thiết kế
cho đến bước thực thi trên phần cứng.
Các phần mềm hỗ trợ cho việc thiết kế phần cứng và đang được sử
dụng hiện nay là:
• MaxplusII 10.0 Baseline của hãng altera.
Phần mềm này hỗ trợ đầy đủ các công cụ: Design Entry (Schematic,
Text Editor, Waweform Editor), simulator, Programmer,… và chỉ phát triển
cho các họ CPLD, và FPGA của hãng Altera.
• Xilinx Foundation series 2.1, 3.1, 4.1, 5.1, 6.1 (của hãng
Xilinx)
Đây là một sản phẩm của hãng Xilinx có đầy đủ các công cụ thiết kế số:
Design Entry (HDL, FSM, Schematic), Synthesis, Implementation,
Programmer. Phần mềm này phát triển cho họ CPLD và FPGA của
Xilinx.
• Model Sim 5.7
• Mentor Graphic
• Webpack
• …
2.3 CÔNG NGHỆ FPGA
2.3.1 Giới thiệu FPGA
Các phần trước trình bày về môi trường thiết kế phần cứng, về phương
pháp luận để thiết kế mạch và mối quan hệ hữu cơ của ngôn ngữ VHDL và
phần cứng tạo ra. Phần này tập trung trình bày các mạch phần cứng được xây
dựng trên công nghệ FPGA. Đây là công nghệ tiên tiến đã được nghiên cứu rất
nhiều và có ứng dụng rộng rãi trên thế giới.
Công nghệ mạch tích hợp mật độ cao (VLSI) cho phép chế tạo các mạch
số phức tạp giá thành thấp có số lượng hàn triệu transistor trên một chip. Các
chip vi xử lí đã được thực hiện bằng phương pháp Standard Cells và Mask
Programmable Gate Arrays (MPGAs) trên các mạch tích hợp. Công nghệ này
có chi phí ban đầu cao và thời gian sản xuất vài tháng, dẫn đến giá của mỗi đơn
vị sản phẩm cao trừ khi được sản xuất với số lượng lớn.
HVTH: Lê Thành Tới
6
Thiết kế bộ vi xử lý RISC 16 bit
Field Programmable Gate Arrays (FPGAs) đã xuất hiện như giải pháp
cơ bản cho vấn đề tranh thủ thời gian để đưa ta thị trường và rủi ro tài chính
phải gánh chịu trong quá trình nghiên cứu sản xuất của công nghệ điện tử. Nó
cho phép chế tạo ngay và giá sản phẩm rất thấp. FPGA là một thiết bị cấu trúc
logic có thể được người sử dụng lập trình trực tiếp mà không phải sử dụng bất
kì một công cụ chế tạo mạch tích hợp nào.
2.3.2 Sự phát triển của các thiết bị lập trình được
Các thiết bị lập trình được đóng vai trò quan trọng lâu dài trong thiết kế
các phần cứng số. Chúng là các chip đa dụng có thể được cấu hình theo nhiều
cách cho nhiều ứng dụng. Loại đầu tiên của thiết bị có thể lập trình được sử
dụng rộng rãi đó là PROM (Programmable read only memory). PROM là thiết
bị lập trình chỉ được một lần gồm một dãy các ô nhớ chỉ đọc. PROM có thể
thực hiện bất kì hàm logic theo bảng sự thật nào bằng cách sử dụng các đường
địa chỉ như các ngõ nhập và ngõ xuất được xác định bởi nội dung các bit nhớ.
Có hai loại PROM cơ bản, một loại chỉ có thể được lập trình bởi nhà sản
xuất và một loại có thể được lập trình bởi người dùng. Loại thứ nhất gọi là
mask – programmable và loại thứ hai được gọi là field programmable. Khi sản
xuất các chip logic, hiệu suất tốc độ cao có thể đạt được với các chip mask
programmable vì các kết nối bên trong thiết bị được thực hiện bằng phần cứng
khi sản xuất. Ngược lại các kết nối của field programmable luôn cần đến một
số chuyển mạch lập trình được (cầu chì chẳng hạn) và vì vậy chậm hơn kết nối
cứng. Tuy nhiên, thiết bị field programmable chứa đựng các ưu điểm có giá trị
hơn sự hạn chế về tốc độ.
Các chip field programmable rẻ hơn các chip mask programmable khi
sản xuất với số lượng nhỏ.
Các chip field programmable có thể lập trình tức thì trong vài phút
trong khi các chip mask programmable khi sản xuất phải mất hàng tuần hoặc
hàng tháng.
Hai biến thể của feild programmable của PROM là EPROM và
EEPROM có chung một ưu điểm là cả hai có thể được xóa và lập trình lại
nhiều lần.
Một loại thiết bị lập trình được khác, được thiết kế đặc biệt để thực hiện
các mạch logic là programmable logic device (PLD). Một PLD thông thường
gồm một dãy các cổng AND được nối với một dãy các cổng OR. Mạch logic có
thể thực hiện được trong PLD theo dạng tổng của tích (sum of products). Loại
cơ bản nhất của PLD là Programmable array logic (PAL). PAL gồm một khối
các AND lập trình được nối với một khối các cổng OR cố định. Một loại PAL
khác linh hoạt hơn là Programmable logic array (PLA). PLA cũng có cấu trúc
HVTH: Lê Thành Tới
7
Thiết kế bộ vi xử lý RISC 16 bit
giống PAL nhưng các kết nối là lập trình được. PLA có cả hai loại là mask
programmable và field programmable.
Cả hai loại PLD trên cho phép thực hiện các mạch logic có tốc độ cao,
tuy nhiên cấu trúc đơn giản của chúng chỉ cho phép thực hiện các mạch logic
nhỏ.
Loại thiết bị lập trình được tổng quát nhất gồm một dãy các phần tử rời
rạc có thể được kết nối với nhau theo một mô tả người sử dụng. Loại thiết bị
này được gọi là Mask programmable gate array (MPGA). Các MPGA phổ biến
nhất gồm các hàng transistor có thể được kết nối để thực hiện các mạch logic.
Các kết nối do người dùng định nghóa có thể có trong các hàng và các cột. Ưu
điểm chính của MPGA so với PLD là nó cung cấp một cấu trúc tổng quát cho
phép thực hiện các mạch logic lớn hơn. Vì cấu trúc kết nối của chúng có thể
mở rộng cùng với số lượng logic.
Field Programmable Gate Array (FPGA) đã kết hợp khả năng lập trình
của PLD và cấu trúc kết nối có thể mở rộng của MPGA. Do đó các thiết bị lập
trình loại này có mật độ logic cao hơn.
2.3.3 Cấu trúc FPGA
Giống như MPGA, FPGA gồm một dãy các phần tử rời rạc có thể được kết
nối với nhau theo một cách chung. Giống như PLA, các kết nối giữa các phần
tử là có thể lập trình được. FPGA được giới thiệu đầu tiên bởi công ty Xilinx
vào năm 1985, kể từ đó có nhiều loại FPGA đã được nhiều công ty phát triển
Actel, Altera, Plessy, Plus logic, Advanced Micro Devices (AMD), Quick logic,
Concurrent logic, Crosspoint solutions. . .
Ma trận
chuyển mạch
Khối logic
Hình 2.2: Mô hình lý thuyết của FPGA
Hình 2.2 mô tả mô hình lý thuyết của một FPGA, nó gồm một dãy hai
chiều các khối logic có thể được kết nối bằng nguồn kết nối chung. Các nguồn
kết nối gồm các đoạn dây nối có thể có chiều dài khác nhau. Bên trong các kết
nối là các chuyển mạch lập trình được dùng để nối các khối logic với các đoạn
dây, hoặc các đoạn dây với nhau. Mạch logic được cài đặt trong FPGA bằng
HVTH: Lê Thành Tới
8
Thiết kế bộ vi xử lý RISC 16 bit
cách ánh xạ logic vào các khối logic riêng rẽ và sau đó nối các logic khối cần
thiết qua các chuyển mạch.
2.3.3.1 Các khối logic
Cấu trúc và nội dung của các khối logic gọi là nội dung của nó. Kiến trúc
của khối logic có thể được thiết kế theo nhiều cách khác nhau. Một số khối
logic đơn giản chỉ là các cổng AND hai ngõ vào. Các khối logic khác có cấu trúc
phức tạp hơn như các multiplexer hay các bảng tìm kiếm (look up table). Trong
một số loại FPGA các khối logic có thể có cấu trúc hoàn toàn giống như PAL.
Hầu hết các khối logic chứa một số loại flip – flop, để hỗ trợ cho việc thực hiện
các mạch tuần tự.
2.3.3.2 Các nguồn kết nối
Cấu trúc và nội dung của các nguồn kết nối trong FPGA được gọi là
kiến trúc routing (routing architecture). Kiến trúc routing gồm các đoạn dây
nối và chuyển mạch lập trình được. Các chuyển mạch lập trình được có thể có
nhiều cấu trúc khác nhau như pass transistor được điều khiển bởi cell SRAM,
các cầu chì nghịch (anti-fuse), EPROM transistor và EEPROM transistor.
Giống như khối logic có thể có nhiều cách khác nhau để thiết kế các kiến trúc
routing. Một số FPGA cung cấp nhiều kết nối đơn giản giữa các khối logic, một
số khác cung cấp ít kết nối hơn nên routing phức tạp hơn.
2.3.3.3 Ứng dụng của FPGA
FPGA có thể sử dụng trong hầu hết các ứng dụng hiện đang dùng
MPGA, PLD và các mạch tích hợp nhỏ (SSI).
• Các mạch tích hợp là ứng dụng đặc biệt (ASICs)
FPGA là phương tiện tổng quát nhất để thực hiện các mạch
logic số. Chúng đặc biệt thích hợp cho việc thực hiện các ASICs.
Một số ví dụ ứng dụng đã được công bố: FIFO một megabit, giao
tiếp vi kênh IPM PS/2, bộ truyền nhận dạng T1, . . .
• Chế tạo mẫu
FPGA rất lý tưởng cho các ứng dụng tạo mẫu sản phẩm.
Giá thành được thực hiện thấp và cần thời gian ngắn để thực hiện
vật lý một thiết kế, cung cấp nhiều ưu điểm hơn so với các phương
pháp truyền thống để chế tạo mẫu phần cứng. Các bản mẫu ban
đầu có thể được thực hiện rất nhanh và những thay đổi sau đó
được thực hiện dễ dàng và ít tốn kém.
• Máy tính dựa trên FPGA
Một loại máy tính hoàn toàn mới có thể được chế tạo với
các FPGA có thể tái lập trình ngay trên mạch FPGA. Các máy
HVTH: Lê Thành Tới
9
Thiết kế bộ vi xử lý RISC 16 bit
tính này có một mạch chứa các FPGA với các chân board nối với
các chip lân cận giống như thông thường. Ýù tưởng là một chương
trình phần mềm có thể được biên dịch (sử dụng kỹ thuật tổng hợp
mức cao, mức logic) vào ngay phần cứng. Phần cứng này sẽ được
thực hiện bằng cách lập trình board mạch FPGA. Phương pháp
này có hai ưu điểm chính: một là không cần quá trình lấy lệnh như
các bộ vi xử lí truyền thống vì phần cứng đã gộp cả các lệnh. Kết
quả là tốc độ có thể tăng lên hàng trăm lần. Hai là môi trường
tính toán có thể được thực hiện song song mức cao, làm tăng tốc
thêm nữa.
• Tái cấu hình phần cứng trực tuyến
FPGA cho phép có thể thay đổi theo mong muốn cấu trúc
của một máy đang hoạt động. Một ví dụ là thiết bị máy tính từ xa
có thể được thay đổi trực tuyến để khắc phục sự cố hay có lỗi thiết
kế. Kiểu FPGA thích hợp nhất cho ứng dụng này là những FPGA
có các chuyển mạch lập trình được.
Tóm lại FPGA có thể sử dụng có hiệu quả trong nhiều ứng
dụng thực tế. Nếu so sánh với MPGA thì nó có hai lợi điểm quan
trọng: FPGAs có giá tạo mẫu thấp hơn, thời gian chế tạo ngắn
hơn. Tuy nhiên FPGA cũng có hai nhược điểm chính là tốc độ hoạt
động thấp và mật độ logic thấp hơn.
2.3.3.4 Quá trình cài đặt
Người thiết kế muốn tạo ra FPGA tốt phải sử dụng hệ thống CAD
(computer – Aided – Design). Hình 2.3 biểu diễn các bước trong hệ thống cad
tiêu biểu để tạo ra một mạch FPGA.
Mạch logic ban
Tối ưu logic
nh xạ công nghệ
Placement
Rounting
HVTH: Lê Thành Tới
10
Đơn vị lập trình
Thiết kế bộ vi xử lý RISC 16 bit
Điểm bắt đầu cho quá trình thiết kế là mạch logic ban đầu cần thiết kế.
Bước này đòi hỏi một sơ đồ biểu diễn mạch hay mô tả VHDL hoặc đặc tả các
biểu thức boolean. Từ các ngõ vào ban đầu, mô tả mạch được chuyển thành
dạng chuẩn như là các biểu thức boolean. Các biểu thức boolean sau đó được
xử lí bằng công cụ tối ưu logic, chúng rút gọn các biểu thức. Mục đích là biến
đổi các biểu thức để tối ưu về diện tích hay tốc độ của mạch cuối cùng. Cả hai
yêu cầu về diện tích và tốc độ có thể cùng đặt ra. Tiếp theo các biểu thức
boolean đã tối ưu được truyền tới khối logic của FPGA thông qua chương trình
ánh xạ công nghệ. Bộ ánh xạ cố gắng tối thiểu số khối logic được dùng, tức là
tối ưu diện tích hoặc có thể được tối thiểu số lượng khối logic hoặc giảm đường
dẫn tức là tối ưu về giữ chậm. Khi ánh xạ mạch vào các khối logic, cần phải
quyết định đặt mỗi khối logic ở đâu trong dãy FPGAs. Chương trình Placement
được sử dụng để giải quyết vấn đề này. Các giải thuật placement đặc thù cố
gắng tối thiểu tổng số độ dài các dây nối yêu cầu để tạo ra kết quả.
Bước cuối cùng trong hệ thống CAD được thực hiện bằng phần mềm
routing, chúng ấn định các đoạn dây FPGA và chọn các chuyển mạch có thể
lập trình phù hợp với các kết nối trong các khối logic. Phần mềm routing phải
thực hiện 100% các kết nối yêu cầu nếu không thì mạch không thể thiết kế
được trong một FPGA. Hơn nữa cần phải routing sao cho giữ chậm lan truyền
tại các kết nối là tối thiểu. Sau khi thực hiện thành công các bước Placement
và routing, ngõ ra của hệ thống CAD được nạp vào đơn vị lập trình tạo ra chip
FPGA cuối cùng. Toàn bộ quá trình cài đặt mạch trong FPGA mất khoảng vài
phút đến một giờ, phụ thuộc vào loại FPGA đang dùng.
2.3.4 Công nghệ lập trình chip
Trong phần này chúng ta sẽ tìm hiểu cách thực hiện các thiết bị fieldprogrammable. Chúng ta sẽ sử dụng thuật ngữ chuyển mạch để chỉ các phần
tử lập trình (programming element) cho phép các kết nối có thể lập trình giữa
các đoạn dây nối. Có nhiều cách thực hiện các phần tử lập trình, công nghệ lập
trình hiện đang sử dụng là: RAM tónh, cầu chì nghịch (anti-fuse), EPROM
transistor và EEPROM transistor. Mặc dù các công nghệ lập trình này khác
HVTH: Lê Thành Tới
11
Thiết kế bộ vi xử lý RISC 16 bit
nhau, tất cả các phần tử lập trình đều có chung tính chất là có thể cấu hình
được ở một trong hai trạng thái ON hoặc OFF.
Các phần tử lập trình được dùng để thực hiện các kết nối lập trình giữa
các khối logic của FPGA. Một FPGA thông thường có thể hơn 100000 phần tử
lập trình. Vì vậy các phần tử lập trình phải có các tính chất sau:
• Chiếm càng ít diện tích của chip càng tốt.
• Có trở kháng thấp khi ở trạng thái ON và trở kháng cao khi ở
trạng thái OFF.
• Có điện dung thấp khi kết nối các đoạn dây
• Có thể chế tạo một cách tin cậy số lượng lớn các phần tử lập trình
trên một chip.
Tùy thuộc vào ứng dụng của FPGA, các phần tử lập trình có thể có các
đặc tính khác nhau. Ví dụ các phần tử lập trình không bay hơi hay có thể lập
trình lại được. Về mặt chế tạo các phần tử lập trình nếu có chế tạo theo công
nghệ CMOS chuẩn thì rất tốt.
2.3.4.1 Công nghệ lập trình dùng RAM tónh
Công nghệ lập trình dùng SRAM được sử dụng trong FPGA của nhiều
công ty như: Algotronix, Concurrent Logic, Plessey Semiconductors, Xilinx.
Trong các FPGA này các kết nối lập trình được làm bằng transistor truyền
(pass-transistor), các cổng cho phép truyền (pass – gate), hay các bộ dồn kênh
(multiplexer), tất cả đều được điều khiển bằng các ô nhớ (cell) SRAM. Cách
dùng SRAM cell để điều khiển các CMOS pass-transistor, cổng truyền đầy đủ
hay bộ dồn kênh được minh họa ở hình 2.4.
RAM
cell
RAM
cell
Routing wire
Routing wire
Pass - transistor
RAM
cell
HVTH: Lê Thành Tới
12
Routing
wire
Routing
wire
Transmission - Gate
Routing wire
MUX
Thiết kế bộ vi xử lý RISC 16 bit
Trong trường hợp pass – transistor và pass – gate ở hình trên, SRAM
cell điều khiển cổng truyền ON hay OFF. Khi OFF giữa hai dây nối pass – gate
sẽ có trở kháng rất cao, khi ON nó sẽ tạo ra một trở kháng thấp kết nồi giữa
hai dây nối. Đối với bộ dồn kênh, SRAM cell điều khiển ngõ nhập nào của
multiplexer sẽ được kết nối với ngõ ra của nó. Cách này thường dùng để kết
nối tùy chọn từ một hay nhiều ngõ nhập của một khối logic.
Trong các FPGA, sử dụng công nghệ lập trình SRAM, các khối logic có
thể được kết nối với nhau qua cách kết hợp cả multiplexer và pass – gate. Vì
SRAM là bộ nhớ bay hơi, các FPGA này phải được tái cấu hình mỗi khi cấp
nguồn cho chip. Đều này có nghóa là hệ thống sử dụng chip này phải có một số
cơ chế lưu trữ thường trực cho các bit của RAM cell, chẳng hạn ROM hay đóa
từ. Các bit của RAM cell có thể được nạp vào FPGA một cách tuần tự hay định
địa chỉ như một phần tử mảng (theo cách thông thường của một RAM).
Các chip được thực hiện theo công nghệ SRAM có diện tích khá lớn, bởi
vì cần ít nhất 5 transistor cho mỗi RAM cell cũng như các transistor cần thêm
cho pass – gate hay multiplexer. Ưu điểm chính của kỹ thuật này là cho phép
FPGA có thể được tái cấu hình ngay trên mạch rất nhanh và nó có thể được
chế tạo bằng công nghệ CMOS chuẩn.
2.3.4.2 Công nghệ lập trình dùng cầu chì nghịch (anti – fuse)
Công nghệ lập trình dùng cầu chì nghịch được sử dụng trong các FPGA
của Actel Corp, Quick logic và Crosspoint Solution. Cầu chì nghịch sử dụng
trong các loại FPGA này có cấu tạo khác nhau, nhưng chức năng của chúng là
như nhau. Một cầu chì nghịch bình thường sẽ ở trạng thái trở kháng cao, nhưng
có thể nóng chảy thành trạng thái có điện trở thấp khi được lập trình ở điện
thế cao. Dưới đây sẽ giới thiệu cấu tạo của các antifuse của Actel và
Quicklogic.
Anti-fuse của Actel được gọi là PLICE, nó có cấu trúc hình chữ nhật
gồm ba lớp: lớp dưới cùng chứa silic mang nhiều điện tích dương (n+diffusion),
lớp giữa là một lớp điện môi và lớp trên cùng là poly-silic.
HVTH: Lê Thành Tới
13
Thiết kế bộ vi xử lý RISC 16 bit
Anti – fuse PLICE được lập trình bằng cách đặt một điện thế cao thích
hợp 18 V giữa hai đầu của anti – fuse và dòng điều khiển khoảng 5mA qua thiết
bị. Dòng và áp này tạo ra một nhiệt lượng đủ nóng bên trong lớp điện môi làm
nó nóng chảy và tạo ra một liên kết dẫn điện giữa poly silic và n+diffusion. Các
transisitor chịu được điện thế cao được chế tạo bên trong FPGA để đáp ứng
cho dòng và điện áp đủ lớn. Cả hai lớp dưới cùng và trên cùng của anti – fuse
được nối với các dây kim loại để khi được lập trình, anti – fuse sẽ tạo ra một
kết nối có trở kháng thấp (từ 300 đến 500 ohm) giữa hai dây kim loại. PLICE
anti – fuse được chế tạo bằng cách thêm ba mặt nạ đặc biệt vào qui trình chế
tạo CMOS thông thường.
Anti – fuse của Quicklogic được gọi là ViaLink sử dụng kim loại mức một
cho lớp dưới cùng, một hợp kim silic vô định hình cho lớp giữa và kim loại mức
hai cho lớp trên cùng.
Khi ở trạng thái không được lập trình, anti – fuse có trở kháng hàng
gigaohm, nhưng khi được lập trình, nó sẽ tạo ra một kết nối giữa hai lớp kim
loại có trở kháng khoảng 80 ohm. Anti – fuse được chế tạo bằng cách thêm vào
ba mặt nạ đặc biệt trong qui trình chế tạo CMOS thông thường.
Vialink Anti – fuse được lập trình bằng cách đặt thêm một điện thế 10V
giữa các đầu của nó. Khi dòng điện được cấp đủ, trạng thái của silic vô định
hình sẽ thay đổi và tạo ra một liên kết dẫn điện giữa hai lớp kim loại.
Diện tích các chip sử dụng anti – fuse rất nhỏ so với các công nghệ khác.
Tuy nhiên bù lại cần phải có không gian lớn cho các transistor điện thế cao cần
giữ cho dòng và áp cao lúc lập trình. Nhược điểm của anti – fuse là qui trình
chế tạo chúng cần phải thay đổi so với qui trình chế tạo CMOS.
2.3.4.3 Công nghệ lập trình EPROM và EEPROM
Công nghệ lập trình EPROM được sử dụng trong các FPGA của Altera
Corp và Pluslogic. Công nghệ này giống như sử dụng trong bộ nhớ EPROM,
không giống MOS transistor đơn giản, một EPROM transistor gồm hai cổng,
một cổng treo (floating – gate) và một cổng chọn (select – gate). Cổng treo
được đặt giữa cổng chọn và kênh của transistor, nó được gọi như thế vì không
có kết nối điện đến bất kì mạch nào.
Ở trạng thái bình thường không được lập trình, không có điện tích giữa
cổng treo và transistor có thể được chuyển sang trạng thái ON một cách bình
thường bằng cổng chọn. Khi transistor được lập trình bằng một dòng điện lớn
chạy giữa nguồn và kênh, một điện tích được giữ lại ở cổng treo. Điện tích này
làm transistor chuyển sang trạng thái OFF. Bằng cách này, EPROM transistor
có thể có chức năng của một phần tử lập trình được. Một EPROM transistor
có thể được tái lập trình bằng cách hủy bỏ lớp điện tích được giữ lại ở cổng
treo (phơi dưới ánh sáng cực tím sẽ kích hoạt các electron chuyển từ cổng vào
chất nền của transistor).
HVTH: Lê Thành Tới
14