7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
1/73
CombinationalCombinational
Logic andLogic and
VerilogVerilog
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
2/73
Programmable ArrayProgrammable ArrayLogicLogic
PALPAL
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
3/73
Example of PAL. GAL16V8CExample of PAL. GAL16V8C
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
4/73
Figure 6!6. PAL16L8
PAL"PAL" 1. SOP2. Multi-level
3. Flip-flops
4. 10 Inputs
5. 8 Inputs/output
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
5/73
Figure 6!8. General CPL# arc$itecture
Complex PL#
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
6/73
%&' PLA in C()* logic%&' PLA in C()* logic
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
7/73
A+# plane of EEPL# u"ing floatinggate ()*
tran"i"tor"
EEPL#"EEPL#"Floating gate
on-floating gate
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
8/73
#ecoder"#ecoder"
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
9/73
General *tructure of aGeneral *tructure of a
#ecoder circuit#ecoder circuit
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
10/73
Example 1,Example 1,-rut$ table for a !-rut$ table for a !
to% binary decoder.to% binary decoder.
Example of a decoder circuitExample of a decoder circuit
enableenable
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
11/73
!to% decoder in"ide!to% decoder in"ide
enableenable
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
12/73
Verilog for !Verilog for !
to% decoderto% decoder*tructural type
of de"cription in
Verilog
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
13/73
Example !,Example !,Po"ition encoding for a 'Po"ition encoding for a '
bit mec$anical encoding di"bit mec$anical encoding di"
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
14/73
Example ! continued, /"ing a 'to8
decoder to decode a Gray code.
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
15/73
Example ',Example ',
0%x1'8 'to80%x1'8 'to8
decoderdecoder
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
16/73
Example ',Example ',0%x1'8 'to80%x1'8 'to8
decoderdecoder
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
17/73
Example ' cont, 0%1'8 'to8
decoder
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
18/73
VerilogVerilog
code forcode for
'to8'to8decoderdecoder
12..0
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
19/73
Verilog for 'to8 decoderVerilog for 'to8 decoder
A3!4A3!4A314A314
A354A354
7L3547L354
7L3147L314
7L3!47L3!4
7L3'47L3'4
7L3%47L3%4
7L3247L324
7L3047L304
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
20/73
0%1'80%1'8
#ecoder,#ecoder,Actie leelActie leel
$andling$andling
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
21/73
0%x1'8 lie decoder 9it$
Actie leel $andling
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
22/73
Actie $ig$ 'to8 decoder
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
23/73
:e$aioral Verilog for 'to8 decoder:e$aioral Verilog for 'to8 decoder
E l ' t 0% 1'8 ' t 8 d d
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
24/73
Example ' cont,0%x1'8 'to8 decoder
!efault signal
na"es
E l ' t * b l f 0% 1'8
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
25/73
Example ' cont,*ymbol" for 0%x1'8
;ncorrect;ncorrect
becau"ebecau"e
of doubleof doublenegation"negation"
E l ' tE
l ' t 2 t '! d d f 0%1'8 $i2 t '! d d f 0%1'8 $i
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
26/73
Example ' cont,Example ' cont,2to'! decoder from 0%1'8 c$ip"2to'! decoder from 0%1'8 c$ip"
#lo$al ena$le
goes to inputs
#1 an% #2&
'(ip sele)t
goes to input
#2*
E l ' tE
l ' t % t 16 d d i% t 16 d d i
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
27/73
Example ' cont,Example ' cont, %to16 decoder u"ing%to16 decoder u"ing
0%1'80%1'8
3
E l ' tE
l ' t 0% 1'8 d d i GAL0% 1'8 d d i GAL
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
28/73
Example ' cont,Example ' cont,0%x1'8 decoder u"ing GAL0%x1'8 decoder u"ing GAL
0%x1'8 decoder can be0%x1'8 decoder can be
built in "ingle GAL 16V8built in "ingle GAL 16V8
c$ipc$ip
Fi 6 %1 0% 1'8 li d d
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
29/73
Figure 6%1. 0%x1'8lie decoder
E lE
l C i d d dC t i d d d
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
30/73
ExampleExample, Cu"tomi
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
31/73
Cu"tomi
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
32/73
*een *egment*een *egment
#i"play and#i"play and
#ecoder#ecoder
* *
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
33/73
*een *egment #i"play
* * # d
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
34/73
*een *egment #ecoder
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
35/73
Encoder"Encoder"+e al,ea% use%+e al,ea% use%en)o%e,s to %esignen)o%e,s to %esign
)ont,ol logi) fo, %ata)ont,ol logi) fo, %ata
pat( $lo)spat( $lo)s
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
36/73
Encoder"Encoder"
!!nn re=ue"t"re=ue"t"
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
37/73
PriorityPriorityEncoder"Encoder"
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
38/73
Encoder"Encoder"
AnyAny"ub"et if"ub"et if
!!nn
re=ue"t"re=ue"t"
+umber n of+umber n of
prioriti
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
39/73
Encoder"Encoder"
8 i t8 i t
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
40/73
8input8input
PriorityPriorityEncoderEncoder
ena$le
12 i t P i it E d i PL#12 input Priority Encoder in PL#
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
41/73
12input Priority Encoder in PL#12input Priority Encoder in PL#
outputsoutputsinputsinputs
Priority Encoder $andle '! re=ue"t"
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
42/73
Priority Encoder > $andle '! re=ue"t"
8 i t P i it E d
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
43/73
8input Priority Encoder
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
44/73
-$ree "tate-$ree "tate
:uffer":uffer"
V i t$ t t b ff
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
45/73
Variou" t$ree"tate buffer"
/"e of t$ree "tate buffer"/"e of t$ree "tate buffer"
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
46/73
Eig$t "ource" "$aring a t$ree"tate party line
/"e of t$ree"tate buffer"/"e of t$ree"tate buffer"
-iming diagram for t$e t$ree"tate party line
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
47/73
-iming diagram for t$e t$ree "tate party line
0%x2%10%x2%1 )ctal t$ree "tate buffer
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
48/73
0%x2%10%x2%1 )ctal t$ree"tate buffer
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
49/73
-$ree*tate buffer"-$ree*tate buffer"
ininmicroproce""or"microproce""or"
0% 2%10% 2%1
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
50/73
0%x2%10%x2%1 a" a microproce""ora" a microproce""orinput port.input port.
Verilog module for a 0%x2%50%x2%5lie 8bit t$ree"tate drier
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
51/73
g
0%x!%2 octal t$ree"tate tran"ceier0%x!%2 octal t$ree"tate tran"ceier
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
52/73
0%x!%2 octal t$ree"tate tran"ceier0%x!%2 octal t$ree"tate tran"ceier
Verilog module for a 0%x!%20%x!%2lie 8bit tran"ceier
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
53/73
g
:idirectional bu"e" and tran"ceier operation
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
54/73
:idirectional bu"e" and tran"ceier operation
:u" "election code" for a four:u" "election code" for a four
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
55/73
:u" "election code" for a four:u" "election code" for a four
9ay bu" tran"ceier9ay bu" tran"ceier
PL# input" and output" for a
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
56/73
PL# input" and output" for a
four9ay? !bit bu" tran"ceier
Verilog module for a four9ay
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
57/73
Verilog module for a four9ay?
!bit bu" tran"ceier
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
58/73
(ultiplexer"(ultiplexer"
( ltiple er "tr ct re(ultiplexer "tructure
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
59/73
(ultiplexer "tructure(ultiplexer "tructure
0%x1210%x121 8input 1bit mux8input 1bit mux
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
60/73
0%x1210%x121 8input? 1bit mux8 input? 1 bit mux
0%x121 8input? 1bit mux
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
61/73
0%x121 8 input? 1 bit mux
Combining 0%x121"
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
62/73
g
to mae a '!to1
multiplexer
!e)o%ing an%!e)o%ing an%
ena$lingena$ling
0%x1200%x120 ! input % bit mux! input % bit mux
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
63/73
0%x1200%x120!input %bit mux!input %bit mux
GAL16V8 u"ed a" a
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
64/73
GAL16V8 u"ed a" a
0%x1200%x120 multiplexer
2 inputs ea)( 4
$its
:uffer" to $andle:uffer" to $andle
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
65/73
:uffer" to $andle:uffer" to $andle
large fanoutlarge fanout
A mux driing a bu" and a demux receiing
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
66/73
t$e bu"
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
67/73
#ecoder" a"#ecoder" a"
demultiplexer"demultiplexer"
'to8 binary decoder a" a'to8 binary decoder a" a
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
68/73
'to8 binary decoder a" a' to 8 binary decoder a" a
demultiplexerdemultiplexer
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
69/73
GAL" a"GAL" a"
multiplexer"multiplexer"
Function table for a
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
70/73
Function table for a
*PEC;AL;@E#*PEC;AL;@E# %input? 18bit
mux.
:e$aioral Verilog for a
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
71/73
:e$aioral Verilog for a
"peciali
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
72/73
g p
:e$aioral:e$aioral Verilog for a %Verilog for a %
7/24/2019 2010-0010. Verilog Combinational Blocks. Wakerly Chapter_06
73/73
:e$aioral:e$aioralVerilog for a %Verilog for a %
input? 8bit mux.input? 8bit mux.
Top Related