Semana 7 - Lecciones

64
7 1 IMPLEMENTACIÓN SECUENCIAL DE ALGORITMOS 7 .1 ALGORITMOS Elena Valderrama Universidad Autónoma de Barcelona

description

electronica digital

Transcript of Semana 7 - Lecciones

  • 7 1 IMPLEMENTACIN SECUENCIAL DE ALGORITMOS

    7 .1ALGORITMOSElena ValderramaUniversidad Autnoma de Barcelona

  • 7 .1Implementacinsecuencialdealgoritmos

    Algunossistemassonsecuencialespornaturaleza,comoporejemplolossistemasqueincluyenunareferenciaimplcitaoexplcitaaintervalosdetiemposucesivos.

    Algunosejemplos quehemosvisto Generadoresodetectoresdesecuencias, Control de secuencias de eventos Controldesecuenciasdeeventos.

    Inclusoalgunosalgoritmosquenohacenningunareferenciaainstantesdetiempotambinpuedenimplementarseconcircuitossecuenciales.

    2

  • 1.Unprimerejemplo:Clculodelarazcuadrada7 .1

    Ejemplo:Mtodoingenuoparacalcularlarazcuadradadeunnmeronaturalx

    Algoritmo Raz cuadradaElloop calculatodaslasparejas[r,s =(r+1)2],parar =0,1,2,etc.

    [(r+2)2 =((r+1)+1)2 =(r+1)2 +2(r+1)+1=s +2(r+1)+1]

    Algoritmo Razcuadradar

  • 1.Unprimerejemplo:Clculodelarazcuadrada7 .1

    Controldelloop:s x

    Algoritmo Raz cuadradaEjemplo:x =47

    Algoritmo Razcuadradar

  • 1.Unprimerejemplo:Clculodelarazcuadrada7 .1

    Comentario:noesunbuenalgoritmo(propsitodidctico); Ndepasos=lapropiarazcuadrada;parax 2n:elnmerodepasos

    i l l l d d d l d d 2n/2necesariosparacalcularlarazcuadradaesdelordende2n/2.

    Algoritmo Razcuadradar

  • 1.Unprimerejemplo:Clculodelarazcuadrada7 .1

    2idea:DebemosmodificarelalgoritmoanteriorAlgoritmoequivalente:r

  • 1.Unprimerejemplo:Clculodelarazcuadrada7 .1

    Nmerodepasos:

    Six

  • 1.Unprimerejemplo:Clculodelarazcuadrada7 .1

    IMPLEMENTACIN SECUENCIAL

    r

  • 1.Unprimerejemplo:Clculodelarazcuadrada7 .1

    Sincronizacin:Cadaoperacinogrupodeoperacionesse

    Memoria:Guardamosenlamemoriar yas.r

  • 1.Unprimerejemplo:Clculodelarazcuadrada7 .1

    r

  • 1.Unprimerejemplo:Clculodelarazcuadrada7 .1

    Six esunnmerodenbits 2.n bitsdememoria(n parar yn paras) 2n/2 estadosreales n entradas x 2n combinaciones

    Circuitocombinacional Memoria

    n entradasx 2 combinaciones hasta2n .2n/2 arcos n+1 salidas(root yend)

    11

  • 2.Implementacinalgortmicacombinacionalvs.i l

    7 .1

    Circuitos combinacionales

    l l l (b d f d ) f

    secuencial

    Conceptualmentecualquieralgoritmo(biendefinido)quenotengareferenciastemporalespuedeimplementarsemedianteuncircuitocombinacionalconstruyendolatabladeverdadycalculandolasfuncionesbooleanascorrespondientes.

    PERO .Muchasveceslatabladeverdadpuederesultarenorme

    Hemosvistootraalternativa:Implementarelcircuitodirectamentedesdeelalgoritmo(verleccin3.4:Implementacindeestructurasdeprogramacin)

    PERO .Inclusoenestecasolaimplementacinpuederequerirmuchosrecursos(vaselaprimeraimplementacinenestamismaleccin)

    12

  • 2.Implementacinalgortmicacombinacionalvs.i l

    7 .1secuencial

    Circuitos secuenciales

    b l l f b l ( b l) d Tambincalculanfuncionesbooleanas(partecombinacional),peroadems Almacenandatos(memoria)y Asignandiferentesintervalosdetiempoadiferentesoperaciones,(sincronizacin)g p p

    Comoresultado:Enelcasodelosloops,loscircuitossecuencialespermitensustituirNcomponentesidnticosporunnicocomponentequeejecutaiterativamentelasoperacionesincluidasenelcuerpodelloop

    Loscomponentes(espacio)sereemplazanportiempo

    13

  • 2.Implementacinalgortmicacombinacionalvs.i l

    7 .1

    Estemtodonosloesvlidoparalasestructurasloop:

    secuencial

    Algoritmode4pasos:

    1: X1

  • 2.Implementacinalgortmicacombinacionalvs.i l

    7 .1

    1:X1

  • Pregunta 7 .1Elalgoritmosiguientecalculalarazcuadradapordefectodex.Six esunnmerode16bits.Culeselmnimonmerodeciclos,N, querequiereelalgoritmoparacalcularr =x1/2 ?

    1. N =2532. N =5093. N =1.0214. N =2.045

    16

  • 3.Conclusiones7 .1

    Losalgoritmospuedenimplementarseutilizandocircuitossecuenciales.

    Paraello

    Lamemoriaguardaelvalordelasvariables. Seasignanintervalosdetiempoalasoperaciones. Lapartecombinacionalejecutalasoperaciones.p j p

    Arquitectura: Circuito combinacionalArquitectura: Circuitocombinacional

    Memoria

    17

  • RESUMEN7 .1

    Implementacindealgoritmosmediantecircuitossecuenciales Ejemplos de implementaciones secuenciales.Ejemplosdeimplementacionessecuenciales. Comparacinentrelaimplementacincombinacionalylasecuencial(enaquellos

    casosenlosqueambassonposibles)

    18

  • 7 MQUINAS DE ESTADOS FINITO7 .2Elena ValderramaUniversidad Autnoma de Barcelona

  • 7 .2

    Lasmquinasdeestadosfinitos(MEFoFSM:Finite State Machines)modelanloscircuitossecuenciales.Enestaleccinveremos:

    1.DefinicindeMEF

    2.Implementacionesp

    3.DescripcinVHDLdeunaMEF

    20

  • 1.DefinicindeMEF7 .2

    UnaMEFquedadefinidapor:

    (estados de entrada): {combinaciones de valores de las seales de entradas} (estadosdeentrada):{combinacionesdevaloresdelassealesdeentradas} (estadosdesalida):{combinacionesdevaloresdelassealesdesalidas} S (estadosinternos):{combinacionesdevaloresdelamemoria(obiestables)}( ) { ( )} Dosfuncionesquedefinenelfuncionamientodelcircuito:

    f:S x S (funcinestadosiguiente),asociaunestadointernoacadapar(estadointerno,estadodeentrada)

    h:S x (funcindesalida),asociaunestadodesalidaacadapar(estadointerno,estadodeentrada))

    21

  • 7 .21.DefinicindeMEF

    CualquiercircuitosecuencialpuedemodelarsepormediodeunaMEF.

    Ejemplo:Contadorbinarioascendentede3bitsconunaentradaCE (Count_Enable)

    ={0,1}(CE =0o1), ={000,001,010,011,100,101,110,111}, S ={000,001,010,011,100,101,110,111},

    f(estado_actual,estado_entrada):f(s,0)=sf (s,1)=s+1mod 8,s S,

    h(estado_actual,estado_entrada): h (s,0)=h (s,1)=s,s S.22

  • 7 .21.DefinicindeMEF

    ={0,1}(count_enable =0or1) ={000,001,010,011,100,101,110,111} S ={000,001,010,011,100,101,110,111} f(s,0)=s f (s,1)=s+1mod2n,s Sf( , ) f ( , ) , h (s,0)=h (s,1)=s,s S.

    Matiz:EltrminoMEFseutilizasobretodocuandohablamosdemquinascuyoobjetivoescontrolar una secuencia de operaciones ms que implementar dichas operacionescontrolarunasecuenciadeoperacionesmsqueimplementardichasoperaciones.

    23

  • 2.Implementaciones:Lafrecuenciadereloj7 .2

    2.1MquinadeMoore

    h:S Elestadodesalidadependenicamentedelestadointernop

    tSUinput:RetardoentreCKylassealesdeentradaestables

    t : Tiempo de propagacin del circuito combinacional 1t1 :Tiempodepropagacindelcircuitocombinacional_1

    t2 :Tiempodepropagacindelcircuitocombinacional_224

  • .272.Implementaciones:Lafrecuenciadereloj

    Circuito Circuito

    Periodomnimodereloj:

    TCLK >max {tSUinput + t1,t2}

    combinacional_1(t1)

    combinacional_2(t2)estado

    internoestadosiguiente

    estadodeentrada(tSUinput)

    estadodesalida

    (clk)

    clk

    internal state

    p

    Frecuenciamximadereloj:

    fCLK

  • 7 .22.Implementaciones:Lafrecuenciadereloj

    2.2MquinadeMealy

    h:S x Elestadodesalidadependedelestadointernoydelestadodeentradap y

    CircuitoCircuito

    combinacional 2Circuitocombinacional_1

    (t1)

    combinacional_2(t2)

    estadointerno

    estadosiguiente

    estadodeentrada

    estadodesalida

    tSUinput:RetardoentreCKylassealesdeentradaestablest : Tiempo de propagacin del circuito combinacional 1

    entrada(tSUinput)

    (clk)

    t1 :Tiempodepropagacindelcircuitocombinacional_1t2 :Tiempodepropagacindelcircuitocombinacional_2

    26

  • 7 .22.Implementaciones:Lafrecuenciadereloj

    Circuitobi i l 2Circuito

    combinacional_1(t1)

    combinacional_2(t2)

    estadointerno

    estadosiguiente

    estadodeentrada(tSUi t)

    estadodesalida

    (clk)

    Periodomnimodereloj:

    TCLK >max {tSUinput + t1,tSUinput + t2}

    (tSUinput)

    Frecuenciamximadereloj:

    fCLK

  • 3.DescripcinVHDLdeMEFs7 .2

    ArquitecturadeunaMEFtipoMoore :

    Circuitocombinacional_1

    Circuitocombinacional_2estado

    internoestadosiguiente

    estadodeentrada estadode

    D PROCESOS

    internosiguiente salida

    (clk)

    DosPROCESOS: Funcinestadosiguiente+sincronizacin, Funcindesalida

    28

  • 7 .23.DescripcinVHDLdeMEFs

    Packagemy_fsm includes library ieee;i td l i 1164 ll definitionoftheset ofinternal states;

    forexample:type stateis (S0,S1,S2,);

    number N of input signals

    use ieee.std_logic_1164.all;use work.my_fsm.all;entity MooreFsm isport ( numberNofinputsignals,

    numberMofoutputsignals,

    port (clk,reset:in std_logic;x:in std_logic_vector(N1downto 0);y:out std logic vector(M1downto 0)

    definitionofthenextstatefunctionFandoftheoutputfunctionH.

    y _ g _ ( ));end MooreFsm;

    29

  • 7 .23.DescripcinVHDLdeMEFs

    architecturebehaviorofMooreFsm isF Hsignalcurrent_state:state;

    begin

    F Hestadointerno

    estadosiguienteX

    Y

    CLK

    output_state:process(current_state)begin

    H( t t t )

    next_state:process(reset,clk)beginif t '1' th t t t S0 y

  • 7 .23.DescripcinVHDLdeMEFsFyHpuedendefinirseenlapropiaarquitecturadelaentity.Ejemplo:DefinimosexplcitamenteFyHparacadaestadomedianteuncase

    next_state:process(reset,clk)beginifreset='1'thencurrent_state < instrucciones que ejecutan current state ;whenS1=>< instruccionesqueejecutancurrent_state ;whenS2=>< instruccionesqueejecutancurrent_state ;end case;end case;

    end if;end processnext_state; 31

  • 7 .23.DescripcinVHDLdeMEFs

    output_state:process(current_state)beginbegin

    case current_state iswhenS0=> ;whenS2=>

  • 7 .23.DescripcinVHDLdeMEFsEjemplo:Contador binario ascendente de3bitconentradacount_enabletypestateis (0,1,2,3,4,5,6,7);input:count_enable;outputy: 3bitvector;

    next_state:process(reset,clk)beginifreset='1'thencurrent_state

  • 7 .23.DescripcinVHDLdeMEFs

    output_state:process(current_state)begin

    casecurrent_state iswhen0=>yy y y< 010 ;when3=>yyyyy

  • EnladescripcinVHDLdelprocesonext_state deuncontadorbidireccionalde2bits,enelquehemos

    PREGUNTA 7 .2

    next state:process(reset,clk)

    definidoeltipostate iguala0,1,2y3,dosports deentrada,count_enable yup_down (up_down=0cuentahaciaarriba;up_down=1cuentahaciaabajo),sehapedidopartedelcdigo:

    _ p ( , )beginif reset='1'then current_state

  • Qu porcin de cdigo habra que insertar

    PREGUNTA 7 .2

    1)when0=>ifcount_enable =1then

    ifup_down =0thencurrent_state parteacompletarwhen 1=>when 2=>

    thencurrent_state ifcount_enable =1thenifup_down =0then

    current_state

  • RESUMEN7 .2

    DefinicindelasMquinasdeEstadosFinitos(MEFs oFSMs) Estudiado la frecuencia mxima de funcionamiento de una MSFEstudiadolafrecuenciamximadefuncionamientodeunaMSF HemosvistounmodelogenricodedescripcinVHDLdeunaMEFcondosprocesos

    concurrentes,unoquecomputalafuncinestadosiguienteyotroquecomputala

    funcindesalida.

    37

  • 7 .2

    38

  • 7 3 EJEMPLOS DE MQUINAS DE ESTADOS FINITOS

    7 .3Elena ValderramaUniversidad Autnoma de Barcelona

  • 7 .31.Temporizadorprogramable(timer)

    Entradas:start,reference (ondacuadrada),time (enterodenbits)Salida:done.

    Especificacin:

    40

  • 7 .31.Temporizadorprogramable(timer)Especificacinformal:

    loopdone

  • 7 .31.Temporizadorprogramable(timer)Implementacin:

    loopdone

  • 7 .31.Temporizadorprogramable(timer)

    MEF:Moore

    CE

    reference

    state operation done 0 00 11 00 1 2 11 0 3 00 0 4 00 0 5 00 05 00 06 01 0

    43

  • 7 .31.Temporizadorprogramable(timer)next_state:process(reset,clk)beginifreset='1'thencurrent_state if start='0'then current_state if start='1'then current_state current_state ifzero='1'thencurrent_state if reference= 0 then current_state if reference='1'then current_state current_state
  • 7 .31.Temporizadorprogramable(timer)

    output_state:process(current_state)b ibegincasecurrent_state iswhen0to1=>operation

  • 7 .31.Temporizadorprogramable(timer)Comentarios

    1. UnaaplicacinimportantedelasMEFsonloscircuitosdecontrol(p.e.laUnidaddeC t l d l P d )ControldelProcesador)

    2. Hemosconstruidoeltemporizadorcomodosgrandesbloques

    Un circuito de clculo (unidad de proceso, data path)Uncircuitode clculo (unidaddeproceso,datapath) Unmquinadeestadosfinitos(unidaddecontrol).

    Estaesunaarquitecturamuypotente,yeslabasedeloscircuitosqueimplementanl i d f di (M i d E d Al i )algoritmosdeunaformamsomenosdirecta(Mquinas de Estado Algortmicas).

    3. Apesardeello,siempreesposibledescribirelcircuitocompleto(VHDL),sinexplicitarestaparticinenunidaddecontrolyunidaddeproceso

    46

  • 7 .31.Temporizadorprogramable(timer)

    entity timerisport (

    main:process(reset,clk)beginif reset='1'then cs

  • 2.Detectordemovimiento7 .3

    Otrotipodeaplicacin:Deteccindesecuencias.

    Objetomvilcondossensorespticosquesemuevefrenteaunacintafijaconreasgrisesyblancas.Lossensoresgeneranunasalida:

    1sidetectanunazonagris,g , 0sidetectanunazonablanca,

    48

  • 7 .32.DetectordemovimientoMovimientoaladerecha:00,01,11,10,00,01,

    49

  • 7 .32.DetectordemovimientoMovimientoaladerecha:00,01,11,10,00,01,

    50

  • 7 .32.DetectordemovimientoMovimientoaladerecha:00,01,11,10,00,01,

    51

  • 7 .32.DetectordemovimientoMovimientoaladerecha:00,01,11,10,00,01,

    52

  • 7 .32.DetectordemovimientoMovimientoaladerecha:00,01,11,10,00,01,

    53

  • 7 .32.DetectordemovimientoMovimientoaladerecha:00,01,11,10,00,01,

    54

  • 7 .32.DetectordemovimientoMovimientoalaizquierda:00,10,11,01,00,10,

    55

  • 7 .32.DetectordemovimientoMovimientoalaizquierda:00,10,11,01,00,10,

    56

  • 7 .32.DetectordemovimientoMovimientoalaizquierda:00,10,11,01,00,10,

    57

  • 7 .32.DetectordemovimientoMovimientoalaizquierda:00,10,11,01,00,10,

    58

  • 7 .32.DetectordemovimientoMquinadeMealy:generaunasalida

    z =0silasecuenciadeentradaes,00,01,11,10,00,01, z = 1 si la secuencia de entrada es 00 10 11 01 00 10 z =1silasecuenciadeentradaes,00,10,11,01,00,10,

    59

  • 7 .32.DetectordemovimientoMquinadeMealy:generaunasalida

    z =0silasecuenciadeentradaes,00,01,11,10,00,01,(secuencia de estados: A B C D A B C D )(secuenciadeestados:ABCDABCD)

    z =1silasecuenciadeentradaes,00,10,11,01,00,10,(secuenciadeestados:DCBADCBA) Estado x1 x0 Estado siguiente z

    A

    x1 x0 : 00

    01

    10

    11

    A/0 B/0 A/1 D/1

    A 0 0 A 0 A 0 1 B 0 A 1 0 A 1 A 1 1 D 1 B 0 0 B 1 B 0 1 B 0

    1 0 A 1AB C D

    A/0 B/0 A/1 D/1B/1 B/0 A/1 C/0 B/1 C/1 D/0 C/0 A/0 C/1 D/0 D/1

    B 1 0 A 1B 1 1 C 0 C 0 0 B 1 C 0 1 C 1 C 1 0 D 0 C 1 1 C 0 D 0 0 A 0D 0 0 A 0D 0 1 C 1 D 1 0 D 0 D 1 1 D 1

    60

  • 7 .32.Detectordemovimientonext_state:process (reset,clk)beginif reset='1'then cs
  • 7 .32.Detectordemovimientooutput_state:process (cs,x1,x0)begincase cs is

    A

    x1 x0 : 00

    01

    10

    11

    A/0 B/0 A/1 D/1

    case cs iswhen A=>zzzz

  • PREGUNTA7 .3

    AlaMEFqueacabamosdeconstruir(fsm eneldibujo)lequeremosconectarunasegundaMEF(?eneldibujo)quedetectelaposicindelobjetomvil,en mltiplos de W (W=anchura de las bandas blancas

    1)loopif x1+x0=1then ifz=0then position

  • RESUMEN7 .3

    DosejemplosdedescripcinVHDLdeMEFs:Untemporizadorprogramableyundetectordemovimiento.

    ParticindecircuitosenunaUnidaddeProceso(oDataPath)yunaUnidaddeControl.ArquitecturadelasMquinasAlgortmicas.

    Apesardedichaparticin,ambasunidadespuedendescribirseenunnicoprocesoA pesar de dicha particin, ambas unidades pueden describirse en un nico procesoVHDL.

    64