1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Thiết kế dùng vi mạch logic khả trình

183 499 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 183
Dung lượng 10,28 MB

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 bước thiết kế VLSI 2/9 System Specification – Xác định kích thước, tốc độ, công suất và các chức năng của hệ thống Architectural Design – Xác định kiến trúc của hệ thống: ví dụ: RI

Trang 1

Thiết kế dùng vi mạch logic

khả trình

Giảng viên: TS Huỳnh Việt Thắng

Đà Nẵng, 08/2017

Trang 2

Nội dung môn học

1 Ôn tập về Thiết kế số

2 Giới thiệu công nghệ IC khả trình

3 Máy trạng thái hữu hạn (FSM)

Trang 3

Tài liệu tham khảo

Tham khảo chính:

1) Douglas L Perry, VHDL Programming by Example, 4th Edition (2002)

2) Tống Văn On, Nguyên lý mạch tích hợp: Tập 2 - Lập trình ASIC, NXB Lao

động xã hội, 2005 Đọc thêm:

3) Peter J Ashenden, The VHDL Cookbook

4) Nguyễn Quốc Tuấn, Giáo trình Ngôn ngữ VHDL để thiết kế vi mạch, NXB

Đại học quốc gia TP.HCM, 2002

5) Tống Văn On, Thiết kế mạch số với VHDL và Verilog (2 tập), NXB Lao

động xã hội, 2007 6) Các tài liệu tham khảo và các datasheet sưu tầm trên Internet

Trân trọng cảm ơn PGS.TS Phạm Ngọc Nam, Viện Điện Tử

Viễn Thông, Trường Đại học Bách khoa Hà Nội đã cho phép tham khảo và sử dụng bài giảng của Thầy!

Trang 4

Kiểm tra đánh giá môn học

• Kiểm tra giữa kỳ: Thi viết được dùng tài liệu

• Kiểm tra cuối kỳ: Làm tiểu luận và báo cáo theo nhóm

• Dự kiến kế hoạch học tập

q Thời gian học trong 10 buổi (3 tiết/buổi)

q Kế hoạch có thể thay đổi tùy theo sự sắp xếp của GV với lớp và sẽ được thông báo trước

Trang 5

About your lecturer

• Bộ môn Kỹ thuật Điện Tử, khoa ĐTVT, ĐHBK Đà Nẵng

q Office: Khu C, ĐHBK ĐN; Email: thanghv@dut.udn.vn

• Research Interests

q Embedded Reconfigurable Computing (aka computing with FPGA)

q FPGA implementation of machine learning applications

q Network-on-Chip

q Floating-point arithmetic, Interval arithmetic, Affine arithmetic

• Education

q 06/2003: Kỹ sư, ĐHBK ĐN (khóa 1998-2003)

q 12/2007: Thạc sĩ kỹ thuật chuyên ngành Điện tử, ĐHĐN

 Thesis: “Implementation of a Network-on-Chip on FPGA”, Thực hiện Network-on-Chip trên

nền FPGA

q 07/2012: Tiến sĩ kỹ thuật chuyên ngành Điện-Điện tử, ĐH Kỹ thuật Graz (TU Graz), Cộng hòa Áo (Austria)

 Thesis: “Efficient floating-point Implementation of Signal Processing Algorithms on

Reconfigurable Hardware”, Thực hiện hiệu quả các thuật toán xử lý tín hiệu dấu phẩy động trên phần cứng tái cấu hình

Trang 6

Download tài liệu học tập

https://sites.google.com/site/hvthangete/

Trang 7

TU Graz

Trang 8

No Kangaroos in Austria

• T-shirt

Trang 9

Arnold Schwarzenegger

9

Terminator Genisys (2015)

Trang 10

The Sound of Music (1965)

Trang 11

1 ÔN TẬP

Trang 12

qThiết kế trên cơ sở Flip – Flop (FF)

• Đ ọc lại trong các sách về Kỹ Thuật Số

Trang 13

• Rút gọn (tối thiểu hóa) phương trình logic đầu ra theo 2 nhóm phương pháp:

q Biến đổi đại số: tiên đề định lý đại số Boole

q Thuật toán:

 Bảng Karnaugh (Bìa K, K-Map)

 Thuật toán Quinn Mc-Cluskey

Trang 15

1 ÔN TẬP

• Logic gates: AND, OR, NAND, NOR, NOT, BUFFER, XOR,

XNOR

q Totem Pole Output

q Open Collector Output

Trang 16

q Counter (nối tiếp, song song, hỗn hợp)

q Register, Shift Register

q Memory

• ALU (Arithmetic Logic Unit)?

• Microprocessor?

Trang 17

2 Giới thiệu chung về công nghệ IC khả trình

Trang 18

Các bước thiết kế VLSI (1/9)

Trang 19

Các bước thiết kế VLSI (2/9)

System Specification – Xác định kích thước, tốc độ, công suất và các chức năng của hệ thống

Architectural Design – Xác định kiến trúc của hệ thống: ví dụ: RISC/CISC, số lượng ALU, kích thước bộ nhớ cache Việc xác định kiến trúc sẽ giúp cho việc ước lượng tốc độ

xử lý của hệ thống, kích thước chip, công suất tiêu thụ …

Trang 20

Các bước thiết kế VLSI (3/9)

Functional Design – Xác định các khối chức năng chính

và kết nối giữa các khối Chưa cần xác định chi tiết cách thức thực hiện các khối này.

Trang 21

Các bước thiết kế VLSI (4/9)

Logic Design – Thiết kế logic, ví dụ: thiết kế mạch logic

tổ hợp, logic dãy, ALU, khối điều khiển… Kết quả của

bước thiết kế này là bản mô tả RTL (Register Transfer

Level) RTL được biểu diễn bằng ngôn ngữ mô tả phần

cứng HDL (Hardware Description Language), e.g.,

VHDL, Verilog.

X = (AB+CD)(E+F) Y= (A(B+C) + Z + D)

Trang 22

Các bước thiết kế VLSI (5/9)

Circuit Design – Thiết kế mạch bao gồm các cổng logic, transistors và các kết nối Kết quả thu được từ bước thiết

kế này là một netlist.

Trang 23

topin1: top.n1 xxx.xin1

topin2: top.n2 xxx.xin2

botin1: top.n3 xxx.xin3

net3: xxx.out i2.in

outnet: i2.out top.out

Trang 24

Các bước thiết kế VLSI (7/9)

top

Component hierarchy

Trang 25

Các bước thiết kế VLSI (8/9)

Physical Design – Chuyển từ netlist sang dạng biểu diễn

hình học Cách biểu diễn hình học này được gọi là layout.

Trang 26

Các bước thiết kế VLSI (9/9)

Fabrication – Bao gồm các quá trình như quang khắc,

đánh bóng, khuyếch tán …để chế tạo ra chip (IC).

Packaging – Sắp xếp các IC trên một board mạch in PCB

(Printed Circuit Board) hoặc trên một module đa chíp MCM (Multi-Chip Module)

Trang 27

Remark: Các bước thiết kế VLSI

System Specification

Architectural Specification

Architectural

Design

Functional Design

Logic Design

Physical Design

Fabrication

Packaging

Circuit Design

or Logic Synthesis

Trang 28

Thiết kế VLSI

Các bước thiết kế vật lý

Trang 30

Các bước thiết kế vật lý (2/6)

Circuit Partitioning – Chia một mạch lớn thành các mạch nhỏ hơn

Trang 31

Các bước thiết kế vật lý (3/6)

Floorplanning – Thiết lập kế hoạch bố trí các module trên layout một cách hợp lý khi mà hình dạng, kích thước, ví trí chân của các module chưa được cố định.

Deadspace

Trang 32

Các bước thiết kế vật lý (4/6)

Placement – Bố trí cố định các module (module có thể là cổng logic, các khối chuẩn standard cells…) khi đã biết các thông số chi tiết của các module sao cho trễ tín hiệu, diện tích và số lượng kết nối nhỏ nhất.

v

Feedthrough Standard cell type 1 Standard cell type 2

Trang 34

Các bước thiết kế vật lý (6/6)

Compaction – Bước này tối thiểu hoá diện tích của vùng layout để giảm kích thước chip

Verification – Kiểm tra layout bao gồm kiểm tra luật thiết

kế DRC (Design Rule Checking), tạo ngược lại mạch điện

từ layout (circuit extraction) để so sánh với netlist ban đầu,

kiểm tra hoạt động (performance verification ) bằng cách

lấy thông tin hình học để tính toán các giá trị điện trở, điện dung, trễ…

Trang 35

Các công nghệ dùng trong thiết kế

• Full-Custom ASICs (Application specific IC)

q Các khối logic (logic cells) và các lớp mặt nạ không được thiết kế sẵn

mà do người thiết kế thiết kế

• Semicustom ASICs

q Các khối logic ( logic cells) được thiết kế sẵn (được định nghĩa trong thư viện cell) và các lớp mặt nạ được thiết kế bởi người thiết kế

q 2 loại:

Standard-cell based and Gate-array-based ASICs

• Các linh kiện logic khả trình (Programmable Logic Devices)

q Tất cả các khối logic được thiết kế sẵn và không cần phải thiết kế lớp mặt nạ nào

q Types: PLD (Programmable Logic Device) and

FPGA (Field Programmable Gate Array)

Trang 36

Công nghệ IC khả trình

Trang 37

x y z

F1

x y z

F1

Trang 38

Công nghệ IC khả trình Programmable logic array

• PLA

And plane

And plane

Or plane

Input

Output Programmable

Trang 39

Công nghệ IC khả trình Programmable logic array

• PLA

Trang 40

Công nghệ IC khả trình Programmable Array Logic

• PAL

And plane

And plane

Or plane

Input

Output Programmable

Fixed

Trang 41

Công nghệ IC khả trình Programmable Array Logic

Trang 42

Công nghệ IC khả trình

Complex Programmable Logic Devices

• CPLD

Trang 44

2-to-4 Mux

2 LSB

After manufacturing

Trang 45

2-to-4 Mux

2 LSB

DataAfter programming

Trang 46

Công nghệ IC khả trình Field-programmable Gate Array

• FPGA: XC40xx

CLB CLB

Routing via switching matrices

Trang 47

Công nghệ IC khả trình Field-programmable Gate Array

• C ấu tạo của một CLB ( Configurable Logic Block)

16x1 LUT:

Bool-function

of 4 variables

16x1 LUT:

Bool-function

of 4 variables

FF G

G GQ

FF F

F FQ

Trang 48

Công nghệ IC khả trình Field-programmable Gate Array

• FPGA: Switching Matrix SM

Pass TOR

Trang 49

Công nghệ IC khả trình Field-programmable Gate Array

• C ác loại kết nối:

Trang 50

Công nghệ IC khả trình Field-programmable Gate Array

Trang 51

Công nghệ IC khả trình

Field-Programmable Gate Array (FPGA)

• Hãng cung cấp FPGA hàng đầu thế giới

qCông ty Xilinx: http://www.xilinx.com/

qCông ty Altera: http://www.altera.com/

qCông ty Lattice Semiconductor: http://www.latticesemi.com/ qCông ty Actel: http://www.actel.com/

qCông ty Crypress: http://www.cypress.com/

qCông ty Atmel: http://www.atmel.com/

qCông ty QuickLogic: http://www.quicklogic.com/

Trang 52

Công nghệ IC khả trình

Ưu điểm

Trang 53

Công nghệ IC khả trình

Ưu điểm

• FPGA vs Custom ASIC

qFPGAs are more flexible

qFPGAs are more cost effective for small quantities qASICs have higher densities

• FPGA vs Parallel Computer

qFPGAs are more cost effective

qFPGAs are smaller

qParallel Computers are easier to program

Trang 54

FPGA vs ASIC Cost

ASIC: High volumes needed to recover design cost

ASIC cost/part

is lower

Courtesy: Richard Sevcik, Xilinx

Trang 55

• Digital Video Technologies

• Industrial/Scientific & Medical

• Test & Measurement

• Wired Communications

• Wireless Communications

Trang 57

Các mức thiết kế mạch số (1/2)

• Thi ết kế dùng các cổng logic rời rạc (Gate level):

qAND, OR, NAND, NOT…, Flip Flops

qDùng cho các bài toán thiết kế đơn giản như thiết kế bộ tổng, tổng

qKết quả: module

• Thi ết kế dùng các thanh ghi và các module số (RTL: register transfer level)

qThanh ghi dịch, decoder, ALU, Mux, bộ cộng, nhân, bộ đếm…

qDùng cho các bài toán thiết kế từ trung bình đến phức tạp như thiết kế

vi xử lý, thiết kế các bộ mã hoá và giải mã âm thanh, hình ảnh …

qKết quả: vi mạch (IC)

Trang 58

Các mức thiết kế mạch số (2/2)

• Thi ết kế hệ thống (system level design)

qVi xử lý, bộ nhớ, các bộ mã hoá và giải mã hình ảnh, âm thanh số, các

b ộ xử lý tín hiệu số …

qDùng cho thiết kế các hệ thống số phức tạp như máy rút tiền tự động,

qKết quả: PCB

• Trong quá trình thi ết kế một hệ thống số, các mức trên có thể

đ ược sử dụng 1 đến nhiều lần

Trang 59

Thiết kế mạch số tổ hợp Các mạch logic tổ hợp cơ bản

Trang 60

q Mạch logic tuần tự không đồng bộ: tín hiệu đầu ra và trạng thái thay đổi ngay khi tín hiệu đầu vào thay đổi

q Mạch logic tuần tự đồng bộ: tín hiệu đầu ra và trạng thái chỉ thay đổi khi tín hiệu đầu vào là đồng hồ xung nhịp có 1 giá trị nào đấy

q Chu kỳ xung nhịp: khoàng thời gian giữa hai lần chuyển từ 1 xuống 0 của tín hiệu xung nhịp

q Tần số xung nhịp: 1 / chu kỳ xung nhịp

q Chu kỳ tác động của xung nhịp: (thời gian tín hiệu xung nhịp = 1) / chu

kỳ xung nhịp

q Sườn lên: tín hiệu xung nhịp chuyển từ 01

q Sườn xuống: tín hiệu xung nhịp chuyển từ 10

Trang 62

Thiết kế mạch số tuần tự Thiết kế mạch số tuần tự đồng bộ

• Máy trạng thái hữu hạn Finite State Machine (FSM)

• FSM loại Moore : tín hiệu ra phụ thuộc vào trạng thái

• FSM loại Mealy: tín hiệu ra phụ thuộc vào {trạng thái và tín hiệu vào}

• Các bước thiết kế:

qBước 1: Vẽ sơ đồ trạng thái

qBước 2: Tối thiểu hoá số lượng các trạng thái

qBước 3: Mã hoá trạng thái

qBước 4: Lựa chọn flip-flop

qBước 5: Thực hiện mạch logic tổ hợp

qBước 6: Phân tích tín hiệu theo thời gian

Trang 63

Mô hình FSM loại Moore

D Clk

Q

S*=F(S,I)

Mạch logic

tổ hợp cho trạng thái kế tiếp

O=H(S)

Mạch logic

tổ hợp cho tín hiệu ra

D Clk

Q

D Clk

Q

State S*

Current State S

Outputs O

Inputs I

Trang 64

Mô hình FSM loại Mealy

D Clk

Q

S*=F(S,I)

Mạch logic

tổ hợp cho trạng thái kế tiếp

O=H(S,I)

Mạch logic

tổ hợp cho tín hiệu ra

D Clk

Q

D Clk

Q

Clock Next State S* Current

State S

Outputs O

Inputs I

Trang 65

Mô hình tổng quát FSM

65

Trang 66

Thiết kế mạch số tuần tự Các mạch số tuần tự cơ bản

• Thanh ghi (Registers)

• Thanh ghi dịch (Shift registers)

• Bộ đếm (Counter)

• Tệp thanh ghi (Register files)

• Cấu trúc hàng đợi vào sau ra trước LIFO (stack)

• Cấu trúc hàng đợi vào trước ra trước FIFO

Trang 67

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

Trang 68

Giới thiệu về VHDL

• VHDL = VHSIC Hardware Description Language

• VHSIC = Very High Speed Integrated Circuit

• Là ngôn ngữ lập trình dùng để mô tả hoạt động của hệ thống số

• Được quy định trong chuẩn IEEE 1076 từ năm 1983

• Các ngôn ngữ mô tả phần cứng khác:

qVerilog

qAbel

Trang 69

LED : out std_logic_vector(6 downto 0));

end hex2led;

Khai bao hoat dong cua hex2Led

architecture Behavioral of hex2led is

begin with HEX SELect

3210

6

0

31254

Trang 70

Giới thiệu về VHDL

Ví dụ 1

• Thiết kế mạch ‘Test’ với 3 đầu vào 8-bit (In1, In2, In3) và hai đầu ra 1 bit (Out1, Out2) Out1=‘1’ khi In1=In2 và Out2=‘1’ khi In1 = In3

B

EQ

ComparatorA

B

EQ

Trang 72

Giới thiệu về VHDL

Ví dụ 1

Thiết kế khối comparator dùng VHDL

- -Eight bit comparatorentity Comparator isport( A,B: in bit_vector(0 to 7);

EQ: out bit);

đầu vào và ra được gọi là port

‘Architecture’ miêu tả hoạt động

và cấu trúc bên trong của khối cần thiết kế

Chú ý:

-Một entity có thể có nhiều architecture, mỗi architecture là một

cách thể hiện khác nhau của cùng một chức năng

- Các Ports là vector có chiều: vào (in), ra (out), hoặc cả vào cả ra (inout)

Trang 73

Giới thiệu về VHDL Component và Instantiation

• Biểu diễn Test bằng VHDL

entity Test isport( In1,In2,In3: in bit_vector(0 to 7);

Out1,Out2: out bit);

end Test;

architecture Struct1 of Test iscomponent Comparator is

port( A,B: in bit_vector(0 to 7);

EQ: out bit);

end component;

beginCompare1: Comparator port map (A=>In1,B=>In2,EQ=>Out1);Compare2: Comparator port map (A=>In1,B=>In3,EQ=>Out2);end Struct1;

2 bản copy của cùng một

component

‘Comparator’

Chú ý:

- Hai bản comparator chạy song song với nhau !!!

- Đây là architecture miêu tả cấu trúc của entity Test

Trang 74

Giới thiệu về VHDL Cấu hình (Configuration)

• Khi một entity có nhiều architectures, ta sẽ xử dụng architecture nào?

• Làm thế nào để gắn ‘Components’ với ‘Entities’?

Configuration information: architecture selection and component-entity binding

configuration Build1 of Test isfor Struct1

for Compare1: Comparator use entity Compare(Behav1)port map (A => X, B => Y, EQ => Z);

Trang 75

Giới thiệu về VHDL Khai báo Entity và Architecture

ENTITY:

entity Entity_name is port(Signal_name: in Signal_type;

Signal_name: out Signal_type);

end Architecture_name;

Trang 76

Giới thiệu về VHDL Khai báo component

COMPONENT:

component Component_name isport( Signal_name: in Signal_type;

Signal_name: out Signal_type);

end component;

Khai báo copy của COMPONENT :

Instance_name: component Component_name port map (Signal_list);

Hoặc cách thứ 2, copy trực tiếp:

Instance_name: entity Entity_name(Architecture_name) port map (Signal_list);

Trang 77

Giới thiệu về VHDL Khai báo cấu hình

end for;

end for;

end Config_name;

Trang 78

Giới thiệu về VHDL

Ví dụ 2

• Biểu diễn cổng AND bằng VHDL

ABC

Y

3-input AND gate

entity AND3 isport ( A,B,C: in bit;

Y: out bit);

end AND3;

architecture RTL of AND3 isbegin

Y <= ‘1’ when ((A=‘1’) and (B=‘1’) and (C=‘1’)) else ‘0’;end RTL;

Trang 79

3-input OR gate

entity OR3 isport ( A,B,C: in bit;

Y: out bit);

end OR3;

architecture RTL of OR3 isbegin

Y <= ‘0’ when ((A=‘0’) and (B=‘0’) and (C=‘0’)) else ‘1’;end RTL;

Trang 80

Y: out bit);

end INV;

architecture RTL of INV isbegin

Y <= ‘1’ when (A=‘0’) else ‘0’;

end RTL;

Trang 82

architecture Struct of MUX21 issignal U,V,W : bit;

component AND2 isport ( X,Y: in bit;

Z: out bit);

end component;

component OR2 isport ( X,Y: in bit;

Z: out bit);

end component;

component INV isport ( X: in bit;

Z: out bit);

end component;

beginGate1: INV port map (X=>S,Z=>U);

Gate2: AND2 port map (X=>A,Y=>S,Z=>W);

Gate3: AND2 port map (X=>U,Y=>B,Z=>V);

Y: out bit);

end MUX21;

Trang 83

Y

ComponentsX

Y

Z

Trang 84

S

entity Testbench isend Testbench;

Testbench không có portarchitecture BehavTest of Testbench is

Signal In1,In2,Select,Out : bit;

begin

mux21_copy: entity MUX21(Behav) port map (In1, In2, Select, Out);Thu: process is

beginIn1<=‘0’;In2<=‘1’;Select<=‘0’; wait for 20 ns;

Select<=‘1’; wait for 20 ns;

In1<=‘1’;In2<=‘0’; wait for 20 ns;

Trang 85

• VHDL khuyến khích dùng lại bằng khái niệm ‘Packages’

• Một ‘Package’ chứa các định nghĩa về hằng số, khai báo component, các kiểu dữ liệu của người sử dụng, các chương trình con viết bằng VHDL

• Package được cất ở trong ‘Library’: library thực chất là một thư mục

Ngày đăng: 20/09/2017, 21:34

TỪ KHÓA LIÊN QUAN

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

w