8/3/2019 Test 1 - Nhom6
1/49
B CNG THNG
TRNG I HC KINH T - K THUT CNG NGHIP
KHOA IN - IN T
YYYYY YYYYY
THC TP NNG CAO HDL Ti: Tng quan v HDL, VHDL, Verilog v thit k
b gii m dng verilog
Ging vin hng dn : Ch c Hong
Sinh vin thc hin : Phm Tin iV Xun o
L Tun t
inh Cng t
Phng Tin t
Trn Hu Long
Lp : in T 2AHNNhm : 6
1H Ni 01- 2012
8/3/2019 Test 1 - Nhom6
2/49
MC LC
LI NI U ..................................................................................................... 3
TNG QUAN V HDL, VHDL, VERILOG V THIT K B GII M DNGVERILOG ........................................................................................................... 4
PHN I: TNG QUAN V HDL VERILOG........................................................ 4
Thit k t trn xung (top-down) ........................................................... 22
PHN II: TNG QUAN V VHDL ........................................................ 31
2.1. Gii thiu v ngn ng m t phn cng VHDL. .................................31
2.2. Cu trc mt m hnh h thng m t bng VHDL...............................33
2.2.1. Thc th (entity) ca m hnh. .................................................... 33
2.2.2. Kin trc ca m hnh. ................................................................. 35
PHN III: THIT K B GII M DNG VERILOG ...........37
3.1. V d 1: Thit k mch gii m 3 sang 8........................................ 37
3.2. V d 2 : Thit k mch gii m 4 sang 16....................................... 44
KT LUN ....................................................................................................... 49
2
8/3/2019 Test 1 - Nhom6
3/49
LI NI U
Hin nay cc mch tch hp ngy cng thc hin c nhiu chc nng
hn, do chng ngy cng tr nn phc tp hn. Cc phng php thit k
mch truyn thng nh dng ti thiu ho hm Boolean hay dng s cc
phn t khng cn p ng c cc yu cu t ra khi thit k. Hn na
cc mch thit k ra yu cu phi c th nghim k lng trc khi a
vo ch to hng lot.
3
8/3/2019 Test 1 - Nhom6
4/49
Mt khc cn phi xy dng mt b ti liu hng dn vn hnh h
thng hon chnh d hiu v thng nht. Chng ta lm vic vi mt s
chng trnh phn mm h tr cho vic thc hin m t mch hay hiu c
cch thit k mch. V d: Proteus, HDL,VHDL, VerilogTrong phn nychng ta s dng hai ngn ng phn cng chun cng nghip l VHDL v
Verilog. C hai ngn ng ny u c s dng rng ri v c IEE
chp nhn.
Di y l bi vit : Tng quan v HDL, VHDL, Verilog v thit k
b gii m dng Verilog. Bi vit ny s gip chng ta hiu mt cch tng
quan nht v HDL, VHDL, Verilog v bit cch thit k mt b gii m s
dng Verilog, thng qua phn mm Quatus II.
TNG QUAN V HDL, VHDL, VERILOG V
THIT K B GII M DNG VERILOG
PHN I: TNG QUAN V HDL VERILOG.
1.1. Gii thiu v HDL v verilog:
1.1.1.Lch s pht trin HDL:
4
8/3/2019 Test 1 - Nhom6
5/49
a) ISP (circa 1977) d n nghin cu CMU (Carnegie Mellon
University)
M phng nhng khng tng hp
b) Abel (circa 1983) c trin bi Data-I/O
Mc tiu dng cho cc thit b lun l kh lp trnh
Khng tt cho my trng thi
c) Verilog ( circa 1985) pht trin bi Gateway ( now Cadence)
c t c a ra t 1985
Ban u c pht trin cho m phng, tng t C v Pascal
Hiu qu v d vit
Berkeley pht trin cng c tng hp vo thp nin 80
c IEEE chun ha
Verilog standardized (Verilog-1995 standard)
Verilog-2001 standard
d) VHDL (circa 1987) - DoD sponsored standard
Da trn VHSIC pht trin bi DARPA
Tng t nh Ada (Nhn mnh vo ti s dng v bo tr)
Ng ngha phngm r rng
Rt tng qut nhng di dng
c IEEE chun ha
VHDL standardized (87 and 93)
Cu trc nghim ngt
1.1.2. Gii thiu v HDLs:
a) HDLs (Hardware Description Languages)
5
8/3/2019 Test 1 - Nhom6
6/49
Khng l mt ngn ng lp trnh
Ta C
Thm nhng chc nng m hnh ha, m phng chc nng.
Verilog vs. VHDL
b) Cc bc thit k bng HDL
M t mch t kha
Bin dch kim tra c php (syntax)
M phng kim tra chc nng ca mch
1.1.3. Verilog HDL:
a) Verilog l mt ngn ng ln
C nhiu tnh nng cho tng hp v m phng phn cng
C th biu din nhng c trng mc thp
Transistor
C th hot ng nh ngn ng lptrnh
Cu trc lp
Cu trc iu khin.
b) Cc cng c m phng chp nhn ton b khi nim ca Verilog
c) Cc cng c tng hp cng ch chp nhn mt phn cc khinim ca
Verilog
d) Ch tp trung nghin cu mt phn
S dng mt mc thch hp
Tp trung trn nhng cu trc tng hp c
6
8/3/2019 Test 1 - Nhom6
7/49
Tp trung trnh nhng cu trc gy khi tng hp
1.2. Ngn ng c t phn cng (HDL):
L ngn ng thuc lp ngn ng my tnh ( computer language).
Dng miu t cu trc v hot ng ca mt vi mch.
Dng m phng, kim tra hot ng ca vi mch.
Biu din hnh vi theo thi gian v cu trc khng gian ca mch.
Bao gm nhng k hiu biu din thi trang v s ng thi ( time
and concurrence).
u im:
D qun l nhng mch ln v phc tp.
Uyn chuyn v c lp vi cng ngh.
Cho php ti s dng nhng thit k c sn.
Mch c th dc tng hp t ng t c t.
VerilogTM & VHDL.
c s dng rng ri trong cng nghip.
Theo chun IEEE (Institute of Electrical and Electronics
Engineerings).
c h tr bi cc cng c tng hp ASIC
(appilcationspecific integrated circuits) v FPGA (field-
programmable gate arrays).
1.3. Phng php lun thit k HDL:
7
8/3/2019 Test 1 - Nhom6
8/49
Kim tra: thit k ng yu cu cha? nh x c t thnh cc hin
thc
Chc nng: Hnh vi I/O
Mc thanh ghi (Kin trc)
Mc l lun (Cng)
Mc transistor (in t)
Timing: Waveform Behavior
Di y l lu thit k ASICs bng HDL:
8
8/3/2019 Test 1 - Nhom6
9/49
1.3.1. Design spelification ( thit k nim):
c t chi tit:
Chc nng.
Thi gian.
Nng lng tiu hao.
9
8/3/2019 Test 1 - Nhom6
10/49
Biu din:
th trng thi ( state transation graph).
My trng thi (algorithmic state machine).
Ngn ng cp cao: system C , superLog
1.3.2. Thit k phn hoch ( design partition):
Mch ln c phn chia thnh cc mch nh hn.
Mi mch nh ny c c t bng HDL.
Mi mch nh c th c tng hp trong thi gian chp nhn c.
Phng php thit k t trn xung ( top down design/ hierarchical
design).
10
8/3/2019 Test 1 - Nhom6
11/49
1.3.3. Design Entry:
c t thit k theo mt dng chun
Ngy nay dng HDL.
M hnh hnh vi (behavioral modeling).
c s dng nhiu trong cng nghip.
Ch ra mch s thc hin chc nng g.
Khng cn ch ra xy dng phn cng nh th no.
Cc bc thit k dng m hnh hnh vi:
To hnh vi nguyn mu cho thit k.
Kim tra chc nng: S dng nhng cng c tng hp ti
u v nh x thit k vo mt cng ngh.
1.3.4. M phng v kim tra chc nng ( Simulation and function
verification).
Quay v bc 3 nu pht hin li.
Ba bc tin hnh kim tra.
Lp k hoch kim tra: chc nng no cn kim tra v kim ra
th no?
Thit k mu kim tra ( testbench).
Thc hin kim tra.
11
8/3/2019 Test 1 - Nhom6
12/49
1.3.5. Thit k tch hp v kim tra ( design integration and verification)
Cc mch nh c tch hp li v kim tra
Chc nng:
Cn c cc testbench ring kim tra chc nng ng nhp xut
hot ng ca bus
y l bc quyt nh v phi c thc hin hon ho m
bo tnh ng n ca qu trnh tng hp.
1.3.6. Presynthesis Sign off:
Bo m tt c cc chc nng c th hin trong testbench.
Bo m nhng khc bit gia cc chc nng biu din bng m hnh
hnh vi v thit k c gii quyt hon ton.
Sign off c thc hin sau khi tt c cc li chc nng gii
quyt xong.
1.3.7. Tng hp mc cng v nh x cng ngh (Gate level synthesis
and technology mapping)
S dng cng c tng hp to ra biu din lun l ti u v thc
hin theo mt cng ngh hin c.
12
8/3/2019 Test 1 - Nhom6
13/49
Cng c ti u loi b nhng d tha v gim din tch mch logic
cn dng thc hin.
Kt qu s c nh x vo mt FPGA:
Netlist.
C s d liu.
1.3.8. Thit k sau tng hp ( Post synthesis design validation):
B so snh c thc hin bng phn mm hoc bng ha.
Tm hiu v gii quyt s khc bit mt cch cn thn.
13
8/3/2019 Test 1 - Nhom6
14/49
Verilog behavioral description: Phn m t hnh vi ca verilog.
Logic Synthesis: logic tng hp.
Gate level description: Phn m t mc cng.
Stimulus generation: my kch thch.
Testbench for post synthesis design validation: Mu kim tra cho
thit k sau tng hp.
Response Comparation: p ng li s so snh.
Check signal: Kim tra tn hiu.
1.3.9. Kim tra thi gian sau tng hp ( Post synthesis timing
verification):
Thi gian trn mch phi ph hp vi thit k trn nhng ng then
cht (critical path).
Bc ny c lp li sau bc loi b in dung khng mong mun
( parasitic extraction)
Thc hin tng hp li nu thi gian khng ph hp vi thit k.
Thay i kch thc transitor.
Thay i kin trc mch.
Thay i cng ngh.
14
8/3/2019 Test 1 - Nhom6
15/49
1.3.10. Kim tra sn phm v m phng li ( test generation and
fault simulation).
Sau khi ch to mch tch hp phi c kim tra tnh ng n ( li
sn xut khng phi li thit k).
C th dng li nhng mu kim tra m hnh hnh vi kim tra sn
phm sau khi ch to.
M phng li l quyt nh mt tp hp cc mu dng kim tra c
cc li ny hay khng -> s dng phn mm to thm cc mu th.
1.3.11. Sp t v ni dy ( placement ang routing).
Sp xp cc linh kin (cell) ln mt vng gii hn v kt ni cc
ng tn hiu gia chng.
Chn tn hiu clock vo mch sao cho khng xy ra lch xung clock
( clock skew).
15
8/3/2019 Test 1 - Nhom6
16/49
1.3.12. Kim tra vt l v in ( Physical and electrical design rule
checks).
Layout vt l ca thit k phi c kim tra cc rng buc.
dy vt liu ( material width)
Chng lp ( overlap)
Tch bit ( separation)
+ Kim tra in:
Fan out
Cc tn hiu khng trn ln vi nhau (compromise).
Nhiu.
Tiu hao nng lng.
1.3.13. Loi b k sinh ( Parasitic extraction)
in dung k sinh ( Parasitic capacitance)
16
8/3/2019 Test 1 - Nhom6
17/49
Khng c trong thit k
nh hng xu n hot ng ca mch
Lm gim bng thng
S dng phn mm to ra cc kim tra chnh xc v cc c tnh
in v thi gian ( electrical characteristics and timing performance).
1.3.14. Design sign off:
Cc rng buc c tha mn.
c t bao gm hnh dng hnh hc cho qu trnh sn xut.
Cc ti nguyn c m rng chip sn xut ra tha mn thit
k v hiu sut v chc nng.
1.4. M hnh cu trc v m hnh hnh vi trong HDLs:a) Cu trc (Structural)ch tra cu trc phn cng tht s ca mch
Mc tru tng thp
Cc cng c bn ( v d and, or, not)
Cu trc phn cp thng qua cc module
Tng t lp trnh hp ng
b) Hnh vi (Behavioral) ch ra hot ng ca mch
trn cc bits
Mc tru tng cao hn
Biu din bng cc biu thc (v d out = (a & b) | c)
17
8/3/2019 Test 1 - Nhom6
18/49
Khng phi tt c cc c t hnh u tng hp c
Khng s dng: + - * / % > >= < >
8/3/2019 Test 1 - Nhom6
19/49
Mt m hnhhnh vi l
Cc biu thc Boolean n gin
M hnh chuyn i mc thanh ghi ( Register Transfer Level RTL)
Mt gii thut
1.6.2. M hnh cu trc mch t hp
Thit k cu trc tng t nh to ra mt s (schematic)
Schematic
Hnh biu din cng logic,
Ng vo ra,
Cc ng kt ni gia cc cng.
M hnh cu trc HDL
Danh sch cc cng cbn v kt ni gia chng
Cc pht biu ch ra ng vo-ra
19
8/3/2019 Test 1 - Nhom6
20/49
1.6.3. Verilog primitives
Primitives l cc i tng c bn c th c s dng trong thit k
26 i tng chc nng c nh ngha trc
1.6.4. M hnh cu trc trong Verilog
20
8/3/2019 Test 1 - Nhom6
21/49
Module
V d:
1.6.5. Module ports
21
8/3/2019 Test 1 - Nhom6
22/49
a) Giao tip vi mi trng bn ngoi
b) Kiu ca port quyt nh chiu truyn liu
Mt chiu (Unidirectional)
input
output
Hai chiu (Bidirectional)
inout
c) Kiu ca module port phi c khai bo tng minh v khng cn
theo th t xut hin trong port list
1.6.6. Quy tt trong Verilog Phn bit ch hoa thng (Case sensitive)
Identifier: a-z, A-Z, 0-9, _ v $
Tn bin khng c bt u bng $ hay k s v c th ti a l
1024 k t
Mt pht biu c kt thc bng ;
Ch thch
// mt dng ch thch
/**/ ch thch nhiu dng
Cc identifiers c phm vi nht nh
C th vit cc pht biu trn mt dng hay nhiu dng
Thit k t trn xung (top-down)
a) H thng phc tp c phn chia thnh nhng n v chc nng nh
hn
D thit k
D kim tra
22
8/3/2019 Test 1 - Nhom6
23/49
b) Cc module lng nhau trong Verilog h tr thit k t trn xung
c) Module tham kho n module khc c gi l module cha,
module c module khc tham kho n gi l module con
d) su ca cc module lng nhau khng gii hne) Mi module con phi c tn duy nht trong phm vi module cha (tr
cc primitives)
1.6.7. Binary full adder
1.6.8. Thit k phn cp v t chc m ngun
Top-level module l module cp cao nhht
23
8/3/2019 Test 1 - Nhom6
24/49
Module mc thp nht
Cha cc primitives
Cc module khng phn chia nh hn
Tt c cc module c t trong mt hay nhiu tp tin khc nhau
Cng c m phng tch hp cc module t cc tp tin
1.6.9. Mch cng 16-bit ripple carry
24
8/3/2019 Test 1 - Nhom6
25/49
1.6.10. Cy phn cp mch cng 16-bit ripple carry.
1.6.11. Hin thc mch cng 16-bit ripple carry.
25
8/3/2019 Test 1 - Nhom6
26/49
1.6.12. Vectors trong Verilog.
Mt vector c biu din bng ngoc vung cha dy lin tip cc
bit
sum[3:0] vector sum kch thc 4 bit
Bit tri nht l MSB
Bit phi nht l LSB
C th truy xut tng bit hay tng dy bit trong vector
sum[1] bit th 2 t phi sang ca sum
sum[2:1] bit th 2 v 3 t phi sang ca sum
sum[4] gi tr x (khng xc nh)
C th gn, so snh 2 vector vi nhau
1.7. M phng lun l, kim chng thit k v phng
php lun kim tra.
1.7.1. Cc gi tr lun l trong Verilog.
26
8/3/2019 Test 1 - Nhom6
27/49
1.7.2.Phng php lun kim tra.
a) Kim tra mch thc hin ng chc nng
Kim tra ngu nhin phc tp v khng chnh xc Cn lp k hoch kim tra t m
Kim tra mch ln
b) Kim tra tt c cc trng hp
Mch cng 16 bit cn kim tra 223 trng hp
Kim tra phn cp
half_adder
full_adder
Add_rca_4 cn kim tra 29 trng hp
Chn mt s trng hp kim tra kt ni ca cc
27
8/3/2019 Test 1 - Nhom6
28/49
Add_rca_4 trong Add_rca_16
Kim tra theo chiu ngc so vi cy phn cp thit k
1.8. Thi gian tr truyn lan.1.8.1. Thi gian tr truyn lan.
Ng vo thay i ng ra khng thay i ngay lp tc
Cc phn t c bn ca verilog c thi gian tr l 0
Cc vi mch thc t c sn xut da trn cc th vin chun c
nh ngha trc
Ngi thit k ch quan tm n tnh ng n ca mch
S dng cc cng c tng hp hin thc cc thit k tha mn cc
rng buc thi gian
timescale /
Ch th bin dch
Ch ra n v thi gian v chnh xc thi gian tr
Phi c khai bo trc khi cc module
V d: Timecase
28
8/3/2019 Test 1 - Nhom6
29/49
1.8.2. Cc loi tr lan truyn.
Tr qun tnh (inertial delay)
Tr truyn (transport delay)
Gy ra do cc dy ni
0.033ns/1cm
29
8/3/2019 Test 1 - Nhom6
30/49
C th b qua
wire #2 long_wire
1.9. M hnh bng s tht cho mch lun l t hp vtun t vi verilog.
1.9.1.Bng s tht trong verilog.
Table
Ng ra phi c kiu v hng (scalar)
Dng k hiu ? thay cho 0, 1, x
Th t cc ct trong tng ng vi th t trong khai bo
input ca module
Mch t hp
:
Mch tun t
::
Ng ra phi c khai bo kiu thanh ghi
Dng k hiu - biu din ng ra khng thay i
30
8/3/2019 Test 1 - Nhom6
31/49
PHN II: TNG QUAN V VHDL
2.1. Gii thiu v ngn ng m t phn cng VHDL.
VHDL l ngn ng m t phn cng cho cc mch tch hp tc
cao, l mt loi ngn ng m t phn cng c pht trin cho
chng trnh VHSIC ( Very High Speed Itergrated Circuit) ca b
quc phng M. Mc tiu ca vic pht trin VHDL l c c mt
ngn ng m phng phn cng tiu chun v thng nht cho php thnghim cc h thng s nhanh hn cng nh cho php d dng a
cc h thng vo ng dng trong thc t.
VHDL c pht trin nh mt ngn ng c lp khng gn vi bt
k mt phng php thit k, mt b m t hay cng ngh phn
cng no. Ngi thit k c th t do la chn cng ngh, phng
php thit k trong khi ch s dng mt ngn ng duy nht. V khi
em so snh vi cc ngn ng m phng phn cng khc k ra
trn ta thy VHDL c mt s u im hn hn cc ngn ng khc:
Th nht l tnh cng cng: VHDL c pht trin di s bo trca chnh ph M v hin nay l mt tiu chun ca IEEE. VHDL
c s h tr ca nhiu nh sn xut thit b cng nh nhiu nh
cung cp cng c thit k m phng h thng.
31
8/3/2019 Test 1 - Nhom6
32/49
Th hai l kh nng h tr nhiu cng ngh v phng php thit k.
VHDL cho php thit k bng nhiu phng php v d phng php
thit k t trn xung, hay t di ln da vo cc th vin sn c.
VHDL cng h tr cho nhiu loi cng c xy dng mch nh s
dng cng ngh ng b hay khng ng b, s dng ma trn
lp trnh c hay s dng mng ngu nhin.
Th ba l tnh c lp vi cng ngh: VHDL hon ton c lp vicng ngh ch to phn cng. Mt m t h thng dng VHDL thit
k mc cng c th c chuyn thnh cc bn tng hp mch
khc nhau tu thuc cng ngh ch to phn cng mi ra i n c
th c p dng ngay cho cc h thng thit k.
Th tl kh nng m t m rng: VHDL cho php m t hot ng
ca phn cng t mc h thng s cho n mc cng. VHDL c khnng m t hot ng ca h thng trn nhiu mc nhng ch s dng
mt c php cht ch thng nht cho mi mc. Nh th ta c th m
phng mt bn thit k bao gm c cc h con c m t chi tit.
Th nm l kh nng trao i kt qu: V VHDL l mt tiu chun
c chp nhn, nn mt m hnh VHDL c th chy trn mi b m
t p ng c tiu chun VHDL. Cc kt qu m t h thng c th
c trao i gia cc nh thit k s dng cng c thit k khc
nhau nhng cng tun theo tiu chun VHDL. Cng nh mt nhm
32
8/3/2019 Test 1 - Nhom6
33/49
thit k c th trao i m t mc cao ca cc h thng con trong mt
h thng ln (trong cc h con c thit k c lp).
Th su l kh nng h tr thit k mc ln v kh nng s dng li
cc thit k: VHDL c pht trin nh mt ngn ng lp trnh bc
cao, v vy n c th c s dng thit k mt h thng ln vi
s tham gia ca mt nhm nhiu ngi. Bn trong ngn ng VHDL
c nhiu tnh nng h tr vic qun l, th nghim v chia s thit
k. V n cng cho php dng li cc phn c sn.
2.2. Cu trc mt m hnh h thng m t bng VHDL.
Thng thng mt m hnh VHDL bao gm ba phn: thc th,
kin trc v cc cu hnh. i khi ta x dng cc gi( packages)
v m hnh kim tra hot ng ca h thng( testbench).
2.2.1. Thc th (entity) ca m hnh.
Phn khai bo thc th ch r TN ca thc th v lit k cc li vov ra v c dng chung nh sau
Entity tn_thc_th is
Generic (khai bo generic);
Port(khai bo cc tn hiu vo ra);
Endtn_thc_th;
Mt thc th lun bt u vi t kha entity, theo sau l tn ca thc
th v t kha is. Ri n cc khai bo cng vi t kha port. Mt
thc th lun kt thc vi t kha end v tn ca thc th.
33
8/3/2019 Test 1 - Nhom6
34/49
Tn thc th l tn ca thc th do ngi dng t.
Cc tn hiu vo ra: tn ca cc tn hiu do ngi dung t, ngn
cch vi nhau bi du phy, ch ra cc tn hiu ni vi bn ngoi.
Cc ch ca tn hiu khai bo trong port: ch ra chiu ca tn
hiu, c cc mode sau:
in: ch ra rng tn hiu l mt tn hiu vo.
out: ch ra rng tn hiu l mt tn hiu ra khi thc th v ch cc thc
th khc dng n tn hiu ny mi c th c gi tr ca n.
buffer: tn hiu l tn hiu ra v gi tr ca n c th c c c
bn trong thc th.
inout: tn hiu c th l tn hiu vo hoc tn hiu ra.
V d 1: ENTITY Adder IS
-- declares the generic identifier n having a default value 4
GENERIC (n: INTEGER := 4);
PORT (
-- the vector size is 3 downto 0 since n is 4
A, B: IN STD_LOGIC_VECTOR(n-1 DOWNTO 0);
Cout: OUT STD_LOGIC;
SUM: OUT STD_LOGIC_VECTOR(n-1 DOWNTO 0));
34
8/3/2019 Test 1 - Nhom6
35/49
S: OUT STD_LOGIC);
END Siren;
2.2.2. Kin trc ca m hnh. Cu trc ca n nh sau:
ARCHITECTURE tn_architecture OF tn_entity IS
[cc phn khai bo:signal, component]
BEGIN
[code]
END tn_architecture;
Trong kin trc m hnh chng ta c th khai bo tt c mi th lin
quan ti chng trnh, trong c cc process, cc chng trnh con
vi li gi hm component, v khai bo cc signal v cc cu lnh
port map kt ni cc thnh phn con c trong kin trc. Nichung cng nh ngn ng C th y kin trc(architecture) l thn
ca chng trnh ca ta.
V d 2 :
-- using a FOR-GENERATE statement to generate four instances of the fulladder
-- component for a 4-bit adder
LIBRARY IEEE;
35
8/3/2019 Test 1 - Nhom6
36/49
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY Adder4 IS PORT (
Cin: IN STD_LOGIC;
A, B: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
Cout: OUT STD_LOGIC;
SUM: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END Adder4;
ARCHITECTURE Structural OF Adder4 IS
COMPONENT FA PORT (
ci, xi, yi: IN STD_LOGIC;
co, si: OUT STD_LOGIC);
END COMPONENT;
SIGNAL Carryv: STD_LOGIC_VECTOR(4 DOWNTO 0);
BEGIN
Carryv(0)
8/3/2019 Test 1 - Nhom6
37/49
END Structural;
PHN III: THIT K B GII M DNG
VERILOG
Mch gii m l mch c chc nng ngc li vi mch m ho tc lnu c 1 m s p vo ng vo th tng ng s c 1 ng ra c tc
ng, m ng vo thng t hn m ng ra. Tt nhin ng vo cho
php phi c bt ln cho chc nng gii m.
Mch gii m c ng dng chnh trong ghp knh d liu, hin th
led 7 on, gii m a ch b nh, thit k b cng.
3.1. V d 1: Thit k mch gii m 3 sang 8.
Mch gii m 3 ng sang 8 ng bao gm 3 ng vo to nn 8 t hp
trng thi, ng vi mi t hp trng thi c p vo s c 1 ng ra c tc
ng.
37
8/3/2019 Test 1 - Nhom6
38/49
T bng s tht ta c th v c s mch logic ca mch gii m trn
Cu trc mch gii m 3 sang 8
Rt gn hm logic s dng mch gii m :
38
8/3/2019 Test 1 - Nhom6
39/49
Nhiu hm logic c ng ra l t hp ca nhiu ng vo c th c
xy dng t mch gii m kt hp vi mt s cng logic ng ra(mch gii
m chnh l 1 mch t hp nhiu cng logic c MSI). Mch gii m c bit
hiu qu hn so vi vic s dng cc cng logic ri trong trng hp cnhiu t hp ng ra.
V d sau thc hin mch cng 3 s X, Y, Z cho tng l S v s nh l C
thc hin bng mch gii m :
Gi s mch cng thc hin chc nng logic nh bng sau :
T bng cho php ta xc nh c cc t hp logic ng vo S ri C mc cao.
S(x, y, z) = (1,2,4,7)
C(x, y, z) = (3,5,6,7)
x y z s c
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
39
8/3/2019 Test 1 - Nhom6
40/49
1 0 1 0 1
Nh vy s cn 1 cng OR ni chung cc t hp logic th 1, 2, 4, 7
a ra ng S.Tng t ng ra C cng cn 1 cng OR vi ng vo l t hp
logic th 2, 5, 6, 7.
Vy mch gii m thc hin bng logic trn s c mc nh sau :
Phn code mch gii m 3 sang 8:
module decoder_38 (data , code ,enable);
40
8/3/2019 Test 1 - Nhom6
41/49
output [7:0] data;
input [2:0] code;
input enable ;
reg [7:0] data;
always @(enable & data)
begin data=0;
if (enable) begin
case(code)
0: data = 8'b00000001;
1: data = 8'b00000010;
2: data = 8'b00000100;
3: data = 8'b00001000;
4: data = 8'b00010000;
5: data = 8'b00100000;
6: data = 8'b01000000;
7: data = 8'b10000000;
endcase
41
8/3/2019 Test 1 - Nhom6
42/49
end
end
endmodule
Phn mch thu c:
42
8/3/2019 Test 1 - Nhom6
43/49
data~112
data~111
data~110
data~109
data~108
data~107
data~106
data~105
data[0..7]
enable
code[0..2]
43
8/3/2019 Test 1 - Nhom6
44/49
Phn mch m phng:
3.2. V d 2 : Thit k mch gii m 4 sang 16.
Phn code mch gii m 4 sang 16:
module decoder (
binary_in , // 4 bit binary input
decoder_out , // 16-bit out
44
8/3/2019 Test 1 - Nhom6
45/49
enable // Enable for the decoder
);
input [3:0] binary_in ;
input enable ;
output [15:0] decoder_out ;
reg [15:0] decoder_out ;
always @ (enable or binary_in)
begin
decoder_out = 0;
if (enable) begin
case (binary_in)
4'h0 : decoder_out = 16'h0001;
4'h1 : decoder_out = 16'h0002;
4'h2 : decoder_out = 16'h0004;
4'h3 : decoder_out = 16'h0008;
4'h4 : decoder_out = 16'h0010;
4'h5 : decoder_out = 16'h0020;
45
8/3/2019 Test 1 - Nhom6
46/49
4'h6 : decoder_out = 16'h0040;
4'h7 : decoder_out = 16'h0080;
4'h8 : decoder_out = 16'h0100;
4'h9 : decoder_out = 16'h0200;
4'hA : decoder_out = 16'h0400;
4'hB : decoder_out = 16'h0800;
4'hC : decoder_out = 16'h1000;
4'hD : decoder_out = 16'h2000;
4'hE : decoder_out = 16'h4000;
4'hF : decoder_out = 16'h8000;
endcase
end
end
endmodule
Phn mch thu c:
46
8/3/2019 Test 1 - Nhom6
47/49
decoder_out~191Decoder0~47
decoder_out~190
Decoder0~46
decoder_out~189
Decoder0~45
decoder_out~188
Decoder0~44
decoder_out~187
Decoder0~43
decoder_out~186
Decoder0~42
decoder_out~185
Decoder0~41
decoder_out~184
Decoder0~40
decoder_out~183
Decoder0~39
decoder_out~182
Decoder0~38
decoder_out~181
Decoder0~37
decoder_out~180
Decoder0~36
decoder_out~179
Decoder0~35
decoder_out~178
Decoder0~34
decoder_out~177
Decoder0~33
decoder_out~176
Decoder0~32
enable
binary_in[0..3]
decoder_out[0..15]
Phn mch m phng:
47
8/3/2019 Test 1 - Nhom6
48/49
48
8/3/2019 Test 1 - Nhom6
49/49
KT LUN
Di s hng dn ca thy v qua phn tm hiu bi di y chng em
c nhng hiu bit thm v Tng quan v HDL, VHDL, Verilog v thit
k b gii m dng verilog.
Bi lm ca chng em c th cn nhiu thiu st. Rt mong nhn c ch
bo ca thy cng nh nhng ng gp t pha cc bn trong lp.
Mi kin ng gp c th trao i trc tip trn lp hoc xin gi v a
ch: [email protected] .
Chn thnh cm n thy cng cc bn!
mailto:[email protected]:[email protected]