1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu ứng dụng fpga thiết kế mạch điều khiển đèn giao thông

87 56 0

Đ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 87
Dung lượng 876,81 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các FPGA và CPLD với khả năng tích hợp cao tới hàng triệu gate và cấu trúc mạch tối -u hoá mật độ tích hợp, hiệu suất cao cho phép xử lý nhanh số liệu, độ tin cậy và chất l-ợng cao, dễ s

Trang 1

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 Nam Qu©n NÕu cã g× sai ph¹m, t«i xin chÞu hoµn toµn tr¸ch nhiÖm

Ng-êi lµm cam ®oan

Hoµng M¹nh Kha

Trang 2

Mục lục

Trang

Lời cam đoan 1

Mục lục 2

Lời nói đầu 5

Ch-ơng 1: các thiết bị logic có thể lập trình đ-ợc (Programmable Logic devices) 7

1.1 Tổng quan… 7

1.1.1 Tổng quan về các công nghệ 7

1.1.2 Tại sao lại cần USIC 8

1.1.3 Các thiết bị logic có thể lập trình đ-ợc PLD (Programmable Logic Devices) 9

1.2 Công nghệ PLDs 9

1.2.1 Phân loại PLD 9

1.2.2 PLD tổ hợp 10

1.2.3 PLD tuần tự 13

1.2.4 Các mảng cổng logic có thể lập trình đ-ợc (Programable Gate Arrays) 16

Ch-ơng 2: Công nghệ asic và công cụ thiết kế 21

2.1 Sự ra đời của công nghệ ASIC 21

2.2 Các hãng chính phát triển ứng dụng công nghệ ASIC 22

2.3 Các h-ớng tiếp cận thiết kế ASIC 22

2.3.1 Các công nghệ lập trình thiết kế ASIC 22

2.3.2 Đầu vào thiết kế ASIC 23

2.3.3 Thiết kế vật lý 25

2.3.4 Các công cụ CAD 26

2.4 Đầu vào thiết kế ASIC 26

2.4.1 Th- viện thiết kế ASIC 26

2.4.2 Các vi mạch ASIC lập trình đ-ợc 27

2.4.3 Các phần tử logic ASIC lập trình đ-ợc 28

Trang 3

2.4.5 Các phần tử ASIC liên kết nối lập trình đ-ợc 29

2.4.6 Phần mềm thiết kế ASIC lập trình đ-ợc 29

2.5 Tổng hợp logic 30

2.5.1 Ví dụ về tổng hợp logic 31

2.5.2 VHDL và tổng hợp logic 33

2.5.3 Tổng hợp bộ nhớ 34

2.6 Mô phỏng 35

2.7 Các công cụ thiết kế và phát triển ASIC 36

2.7.1 Tổng quan vể quá trình thiết kế và công cụ thiết kế 36

2.7.2 Giới thiệu các công cụ và sản phẩm của một số hãng chuyên về ASIC 38

2.8 Giới thiệu về một số ngôn ngữ mô tả phần cứng HDL (Hardware Description Languages) 40

2.8.1 VHDL 40

2.8.2 Ngôn ngữ mô tả phần cứng ABEL 47

2.8.3 Ngôn ngữ Schematic Editor 56

2.8.4 Xây dựng một số ch-ơng trình ứng dụng 59

Ch-ơng 3: Thiết kế mạch điều khiển đèn giao thông sử dụng FPGA XC2S100-Spartan II của Xilinx 66

3.1 Tổng quan về mạch điều khiển đèn giao thông 66

3.1.1 Nhiệm vụ và yêu cầu 66

3.1.2 Sơ đồ khối và đặc điểm các khối 67

3.2 Phần mềm và phần cứng đ-ợc sử dụng khi thiết kế mạch điều khiển đèn giao thông 68

3.2.1 Các phần mềm sử dụng trong thiết kế 68

3.2.2 Chip xc2s100 dòng Spartan II sử dụng trong thiết kế 68

3.2.3 Ngôn ngữ mô tả phần cứng đ-ợc sử dụng là VHDL (Very high speed integrated circuit Hardware Description Languages) 73

3.2.4 Phần cứng của mạch điện 73

3.3 Trình tự thiết kế với FPGA 75

3.4 Ch-ơng trình VHDL thực hiện các mạch chức năng 76

3.4.1 Mạch chia xung clock (chia_tan.vhd) 76

3.4.2 Bộ đếm thời gian thực (bodem.vdh) 77

Trang 4

3.4.3 Mạch điều khiển đèn (Traffic) 80

3.4.4 Sơ đồ mạch logic đ-ợc cấu hình trong FPGA 83

3.4.5 Bo mạch điều khiển đèn giao thông 84

Kết luận 86

Tài liệu tham khảo 87

Trang 5

Lời nói đầu

Trong những năm gần đây công nghệ điện tử đã và đang phát triển nhảy vọt Các loại IC LSI, VLSI với khả năng tích hợp tới hàng triệu Transistor đã ra đời với nhiều ứng dụng khác nhau trong Công nghệ thông tin, Điện tử viễn thông, Tự động hoá không ngừng đáp ứng các nhu cầu của xã hội 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 Các FPGA và CPLD với khả năng tích hợp cao tới hàng triệu gate và cấu trúc mạch tối -u hoá mật độ tích hợp, hiệu suất cao cho phép xử lý nhanh số liệu, độ tin cậy và chất l-ợng cao, dễ sử dụng do

đó đ-ợc ứng dụng rất đa dạng trong nhiều loại thiết bị điện tử hiện nay

Trong khuôn khổ luận văn tốt nghiệp của tôi đ-ợc sự h-ớng dẫn, giúp đỡ của Tiến

sỹ Nguyễn Nam Quân và Thạc sỹ Phạm Xuân Khánh, tôi mạnh dạn tìm hiểu và nghiên cứu về công nghệ mới này 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 mạch điều khiển đèn giao thông

Nội dung của luận văn bao gồm 3 ch-ơng, trong đó:

Ch-ơng 1: Giới thiệu về các thiết bị logic có thể lập trình đ-ợc PLD

Ch-ơng 2: Giới thiệu về công nghệ ASIC và các công cụ thiết kế

Ch-ơng 3: Trình bày các b-ớc thiết kế mạch điều khiển đèn giao thông

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

Trang 6

Hµ néi, ngµy 20 th¸ng 11 n¨m 2004

Häc viªn

Hoµng M¹nh Kha

Trang 7

Ch-ơng1 Các thiết bị logic có thể lập trình đ-ợc

(Programmable Logic devices) 1.1 tổng quan

1.1.1 Tổng quan về các công nghệ

Các lựa chọn đã có để thực hiện thiết kế mạch đã và đang có sự thay đổi to lớn trong một vài năm trở lại đây 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

Hiện nay có các mức tích hợp 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

Trang 8

1.1.2 Tại sao lại cần USIC

Hệ thống các kích cỡ nhỏ hơn: Các thành phần có thể cấu hình thay đổi đ-ợc cho phép giảm khối l-ợng và không gian của chip, từ đó các hệ thống sẽ đạt đ-ợc các kích th-ớc vật lý nhỏ hơn

Các hệ thống có giá thành thấp: Khi các thành phần LSI hay VLSI đ-ợc sử dụng thay cho các thành phần logic chuẩn nh- SSI hay MSI thì ta đã tiết kiệm đ-ợc cho hệ thống một khoản chi phí: chi phí sản xuất, tích hợp, in mạch, thiết kế mạch…

Tăng khả năng hoạt động (Higher performance): việc giảm số l-ợng IC sẽ làm tăng tốc độ hoạt động của hệ thống cũng nh- giảm năng l-ợng tiêu thụ

Tăng độ tin cậy: khi mà khả năng sự cố hệ thống liên quan trực tiếp đến số l-ợng

IC trong mỗi hệ thống thì các hệ thống sử dụng các chip LSI hay VLSI tuỳ biến đ-ợc,

đã đ-ợc thống kê là có độ tin cậy cao hơn các hệ thống t-ơng tự sử dụng các thiết bị SSI hay MSI

Bảo mật thiết kế: Các hệ thống đ-ợc thiết kế với các thành phần chuẩn có thể đ-ợc sao chép dễ dàng, trong khi đó các hệ thống có chứa các IC mà ng-ời sử dụng có thể thay đổi đ-ợc lại không thể bị sao chép do khả năng phân tích ng-ợc trong các hệ thống này là rất khó Vì vậy sử dụng các IC mà ng-ời dùng định nghĩa sẽ cho phép bảo

vệ đ-ợc bản quyền thiết kế

Tăng độ linh hoạt của hệ thống: Các thành phần tuỳ biến cho phép thiết kế hệ thống đáp ứng các yêu cầu của khách hàng một cách dễ dàng, nó cũng đồng nghĩa với việc nâng cấp hệ thống và chống lại sự lạc hậu lỗi thời của hệ thống

Các phân tích trên đ-ợc tổng hợp theo biểu đồ Hình 1.1

Cost

Quality VLSI

SSI

Trang 9

1.1.3 Các thiết bị logic có thể lập trình đ-ợc PLD (Programmable Logic Devices)

Hiện nay có các IC mà ng-ời thiết kế phần cứng có thể lập trình để nó thực hiện các chức năng logic nào đó Việc xuất hiện các công nghệ PLD đã h-ớng ng-ời thiết

kế đến lựa chọn thứ 3 linh hoạt hơn các USIC ở một mức giá chấp nhận đ-ợc Với sự tiên tiến trong công nghệ PLD, một số các nhà sản xuất đã phát triển các gói CAD (Computer Aided Design) và các bộ biên dịch cho phép các nhà thiết kế phần cứng có thể thiết kế các mạch số sử dụng phần mềm, kiểm tra nó và cuối cùng thiết kế vào PLD Điều này thật đơn giản trong việc thiết kế phần cứng mà không cần có các bo mạch thật

Hầu hết các hệ thống hiện nayđ-ợc thực hiện sử dụng kết hợp các xu h-ớng:

- Các thiết bị logic có chức năng cố định:

+ Các thiết bị loại này phù hợp với các hệ thống đơn giản và yêu cầu tốc độ thực hiện lớn để thực hiện các thuật toán đặc biệt (bằng cách sử dụng song song các hàm chức năng nhỏ)

+ Số l-ợng chip lớn nên chi phí cho hệ thống tăng và giảm độ tin cậy của hệ thống

+ Giảm số l-ợng chip trong hệ thống, do đó giảm đ-ợc chi phí, tăng độ tin cậy và khả năng bảo d-ỡng cho hệ thống

1.2 công nghệ PLDs

1.2.1 Phân loại PLD

PLDs có thể đ-ợc phân chia thành các loại sau:

- PLD tổ hợp (Combination PLD):

• PROM (Programable Read Only Memory)

• PLA (Programable Logic Array)

• PAL (Programable Array Logic)

Trang 10

- PLD tuần tự (Sequential PLD):

• SPLD (Sequential Programable Logic Devices)

• CPLD (Complex Programable Logic Devices)

- Các mảng cổng logic có thể lập trình đ-ợc (Programable Gate Arrays):

• FPGA (Field Programable Gate Arrays)

1.2.2 PLD tổ hợp

1.2.2.1 PROM

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 trinhg đ-ợ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

1.2.2.2 PAL

2k x n ROM

Hình 1.2: Sơ đồ khối của ROM

Fixed AND array (decoder)

Programmable AND array

Trang 11

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

Khi thiết kế với PAL, các hàm chức năng Boolean phải đ-ợc tối giản hoá để đ-a vào từng section Không giống nh- PLA, một minterm không thể đ-ợc dùng chung cho

2 hay nhiều cổng OR Vì vậy, mỗi chức năng có thể đ-ợc tối giản bởi chính nó mà không cần quan tâm đến các minterm chung Số các minterm trong mỗi phần đ-ợc cố

định và khi số này quá lớn thì để thực thi chức năng này sẽ cần nhiều phần tổng hợp lại

Trang 12

Ví dụ: Mạch tổ hợp sử dụng PAL trong hình vẽ trên để thực hiện các chức năng logic sau:

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

Programmable AND array

Programmable

OR array

Trang 13

1.2.3 PLD tuần tự

1.2.3.1 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.8 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 Sơ đồ khối cấu trúc của một macrocell đ-ợc biểu diễn trên Hình 1.9

Trang 14

• 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

Registered/Combination

0 0 Registered/Active Low

0 1 Registered/ Active High

1 0 Combination/ Active Low

1 1 Combination/ Active High

Bảng 1

Programmable

‘AND’ & ‘OR’

array FEEDBACK (Programmable)

INPUT BLOCK

(Contains latches and others

programmable input options)

OUTPUT BLOCK

INPUT

PIN

OUTPUT PIN

Hình 1.8: Cấu trúc chung của một EPLD

Trang 15

1.2.3.2 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í

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

INPUT/

FEEDBACK MUX

S1 S0

S1

D CP

SP AR

Trang 16

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ừ 6 x 18 = 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

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 1.2.4 Các mảng cổng logic có thể lập trình đ-ợc (Programable Gate Arrays)

Đạ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 nh-ng 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

Trang 17

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

Các FPGA dùng RAM l-u giữ thông tin, do đó cần nạp lại ch-ơng trình mỗi lần khi mất nguồn Để khắc phục điều này, chúng ta có thể lựa chọn một trong 2 ph-ơng pháp sau:

- Th-ờng xuyên có nguồn nuôi cung cấp cho FPGA, tuy nhiên ph-ơng pháp này

ít đ-ợc sử dụng

- Chúng ta nạp file bitstream vào một bộ nhớ ROM có thể xoá và lập trình lại

đ-ợc nh- EPROM (Erasable and Programmable ROM) và file này sẽ tự động nạp vào FPGA mỗi khi cấp nguồn EPROM đ-ợc kết nối với FPGA theo sơ đồ hình 1.11 FPGA sẽ tự reset mỗi khi đ-ợc cấp nguồn, sau đó nó đọc dữ liệu từ EPROM bằng cách cung cấp các địa chỉ tuần tự tới đầu vào của EPROM và lấy dữ liệu từ đầu ra của EPROM để cấu hình cho bản thân FPGA

Khối xây dựng cơ bản của FPGA là bảng tìm kiếm (LUT: Lookup Table)

Bảng LUT giống nh- một bảng AND có thể lập trình đ-ợc Khi nạp vào đầu vào các tổ hợp nhị phân, các bít nhớ chứa trong bộ nhớ sẽ đ-a ra kết quả Kết quả sẽ là 1 khi tất cả các đầu vào của LUT là 1

Một bảng LUT điển hình có chỉ 4 đầu vào và một bộ nhớ nhỏ chứa 16 bit Tổ hợp nhị phân đầu vào (ví dụ 0101) sẽ hợp với địa chỉ của 1 bit nhớ riêng và tạo ra giá trị

Address

Data

Hình 1.11: Sơ đồ khối kết nối giữa FPGA và EPROM

Trang 18

H×nh 1.12: Mét b¶ng LUT 4 ®Çu vµo

Trang 19

Hình 1.13: Một CLB trong FPGA của Xilinx

Sau đó các CLB đ-ợc sắp xếp thành một dãy với các ma trận chuyển mạch có thể lập trình (PSM: Programmable Switch Matrices) giữa các CLB nh- hình 1.14

CONTROL

S/R CONTROL 4

PSM PSM

PSM PSM

PSM PSM

PSM

PSM

PSM PSM

PSM PSM

PSM PSM PSM PSM

PSM PSM

PSM PSM

PSM PSM

PSM PSM

PSM PSM PSM PSM

PSM PSM

PSM PSM

PSM PSM PSM PSM

PSM PSM PSM

PSM PSM

I/O pin

I/O pin

I/O pin

I/O pin

Hình 1.14: Ma trận PSM

Trang 20

Các PSM đ-ợc sử dụng để tạo đầu ra từ các CLB gần nhau tới các đầu vào của một CLB Các chân ra của FPGA đ-ợc gắn với các PSM và CLB hoặc thậm chí có thể đ-ợc gắn với ma trận định tuyến (Routing Matrix) Hầu hết các FPGA đều có nhiều CLB hơn các chân vào ra Vì vậy từng CLB không thể có sự nối trực tiếp với bên ngoài nh- các macrocells trong 1 CPLD

Các đoạn dây kim loại kết nối bên trong có thể nối tuỳ ý theo các chuyển mạch có thể lập trình đ-ợc để thực hiện những mạng tín hiệu mong muốn giữa các khối

FPGA kết hợp những cổng logic, thanh ghi, và I/O với tốc độ hệ thống nhanh Các FPGA hiện đang đáp ứng các yêu cầu của thị tr-ờng về:

- Khả năng hoạt động: khả năng thiết kế phần cứng thời gian thực hoạt động ở tần suất cao

- Mật độ và công suất: có khả năng tăng mức độ tích hợp và có thể đặt đ-ợc nhiều hơn nữa trong một chip cũng nh- số l-ợng các cổng logic trong FPGA, từ

đó cung cấp giải pháp về chi phí

- Dễ dàng sử dụng: cung cấp khả năng mạnh cho phép ng-ời thiết kế đ-a sản phẩm của họ ra thị tr-ờng nhanh hơn

Hình 1.15: Cấu trúc chung của một FPGA

Trang 21

Ch-ơng 2 Công nghệ asic và công cụ thiết kế 2.1 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 thuật 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 (CBICs), Gate Array và Programmable Logic Devices (PLDs) Lúc đó xuất hiện thêm một thuật ngữ t-ơng

Trang 22

đ-ơng ASIC là ASSPs (Application Specific Standard Product – các sản phẩm tiêu chuẩn ứ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

2.2 Các hãng chính phát triển ứ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 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ứ 4 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…

2.3 Các h-ớng tiếp cận thiết kế ASIC

2.3.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 2.1 sau:

Trang 23

Công nghệ

lập trình

Tính bay hơi

Có thể lập trình

Diện tích của ASIC

Điện trở (ohm)

Điện tích (pF)

50-80K 1-3

EEPROM Không Trong mạch 2xEPROM 2-4K 1-20

2.3.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à 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

Không phải tất cả các thông tin thiết kế có thể chuyển thành giản đồ mạch hoặc netlist, vì không phải tất cả các chức năng của một ASIC đều đ-ợc mô tả qua thông tin kết nối Ví dụ, giả sử chúng ta sử dụng một ASIC lập trình đ-ợc cho một vài chức năng logic ngẫu nhiên Một phần của ASIC có thể đ-ợc thiết kế bằng cách sử dụng ngôn ngữ lập trình dạng text Trong tr-ờng hợp này, đầu vào thiết kế cũng bao gồm cả phần viết bằng mã nguồn Vậy điều gì xảy ra nếu một ASIC trong hệ thống của chúng ta có chứa một PROM (Programmable Memory)? Phải chăng vì mã lệnh là một phần của

Bảng 2.1

Trang 24

đầu vào thiết kế? Việc điều hành hệ thống của chúng ta chắc chắn phụ thuộc vào ch-ơng trình chuẩn của PROM Vì vậy, mã lệnh PROM phải là một phần của đầu vào thiết kế Mặt khác không ai coi mã lệnh hệ điều hành đã đ-ợc nạp vào RAM trên một ASIC là một phần của đầu vào thiết kế Rõ ràng là có nhiều dạng đầu vào thiết kế khác nhau Trong mỗi tr-ờng hợp nó rất quan trọng để bảo đảm cho chúng ta hoàn thành chỉ

định cho hệ thống - tức là không chỉ xây dựng cấu trúc chính xác mà còn để bất kỳ ai cũng hiểu đ-ợc hệ thống làm việc nh- thế nào Đầ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

Cho đến hiện nay thì hầu hết các đầu vào thiết kế cho ASIC vẫn sử dụng ph-ơng pháp giản đồ đầu vào Do ASIC ngày càng trở nên phức tạp hơn, các ph-ơng pháp đầu vào thiết kế khác ngày càng trở nên phổ biến Các ph-ơng pháp đầu vào thiết kế đều có thể sử dụng ph-ơng pháp đồ hoạ, chẳng hạn là một giản đồ, hoặc các tệp dạng text d-ới dạng ngôn ngữ lập trình Việc sử dụng ngôn ngữ mô tả phần cứng HDL cho mục

đích đầu vào thiết kế cho phép chúng ta tạo ra các netlist trực tiếp bằng cách tổng hợp logic Chúng ta sẽ đề cập đến các ph-ơng pháp đầu vào thiết kế mức thấp cùng với các -u điểm cũng nh- nh-ợc điểm của chúng trong mục 2.5

Đầ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ộ quốc 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

Trang 25

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

2.3.3 Thiết kế vật lý

Hình 2.1 biểu diễn một phần của sơ đồ thiết kế

Đầu tiên chúng ta áp dụng việc phân chia hệ thống để chia một hệ thống vi điện tử thành các ASIC Trong phần lên sơ đồ mặt bằng, chúng 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 -

chip planning) Cùng thời điểm này chúng ta định vị khoảng trống cho đ-ờng xung

nhịp, nguồn và quyết định vị trí của cổng I/O Việc sắp đặt (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ử

Design Entry

Synthesis

System partitioning

Trang 26

2.3.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ủ để 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):

- 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

2.4 Đầu vào thiết kế ASIC

2.4.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

Trang 27

Sự lựa chọn đầu tiên, đó là sử dụng một th- viện ASIC của nhà cung cấp, việc này yêu cầu chúng ta phải sử dụng một tập các công cụ thiết kế đã đ-ợc bán kèm bởi nhà cung cấp ASIC để đ-a vào và mô phỏng thiết kế của chúng ta Tức là chúng ta phải mua các công cụ và th- viện phần tử Một vài nhà cung cấp ASIC (đặc biệt cho các MGA) đã cung cấp các công cụ đ-ợc phát triển theo yêu cầu

Th- viện của nhà cung cấp ASIC thông th-ờng là th- viện ảo - các phần tử chỉ là các khối trống rỗng, nh-ng nó bao gồm đủ thông tin để bố trí sơ đồ mạch Sau khi chúng ta hoàn thành việc bố trí sơ đồ mạch, chúng ta đ-a ra netlist đến nhà cung cấp ASIC để họ bổ xung vào phần tử ảo tr-ớc khi bắt đầu sản xuất chip cho chúng ta Các lựa chọn thứ hai và thứ ba yêu cầu chúng ta lựa chọn một quyết định mua bán nếu chúng ta hoàn thành việc thiết kế một ASIC sử dụng th- viện phần tử mà chúng ta mua, thì chúng ta đã sở hữu việc chế tạo chip đ-ợc sử dụng để sản xuất ASIC của chính mình Những th- viện phần tử nh- vậy th-ờng đắt (có thể lên đến vài trăm nghìn đôla) Tuy nhiên điều này có nghĩa rằng việc mua một th- viện đắt nh-ng lâu dài sẽ rẻ hơn nếu chúng ta sản xuất nhiều hơn là chọn các giải pháp khác

Lựa chọn thứ ba là chúng ta tự phát triển một th- viện phần tử theo yêu cầu Nhiều công ty máy tính và công ty điện tử chọn ph-ơng án này Th- viện thiết kế hiện nay vẫn tiếp tục phát triển theo hình thức “yêu cầu” mặc dù thực tế phát triển thư viện rất phức tạp và đắt

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

Trang 28

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

Một ASIC lập trình đ-ợc chính là một chip mà chúng ta phải nh- một ng-ời thiết

kế hệ thống, có thể tự lập trình Chúng ta tiến hành đầu vào thiết kế và mô phỏng Tiếp theo, một phần mềm đặc biệt tạo ra một chuỗi các bit mô tả thêm, mở rộng thêm các kết nối theo yêu cầu để thực hiện thiết kế của chúng ta - gọi là tệp cấu hình Sau đó, chúng ta kết nối máy tính với chip và lập trình cho chip đó tuân theo tệp cấu hình Tuy nhiên công nghệ lập trình có thể có hoặc có thể không lâu dài Do vậy chúng

ta không thể xoá bỏ những lập trình trong các ASIC lập trình đ-ợc một lần Vì thế, ngày nay ng-ời ta có thể sử dụng các loại PLD và FPGA có khả năng lập trình lại

đ-ợc

2.4.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:

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

- Nguồn đầu vào DC (Directive Circuit – nguồn một chiều): ví dụ các nguồn nh- chuyển mạch, cảm biến, hoặc các chip logic khác

Trang 29

- 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 độ…

2.4.5 Các phần tử ASIC liên kết nối lập trình đ-ợc

Tất cả các ASIC đều chứa các phần tử liên 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ử liên 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

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

Trang 30

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

2.5 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ủ yế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

Trang 31

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ử

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

2.5.1 Ví dụ về tổng hợp logic

Tr-ớc hết, chúng ta hãy tìm hiểu về một ví dụ của tổng hợp logic ở đây các phần

tử logic đều sử dụng công nghệ VLSI 0.1 mm ASIC đầu tiên đ-ợc thiết kế bằng tay sử dụng các giản đồ đầu vào và một sổ tay dữ liệu ASIC thứ hai sử dụng Verilog cho đầu vào thiết kế và một bộ tổng hợp logic Bảng 2.2 so sánh kết quả của hai ph-ơng pháp trên Việc tổng hợp ASIC theo ph-ơng pháp thứ hai cho kết qủa là ASIC nhỏ hơn 16%

và tốc độ nhanh hơn 13% so với cách tổng hợp bằng tay

Trang 32

TrÔ ®-êng dÉn/ns (1)

Sè c¸c phÇn tö logic tiªu chuÈn

Sè transistor tiªu chuÈn

KÝch th-íc/mils 2 (2)

Sè c¸c phÇn tö logic tiªu chuÈn

Sè transistor tiªu chuÈn

KÝch th-íc/mils 2 (2)

Trang 33

Chúng ta cùng tìm hiểu tại sao lại có vấn đề trên hình 2.2a biểu diễn giản đồ một

bộ so sánh và dồn kênh đ-ợc thiết kế bằng tay Còn hình 2.2b là mã nguồn cũng của bộ

so sánh và dồn kênh có cùng chức năng Việc so sánh hai kết quả cho trong bảng 2.3

đã chỉ ra lý do của ph-ơng pháp thứ hai cho sản phẩm có kích th-ớc nhỏ hơn, tốc độ nhanh hơn thậm chí còn sử dụng nhiều phần tử logic hơn

If (ina <= inb) compare = ina;

Else compare = inb;

Trang 34

Chúng ta có thể sử dụng các giá trị logic tương ứng với các trạng thái ‘1’, ‘H’,

‘0’và ‘L’ trong bất kỳ cách nào

Một vài công cụ tổng hợp không chấp nhận trạng thái logic ‘U’ khởi động

Chúng ta có thể sử dụng các trạng thái logic ‘Z’, ‘X’, ‘W’ và ‘-’ trong tín hiệu và các phép gán biến theo bất kỳ cách nào ‘Z’ được tổng hợp thành 3 trạng thái logic Các trạng thái ‘X’, ‘W’ và ‘-’ được xử lý như các giá trị không rõ hoặc không quan tâm

Các giá trị ‘Z’, ‘X’, ‘W’ và ‘-’ có thể được sử dụng trong các mệnh đề điều kiện chẳng hạn nh- so sánh trong các lệnh if hoặc case Tuy nhiên, một vài công cụ tổng hợp sẽ bỏ qua chúng và chỉ tuân theo các bit ‘1’ và ‘0’ Do vậy, một thiết kế được tổng hợp có thể hoạt động khác với khi mô phỏng nếu sử dụng một tác nhân kích thích giá trị ‘Z’, ‘X’, ‘W’ hoặc ‘-’

Trong VHDL có các mô hình tổng hợp nh- sau:

Khởi động và khởi động lại (Initialization and Reset)

Tổ hợp tổng hợp logic trong VHDL (Combinational Logic Synthesis interface VHDL)

Các bộ dồn kênh trong VHDL

Các bộ giải mã trong VHDL

Các bộ cộng trong VHDL

Logic tuần tự trong VHDL

Thuyết minh trong VHDL

Các thanh ghi dịch và tạo xung nhịp trong VHDL

Các bộ cộng và các hàm thuật toán

Bộ cộng/trừ

2.5.3 Tổng hợp bộ nhớ

Có nhiều ph-ơng pháp tổng hợp bộ nhớ:

Sử dụng thành phần logic ngẫu nhiên flip-flop hoặc bộ chốt dữ liệu

Sử dụng các tệp thanh ghi trong datapath

Sử dụng các thành phần RAM tiêu chuẩn

Sử dụng các bộ biên dịch RAM

Ph-ơng pháp đầu tiên sử dụng các vector lớn hoặc các ma trận trong mã lệnh HDL

Bộ tổng hợp sẽ ánh xạ các phần tử đó tới ma trận của các flip – flop hoặc các bộ chốt

Trang 35

sử dụng nhất nh-ng phạm vi ứng dụng không lớn Một flip – flop chiếm diện tích sử dụng từ 10 đến 20 lần so với một cell RAM tĩnh có 6 transistor

Ph-ơng pháp thứ hai sử dụng tổng hợp trực tiếp để tổng hợp bộ nhớ thành các thành phần datapath Ph-ơng pháp này hiệu quả hơn ph-ơng pháp tr-ớc, tuy nhiên bị phụ thuộc vào phần mềm và công nghệ ASIC mà chúng ta sử dụng

Ph-ơng pháp thứ ba sử dụng các thành phần tiêu chuẩn đ-ợc các nhà sản xuất ASIC cung cấp kèm Ph-ơng pháp này rất hiệu qủa nh-ng phụ thuộc vào công nghệ của từng hãng sản xuất

Ph-ơng pháp cuối cùng, đó là sử dụng bộ biên dịch RAM, đây là ph-ơng pháp hiệu quả nhất Nó phụ thuộc vào khả năng của trình biên dịch cùng với công cụ tổng hợp

Có thể phân loại mô phỏng nh- sau:

Mô phỏng hoạt động (Behavioral simulation)

Mô phỏng chức năng (Function simulation)

Phân tích thời gian tĩnh (Static timing analysis)

Mô phỏng mức chuyển mạch (Switch – level simulation)

Mô phỏng mức transistor hoặc mức mạch (Transistor – level or Circuit – level simulation)

Trên đây là thứ tự các mô phỏng từ cao xuống thấp, các mức này có độ chính xác tăng dần đồng thời độ phức tạp và thời gian cũng tăng theo Có nhiều cách để tạo ra một mô hình mô phỏng ảo cho một hệ thống Ph-ơng pháp th-ờng dùng nhất là mô hình hóa các module lớn của hệ thống thành một khối (giống nh- một hộp entity – black box) chỉ có các đầu vào và đầu ra Đây chính là mô phỏng hoạt động, chủ yế- sử dụng trong ngôn ngữ VHDL và Verilog

Mô phỏng chức năng bơ qua thời gian hoạt động và các trễ trong từng module mà thiết lập mức trễ theo giá trị cố định (ví dụ là 1 ns chẳng hạn) Sau khi thực hiện mô phỏng hoạt động và chức năng hoàn thành, cho kết quả tốt mới kiểm tra thời gian hoạt

động của từng khối Tại thời điểm này, hệ thống đ-ợc chia thành các ASIC nhỏ và việc mô phỏng thời gian đ-ợc thực hiện trên từng ASIC độc lập Một trong các ph-ơng pháp

Trang 36

mô phỏng thời gian là sử dụng ph-ơng pháp phân tích thời gian tĩnh (Static timing analysis) trong tr-ờng hợp hoạt động tĩnh, sau đó tính toán thời gian trễ cho từng phần

tử Ph-ơng pháp này đ-ợc gọi là phân tích thời gian tĩnh vì nó không đòi hỏi phải tạo ra một tệp các phép thử nghiệm đối với các ASIC lớn

Tiếp theo là mô phỏng mức cổng/logic (Gate – level/Logic simulation) có thể cũng đ-ợc dùng để kiểm tra thời gian hoạt động của một ASIC Trong mô phỏng mức cổng/logic một cổng logic hoặc một phần tử logic (NAND, NOR hoặc t-ơng đ-ơng)

đ-ợc kiểm tra hoạt động giống nh- mô hình hộp entity theo các chức năng nh-ng các giá trị tín hiệu đầu vào thay đổi đ-ợc

Mô phỏng mức chuyển mạch cung cấp mức độ chính xác về thời gian cao hơn mô phỏng mức cổng/logic nh-ng không có khả năng sử dụng trễ của các phần tử logic làm tham số cho việc mô phỏng

Chính xác nhất, phức tạp nhất và mất nhiều thời gian nhất là mô phỏng mức transistor hoặc mức mạch Ph-ơng pháp này yêu cầu các mô hình transistor cụ thể, mô tả điện áp phi tuyến và các tham số dòng cung cấp của chúng Mỗi ph-ơng pháp th-ờng đi kèm với một công cụ phần mềm khác nhau Tuy nhiên, có thể kết hợp nhiều ph-ơng pháp mô phỏng trong qúa trình mô phỏng một ASIC

2.7 Các công cụ thiết kế và phát triển ASIC

2.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

Trang 37

chức năng hoặc hành vi của hệ thống, tiến trình điều khiển hoạt động của dữ liệu giữa các thanh ghi và các phần tử logic thông qua các bus đ-ợc phát triển Giai đoạn này không cung cấp các đặc điểm về sự hoạt động của các bộ điều khiển, cách đi dây, kỹ thuật mã hoá…

Giai đoạn thứ ba là giai đoạn thiết kế logic, giai đoạn này liên quan đến ứng dụng của các cổng và các mạch cơ bản cho việc cài đặt các thanh ghi dữ liệu, các bus hệ thống, các phần tử logic và phần cứng điều khiển chúng Kết quả của giai đoạn này chính là một tệp danh sách kết nối (netlist)

Giai đoạn thiết kế tiếp theo là chuyển netlist của gian đoạn tr-ớc thành sơ đồ hay là danh sách các transistor Giai đoạn này xét đến cả chế độ tải và thời gian trong quá trình thực hiện hành vi của hệ thống cũng nh- việc chọn transistor hoặc các phần tử của nó Giai đoạn này bao gồm: tổng hợp logic, ánh xạ công nghệ, floorplanning, placement, routing Giai đoạn này sử dụng công cụ CAD là chủ yếu

B-ớc cuối cùng của quá trình thiết kế là việc chế tạo Nó sử dụng danh sách các transistor hoặc các đặc tả kỹ thuật để ghi thông tin lên bộ nhớ của thiết bị có thể lập trình đ-ợc hoặc tạo ra mặt nạ cho việc sản xuất các mạch tích hợp

Nhiều nhà sản xuất đã nghiên cứu, phát triển các công cụ thiết kế và phát triển ASIC cho các họ sản phẩm FPGA, CPLD, các vi mạch Hard-wire, Serial PROM…

- Vi mạch FPGA có cấu trúc giống nh- một dãy hoặc một ma trận các phần tử logic Những kết nối kim loại giữa các khối logic có thể đ-ợc kết nối một cách tuỳ ý bằng cách chuyển mạch có thể lập trình đ-ợc để tạo thành một mạch theo yêu cầu FPGA có khả năng chứa một số l-ợng lớn các cổng logic, các thanh ghi và các mạch I/O tốc độ cao

- Vi mạch CPLD chứa nhiều khối chức năng và khối I/O và có thể liên kết với nhau thông qua ma trận chuyển mạch CPLD là hệ thống tích hợp nhỏ khoảng từ 8000 đến

10000 cổng nh-ng tốc độ cao, thiết kế đơn giản

Trong quá trình thiết kế, các ngôn ngữ mô tả phần cứng chính là các công cụ thiết

kế nhằm mục đích mô phỏng, tạo mẫu, kiểm tra, thiết kế và làm tài liệu cho một hệ thống số nh-: ngôn ngữ mô tả hành vi, ngôn ngữ mô tả dòng dữ liệu, sơ đồ liên kết kết nối Một số loại công cụ HDL nh- sau:

AHPL: công cụ mô tả dữ liệu

CDL (Computer Design Language): ngôn ngữ mô tả dòng dữ liệu phát triển trong quá trình đào tạo

CONLAN (Consensus Language): ngôn ngữ mô tả phân cấp phần cứng

Trang 38

IDL (Interactive Design Language): ngôn ngữ tạo tự động cấu trúc PLA của hãng IBM

ISPS (Intruction Set Proccessor Specification): ngôn ngữ mô tả hành vi mức cao TEGAS (Test generation and Simulation): hệ thống tạo tín hiệu kiểm tra và mô phỏng các mạch số, đây là ngôn ngữ cấu trúc

Verilog : ngôn ngữ hỗ trợ phân cấp thiết kế

VHDL: ngôn ngữ mô tả phần cứng từ hệ thống đến tận mức cổng hoặc chuyển mạch

2.7.2 Giới thiệu các công cụ và sản phẩm của một số hãng chuyên

về ASIC

2.7.2.1.Giới thiệu hãng Xilinx

a) Giới thiệu phần mềm ISE 5 phiên bản 6.2i

Phần mềm ISE (Integrated Sofware Environment) này là một môi tr-ờng thiết kế hoàn hảo của Xilinx, nó trợ giúp cho ng-ời thiết kế hầu hết các công cụ cần thiết nhất

để có thể hoàn thành một đề án thiết kế nhanh nhất và hiệu quả nhất ISE tích hợp các công nghệ tiên tiến nhất mang lại tính linh hoạt, giao diện thân thiện với ng-ời sử dụng

Một số -u điểm của ISE là:

- Tận dụng tối đa tất cả các công nghệ tiên tiến nhất của PLD

- Tiết kiệm thời gian thiết kế, hỗ trợ tất cả các dòng sản phẩm của Xilinx

- Tăng hiệu quả và giảm giá thành

- Hỗ trợ tối đa cho việc thiết kế các hệ thống nhúng

b) Giới thiệu các dòng sản phẩm chính của Xilinx

+ Virtex-II pro

Dòng sản phẩm này chủ yếu thiết kế cho các hệ thống nhúng, với giá thành hợp lý

và có khả năng hoạt động rất cao

+ Spartan-3 FPGA

Đây là họ FPGA mới nhất của Xilinx với nhiều -u điểm nổi bật Đầu tiên phải kể

đến là khả năng tích hợp của Spartan –3 từ 50,000 K-gate đến 5 triệu K-gate

Hiện nay với dòng sản phẩm Spartan – 3 Platform FPGA Xinlinx trở thành một trong những hãng đầu tiên trên thế giới tiếp cận công nghệ 90 nm

+ CoolRunner-II

Trang 39

độ của CoolRunner-II lên đến 500 MHz, dòng tiêu thụ thấp (khoảng 12 A), thấp hơn rất nhiều so với các loại CPLD 1.8 V cùng tính năng của các hãng khác

2.7.2.2 Giới thiệu hãng Actel

Phần mềm Libero v5.0 IDE (Integrated Design Environment) của Actel giới thiệu

là phiên bản mới nhất và tốt nhất trong số các công cụ hỗ trợ cho EDA của các hãng Mentor Graphics, Synplicity, SynaptiCAD và các công cụ đ-ợc phát triển của riêng Actel nhằm mục đích hỗ trợ thiết kế cho các sản phẩm ASIC dòng FPGA hoàn thiện Phần mềm này bao gồm một bộ các gói phần mềm, trong đó có gói phần mềm Designer v5.0 Designer v 5.0 là gói phần mềm hỗ trợ cho việc chế tạo và hoạt động vật

lý cho ng-ời thiết kế, bao gồm cả khả năng floorplanning với tính năng ChipPlanner (sắp đặt trên chip) đặc biệt

Libero IDE hỗ trợ cho tất cả các sản phẩm ASIC có mặt trên thị hiện nay của Actel,

và có ba phiên bản chính: Libero Silver, Libero gold, Libero Platinum và một phiên bản dùng thử Libero Platinum Evaluation Tuỳ theo nhu cầu, kinh nghiệm thiết kế cũng nh- sản phẩm ASIC của ng-ời sử dụng cao hay thấp mà chúng ta lựa chọn phiên bản cho phù hợp

2.7.2.3 Giới thiệu hãng Altera

Phần mềm phát triển MAX+PLUS II cung cấp một môi tr-ờng thiết kế hoàn chỉnh

đáp ứng đầy đủ các yêu cầu thiết kế cụ thể MAX+PLUS II đảm bảo thiết kế dễ dàng,

xử lý nhanh và lập trình cho các IC PLD một cách trực tiếp

Phần mềm MAX+PLUS II tích hợp đầy đủ các chức năng và độc lập với kiến trúc phần cứng trong việc thiết kế logic với các mạch tổ hợp logic lập trình đ-ợc của hãng Altera thuộc các họ Classic, ACEX 1K, MAX 3000, MAX 5000, MAX 7000, MAX

9000, Flex 6000, Flex 8000 và Flex 10K MAX+PLUS II cung cấp một phạm vi thiết

kế logic đầy đủ bao gồm các thiết kế phân tầng, soạn thảo sơ đồ thiết kế, tổng hợp logic tối -u, phân chia thiết kế, mô phỏng thiết kế mức bảng mạch cả về thời gian và chức năng, phân tích chi tiết thời gian, định vị lỗi tự động, lập trình và kiểm tra các IC MAX+PLUS II cũng có thể sử dụng các tệp thiết kế theo tiêu chuẩn công nghiệp của các phần mềm thiết kế khác nh-: các tệp kiểu EDIF, VHDL, Verilog, HDL, Orcad, Schematic, Xilinx, Netlist Format Nó cũng cho phép viết các tệp thiết kế kiểu EDIF, VHDL, Verilog, HDL, VITAL - Compliant để giao tiếp với các phần mềm thiết kế CAE tiêu chuẩn công nghiệp khác

Ng-ời thiết kế có thể tích hợp các thiết kế đ-ợc tạo với các phần mềm thiết kế của Altera nh- A + PLUS, SAM + PLUS vào các thiết kế của MAX+PLUS II Trình biên dịch bảo đảm rằng các thiết kế trong MAX+PLUS II sẽ đ-ợc tạo hoàn chỉnh trong các

IC một cách hiệu quả nhất

Trang 40

2.8 Giới thiệu về một số ngôn ngữ mô tả phần cứng hdl

(Hardware Description Languages)

Hiện nay thuật ngữ thiết kế số (Digital Design) đã không còn xa lạ nữa Cùng với

sự phát triển nhanh chóng của các loại thiết bị logic lập trình đ-ợc (FPLD: Field Programmable Logic Device), các ngôn ngữ lập trình cho các loại thiết bị đó đ-ợc gọi

là ngôn ngữ mô tả phần cứng (HDL) cũng ngày càng xuất hiện nhiều nh- VHDL, Verilog HDL, ABEL HDL, State Machine Editor, Schematic Editor trong khuôn khổ luận văn tốt nghiệp tôi chỉ đề cập sơ bộ một số ngôn ngữ nh-: VHDL, ABEL và Schematic Editor

2.8.1 VHDL

Vào giữa những năm 1980 Department of Depence (DoD) của Mỹ và IEEE đã tài trợ và phát triển một ngôn ngữ có khả năng mô tả phần cứng cao và gọi là VHDL (Very High Speed Integrated Circuit Hardware Description Languages) Từ đó ngôn ngữ này đ-ợc bắt đầu phát triển với các đặc tr-ng sau đây:

Các thiết kế có thể đ-ợc phân tích theo cấp độ

Từng phần tử thiết kế đều có giao diện xác định tốt cho kết nối chúng với các phần

Đồng thời, timing và clocking đều có thể đ-ợc mô phỏng nhờ VHDL dùng để xác

định tốt các mạch tuần tự đồng bộ và không đồng bộ

Sự hoạt động logic và sự chính xác đồng bộ của thiết kế đ-ợc mô phỏng

Nh- vậy VHDL bắt đầu với sự cung cấp tài liệu và ngôn ngữ chuẩn xác cho phép

xử lý các thiết kế hệ thống số chính xác rõ ràng Trong khi ngôn ngữ VHDL và môi tr-ờng mô phỏng đã đổi mới quan trọng, tiện ích VHDL đã tạo ra b-ớc nhảy vọt lớn với sự phát triển th-ơng mại của VHDL Synthesis Tool Các ch-ơng trình này có thể tạo ra cấu trúc mạnh logic trực tiếp từ sự mô tả VHDL Sử dụng VHDL bạn có thể thiết

kế, mô phỏng và đồng bộ hóa bất cứ mạch nào từ mạch tổ hợp đơn đến một hệ thống vi

xử lý hoàn chỉnh trên một chip

Năm 1987 VHDL đ-ợc IEEE tiêu chuẩn hóa và mô phỏng vào năm 1993 Trong ch-ơng này tôi sẽ giới thiệu sơ qua một số đặc tr-ng của ngôn ngữ này

Ngày đăng: 22/01/2021, 11:33

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w