BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
BỒ QUỐC BẢO
NGHIÊN CỨU MODUL GIẢNG DẠY FPGA
LUẬN VĂN THẠC SĨ
NGÀNH XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG
Hà Nội, 2005
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
BỒ QUỐC BẢO
NGHIÊN CỨU MODUL GIẢNG DẠY FPGA
LUẬN VĂN THẠC SĨ
NGÀNH XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG
NGƯỜI HƯỚNG DẪN:
TS NGUYỄN LINH GIANG
Hà Nội, 2005
Bồ Quốc Bảo
Lớp CH XLTT&TT 2003
-2-
Lời cam đoan
Tôi xin cam đoan bản luận văn này là kết quả nghiên cứu của bản thân
dưới sự hướng dẫn của TS. Nguyễn Linh Giang. Nếu có gì sai phạm, tôi xin
hoàn toàn chịu trách nhiệm.
Người làm cam đoan
Bồ Quốc Bảo
Bồ Quốc Bảo
-3-
Lớp CH XLTT&TT 2003
Mục lục
Lời cam đoan ................................................................................................................ 2
Mục lục ......................................................................................................................... 3
Danh mục các hình vẽ .................................................................................................. 4
Lời nói đầu .................................................................................................................... 6
Chương 1. Tổng quan về ASIC lập trình được .......................................................... 8
1.1. Tổng quan về các công nghệ ............................................................................... 8
1.2. Sự ra đời của công nghệ AsiC ............................................................................ 9
1.3. Các hÃng chính ứng dụng công nghệ ASIC .......................................................... 10
1.4. C¸c híng tiÕp cËn thiÕt kÕ ASIC ..................................................................... 11
1.5. Đầu vào thiết kế ASIC....................................................................................... 14
1.6. Tổng hợp logic .................................................................................................. 23
1.7. Các công cụ thiết kế và phát triển ASIC ........................................................... 24
Chương 2. Xilinx và sản phẩm FPGA ...................................................................... 28
2.1. Giới thiệu về công ty Xilinx.............................................................................. 28
2.2. Các dòng sản phÈm chÝnh cđa Xilinx ............................................................... 29
2.3. Giíi thiƯu s¶n phÈm Spartan II của Xillinx ....................................................... 31
2.4. Các chỉ tiêu kỹ thuật chi tiết Spartan II. ............................................................ 52
Chương 3. Các ngôn ngữ mô tả phần cứng HDL .................................................... 56
3.1. VHDL ............................................................................................................... 56
3.2. Ngôn ngữ mô tả phần cứng ABEL .................................................................... 64
3.3. Ngôn ngữ Schematic Editor .............................................................................. 70
Chương 4. Thiết kế modul giảng dạy sử dụng FPGA XC2S100 ............................ 80
4.1. Mục đích và yêu cầu thiết kế ............................................................................ 80
4.2. Những yêu cầu về phần mềm và phần cứng khi thiết kế mạch báo chuông ..... 82
4.3. Trình tự thiết kế với FPGA................................................................................ 85
4.4. Trình tự thiết kế các mạch chức năng ............................................................... 86
4.5. Mạch báo chuông .............................................................................................. 94
Kết luận ................................................................................................................... 97
Tài liệu tham kh¶o ................................................................................................. 98
Phơ lơc..................................................................................................................... 99
Bồ Quốc Bảo
-4-
Lớp CH XLTT&TT 2003
Danh mục các hình vẽ
Tên hình
Hình 1.1: Một phần của thiết kế ASIC
Hình 1.2: Sơ đồ khối của PROM
Hình 1.3: Sơ đồ khối của PAL
Hình 1.4: Sơ đồ khối của PLA
Hình 1.5: Cấu trúc chung cđa mét EPLD
H×nh 1.6: CÊu tróc cđa mét macrocell
H×nh 1.7: Mét CPLD cđa Xilinx
H×nh 2.1: CÊu tróc FPGA cđa Xilinx
H×nh 2.2: Cấu trúc chung của FPGA
Hình 2.3: Một CLB điển hình của FPGA dòng Spartan II
Hình 2.4: Sơ đồ khối chức năng của Flip-Flop trong CLB
Hình 2.5: Ghép nối các tín hịêu điều khiển.
Hình 2.6: Sơ đồ khối của IOB
Hình 2.7: Sơ đồ khối chức năng IOB.
Hình 2.8: OAND2 và OMUX2.
Hình 2.9: Sơ đồ khối chung của các kênh kết nèi trong CLB
H×nh 2.10. Ma trËn kÕt nèi trong FPGA.
H×nh 2.11: Phân bố mạng tổng thể của Spartan
Hình 2.12: Sơ đồ logic của RAM cổng đơn.
Hình 2.13: Sơ đồ logic cđa RAM cỉng kÐp
H×nh 2.14: Chi tiÕt mét logic nhí của Spartan
Hình 2.15: Bộ đệm 4 trạng thái thực hiện một bộ phân kênh
Hình 2.16: Sơ đồ logic quét biên của dòng Spartan
Hình 2.17: Sơ đồ mạch Master Slave
Hình 3.1: C¸c bíc thiÕt kÕ VHDL
Bồ Quốc Bảo
-5-
Hình 3.2: Các thực thể VHDL và cấu trúc
Hình 3.3: Cấu trúc file chương trình VHDL
Hình 3.4: Cấu trúc module của ABEL
Hình 3.5: Sơ đồ khối của mạch
Hình 3.5: Sơ đồ khối của mạch
Hình 3.6: Các dấu chấm më réng trong ABEL
H×nh 3.7: Bé céng 1 bit
H×nh 3.7: Sơ đồ bộ cộng 1 bit
Hình 4.1: Sơ đồ khối mạch báo chuông
Hình 4.2: Hình ảnh thực tế kit XSA-100 Board V1.0
Hình 4.3: Sơ đồ nguyên lý của XSA-100 Board V1.0
Hình 4.4: Trình tự thiết kế với FPGA
Hình 4.5: Mạch đa hài đợi tạo dao động âm tần
Lớp CH XLTT&TT 2003
Bồ Quốc Bảo
-6-
Lớp CH XLTT&TT 2003
Lời nói đầu
Cùng với sự phát triển của khoa học kỹ thuật, việc tự động hoá thiết kế
các mạch điện tử đóng một vai trò quan trọng trong việc thúc đẩy sự phát triển
kỹ thuật tính toán. Từ những năm 50 của thế kỷ trước, quá trình phát triển của
kỹ thuật điện tử đà trải qua nhiều giai đoạn: từ những bóng đèn điện tử đến
những bóng bán dẫn, qua những mạch tích hợp nhỏ rồi tới những mạch với độ
tích hợp lớn và siêu lớn. Những mạch tích hợp loại này có thể chứa hàng triệu
linh kiện bán dẫn trên một mạch. Ví dụ điển hình là các bộ vi xử lý. Việc thiết
kế những mạch có độ tích hợp lớn và siêu lớn không thể thực hiện một cách
thủ công, mà phải có sự giúp đỡ của máy tính.
Với mục đích không ngừng đáp ứng các nhu cầu của xà hội, hiện nay các
môn học về thiết kế hệ thống số đà và đang được đưa vào giảng dạy tại các
trường Cao đẳng và Đại học, việc tiếp cận môn học này tương đối khó và trừu
tượng, để môn học trực quan và dễ tiếp cận việc thực hành lập trình số là rất
cần thiết.
Một trong những công nghệ mới được ra đời, có thể thay thế cho các hệ
thống số trước đây đòi hỏi rất nhiều thời gian và chi phí cho nghiên cứu và chế
tạo, đó là công nghệ ASIC (Application Specific Integrated Circuit). Dẫn đầu
trong lĩnh vực này là sản phÈm FPGA (Field Programmable Gate Array) vµ
CPLD (Complex Programmable Logic Devices) của công ty Xilinx. Sử dụng
FPGA hoặc CPLD thì có thể tối thiểu hóa được nhiều công đoạn thiết kế, lắp
ráp vì hầu hết được thực hiện trên máy tính. Các ngôn ngữ mô phỏng phần
cứng (HDL: Hardware Description Languages) như ABEL, VHDL, Verilog,
Schematic...cho phép thiết kế và mô phỏng hoạt động của mạch bằng chương
trình. Các chương trình mô phỏng cho phép xác định lỗi thiết kế một cách dễ
dàng và kết quả thực hiện của chương trình là một file bit cấu hình (bitstream)
để nạp (download) vào FPGA và CPLD để nó hoạt động giống như một m¹ch
logic.
Bå Qc B¶o
-7-
Líp CH XLTT&TT 2003
Việc nghiên cứu và thiết kế các modul thí nghiệm FPGA để giúp các em
học sinh-sinh viên nói chung và sinh viên trường Cao đẳng Cơng nghiệp nói
riêng được tiếp cận và sử dụng cơng nghệ mới, đáp ứng nhu cầu của xã hội
khi ra trường là một công việc vô cùng cần thiết và cấp bách.
Víi sù híng dÉn cđa TS Ngun Linh Giang, trong khuôn khổ luận văn
này, tôi mạnh dạn tìm hiểu và nghiên cứu về công nghệ mới của công ty
Xilinx. Qua nghiên cứu và tìm hiểu về các thiết bị có thể lập trình được của
Xilinx, tôi sử dụng chip XC2S100 dòng Spartan II thiết kế một số mạch đơn
giản, trên cơ sở những mạch này để thiết kế một modul giảng dạy cho sinh
viên trường Cao đẳng Công nghiệp Hà nội mạch báo chuông cho lớp học.
Nội dung của luận văn bao gồm 4 chương, trong đó:
Chương 1: Giới thiệu tổng quan về ASIC lập trình được.
Chương 2: Giới thiệu về hÃng Xilinx và sản phẩm FPGA.
Chương 3. Giới thiệu một số ngôn ngữ mô tả phần cứng HDL.
Chương 4. Thiết kế modul giảng dạy sử dụng FPGA XC2S100-Spartan II
Do thời gian và khả năng có hạn nên luận văn này sẽ còn nhiều thiếu sót.
Rất mong được sự góp ý và thông cảm của các thầy giáo, cô giáo.
Hà nội, ngày 20 tháng 10 năm 2005
Học viên
Bồ Quèc B¶o
Bồ Quốc Bảo
-8-
Lớp CH XLTT&TT 2003
Chương 1
Tổng quan về ASIC lập trình được
1.1. tổng quan về các công nghệ
Nền công nghiệp bán dẫn đà phát triển từ các IC đầu tiên vào khoảng
những năm đầu của những năm 1970 và ®· trëng thµnh nhanh chãng tõ ®ã.
Mét ®iỊu quan träng trong việc thiết kế là cần phải nghiên cứu các phương
thức thực hiện một cách cẩn thận trước. Các bước tiếp theo cần làm trong suốt
quá trình thiết kế sẽ phụ thuộc hoàn toàn vào phương thức thực hiện mà mình
lựa chọn.
Sự phức tạp trong hệ thống tăng lên cho kết quả mạch tích hợp ở các mức
cao hơn trong các microchip. Có các mức tích hợp như sau:
-
SSI (Small Scale Integration), nó chứa nhiều cổng độc lập trên một gói
đơn, thông thường số cổng không vượt quá 10 cổng.
-
MSI (Medium Scale Integration) có độ phức tạp cao hơn trong khoảng
từ 10 đến 100 cổng trên một gói đơn.
-
LSI (Large Scale Integration) có khoảng từ 100 đến vài nghìn cổng trên
một gói đơn.
-
VLSI (Very Large Scale Integration) chứa từ vài nghìn cổng đến hàng
triệu cổng trên một gói đơn.
Ngoài ra, các IC còn có thể được phân chia theo các chức năng mà nó thực
hiện, các chức năng phù hợp với thị trường và ảnh hưởng tới giá thành của
thiết bị:
-
Thông thường (General): là các thiết bị phục vụ cho các mục đích
thông thường.
-
ASIC (Application Specific IC): sử dụng trong các chip hiện đại, các bộ
điều khiển nhúng với mục đích thiết kế đáp ứng nhu cầu của người sử
dụng.
Bồ Quốc Bảo
-9-
Lớp CH XLTT&TT 2003
1.2. Sự ra đời của công nghệ AsiC
Nhằm cải thiện tính linh hoạt của các IC và nâng cao chất lượng ngành công
nghiệp sản xuất IC, IEEE đà tổ chức các hội thảo về các IC theo đơn đặt hàng
CICC (Custom Integrated Circuit Conference). Theo đó, có nhiều kiểu IC dạng
theo đơn đặt hàng khác nhau được đưa ra nhằm giải quyết cho nhiều mục đích
ứng dụng cụ thể chuyên biệt. Từ đây, xuất hiện một thuật ngữ mới và chính thức
được sử dụng đó là: Application - Specific IC, hay viết tắt là ASIC. Hiện nay,
IEEE thường xuyên tổ chức định kỳ các hội thảo cấp quốc tế về ASIC, nhằm điều
chỉnh và nâng cao các ưu điểm cũng như tính thuận tiện và đưa ra các công nghệ
tiên tiến của các hÃng sản xuất ASIC khác nhau và phân loại chúng thành nhiều
chủng loại IC theo đơn đặt hàng. Mặc dù để định nghĩa được chính xác ASIC là rất
khó, song chúng ta coi như đó là một thuật ngữ đà được công nhận chính thức
trong ngành công nghiệp IC.
Định nghĩa tiếng Anh cđa tht ng÷ ASIC theo IEEE 12/1999 nh sau: “ASIC
stands for Application Specific Integrated Circuits. An ASIC is custom tailored IC
that perfoms a specific task for specific application- tạm dịch là ASIC là viết tắt
của từ Application Specific Integrated Circuits, nghĩa là các mạch tích hợp ứng
dụng chuyên biệt - hoặc ngắn gọn hơn là IC chuyên dụng. Tuy nhiên, nhiều
nhà ASIC học vẫn quen gọi là các IC dùng cho mục đích của khách hàng hoặc
là các IC được thiết kế đặc biệt theo yêu cầu của khách hàng.
Ví dụ về các IC không phải là ASIC theo yêu cầu bao gồm các loại sau:
các chip nhớ như ROM, DRAM, và SRAM; các bộ phận xử lý, các IC họ
TTL và tương đương theo công nghệ SSI, MSI và LSI.
Còn các IC thuộc dòng ASIC bao gồm: các chíp dùng trong công nghiệp
giải trí; các chíp dùng trong công nghiệp vệ tinh, vũ trụ, các chíp được thiết kế
dùng ®Ĩ giao tiÕp gi÷a bé vi xư lý ®èi víi các CPU của các máy trạm làm việc và
các chip chứa bộ vi xử lý bên trong cùng với các phần tử logic khác.
Theo quy tắc chung, một IC có thể không phải là ASIC, nhưng đôi khi có
những trường hợp ngoại lệ. Ví dụ, một IC là chip điều khiển đối với PC và một IC
là chip điều khiển MODEM. Cả hai đều là các IC ứng dụng chuyên biệt (giống
như ASIC) nhưng cả hai đều có một số điểm khác khi sử dụng vào những hệ thống
khác. Do vậy, người ta chia họ ASIC thành ba thành viên chÝnh: Cell Based ICs
Bồ Quốc Bảo
-10-
Lớp CH XLTT&TT 2003
(CBICs), Gate Array và Programmable Logic Devices (PLDs). Lúc đó xuất hiện
thêm một thuật ngữ tương đương ASIC là ASSPs (Application Specific Standard
Product -các sản phÈm tiªu chn øng dơng chuyªn biƯt). Do vËy, khi quyết định
chọn IC nào trong số họ ASIC rộng lớn thì rất khó, chủ yếu dựa vào công nghệ
chế tạo và khả năng ứng dụng cũng như mục đích sử dụng.
1.3. Các hÃng chính ứng dụng công nghệ ASIC
Hiện nay, tại các nước có nền công nghiệp điện tử và vi điện tử phát triển cao,
việc nghiên cứu và ứng dụng ASIC vào thực tế đà được áp dụng vào đầu thập kỷ
90. Một số hÃng chính trên thế giới về công nghệ ASIC như:
IBM: có các sản phẩm Power PC nổi tiếng, mới nhất hiện nay là dòng sản
phẩm Power 4+ tích hợp bên trong hai bộ vi xử lý, tương thích cả 64 bit và 32 bit.
Ngoài ra, còn có dòng sản phẩm Power PC Gx 32 bit và Power PC G5 64 bit kết
hợp với hÃng Apple. Các sản phẩm của IBM hiện nay cũng dựa trên công nghệ
0.18 àm và 0.13 àm. Hiện nay, IBM là hÃng đứng đầu thế giới về các sản phẩm
ASIC/ PLD .
NEC: NEC là hÃng đứng thứ hai về lượng sản phẩm ASIC bán ra trên thị
trường thế giới, trong đó có dòng máy chủ gây nên sự kinh ngạc khi kỷ lục về siêu
máy tính mạnh nhất thế giới vào thời điểm 11/2003 thuộc về hệ thống Earth
Simulator đặt tại YOKOHAMA (Nhật Bản) với các CPU của NEC.
Xilinx: hÃng này với các sản phẩm truyền thống là Virtex-II, Virtex-II Pro,
Virtex-4 thuộc dòng FPGA mới nhất theo công nghệ 90 nm, và dòng sản phẩm
Spartan-3 tích hợp với 5 triệu cổng thuộc họ FPGA. Cuối cùng là các sản phẩm
PLD điển hình là CoolRunner-II. Hiện nay, Xilinx đứng thứ 2 thế giới về các sản
phẩm ASIC/PLD. Các sản phẩm của Xilinx còn được biết đến với công cụ EDA
dành cho thiết kế là phần mềm ISE 6.2i.
Altera: hiện nay là hÃng đứng thứ 8 trong số các công ty chuyên về ASIC/PLD
và đứng thứ 3 về các sản phẩm FPGA. HÃng này có các sản phẩm như:
EP20K100TC144-3, EPF8282ALC84-4,với các phần mềm đi kèm hỗ trợ cho
các sản phẩm của các hÃng khác là MAX + PLUS II và Quartus 3.0.
Ngoài ra còn có một số hÃng khác là Agere, Fujitsu, Toshiba...
Bồ Quốc Bảo
Lớp CH XLTT&TT 2003
-11-
1.4. Các hướng tiếp cận thiết kế ASIC
1.4.1. Các công nghệ lập trình thiết kế ASIC.
Tóm tắt công nghệ lập trình cho ASIC được trình bày trong bảng 1.1 sau:
Bảng 1.1: Tóm tắt công nghệ lập trình cho ASIC
Công nghệ lập
Tính bay
Có thể lập
Diện tích của
Điện trở
trình
hơi
trình
ASIC
(ohm)
Điện tích
(pF)
Có
Trong mạch
Lớn
1-2K
10 20
Không
Không
Anti fuse nhỏ
Số transistor lớn
300-500K
3-5
Không
Không
Anti fuse nhỏ
Số transistor lớn
50-80K
1-3
EPROM
Không
Ngoài mạch
Nhỏ
2-4K
10-20
EEPROM
Không
Trong mạch
2xEPROM
2-4K
1-20
Các phần tử
RAM tĩnh
Lập trình cầu
chì
nghịch
PLICE (PLICE
anti fuse)
Lập trình cầu
chì
nghịch
ViaLink
(ViaLink anti
fuse)
1.4.2. Đầu vào thiết kế ASIC
Mục đích của đầu vào thiết kế mô tả một hệ thống vi điện tử dựa trên các
công cụ của hệ tự động thiết kế điện tử EDA. Các hệ thống điện tử được xây
dựng dựa trên các thành phần tĩnh, như là các IC TTL. Đầu vào thiết kế đối
với các hệ thống này chính là công việc vẽ các mạch và tổng hợp dạng giản
đồ. Giản đồ thể hiện các thành phần được kết nối với nhau như thế nào, đó
chính là liên kết của một ASIC. Phần này của quá trình đầu vào thiết kế được
gọi là đầu vào giản đồ. Một giản đồ mạch mô tả một ASIC giống như là một
bản thiết kế cho một công trình xây dựng.
Giản đồ mạch là một bản vẽ, là một khuôn dạng đơn giản để chúng ta có
thể hiểu và sử dụng, nhưng các máy tính cần làm việc với các phiên bản
ASCII hoặc các tệp nhị phân và chúng ta gọi là các tệp tin netlist (viết tắt là
Bồ Quốc Bảo
-12-
Lớp CH XLTT&TT 2003
netlist). Đầu ra của công cụ thiết kế giản đồ chính là một netlist có chứa mô tả
của tất cả các thành phần trong một bản thiết kế và các đường kết nối của
chúng. Đầu vào thiết kế là một trong những phần quan trọng nhất của công
nghệ ASIC.
Đầu vào thiết kế bao gồm các thành phần thiết kế sau:
Thư viện thiết kế ASIC.
Thư viện thiết kế các vi mạch ASIC lập trình được (programmable ASIC).
Thư viện phần tử logic ASIC lập trình được.
Thư viện phần tử vào/ ra ASIC lập trình được.
Thư viện phần tử kết nối ASIC lập trình được.
Phần mềm thiết kế ASIC lập trình được:
- Đầu vào thiết kế logic mức thÊp (Low – level design entry) sư dơng
VHDL: Bé qc phòng Mỹ (The US Department of Defence-DoD) đà hỗ trợ
việc phát triển ngôn ngữ VHDL (VHSIC Hardware Description Laguage) như
một phần của chương trình quốc gia VHSIC (Very High Speed IC) vào đầu
thập kỷ 80.
- Tổng hợp logic (Logic Synthesis): tổng hợp logic cung cấp giữa một tệp
HDL (VHDL hoặc Verilog) và một netlist tương tự như cách mà một bộ biên
dịch C cung cấp liên kết giữa mà lệnh chương trình C và ngôn ngữ máy.
- Mô phỏng (Simulation): các kỹ sư đà quen với các hệ thống mẫu dùng để
kiểm tra sản phẩm thiết kế của họ, đó là việc sử dụng một đế thử mạch mẫu,
cho phép cắm các IC và các dây dẫn lên. Đế thử mạch mẫu chỉ có thể thực
hiện được khi xây dựng hệ thống từ một vài IC TTL. Tuy nhiên, điều này là
phi thực tế đối với thiết kế ASIC. Do vậy, hầu hết các kỹ sư thiết kế ASIC đề
sử dụng phương pháp mô phỏng tương đương thay cho mô hình đế thử mạch.
-Thử nghiệm mức logic (test): các ASIC được thử nghiệm theo hai giai
đoạn trong quá trình sản xuất bằng cách sử dụng các phương pháp thử nghiệm
sản xuÊt.
Bồ Quốc Bảo
-13-
Lớp CH XLTT&TT 2003
1.4.3. Thiết kế vật lý
Hình 1.1 biểu diễn một phần của
sơ đồ thiết kế.
Design Entry
Synthesis
Đầu tiên chúng ta áp dụng việc
phân chia hệ thống để chia một hệ
System
thống vi điện tử thành các ASIC.
partitioning
Trong phần lên sơ đồ mặt bằng, chúng
Floor planning
ta sẽ đánh giá kích thước và đặt các vị
trí liên quan của các khối trong ASIC
(đôi khi còn được gọi là sắp xếp chip Placement
chip planning). Cùng thời điểm này
chúng ta định vị khoảng trống cho
Routing
đường xung nhịp, nguồn và quyết định
vị trí của cổng I/O. Việc sắp đặt
Hình 1.1: Một phần của thiết kế ASIC
(Placement) định nghĩa vị trí của các
phần tử logic cùng với sự linh hoạt của các khối và khoảng trống dành cho
việc nối các phần tử logic. Việc sắp đặt đối với thiết kế ma trận cổng (Gate array) hoặc phần tử tiêu chuẩn (Standard - cell) bố trí mỗi một phần tử logic
vào vị trí trong cùng một hàng. Việc lên sơ đồ mặt bằng (floor planning) và
sắp đặt phần tử đôi khi có thể sử dụng công cụ CAD (Computer Aided
Design). Việc định tuyến (Routing) thực hiện đường kết nối giữa các phần tử
logic. Việc định tuyến là một vấn đề rất khó và thường được phân chia thành
các bước riêng biệt gọi là định tuyến toàn cục và định tuyến cục bộ. Định
tuyến toàn cục xác định các kết nối giữa các phần tử logic đà đặt chỗ và các
khỗi sẽ đặt chỗ ở đâu. Còn định tuyến cục bộ là mức định tuyến cụ thể và chi
tiết đến từng phần tử.
1.4.4. Các công cụ CAD
Để phát triển công cụ CAD cần thiết phải chuyển đổi mỗi một bước trong
thiết kế vật lý thành các chủ thể có mục đích và định hướng rõ ràng. NhiƯm vơ
trong c¸c bíc thiÕt kÕ vËt lý ASIC cđa các công cụ CAD là:
Phân chia hệ thống (System Partitioning):
Bồ Quốc Bảo
-14-
Lớp CH XLTT&TT 2003
- Mục đích: phân chia một hệ thống thành một số các ASIC.
- Định hướng: tối thiều hoá số lượng các kết nối ngoài giữa các ASIC. Giữ
cho mỗi ASIC nhỏ hơn kích thước cực đại.
Lên sơ đồ mặt bằng (floor planning):
- Mục đích: tính toán kích thước của tất cả các khối và sắp đặt vị trí của
chúng.
- Định hướng: bảo đảm sự liên kết cao giữa các khối về mặt tự nhiên càng
gần càng tốt.
Sắp đặt các phần tử (Placement):
- Mục đích: sắp đặt việc kết nối giữa các vùng và vị trí của tất cả các phần
tử logic cùng với các khối linh hoạt.
- Định hướng: tối thiểu hóa các vùng ASIC và mật độ kết nối.
Định tuyến toàn cục (global routing):
- Mục đích: quyết định vị trí của tất cả các kết nối.
- Định hướng: tối thiểu hoá toàn bộ vùng kết nối được sử dụng.
Định tuyến chi tiết (detail routing):
- Mục đích: hoàn thành định tuyến tất cả các kết nối trên chip.
- Định hướng: tối thiểu hoá tổng số độ dài kết nối được sử dụng.
1.5. Đầu vào thiết kÕ ASIC
1.5.1. Th viƯn thiÕt kÕ ASIC
Th viƯn phÇn tư là một phần chính trong thiết kế ASIC. Đối với các ASIC
lập trình được thì các công ty chuyên về PLD, FPGA cung cấp cho chúng ta
thư viện các phần tư logic díi h×nh thøc mét bé kit thiÕt kÕ, thông thường
chúng ta không có một sự lựa chọn nào và giá thành của nó khoảng vài nghìn
đôla. Đối với các MGA và CBIC chúng ta có ba lựa chọn: nhà cung cấp ASIC
(công ty xây dựng ASIC cho chúng ta) sẽ cung cấp một thư viện phần tử, hoặc
chúng ta cã thĨ mua mét th viƯn phÇn tư tõ một nhà cung cấp thư viện thứ ba,
hoặc chúng ta có thể xây dụng thư viện phần tử của chính m×nh.
Bồ Quốc Bảo
Lớp CH XLTT&TT 2003
-15-
Tuy nhiên để tạo ra mỗi phần tử trong một thư viện phần tử ASIC phải bao
gồm các yếu tố sau:
- Sơ đồ bố trí vật lý.
- Mô hình hoạt động.
- Mô hình Verilog/VHDL.
- Mô hình tính toán thời gian chi tiết.
- Chiến lược thử nghiệm phải kiểm tra.
- Sơ đồ mạch.
- Biểu tượng của phần tử.
- Mô hình tải.
- Mô hình định tuyến.
1.5.2. Các vi mạch ASIC lập trình được
Có hai loại ASIC lập trình được: các thiết bị logic lập trình được PLD
(Programmable Logic Devices) và Ma trận cổng lập trình được theo trêng –
FPGA (Field- Programmable Gate Array). ViƯc ph©n biƯt giữa hai loại ASIC
này chưa được chuẩn hoá. Sự khác nhau thực tế chỉ là sự kế thừa của chúng.
Các PLD bắt đầu từ những thiết bị nhỏ dùng để thay thế một phần của họ IC
TTL, và chúng được phát triển tương tự như người anh em FPGA của chúng,
chỉ khác nhau về công nghệ chế tạo. Trong mục này, chúng ta sẽ coi cả hai
loại ASIC đều là các ASIC lập trình được.
1.5.2.1. Các thiết bị logic lập trình được.
PLD có thể được phân chia thành các loại sau.
a. PLD tổ hợp
PROM
inputs
Fixed
AND array
(decoder)
Programmable
Connections
Programmable
OR array
Hình 1.2: Sơ đồ khèi cña PROM
outputs
Bồ Quốc Bảo
Lớp CH XLTT&TT 2003
-16-
Các PROM được sử dụng với mục đích chính là các thiết bị bộ nhớ lưu trữ
cố định các thông tin nhị phân. Các quá trình lập trình liên quan đến việc đốt
cháy các cầu chì (fuse). Nhưng PROM lại rất lý tưởng cho việc thực hiện logic
mà có ít hơn 10 tín hiệu đầu vào, và cấu trúc bên trong của nó là một tập các
cổng AND và OR. Các PROM được thiết kế như là các thiết bị logic thường
được biết đến dưới tên PLE (Các thành phần logic lập trinh được- Programable
Logic Elements). Do vậy, ta có thể xem các PROM là các mảng AND cố định
và các mảng OR lập trình được. Chúng có thể được sử dụng để làm các mạch
tích hợp chung trong mô hình tổng của các minterm.
PAL
inputs
Programmable
Programmable
Fixed
Connections
AND array
OR array
outputs
Hình 1.3: Sơ đồ khối của PAL
PAL có mảng các phần tử logic AND lập trình được và mảng cố định các
phần tử logic OR. Các mảng AND được lập trình cung cấp các minterms cho
các chức năng logic, mà sau đó nó được tổng lại trong mảng OR.
PLA
inputs
Programmable
Programmable
Programmable
Programmable
Connections
AND array
Connections
OR array
outputs
Hình 1.4: Sơ đồ khối của PLA
PLA có các kết nối có thể lập trình được cho cả hai mảng phần tử AND và
mảng phần tử OR. Đây là loại PLD linh hoạt nhất. Nó khá giống với PROM,
tuy nhiên PLA không cung cấp đầy đủ giải mà của các biến đầu vào. Bộ giải
mà được thay thế bằng một mảng các phần tử AND có thể lập trình được để
tạo ra các minterm theo yêu cầu. Các minterm sau đó được kết nối có chọn lọc
đến phần tử OR để cung cấp tổng cho chức năng logic mong muốn.
PAL và PLA đà xuất hiện trong nhiều kiểu thiết bị khác nhau của nhiều
nhà sản xuất trong suốt quá trình phát triển của PLD.
Bồ Quốc Bảo
-17-
Lớp CH XLTT&TT 2003
b. PLD tuần tự
SPLD
SPLD là thiết bị logic có khả năng lập trình được theo kiểu tuần tự. Hầu
hết các nhà sản xuất đều quen thuộc với kiểu thiết bị này dưới tên gọi EPLD.
Sơ đồ khối cấu trúc chung của một EPLD được thể hiện trên Hình 1.5. Một
khối đầu ra EPLD cơ sở thường bao gồm ba thành phần cơ bản: một mảng
logic, một thanh ghi cấu hình được và một bộ đệm I/O cấu hình được. Mỗi
khối logic trên được gọi lµ mét macrocell. Mét macrocell bao gåm:
- 1 D Flip-Flop.
- Hai bộ ghép kênh:
ã Bộ ghép kênh đầu ra có chọn lọc (Output Select): làm việc tuân theo
bảng 1.
ã Bộ ghép kênh đầu vào/phản hồi (Input/Feedback):
C1:
0 - đăng ký đầu ra nh mét ph¶n håi, vÝ dơ cho mét state
machine.
1 nếu bộ đệm đầu ra không được cho phép, chân được
lập trình như là đầu vào thay vì đầu ra,còn nếu bộ đệm đầu ra được kích hoạt
đầu ra tổ hợp được coi như là phản hồi.
FEEDBACK (Programmable)
OUTPUT
PIN
INPUT
PIN
Programmable
AND & ‘OR’ array
INPUT BLOCK
(Contains latches and others
programmable input options)
H×nh 1.5: CÊu tróc chung cđa mét EPLD
OUTPUT BLOCK
Bồ Quốc Bảo
-18-
AR
Lớp CH XLTT&TT 2003
OUTPUT
SELECT
D
MUX
Q
CP
S1
S0
SP
INPUT/
FEEDBACK
MUX
S1
C1
C0
MACROCELL
Hình 1.6: Cấu trúc của một macrocell
CPLD
Khi sự phức tạp trong thiết kế phần cứng tăng lên, thì việc chuyển sang sử
dụng các PLD VLSI là một điều tất yếu, nó cho phép các hệ thống số chứa
hàng ngàn các cổng logic được thực hiện chỉ trong một IC duy nhất. Các PLD
VLSI đà mở rộng khái niệm của PLD lên mức cao hơn của sự tích hợp nhằm
làm tăng khả năng hoạt động của hệ thống, sử dụng ít không gian của bo
mạch, tăng độ tin cậy và giảm được chi phí.
Bồ Quốc Bảo
-19-
Lớp CH XLTT&TT 2003
Thiết bị logic phức hợp lập trình được CPLD chính là một sản phẩm của
PLD VLSI. Ta nghiên cứu một chip CPLD điển hình là XC95108 dßng
XC9500 cđa Xilinx.
I/O Pins
Fast CONNECT Switch Matrix
36
18
36
18
36
18
36
18
36
18
18
Configurable
Function Block
18
Configurable
Function Block
18
Configurable
Function Block
18
Configurable
Function Block
18
Configurable
Function Block
18
Configurable
Function Block
18
H×nh 1.7: Mét CPLD cđa Xilinx
XC95108 chøa 6 khối chức năng có thể thể cấu hình được (CFB:
Configurable Function Blocks) mà mỗi CFB tương đương với 18 macrocells
với 36 đầu vào (Input) và 18 đầu ra (Output). Các đầu ra của macrocells đưa ra
khỏi chip thông qua các chân vào/ra (I/O pin) nhưng chúng cũng hồi tiếp vỊ
mét ma trËn kÕt nèi tỉng thĨ (global interconnection matrix), Xilinx gọi là ma
trận chuyển mạch kết nối nhanh (Fast Connect Switch Matrix). Từng CFB
nhận 36 đầu vào hồi tiếp về từ 6x18=108 macrocells đó đưa vào ma trận
chuyển mạch. Nhiều hàm logic với nhiều mức phức tạp có thể được xây dựng
bằng cách lập trình với các hàm logic riêng của từng macrocell trong từng
CFB và sau đó kết nối chúng thông qua ma trận chuyển mạch. Kết quả là một
bản thiết kế có từng chân của CPLD được 1 macrocell điều khiển thực hiện
một hàm logic lớn với rất nhiều đầu vào.
Bå Qc B¶o
-20-
Líp CH XLTT&TT 2003
CPLD sư dơng bé nhí không mất thông tin (Nonvolative FLASH) dựa trên
các phần tử nhớ do đó thiết bị này lưu giữ được chương trình của nó ngay cả
khi cắt nguồn.
2.4.2.2. Các mảng cổng logic có thể lập trình được.
Đại diện của loại thiết bị này là FPGA, đây cũng là loại thiết bị được tập
trung nghiên cứu trong luận văn này. FPGA ra ®êi cïng thêi ®iĨm víi sù ra
®êi cđa CPLD nhng víi mét c¸ch tiÕp cËn kh¸c. So víi CPLD, FPGA chứa
một số lượng lớn hơn các khối logic đơn và cung cấp một số lượng lớn các kết
nối bên trong chip. Các khối logic của FPGA có ít chức năng hơn các
macrocells của CPLD nhưng các chức năng lớn hơn có thể được tạo ra thông
qua việc xếp chồng các khối logic
1.5.3. Các phần tử logic ASIC lập trình được.
Tất cả các ASIC (hoặc PLD hoặc FPGA) đều chứa một số phần tử lôgic cơ
bản. Đó là ba kiểu phần tử logic khác nhau, bao gồm:
Bộ dồn kênh cơ sở.
Bảng sự thật cơ sở.
Phần tử logic ma trận lập trình được.
Việc lựa chọn giữa các phần tử đó phụ thuộc vào công nghệ lập trình.
1.5.4. Các phần tử vào/ra ASIC lập trình được
Tất cả các ASIC lập trình được đều chứa một vài kiểu phần tử vào/ra
(in/out) nào đó. Các phần tử vào/ra đó điều khiển mức logic tín hiệu vào/ra
của chip, nhận và kiểm tra điều kiện của các đầu vào từ bên ngoài, cũng như
bảo vệ tĩnh điện cho chip.
Sau đây là các yêu cầu khác nhau của các loại phần tử Vào / Ra:
- Nguồn đầu ra DC: điều khiển trở kháng tại đầu ra DC hoặc tần số thấp (nhỏ
hơn 1 MHz). Ví dụ các loại trở kháng tải như LED (Light Emiter Diole), rơ-le,
mô tơ loại nhỏ
- Nguồn đầu ra AC (Alternative Circuit nguồn xoay chiều): điều khiển
dung kháng tải tốc độ cao ( lớn hơn 1 MHz). Ví dụ dung kháng tải các chip logic
khác, bus dữ liệu hoặc bus địa chỉ, cáp ruy băng.
Bồ Quốc Bảo
-21-
Lớp CH XLTT&TT 2003
- Nguồn đầu vào DC (Directive Circuit – ngn mét chiỊu): vÝ dơ c¸c ngn
nh chuyển mạch, cảm biến, hoặc các chip logic khác.
- Nguồn đầu vào AC: ví dụ các nguồn như tín hiệu tốc độ cao (lớn hơn 1
MHz) từ các chip khác.
- Nguồn tạo xung nhịp đầu vào: ví dụ là đồng hồ xung nhịp hệ thống hoặc
các tín hiệu trên bus đồng bộ.
- Nguồn cung cấp đầu vào: chúng ta cần cấp nguồn cho phần tử vào/ra và các
phần tử logic bên trong chip, mà điện áp không bị sụt hoặc bị nhiễu. Ngoài ra
chúng ta có thể cần một nguồn cung cấp riêng biệt để lập trình cho chip.
Các phần tử tuỳ chọn đối với các phần tử vào/ra là: sự khác nhau về mức độ
của nguồn, tính tương thích với TTL, các đầu vào trực tiếp hoặc phải điều chỉnh
được, các đầu ra trực tiếp phải điều chỉnh được, phối hợp trở kháng, bảo vệ quá
điện áp, điều khiển tốc độ
1.5.5. Các phần tử ASIC kết nối lập trình được
Tất cả các ASIC đều chứa các phần tử kết nối lập trình được. Cấu trúc và sự
phức tạp của các phần tử kết nối phần lớn được xác định thông qua công nghệ lập
trình và kiến trúc của các phần tử logic cơ bản. Chất liệu mà chúng ta dùng để
xây dựng các phần tử liên kết nối là hợp kim nhôm, loại hợp kim có thể chịu
được xấp xỉ 50 mW/1 đơn vị diên tích và dung kháng là 0.2 pF/cm. Các loại
ASIC lập trình được đời đầu tiên được xây dựng sử dụng công nghệ hai lớp kim
loại; còn các ASIC hiện nay sử dụng ba lớp kim loại hoặc nhiều hơn.
1.5.6. Phần mềm thiết kế ASIC lập trình được
Có năm thành phần cấu thành một hệ thống thiết kế ASIC:
1- Công nghệ lập trình.
2- Phần tử logic cơ bản.
3- Phần tử vào/ ra.
4- Phần tử kết nèi.
5- PhÇn mỊm thiÕt kÕ- cho phÐp chóng ta lËp trình ASIC. Phần mềm
thiết kế thường bị ràng buộc gần gũi hơn với kiến trúc PLD và FPGA hơn các
kiểu ASIC kh¸c.
Bồ Quốc Bảo
-22-
Lớp CH XLTT&TT 2003
Đối với thiết kế bất kỳ ASIC nào, mỗi nhà thiết kế cũng cần có phần mềm
đầu vào thiết kế, thư viện phần tử, và phần mềm thiết kế vật lý. Các nhà cung
cấp ASIC thêng b¸n c¸c bé kit thiÕt kÕ bao gåm tÊt cả phần mềm và phần
cứng mà một người thiết kế cần đến. Rất nhiều bộ kit thiết kế sử dụng phần
mềm đầu vào thiết kế, thư viện phần tử và phần mềm thiết kế vật lý. Thường
thì người thiết kế mua luôn phần mềm đó từ nhà cung cấp ASIC. Phần mềm
này được gọi là phần mềm OEM (Original Equipment Manufacture). Tất cả
các nhà cung cấp ASIC đều có phần mềm thiết kế của riêng mình bởi vì các
phần mềm thiÕt kÕ nh vËy míi cã thĨ phï hỵp víi các giải thuật tương ứng
với kiến trúc của sản phẩm của nhà sản xuất.
Giản đồ đầu vào không phải là phương pháp duy nhất đầu vào thiết kế cho
các ASIC lập trình được. Một số nhà thiết kế mô tả việc điều khiển logic và
trạng thái dưới dạng các phương trình logic và giản đồ trạng thái. Một giải
pháp khác nữa cho thiết kế ASIC là sử dụng một trong số các ngôn ngữ mô tả
phần cứng (HDL) dựa trên một số tiêu chuẩn cho trước. Có hai dạng ngôn ngữ
thông dụng: Thứ nhất là các phần mềm được phát triển từ việc lập trình cho
các ASIC loại PLD. Đó là ABEL, CUP và PALASM, đó là các ngôn ngữ đơn
giản và dễ học. Các ngôn ngữ này rất mạnh trong việc mô tả các trạng thái
máy và tổ hợp logic. Thứ hai là các ngôn ngữ HDL bao gồm VHDL và
Verilog, đó là các ngôn ngữ bậc cao hơn và sử dụng phức tạp hơn nhưng
chúng có khả năng mô tả hoàn chỉnh các ASIC và cả một hệ thống.
Sau khi hoàn thành đầu vào thiết kế và tạo ra một netlist, bước tiếp theo là
việc mô phỏng. Có hai kiểu mô phỏng thường được sử dụng cho thiết kế
ASIC. Kiểu mô phỏng đầu tiên là mô phỏng logic theo hoạt động, chức năng,
và mô phỏng thời gian. Công cụ này có thể phát hiện bất kỳ lỗi thiết kế nào.
Người thiết kế cung cấp các tín hiệu đầu vào để mô phỏng và kiểm tra theo
yêu cầu. Kiểu mô phỏng thứ hai là kiểu thường sử dụng nhất trong thiết kế
ASIC, đó là công cụ phân tích tính toán thời gian. Công cụ phân tích - tính
toán thời gian là một thiết bị mô phỏng tĩnh và bỏ qua việc cung cấp các tín
hiệu đầu vào. Thay vào đó công cụ phân tích tính toán thời gian kiểm tra
các giới hạn làm hạn chế tốc độ hoạt động - đó là các đường tín hiệu gây ra ®é
trƠ lín.
Bồ Quốc Bảo
-23-
Lớp CH XLTT&TT 2003
1.6. Tổng hợp logic
Tổng hợp logic cung cấp một liên kết giữa HDL và netlist tương tự như
cách một trình biên dịch C cung cấp liên kết giữa mà nguồn C và ngôn ngữ
máy. Tuy nhiên, việc so sánh như trên chỉ mang tính chất tương đối. C được
phát triển để sử dụng các trình biên dịch, còn HDL thì không được phát triển
để sử dụng với các công cụ tổng hợp logic. Verilog thì được thiết kế như một
ngôn ngữ mô phỏng còn VHDL thì được thiết kế như một ngôn ngữ mô tả và
dữ liệu. Cả Verilog và VHDL đều được phát triển từ đầu thập niên 80, trước
khi nó được giới thiệu như một phần mềm thương mại dùng để tổng hợp logic.
Do vậy, các ngôn ngữ HDL đó hiện nay được sử dụng vào mục đích không
phải như đúng ý đồ ban đầu, nên hiện trạng của nó trong tổng hợp logic gần
giống như các bộ biên dịch ngôn ngữ máy tính. Do vậy, tổng hợp logic buộc
người thiết kế phải sử dụng một tập con của cả Verilog và VHDL. HiƯn nay,
VHDL sư dơng réng r·i chđ u ë ch©u Âu, còn Verilog được dùng chính ở
Mỹ và Nhật. Việc này làm cho tổng hợp logic là một vấn đề rất khó. Hiện
trạng của các phần mềm tổng hợp giống như việc một người học ngoại ngữ
nhưng 5 năm sau mới sử dụng đến.
Khi nói đến công cụ tổng hợp logic sư dơng HDL, ngêi ta thêng nghÜ nã
liªn quan đến phần cứng hơn là việc tổng hợp logic sẽ thực hiện trên netlist.
Theo đánh giá của các chuyên gia ASIC học thì phải 5 năm nữa chúng ta
mới hoàn thiện được qúa trình tổng hợp logic như mong muốn.
Người thiết kế sử dụng đầu vào thiết kế dạng text hoặc đồ họa để tạo ra mô
hình hoạt động HDL không bao gồm bất kỳ tham chiếu nào đến các phần tử
logic. Các sơ đồ trạng thái, các mô tả đường dẫn dữ liệu đồ hoạ, các bảng sự
thật, các mẫu RAM/ROM và các giản đồ mức cổng (gate level) có thể sử dụng
cùng với mô tả HDL. Mỗi khi hoàn thành một mô hình hoạt động HDL, hai
thành phần yêu cầu phải xử lý là: một bộ tổng hợp logic (bao gồm phần mềm
và tài liệu đi kèm) và một thư viện phần tử (bao gồm các phần tử logic chẳng
hạn như cổng NAND, AND) được gọi là thư viện nguồn. Hầu hết các công
ty phần mềm tổng hợp chỉ cung cấp phần mềm. Còn hầu hết các nhà cung cấp
ASIC thì chỉ cung cấp các thư viện phần tö.
Bồ Quốc Bảo
-24-
Lớp CH XLTT&TT 2003
Mô hình hoạt động được mô phỏng để kiểm tra việc thiết kế theo tham số
kỹ thuật còn sau đó bộ tổng hợp logic sẽ được sử dụng để tạo ra một netlist,
một mô hình cấu trúc chỉ chứa tham chiếu đến các phần tử logic. Hiện nay,
không có khuôn dạng tiêu chuẩn cho các netlist mà tổng hợp logic tạo ra,
nhưng phổ biến nhất hiện nay là khuôn dạng EDIF. Một vài công cụ tổng hợp
logic cũng có thể tạo ra cấu trúc HDL (như Verilog và VHDL). Sau khi tổng
hợp logic, bản thiết kế được thực hiện mô phỏng lại để so sánh với việc mô
phỏng hoạt động trước đó. Việc xếp lớp đối với bất kỳ ASIC nào đều có thể
được tạo ra từ mô hình cấu trúc sinh ra thông qua quá trình tổng hợp logic.
1.7. Các công cụ thiết kế và phát triển ASIC
1.7.1. Tổng quan về quá trình thiết kế và công cụ thiết kế
Khi kích thước và độ phức tạp của các hệ thống số gia tăng, nhiều công cụ
thiết kế được trợ giúp bởi máy tính CAD (Computer Aided Design) được đưa
vào quá trình thiết kế phần cứng. Phương pháp thiết kế trên giấy đà được thay
bằng cách thiết kế trên máy vi tính, từ đó các nhà thiết kế có thể kiểm tra
thông qua các công cụ tạo ra phần cứng tự động từ các bản thiết kế đó. Hỗ trợ
mạnh mẽ nhất cho các công cụ thiết kế này là ngôn ngữ mô tả phần cứng
HDL. Hiện nay, các nhà nghiên cứu đà tìm ra nhiều cách cho phép HDL có
thể cải tiến quá trình thiết kế hệ thống số.
Qúa trình thiết kế bắt đầu tõ ý tëng thiÕt kÕ cđa ngêi thiÕt kÕ phÇn cứng.
Lúc này, người thiết kế cần phải tạo ra các định nghĩa cho hành vi của hệ
thống theo ý đồ thiết kế. Sản phẩm này có thể là ở dạng sơ đồ khối, lưu đồ
hoặc chỉ là dạng ngôn ngữ tự nhiên. Giai đoạn này ý tưởng thiết kế mới chỉ có
đầu vào và đầu ra, chứ hoàn toàn chưa có một chi tiết nào về phần cứng cũng
như kiến trúc của hệ thống.
Giai đoạn thứ hai của quá trình thiết kế là việc thiết kế đường dẫn dữ liệu
hệ thống. Trong giai đoạn này, người thiết kế chỉ rõ các thanh ghi và phần tử
logic cần thiết cho quá trình cài đặt. Đây là giai đoạn thiết kế thư viện các
phần tử cho hệ thống. Các thành phần này có thể được kết nối thông qua bus 2
chiều hoặc một chiều. Dựa trên chức năng hoặc hành vi của hÖ thèng, tiÕn