Professional Documents
Culture Documents
Tai Lieu VHDL Tieng Viet
Tai Lieu VHDL Tieng Viet
1
PHAN HI PHONG
HAIPHONGPHAN@GMAIL.COM
Phan Hi Phong
3/10/15
Ni dung chnh
2
Phan Hi Phong
3/10/15
Application-Specific
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
1947
1958
Transistor u tin
Gii php SoC u
tin - ng h
Hamilton Pulsar
SoC u tin
ng h
Microma
2009
Vi mch tch hp u
tin
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
ng dng ca IC
7
Processors
Memory chips
RAM, ROM, EEPROM
Analog
Mobile communication,
audio/video processing
Programmable
PLA, FPGA
Embedded systems
Used in cars, factories
Network cards
System-on-chip (SoC)
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
Mt s loi transistor bn dn
9
CMOS*
Bipolar (e.g., TTL)
Bi-CMOS - hybrid Bipolar, CMOS (for high speed)
Ga-As - Gallium Arsenide (for high speed)
Si-Ge - Silicon Germa
CMOS: fast, cheap, low power transistor
Phan Hi Phong
3/10/15
CMOS transistor
10
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
V d: b o CMOS
12
Phan Hi Phong
3/10/15
V d: mch NAND
13
Phan Hi Phong
3/10/15
Thit k v ch to IC
14
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
Full Custom
ASIC - Application-Specific Integrated Circuit
PLD, FPGA - Programmable Logic
SoC - System-on-a-Chip
Phan Hi Phong
3/10/15
V d:
Analog and Mixed-Signal
Microprocessor
Phan Hi Phong
3/10/15
Hiu nng:
Low Design Cost (CAD tools greatly reduce design effort)
High NRE Cost (lower in Gate Array / Structured ASIC)
Medium Unit Cost
Medium Performance
V d:
Phan Hi Phong
3/10/15
V d:
Network routers (e.g., Cisco)
Phan Hi Phong
3/10/15
V d:
Consumer electronics (e.g., iPod)
Cable set-top boxes
Chip a nng cho thit b di ng
Phan Hi Phong
3/10/15
SOC: OMAP-4
21
Phan Hi Phong
3/10/15
tng thit k vi li IP
22
technology
Standard Cells
Processor Cores
Memory Cores
Phan Hi Phong
3/10/15
Cc mc thit k VLSI
23
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
Hng thit k
26
Phan Hi Phong
3/10/15
Cu trc FPGA
27
Phan Hi Phong
3/10/15
logic ti kh trnh.
c thit k u tin bi Ross Freeman (ngi
sng lp cng ty Xilinx), vo nm 1984.
Cha cc phn t logic c kh nng ti cu hnh
to thnh cc vi mch s khc nhau.
FPGA c lp trnh bng cch:
Phan Hi Phong
3/10/15
3/10/15
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
Mt CLB phc tp
32
Phan Hi Phong
3/10/15
c s dng :
Chuyn cc tn hiu vo trong chip.
Gi tn hiu t trong chip ra ngoi.
C 2 nhim v trn (mt cch ng thi).
Phan Hi Phong
3/10/15
Kt ni kh trnh
34
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
Gii thiu
37
1980.
Phan Hi Phong
3/10/15
Gii thiu
38
3/10/15
Gii thiu
39
chnh:
Phan Hi Phong
3/10/15
Lung thit k
40
Phan Hi Phong
3/10/15
Behavioral
RTL
AND_OR2
Phan Hi Phong
DFF
Logic
Layout
CLB_
R5C5
CLB_
R5C6
3/10/15
Cc cng c EDA
42
Quartus Altera
ISE suite Xilinx
Model Sim Mentor Graphic
Phan Hi Phong
3/10/15
Cng c hc VHDL???
43
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
LIBRARY
45
PACKAGES
FUNCTIONS
PROCEDURES
COMPONENTS
Phan Hi Phong
3/10/15
LIBRARY
46
Khai bo:
LIBRARY library_name;
USE library_name.package_name.package_parts;
Cc th vin thng xuyn s dng:
IEEE
STD
WORK
Cc gi thng c s dng:
ieee.std_logic_1164 (ieee library)
standard (std library)
work (work library).
Phan Hi Phong
3/10/15
V d
47
LIBRARY ieee;
USE ieee.std_logic_1164.all
LIBRARY std;
USE std.standard.all;
LIBRARY work;
USE work.all;
Phan Hi Phong
3/10/15
Th vin IEEE
48
levels)
std_logic_arith : kiu d liu SIGNED v UNSIGNED,cc php
STD_LOGIC_VECTOR c du.
std_logic_unsigned : cha cc hm cho php hot ng vi
3/10/15
ENTITY
49
in.
C php:
ENTITY entity_name IS
PORT (
port_name : signal_mode signal_type;
port_name : signal_mode signal_type;
...);
END entity_name;
Phan Hi Phong
3/10/15
ENTITY
50
Cc mode ca tn hiu:
IN: tn hiu vo
OUT: tn hiu ra
INOUT: tn hiu vo ra hai hng
BUFFER: tn hiu ra c nh m
Cc kiu tn hiu:
BIT
STD_LOGIC, STD_LOGIC_VECTOR
INTEGER
3/10/15
V d: NAND GATE
51
ENTITY nand_gate IS
PORT (a, b : IN BIT;
x: OUT BIT);
END nand_gate;
Phan Hi Phong
3/10/15
ARCHITECTURE
52
in.
C php:
ARCHITECTURE architecture_name OF entity_name IS
[declarations]
BEGIN
(code)
END architecture_name;
ca ARCHITECTURE
C th trng tn vi ENTITY
Phan Hi Phong
3/10/15
V d: NAND GATE
53
Phan Hi Phong
3/10/15
3/10/15
n +2,147,483, 647).
NATURAL: 32-bit s nguyn khng m (t 0 n
2,147,483,64 7).
REAL: kiu s thc (t -1.0E38 n 1.0E38).
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
BIT v BIT_VECTOR
57
Ch gm 2 gi tr: 0 v 1
Phan Hi Phong
3/10/15
BIT v BIT_VECTOR
58
V d:
Gn gi tr.
Phan Hi Phong
3/10/15
STD_LOGIC v STD_LOGIC_VECTOR
59
8 gi tr logic
Mc yu k xc nh
Mc yu thp
Mc yu cao
Phan Hi Phong
3/10/15
STD_LOGIC v STD_LOGIC_VECTOR
60
V d
Gn cho bin
1 gi tr
Phan Hi Phong
3/10/15
STD_LOGIC v STD_LOGIC_VECTOR
61
Xung t logic
Phan Hi Phong
3/10/15
integer v enumerated;
Phan Hi Phong
3/10/15
Integer
Phan Hi Phong
3/10/15
enumerated
Phan Hi Phong
3/10/15
Phan Hi Phong
3/10/15
V d
Phan Hi Phong
3/10/15
V d:
Phan Hi Phong
3/10/15
kiu d liu.
TYPE type_name IS ARRAY (specification) OF
data_type;
Kiu bng ghi Record: cha cc i tng khc
kiu d liu
TYPE birthday IS RECORD
day: INTEGER RANGE 1 TO 31;
month: month_name;
END RECORD;
Kiu mng cng
Phan Hi Phong
Port Array:
3/10/15
Signed v Unsigned
69
V d:
SIGNAL x: SIGNED (7 DOWNTO 0);
SIGNAL y: UNSIGNED (0 TO 3);
Khai bo tng t STD_LOGIC, khng phi theo
INTEGER.
Khai bo s dng gi std_logic_arith ca th vin IEEE
UNSIGNED: gi tr khng m
SIGNED: gi tr m
Cho php thc hin cc ton t s hc, nhng khng
cho php thc hin cc ton t logic.
Phan Hi Phong
3/10/15
Signed v Unsigned
70
V d:
Phan Hi Phong
3/10/15
Signed v Unsigned
71
V d:
Phan Hi Phong
3/10/15
How???
72
Phan Hi Phong
3/10/15
Example
73
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all; -- extra
package included
SIGNAL a: IN STD_LOGIC_VECTOR (7 DOWNTO 0);
SIGNAL b: IN STD_LOGIC_VECTOR (7 DOWNTO 0);
SIGNAL x: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);
...
v< = a+b;- - legal (arithmetic operation OK),
unsigned
w< =a AND b; -- legal (logical operation OK)
Phan Hi Phong
3/10/15
Operator
74
Phan Hi Phong
3/10/15
Ton t gn
75
hng s.
Phan Hi Phong
3/10/15
V d
76
SIGNAL x : STD_LOGIC;
VARIABLE y : STD_LOGIC_VECTOR (3 DOWNTO 0);
SIGNAL w: STD_LOGIC_VECTOR (0 TO 7);
x<= '1';
y:= "0000";
w<= "10000000";
w<=(0 =>'1', OTHERS =>'0');
Phan Hi Phong
3/10/15
Ton t logic
77
NOT
AND
OR
NAND
NOR
XOR
XNOR
Phan Hi Phong
3/10/15
V d
78
Phan Hi Phong
3/10/15
Ton t s hc
79
+ Addition
- Subtraction
* Multiplication
/ Division
** Exponentiation
MOD Modulus
REM Remainder
ABS Absolute value ( tr tuyt i )
Phan Hi Phong
3/10/15
Ton t so snh
80
Phan Hi Phong
3/10/15
Ton t dch
81
tr 0
srl : Shift right logic v tr bn tri c lp bi gi
tr 0
Phan Hi Phong
3/10/15
in:
Phan Hi Phong
3/10/15
Combinational logic
83
Gi tr u ra ca mch in ch ph thuc vo gi
tr u vo hin ti
Mch in khng c thnh phn nh
C th c thc thi bng cc phn t cng logic
Phan Hi Phong
3/10/15
Sequential Logic
84
Gi tr u ra ph thuc khng ch gi tr u vo
hin ti m cn c gi tr u vo trc .
Mch in phi bao gm cc thnh phn nh.
Phan Hi Phong
3/10/15
M song song
85
song song.
Ch cc m lnh nm trong PROCESS, FUNCTION,
PROCEDURE l m tun t.
Vi m song song, mch in c tng hp nh
nhau, bt chp th t ca cu lnh trong chng
trnh.
Phan Hi Phong
3/10/15
M song song
86
WHEN/ELSE
WITH/SELECT/WHEN
Cu lnh GENERATE
Cu lnh BLOCK
Phan Hi Phong
3/10/15
Ton t
87
Phan Hi Phong
3/10/15
Ton t
88
Cc ton t c th c s dng m t bt k
mch kt hp no.
Cc mch in phc tp c th c biu din d
dng hn vi m lnh tun t cho d khng cha
phn t logic tun t
Phan Hi Phong
3/10/15
B multiplexer
89
B MUX gm 4 u vo, 1 u ra
Tn hiu ra c chn t 4 u vo thng qua 2
chn s0 v s1
M t mch bng cc ton t logic
Phan Hi Phong
3/10/15
Code of MUX
90
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY mux IS
y: OUT STD_LOGIC);
END mux;
Phan Hi Phong
3/10/15
Cu lnh WHEN
91
v UNAFFECTED
3/10/15
V d
92
Phan Hi Phong
3/10/15
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY mux IS
PORT ( a, b, c, d: IN STD_LOGIC;
sel: IN STD_LOGIC_VECTOR (1 DOWNTO 0);
y: OUT STD_LOGIC);
END mux;
ARCHITECTURE mux1 OF mux IS
BEGIN
y <= a WHEN sel="00" ELSE
b WHEN sel="01" ELSE
c WHEN sel="10" ELSE
d;
END mux1;
Phan Hi Phong
3/10/15
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY mux IS
PORT ( a, b, c, d: IN STD_LOGIC;
sel: IN STD_LOGIC_VECTOR (1 DOWNTO 0);
y: OUT STD_LOGIC);
END mux;
ARCHITECTURE mux2 OF mux IS
BEGIN
WITH sel SELECT
y <= a WHEN "00", -- notice "," instead of ";"
b WHEN "01",
c WHEN "10",
d WHEN OTHERS;
END mux2;
Phan Hi Phong
3/10/15
Cu lnh GENERATE
95
FOR /GENERATE:
label: FOR identifier IN range GENERATE
(concurrent assignments)
END GENERATE;
Phan Hi Phong
3/10/15
M tun t
96
if/else
case
loop
Phi c vit bn
trong mt process,
function, procedure
Phan Hi Phong
Process
97
3/10/15
Cc cu lnh If/Else
98
Phan Hi Phong
process
process
begin
begin
ifif (boolean
(boolean expression
expression 1)
1) then
then
sequential
sequential statements
statements ;;
elsif
elsif (boolean
(boolean expression
expression 2)
2) then
then
sequential
sequential statements
statements ;;
elsif
elsif (boolean
(boolean expression
expression 3)
3) then
then
sequential
sequential statements
statements ;;
else
else
sequential
sequential statements
statements ;;
end
end ifif ;;
3/10/15
V d IF/THEN
99
A
B
C
D
Sel
Z
Late
Late arriving
arriving signal?
signal?
3/10/15
B m 1 s thp phn
100
Cha 1 u vo v 4 u ra
m 1 s thp phn, tng dn
t 0-9-0.
m khi c 1 xung clock c
kch vo.
BI TP V NH
HC LI SNG TH 7 h207
Phan Hi Phong
3/10/15
clock
C 1 tn hiu reset khng ng b, s a cc flipflop v 0 khi pht sinh.
Phan Hi Phong
3/10/15
Lnh WAIT
102
Phan Hi Phong
3/10/15
Cu lnh Case
103
process
process (...)
(...)
begin
begin
case
case (( selector
selector expression
expression )) is
is
when
when ...
... =>
=>
sequential
sequential statements
statements ;;
.. .. ..
when
when others
others =>
=>
sequential
sequential statements
statements ;;
end
end case
case ;;
.. .. ..
end
end process
process ;;
3/10/15
V d lnh Case
104
Tt c cc gi tr c th c ca biu thc chn u phi c ch r
A
B
C
D
Sel
Phan Hi Phong
process
process (A,
(A, B,
B, C,
C, D,
D, Sel
Sel ))
begin
begin
case
case Sel
Sel is
is
when
when 00
00 =>
=> ZZ <=
<= A
A ;;
when
when 01
01 =>
=> ZZ <=
<= B
B ;;
when
when 10
10 =>
=> ZZ <=
<= C
C ;;
when
when 11
11 =>
=> ZZ <=
<= D
D ;;
end
end case
case ;;
.. .. ..
end
end process
process ;;
Lnh LOOP
105
(sequential statements)
END LOOP [label];
WHIL E / LOOP: vng lp c thc hin n khi iu kin
khng cn tha mn.
[label:] WHILE condition LOOP
(sequential statements)
END LOOP [label];
Phan Hi Phong
3/10/15
Tn hiu v bin
106
liu c nh:
CONSTANT
GENERIC
Phan Hi Phong
3/10/15
Global v Local
107
Global:
Local:
Phan Hi Phong
3/10/15
CONSTANT
108
('0','0','0','1'),
('0','0','1','1'));
CONSTANT c th c khai bo trong PACKAGE, ENTITY,
hoc ARCHITECTURE.
Phan Hi Phong
3/10/15
SIGNAL
109
3/10/15
VARIABLE
110
Ch c truy cp cc b (Local)
Ch c dng trong m tun t (PROCESS,
FUNCTION, PROCEDURE)
Khng chuyn c gi tr ra khi on m (ch
chuyn c thng qua SIGNAL).
Gi tr ca VARIABLE c cp nht ngay lp tc
ti thi im thay i (sn sng cho dng m tip
theo)
C php: VARIABLE name : type [range]
[:= init_value];
Phan Hi Phong
3/10/15
111
q = d;
qbar = not q;
Phan Hi Phong
3/10/15