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

thiết kế vi mạch số với hdl

36 7 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

Tiêu đề Thiết Kế Vi Mạch Số Với HDL
Tác giả Đỗ Hoàng Thắng
Trường học Khoa Điện Điện Tử
Thể loại biên soạn
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 36
Dung lượng 5,74 MB

Nội dung

Phân loại các công nghệ thiết bịChúng ta cần phải hiểu rõ sự khác biệt giữa 2 công nghệ ASIC Application Specific Integrated Circuit và non-ASIC.Chúng ta có thể chia các công nghệ ra thà

Trang 1

KHOA ĐIỆN ĐIỆN TỬ

-

-THIẾT KẾ VI MẠCH SỐ VỚI HDL

Biên soạn: Đỗ Hoàng Thắng

Sinh viên khóa K21

Trang 2

Như vậy con chip này có sức chứa 16 transistor (kích thước)

Do số lượng transistor trong một con chip đơn đã tăng theo số hàm mũ Một con chip

Si ngày nay chứa tới hàng trăm ngàn hay hàng trăm triệu con transistor bây giờ lên tới hàng

tỉ con transistor

Trong quá khứ, chức năng chính của phần cứng số là các hệ thống tính toán.Khi mà, con chip nhỏ hơn, nhanh hơn, rẻ hơn và nhiều khả năng hơn,…Nhiều hệthống điện tử, điều khiển, truyền thông và hệ thống cơ điện tử đã được số hóa bên trong, sửdụng các mạch điện số lưu trữ dữ liệu, xử lý dữ liệu hoặc truyền thông tin

Khi mà ứng dụng trở nên lớn hơn phức tạp hơn, thì các công việc thiết kế mạch số trởnên khó hơn Phát triển và sản suất 1 mạch số là quá trình là rất phức tạp

2 Các công nghệ thiết bị

Nếu chúng ta muốn xây dựng hệ thống số theo yêu cầu của khách hàng thì có rấtnhiều dạng công nghệ khác nhau để mà lựa chọn

Không có công nghệ nào tốt nhất

Chúng ta phải xem xét mối tương quan giữa các hệ số khác nhau, các hệ số đó baogồm: tài nguyên, tốc độ, khả năng và giá thành của con chip

2.1 Chế tạo vi mạch

Một con vi mạch được tạo ra bởi nhiều lớp: Si pha tạp, tinh thể Si, kim loại và oxit Si,được xây dựng trên lớp đầu, trên wafer Si mỏng

Trang 3

Một vài lớp dùng để tạo nên transistor, và những lớp còn lại người ta dùng làm dâydẫn kết nối.

2.2 Phân loại các công nghệ thiết bị

Chúng ta cần phải hiểu rõ sự khác biệt giữa 2 công nghệ ASIC (Application SpecificIntegrated Circuit) và non-ASIC

Chúng ta có thể chia các công nghệ ra thành các dạng như sau:

 Full-custom ASIC (Công nghệ ASIC đặt chế hoàn toàn)

 Standard-cell ASIC (Công nghệ ASIC tế bào chuẩn)

 Gate array ASIC (Công nghệ ASIC mảng, cổng, chuỗi)

 Complex field-programmable logic device (Các thiết bị logic có thể lập trìnhtheo trường phức tạp)

 Simple field-programmable logic device (Các thiết bị logic có thể lập trìnhtheo trường đơn giản)

Trang 4

2.2.1 Full-custom ASIC

Chúng ta phải đều khiển toàn bộ mạch điện và thạm chí cách bố trí thủ công vị trí củatừng con transistor để mà nó có thể tương thích với các yêu cầu về hiệu suất hoặc yêu cầu vềtài nguyên đặt biệt

Mạch sau khi thiết kế thì được tối ưu hoàn toàn và có một hiệu suất tốt nhất có thể.Thật không may, thiết kế một cái mạch điện ở cấp độ trans cực kỳ phức tạp và nó chỉphù hợp với mạch điện có kích cỡ nhỏ

Sẽ không thực tế nếu chúng ta sử dụng cái phương pháp thiết kế này để đi thiết kếtoàn bộ hệ thống, mà hệ thống ngày nay có thể chứa lên đến 10 hoặc 100 triệu trans.Một CPU năm 1971 chỉ có 2.300 trans thì hiện nay (2016) đã có tới 7.2 tỉ trans với 22nhân nhờ quá trình sản xuất 14nm (dòng 22-core Xeon Broadwell-E5)

Ứng dụng chính: dùng để thiết kế ra các thành phần logic cơ bản (cổng AND, OR,

NOT) Chúng có thể sử dụng như là các khối xây dựng của một hệ thống lớn

Ứng dụng khác: thiết kế các mạch điện dạng bit như là mạch nhớ 1-bit, mạch cộng

1-bit

2.2.2 Standard-cell ASIC

Một mạch điện được xây dựng bằng cách sử dụng một chuỗi hoặc là tập hợp cácthành phần logic đã được xác định trước, và được gọi là các tế bào chuẩn

Trang 5

Các tế bào này đã được thiết kế trước và bố trí của chúng đã có hiệu lực và đã kiểmtra rồi.

Công nghệ này cho phép chúng ta làm việc ở cấp độ cổng hơn là cấp độ dùng trans và

do đó nó làm đơn giản đi một cách đáng kể cái quá trình thiết kế

Các nhà thiết kế thiết bị thường cung cấp các thư viện của tế bào chuẩn như là cáckhối xây dựng cơ bản

Các thư viện đó thường chứa các cổng logic cơ bản:

 Các thành phần kết hợp đơn giản, chẳng hạn như:

 Cổng AND, OR, NOT

Trong công nghệ này mạch điện được tạo ra từ các tế bào

Các loại tế bào và kết nối bên trong thì phụ thuộc vào các ứng dụng độc lập.Trong khi bố trí của tế bào đã được xác định, thì bố trí của toàn bộ mạch điện là duynhất và do đó việc chế tạo 1 chip theo công nghệ tế bào chuẩn gần giống như là chế tạo chipcủa full-custom ASIC, và tất cả lớp được chúng ta tùy chỉnh hết

2.2.3 Gate array ASIC

Trong công nghệ này, một mạch được xây dựng từ một mảng các ô được xác định

Trang 6

Chip mảng cổng chỉ bao gồm một loại tế bào, được gọi là tế bào cơ bản

Tế bào cơ bản khá đơn giản, giống như một cổng logic

Các tế bào cơ bản này được sắp xếp trước và đặt ở những vị trí cố định, được cănchỉnh dưới dạng mảng một hoặc hai chiều

Vì vị trí và loại được xác định trước, nên các tế bào cơ bản có thể được chế tạo sẵn.Việc tùy chỉnh mạch được thực hiện bằng cách chỉ định kết nối giữa các tế bào này.Các nhà chế tạo của công nghệ này cũng cung cấp những thư viện của các thành phần

đã được thiết kế, như là các tế bào macro

Chúng được xây dựng từ các tế bào cơ bản

Các tế bào macro sẽ có những kết nối bên trong được xác định và cung cấp cho ngườithiết kế nhiều khối logic phức tạp hơn

So sánh công nghệ tế bào chuẩn:

 Việc chế tạo thiết bị mảng cổng đơn giản hơn nhiều do cấu trúc mảng cố địnhcủa nó

 Vì mảng là chung cho tất cả các ứng dụng nên tế bào có thể được chế tạo trước

 Trong quá trình xây dựng chip, chỉ các lớp mặt nạ ngoài kim loại, chỉ định kếtnối, là duy nhất cho một ứng dụng và do đó phải được tùy chỉnh

 Điều này làm giảm số lớp tùy chỉnh từ 10-15 lớp xuống còn 3-5 lớp và đơn giảnhóa đáng kể quy trình chế tạo

2.2.4 Complex field-programmable logic device

Bây giờ chúng tôi kiểm tra một số công nghệ không phải ASIC

Công nghệ không phải ASIC linh hoạt nhất là thiết bị lập trình trường phức tạp(CFPD) Trong công nghệ này, một thiết bị bao gồm một dãy các tế bào logic tổng quát vàcấu trúc kết nối tổng quát Mặc dù các tế bào logic và cấu trúc kết nối được đúc sẵn nhưng cảhai đều có thể lập trình được

Khả năng lập trình có được bằng cách sử dụng "cầu chì" hoặc "công tắc" bán dẫn

mà có thể được thiết lập là hở mạch hoặc ngắn mạch

Trang 7

Việc tùy chỉnh được thực hiện bằng cách định cấu hình thiết bị với mẫu cầu chì cụthể Quá trình này có thể được thực hiện bởi một lập trình viên thiết bị đơn giản, rẻ tiền.Các cấu trúc cơ bản của mảng cổng ASIC và CFPD có phần giống nhau.

Tuy nhiên, cấu trúc kết nối của CFPD được xác định trước và do đó có nhiều ràngbuộc hơn đối với định tuyến tín hiệu Để giảm số lượng kết nối, nhiều chức năng hơn đượctích hợp vào các tế bào logic của CFPD, làm cho tế bào logic phức tạp hơn nhiều so với tếbào cơ bản hoặc tế bào tiêu chuẩn của ASIC Theo độ phức tạp và cấu trúc của các tế bàologic, CFPD có thể được chia thành hai loại chính: CPLD (Complex programmable logicdevice), FPGA (Field programmable gate array)

2.2.4.1 Công nghệ CPLD (có trước FPGA)

Các tế bào logic của các thiết bị CPLD khá phức tạp so với FPGA

Nó thường chứa 1 loại flip-flop D và 1 đơn vị giống như PAL với cấu hình các thànhphần tích Cấu trúc nối dây của thiết bị CPLD có khuynh hướng tập trung hơn, với nhiềunhóm dây định tuyến tập trung

Trang 8

2.2.4.2 Công nghệ FPGA (có sau CPLD)

Ngược lại với CPLD, thì tế bào logic của thiết bị FPGA thường nhỏ hơn

Nó cũng chứa 1 flip-flop D và 1 bảng tra nhỏ hoặc là tập hợp các mạch đa hợp Cấutrúc nối dây bên trong giữa các tế bào có khuynh hướng phân tán và linh hoạt hơn Do tínhchất phân phối của nó, FPGA phù hợp hơn với các thiết bị lập trình trường phức tạp lớn,công suất cao

2.2.5 Simple field-programmable logic device (có trước CN4)

SFPLD là các thiết bị với cấu trúc bên trong khá đơn giản

Các thiết bị này thường được gọi là các thiết bị logic có thể lập trình (PLD).SFPD thường được xây dựng như là mảng 2 cấp, với mảng cổng AND và OR.Nối dây bên trong của 1 hoặc 2 mảng có thể lập trình được để tạo ra một hàm logicđược biểu diễn dưới dạng tổng của các tích

Trang 9

Các thiết bị này bao gồm:

 Programmable read only memory (PROM), với mảng cổng OR cho phép chúng

ta lập trình

 Programmable array logic (PAL), với cổng AND có phép chúng ta lập trình

 Programmable logic array (PLA), cho phép cả 2 mảng đều có thể lập trình

Không giống như thiết bị FPGA và CPLD.

SFPLD không có cấu trúc nối dây bên trong tổng quát, do đó chức năng của nó bị hạnchế một cách đáng kể ROM, PAL và PLA ngày nay được xem như là các thành phần bêntrong của các thiết bị ASIC hoặc CPLD hơn là sử dụng nó một cách độc lập

2.2.6 Off-the-shelf small and medium-scaled IC (SSI/MSI) components.

Trước khi xuất hiện các thiết bị có thể lập trình theo vùng, chỉ có một giải pháp duynhất là dùng các thành phần vi mạch tích hợp cỡ nhỏ/cỡ trung để đi thiết kế mạch Các thànhphần này là các mạch điện nhỏ các phần nhỏ, với chức năng giới hạn và cố định

Ví dụ về họ TTL 7400

Khi chúng ta thiết kế một hệ thống số phải thiết kế từ dưới lên, chúng ta sẽ xây dựngmạch điện dần từ các thành phần nhỏ hơn

Nhược điểm chính của phương pháp này là hầu hết các nguồn tài nguyên như là:

công suất, chuyển tiếp chuyển bo, giá thành sản suất,…được tính bởi một gói và nó khôngphải là thành phần Si Xa hơn nữa, không có phần mềm tổng hợp nào mà có thể thiết kếmạch sử dụng công nghệ cỡ nhỏ/cỡ trung như thế này, và như thế chúng ta không thể tựđộng Khi các thiết bị có thể lập trình trở nên nhiều chức năng hơn và giá thành thấp hơn, thìviệc thiết kế một hệ thống số theo yêu cầu của khách hàng và chính vì thế nó không đượcxem xét trong tài liệu này

Trang 10

CHƯƠNG 2: TỔNG QUAN VỀ NGÔN NGỮ HDL (3)

1 Ngôn ngữ mô tả phần cứng

1.1 Hạn chế của ngôn ngữ lập trình truyền thống

Có nhiều loại ngôn ngữ lập trình máy tính, từ Fortran đến C đến Java Thật khôngmay, chúng không đủ để mô hình hóa phần cứng kỹ thuật số Hầu hết các ngôn ngữ lập trìnhmục đích chung truyền thống, chẳng hạn như C, được mô hình hóa sau một quy trình tuần tự.Trong quá trình này, các thao tác được thực hiện theo thứ tự tuần tự, mỗi lần một thao tác

Mặt khác, đặc điểm của phần cứng kỹ thuật số rất khác so với mô hình tuần tự.Một hệ thống kỹ thuật số điển hình thường được xây dựng bởi các bộ phận nhỏ hơn,với hệ thống dây tùy chỉnh kết nối các cổng đầu vào và đầu ra của các bộ phận này

Khi tín hiệu thay đổi, các bộ phận được kết nối với tín hiệu sẽ được kích hoạt và mộtloạt các hoạt động mới được bắt đầu tương ứng Các thao tác này được thực hiện đồng thời

và mỗi thao tác sẽ mất một khoảng thời gian cụ thể, thể hiện độ trễ lan truyền của một bộphận cụ thể, để hoàn thành Sau khi hoàn thành, mỗi phần cập nhật giá trị của cổng xuấttương ứng

1.2 Sử dụng chương trình HDL

Mô hình tuần tự được sử dụng trong các ngôn ngữ lập trình truyền thống không thểnắm bắt được các đặc tính song song của phần cứng số Cần có các ngôn ngữ đặc biệt (nghĩa

là HDL) được thiết kế để mô hình hóa phần cứng kỹ thuật số

VHDL và Verilog là hai HDL được sử dụng rộng rãi nhất

Trang 11

VHDL là viết tắt của VHSIC (Very High Speed Integrated Circuit) HDL.

Sự phát triển của VHDL ban đầu được tài trợ bởi Bộ Quốc phòng Hoa Kỳ như mộttiêu chuẩn tài liệu phần cứng vào đầu những năm 1980

2 Khái niệm VHDL cơ bản thông qua ví dụ

Ví dụ: Mạch phát hiện chẵn lẻ.

Có một đầu ra, chẵn và ba đầu vào, a(2), a(1) và a(0), được nhóm thành một bus

2.1 Mô tả tổng quát

Mã bao gồm hai đơn vị chính: entity declarationarchitecture body.

 Entity declaration: (Khai báo tín hiệu vào ra của mạch điện đang mô tả)

Trang 12

 Architecture body: Phần thân kiến trúc chỉ định hoạt động bên trong hoặc tổ

chức của một mạch

Dòng tiếp theo là khai báo tín hiệu:

Khối xây dựng cơ bản bên trong thân kiến trúc là một lệnh đồng thời

Trang 13

Ví dụ: chúng ta có thể sắp xếp lại mã như sau

Cách khác: sử dụng thao tác xor và biểu thức có thể được viết là

Sơ đồ khái niệm:

2.2 Mô tả cấu trúc

 Trong cách mô tả cấu trúc, một mạch được xây dựng từ các bộ phận nhỏ hơn

 Mô tả chỉ định loại bộ phận nào được sử dụng và cách các bộ phận này đượckết nối

 Mô tả về cơ bản là một sơ đồ, đại diện cho một sơ đồ khối hoặc sơ đồ mạchđiện

Trang 20

 Package declaration (khai báo gói)

 Package body (thân gói)

 Configuration (cấu hình)

Một gói VHDL thường chứa một tập hợp các mục thường được sử dụng, chẳng hạnnhư kiểu dữ liệu, chương trình con và các thành phần, cần thiết cho nhiều chương trìnhVHDL

Như tên gợi ý, một khai báo gói bao gồm khai báo các mục này

Phần thân gói thường chứa phần triển khai và mã của các chương trình con.Trong VHDL, nhiều thân kiến trúc có thể được liên kết với một khai báo entity.Một cấu hình chỉ định phần thân kiến trúc nào sẽ được liên kết với phần khai báoentity

Nhận xét chỉ dành cho mục đích tài liệu và không ảnh hưởng đến mã

VD: chúng tôi đã thêm nhận xét vào mã VHDL trước đó:

Đặt tên:

Định danh là tên của một đối tượng trong VHDL

Các quy tắc cơ bản để tạo thành một định danh là:

Trang 21

 Mã định danh chỉ có thể chứa các chữ cái, chữ số thập phân và dấu gạchdưới.

 Ký tự đầu tiên phải là một chữ cái

 Ký tự cuối cùng không được là dấu gạch dưới

 Hai dấu gạch dưới liên tiếp không được phép

VD: các số nhận dạng sau là hợp lệ:

 A10, next_state, NextState, mem_addr_enable

Mặt khác, các định danh sau vi phạm một trong các quy tắc và sẽ gây ra lỗi cú pháp:

 Sig#3, -X10, 7segment, X10_, hi_there

Vì VHDL không phân biệt chữ hoa chữ thường nên các mã định danh sau đây như là1:

 Nextstate, NextState, NEXTSTATE, nEXTsTATE

Số, ký tự và chuỗi:

VD: 45 có thể được biểu diễn dưới dạng 2#101101# và 16#2D# trong cơ số 2 và cơ số

16 tương ứng

Chúng tôi cũng có thể thêm một dấu gạch dưới để tăng cường khả năng đọc

VD: 12_3456 giống với 123456 và 2#0011_1010_1101# giống với

Cú pháp khai báo tín hiệu được đơn giản hóa là

VD: dòng sau khai báo các tín hiệu a, b và c với kiểu dữ liệu std_logic:

Theo định nghĩa của VHDL, chúng ta có thể chỉ định một giá trị ban đầu tùy chọntrong phần khai báo tín hiệu VD: chúng ta có thể gán giá trị ban đầu là '0' cho các tín hiệutrước đó:

Trang 22

Biến là một khái niệm được tìm thấy trong ngôn ngữ lập trình truyền thống Nó có thểđược coi là một "vị trí bộ nhớ tượng trưng" nơi một giá trị có thể được lưu trữ và sửa đổi.Không có ánh xạ trực tiếp giữa một biến và một phần cứng Một biến chỉ có thể được khaibáo và sử dụng trong một quy trình và là cục bộ của quy trình đó

Ứng dụng chính của một biến là mô tả hành vi trừu tượng của một hệ thống.

Cú pháp khai báo biến tương tự như khai báo tín hiệu:

Cú pháp đơn giản hóa của phép gán biến là

5 Các loại dữ liệu và các toán tử

5.1 Các kiểu dữ liệu của VHDL

Trong VHDL, mỗi đối tượng có một kiểu dữ liệu

Một kiểu dữ liệu được xác định bởi:

 Một tập hợp các giá trị mà một đối tượng có thể đảm nhận

 Một tập hợp các hoạt động có thể được thực hiện trên các đối tượng của kiểu

dữ liệu này

 Integer:

 VHDL không xác định phạm vi chính xác của kiểu số nguyên nhưng xácđịnh rằng phạm vi tối thiểu là từ (-2 ) đến (2 -1), tương ứng với 32 bit.31 31

 Boolean: được định nghĩa là (sai, đúng)

 Bit: được định nghĩa là (‘0’, ‘1’)

 Bit_vector: được định nghĩa là mảng một chiều với các phần tử thuộc kiểu dữliệu bit

Trang 23

Ord Operator Description Data type of

operand a

Data type ofoperand b

Data type ofoperandresult

bit_vector

Boolean, bit,bit_vector

12 a & b Concatenation 1-D array,

elememt

1-D array,elememt

1-D array,elememt

13 a sll b Shift-left logical bit_vector Integer bit_vector

14 a srl b Shift-right logical

15 a sla b Shift-left arithmetic

16 a sra b Shift-right arithmetic

17 a rol b Rotate-left

18 a ror b Rotate-right

20 a /= b Not euqal to Scalar or 1-D Same as a Boolean

Ngày đăng: 20/04/2024, 09:58

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w