Buenas a todos;
Quisiera plantear esta duda a ver si algún alma caritativa me explica como funciona este circuito porque tengo el programa en ABEL y el diagrama de estados, pero la última parte en la sección de equatios cuando quiero dar la salida DOUT, no entiendo como irian los biestables conectados unos con otros y porque DOUT es combinacional, en resumen que no veo como irian conectados los 12 flip flpos. Enitendo que necesito 8 para registrar el dato DIN una vez que ha pasado el ciclo de reloj , pero no veo como se envia en serie para que puedan salir por DOUT;
Os describo el problema y os dejo el diseño en abel por si os ayuda.
Tengo un PLD en el que quiero implementar transmisor serie de datos 8 bits. La salida DOUT esta en alto normalente. Cuando la entrada ENVIA se pone en alto, la salida DOUT se pone en bajo durante un ciclo de reloj, y acontinuación, la palabra de 8 bits presente en DIN, se envia en serie por la salida DOUT. Cada bit se transfiere de forma sincrona con CLK se mantiene en la línea de salida un ciclo de reloj. Suponiendo que la señal ENVIA sólo permanece activa durante un ciclo de reloj y que el dato a enviar solo permanece estable en DIN durante ese ciclo. La señal de RST es asincrona. Dibuja el circuito y decríbelo en ABEL
El abel es el siguiente( o eso creo);
Module Enviar
CLK,RST,D7,...,D0,ENVIA pin;
DOUT pin istype ´com´;
R7,.....,RO pin istype ´reg´;
E7,.....,EO pin istype ´reg´;
DIN=[D7,...,DO];
R=[R7,...,RO];
EST=[E7,...,EO];
"Codificcion de estados"
REPOSO=[0,0,0,0]
INIZ=[0,0,0,1];
EN7=[0,0,1,0];
EN0=[1,0,0,1];
state_diagram EST
state REPOSO : if ENVIA then INIZ
else REPOSO
state INIZ: gotto EN7
state EN7: gotto EN6
state EN0: gotto REPOSO
equations
"Registro de DIN"
when ENVIA then R:= DIN
eslse R:=R
"Ecuacion de salida!!!!ESTO NO LO ENTIENDO!!!"
when ESTADO==REPOSO then DOUT = 1
else when ESTADO==INIZ then DOUT = 0
else when ESTADO==D7 then DOUT = R7
else when ESTADO==D1 then DOUT = R1
else DOUT= R0
R.re= RST;
ESTADO.re=RST;
R.clk= CLK;
ESTADO.clk=CLK;
end;
Le agradezco a cualquiera 1000! que me ayude porque tengo la cabeza un poco dura para esto del digital y me estoy desesperando.
Saludos y de nuevo gracias a todo aquel que se preste a ayudarme
Sofía
Quisiera plantear esta duda a ver si algún alma caritativa me explica como funciona este circuito porque tengo el programa en ABEL y el diagrama de estados, pero la última parte en la sección de equatios cuando quiero dar la salida DOUT, no entiendo como irian los biestables conectados unos con otros y porque DOUT es combinacional, en resumen que no veo como irian conectados los 12 flip flpos. Enitendo que necesito 8 para registrar el dato DIN una vez que ha pasado el ciclo de reloj , pero no veo como se envia en serie para que puedan salir por DOUT;
Os describo el problema y os dejo el diseño en abel por si os ayuda.
Tengo un PLD en el que quiero implementar transmisor serie de datos 8 bits. La salida DOUT esta en alto normalente. Cuando la entrada ENVIA se pone en alto, la salida DOUT se pone en bajo durante un ciclo de reloj, y acontinuación, la palabra de 8 bits presente en DIN, se envia en serie por la salida DOUT. Cada bit se transfiere de forma sincrona con CLK se mantiene en la línea de salida un ciclo de reloj. Suponiendo que la señal ENVIA sólo permanece activa durante un ciclo de reloj y que el dato a enviar solo permanece estable en DIN durante ese ciclo. La señal de RST es asincrona. Dibuja el circuito y decríbelo en ABEL
El abel es el siguiente( o eso creo);
Module Enviar
CLK,RST,D7,...,D0,ENVIA pin;
DOUT pin istype ´com´;
R7,.....,RO pin istype ´reg´;
E7,.....,EO pin istype ´reg´;
DIN=[D7,...,DO];
R=[R7,...,RO];
EST=[E7,...,EO];
"Codificcion de estados"
REPOSO=[0,0,0,0]
INIZ=[0,0,0,1];
EN7=[0,0,1,0];
EN0=[1,0,0,1];
state_diagram EST
state REPOSO : if ENVIA then INIZ
else REPOSO
state INIZ: gotto EN7
state EN7: gotto EN6
state EN0: gotto REPOSO
equations
"Registro de DIN"
when ENVIA then R:= DIN
eslse R:=R
"Ecuacion de salida!!!!ESTO NO LO ENTIENDO!!!"
when ESTADO==REPOSO then DOUT = 1
else when ESTADO==INIZ then DOUT = 0
else when ESTADO==D7 then DOUT = R7
else when ESTADO==D1 then DOUT = R1
else DOUT= R0
R.re= RST;
ESTADO.re=RST;
R.clk= CLK;
ESTADO.clk=CLK;
end;
Le agradezco a cualquiera 1000! que me ayude porque tengo la cabeza un poco dura para esto del digital y me estoy desesperando.
Saludos y de nuevo gracias a todo aquel que se preste a ayudarme
Sofía