2010-0010. verilog combinational blocks. wakerly chapter_06

Upload: elliza-ishak

Post on 20-Feb-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 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.