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 1Thiế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 2Nộ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 3Tà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 4Kiể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 5About 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 6Download tài liệu học tập
https://sites.google.com/site/hvthangete/
Trang 7TU Graz
Trang 8No Kangaroos in Austria
• T-shirt
Trang 9Arnold Schwarzenegger
9
Terminator Genisys (2015)
Trang 10The Sound of Music (1965)
Trang 111 ÔN TẬP
Trang 12qThiế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 151 ÔN TẬP
• Logic gates: AND, OR, NAND, NOR, NOT, BUFFER, XOR,
XNOR
q Totem Pole Output
q Open Collector Output
Trang 16q Counter (nối tiếp, song song, hỗn hợp)
q Register, Shift Register
q Memory
• ALU (Arithmetic Logic Unit)?
• Microprocessor?
Trang 172 Giới thiệu chung về công nghệ IC khả trình
Trang 18Các bước thiết kế VLSI (1/9)
Trang 19Cá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 20Cá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 21Cá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 22Cá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 23topin1: 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 24Các bước thiết kế VLSI (7/9)
top
Component hierarchy
Trang 25Cá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 26Cá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 27Remark: 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 28Thiết kế VLSI
Các bước thiết kế vật lý
Trang 30Cá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 31Cá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 32Cá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 34Cá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 35Cá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 36Công nghệ IC khả trình
Trang 37x y z
F1
x y z
F1
Trang 38Công nghệ IC khả trình Programmable logic array
• PLA
And plane
And plane
Or plane
Input
Output Programmable
Trang 39Công nghệ IC khả trình Programmable logic array
• PLA
Trang 40Công nghệ IC khả trình Programmable Array Logic
• PAL
And plane
And plane
Or plane
Input
Output Programmable
Fixed
Trang 41Công nghệ IC khả trình Programmable Array Logic
Trang 42Công nghệ IC khả trình
Complex Programmable Logic Devices
• CPLD
Trang 442-to-4 Mux
2 LSB
After manufacturing
Trang 452-to-4 Mux
2 LSB
DataAfter programming
Trang 46Công nghệ IC khả trình Field-programmable Gate Array
• FPGA: XC40xx
CLB CLB
Routing via switching matrices
Trang 47Cô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 48Công nghệ IC khả trình Field-programmable Gate Array
• FPGA: Switching Matrix SM
Pass TOR
Trang 49Công nghệ IC khả trình Field-programmable Gate Array
• C ác loại kết nối:
Trang 50Công nghệ IC khả trình Field-programmable Gate Array
Trang 51Cô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 52Công nghệ IC khả trình
Ưu điểm
Trang 53Cô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 54FPGA 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 57Cá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 58Cá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 59Thiết kế mạch số tổ hợp Các mạch logic tổ hợp cơ bản
Trang 60q 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ừ 01
q Sườn xuống: tín hiệu xung nhịp chuyển từ 10
Trang 62Thiế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 63Mô 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 64Mô 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 65Mô hình tổng quát FSM
65
Trang 66Thiế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 674 Ngôn ngữ mô tả phần cứng VHDL
Trang 68Giớ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 69LED : 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 70Giớ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 72Giớ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 73Giớ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 74Giớ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 75Giớ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 76Giớ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 77Giới thiệu về VHDL Khai báo cấu hình
end for;
end for;
end Config_name;
Trang 78Giớ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 793-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 80Y: out bit);
end INV;
architecture RTL of INV isbegin
Y <= ‘1’ when (A=‘0’) else ‘0’;
end RTL;
Trang 82architecture 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 83Y
ComponentsX
Y
Z
Trang 84S
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