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

Đị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ắngSinh 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ất nhiề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ố đó bao gồ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ây dẫ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 Specific Integrated 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ình theo trường phức tạp)

 Simple field-programmable logic device (Các thiết bị logic có thể lập trình theo 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ủa từ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 22 nhâ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

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ác thà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ểm tra 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ác khố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à duy nhấ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 chip củ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ăn chỉ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ười thiế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ố định củ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ết

nố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ản hó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àng buộ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 được tí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ào logic, CFPD có thể được chia thành hai loại chính: CPLD (Complex programmable logic device), 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ành phầ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ều nhó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ấu trú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ính chấ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ạn chế một cách đáng kể ROM, PAL và PLA ngày nay được xem như là các thành phần bên trong 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 duy nhấ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ành phầ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ựng mạ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ông phả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 được xem 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ông may, 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ình mụ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ột loạ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ất tươ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ột tiê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.

Lệnh đồng thời.

Tín hiệu hoặc port bên trái là ngõ ra và tất cả tín hiệu và các port xuất hiện trong biểu thức bên phải là tín hiệu ngõ vào.

Phần thân kiến trúc này bao gồm năm câu lệnh đồng thời Mà có thể được hiểu là một tập hợp của năm phần mạch.

Lưu ý rằng, thứ tự của các câu lệnh đồng thời này không quan trọng.

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 được

kế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

Khi một chương trình được xử lý, nó được chia thành các đơn vị thiết kế riêng lẻ và mỗi đơn vị được phân tích và lưu trữ độc lập.

Có 5 loại đơn vị thiết kế:  Entity declaration  Architecture body

 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ạn như 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ình VHDL.

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áo entity.

3 Các yếu tố từ vựng và định dạng chương trình3.1 Yếu tố từ vựng

Các yếu tố từ vựng là các đơn vị cú pháp cơ bản trong một chương trình VHDL Chúng bao gồm chú thích, đặt tên, các từ khóa, con số, các ký tự và chuỗi.

Chú thích:

Một nhận xét bắt đầu bằng hai dấu gạch ngang, , theo sau là nội dung nhận xét Mọi thứ sau biểu tượng trong dòng sẽ bị bỏ qua.

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ạch dướ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à

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

4 Các đối tượng VHDL4.1 SIGNAL

Signal là đối tượng phổ biến nhất và chúng tôi đã sử dụng nó trong các ví dụ trước Một tín hiệu phải được khai báo trong phần khai báo của phần thân kiến trúc.

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ọn trong 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ệu trướ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 khai bá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.3131

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

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