Re: Captura d'impulsos

E

EDA_hg81

Guest
En el meu disseny, he utilitzat dues màquines d'estat.

Primera màquina d'estats,
s'està executant sota 4MHZ, que generen un 500US pols.

Segona màquina d'estats
s'està executant sota 16MHZ, que reben aquest 500US pols.

El meu codi per al control de la pulsació és la següent:

Codi:

procés (refclk)

començar

if (rising_edge (refclk)) llavors

fstart_reg1 <= cformat;

fstart_reg2 <= fstart_reg1;

if (fstart_reg1 ='1 'i fstart_reg2 ='0') llavors

... ... ... ... ... ... ... ... ... ... ....

END IF;

END IF;

procés final;
 
En primer lloc metastability pot ser el seu problema.El rebre filpflops podrien quedar varados en un meta estat estable.Tanmateix, si aquest és el problema aleshores
s'hauria de treballar a vegades simplement no tot el temps.

Per eliminar els problemes metastability (així reduir-los a somthing com 0.000001% de la passa) doulbe registrar el seu lògica abans d'usar-lo com a continuació

Codi:

procés (refclk)

la variable temporal: std_logic_vector (1 downto 0);

començar

if (rising_edge (refclk)) llavors

fstart_reg1 <= temperatura (0);

fstart_reg2 <= fstart_reg1;

if (fstart_reg1 ='1 'i fstart_reg2 ='0') llavors

... ... ... ... ... ... ... ... ... ... ....

END IF;

Temp (temp'high downto 1): i = cformat temp (temp'high-1 downto 0);

END IF;

procés final;
 
Serveixin explicar de quina manera això va a funcionar?

la meva entrada és processada en dues etapes flip-flop ja ...

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutral" border="0" />
 


Té vostè raó.

El que vull és utilitzar el senyal de domini dins d'4MHZ per activar un mòdul dins d'16MHZ domini.

Jo ús @ ltera senyal de toc per comprovar les senyals, no va passar res.

Emprat com si he part d'aquest moviment:

Codi:

getformat <='1 ';

if (ackformat ='1 ') then

getformat <='0 ';

format_state <= inactiu;

END IF;
 
Cita:

Jo ús @ ltera senyal de toc per comprovar les senyals, no va passar res.
 
Sé que el problema és el següent:

Al reconèixer el senyal (ackformat) dins del domini 16MHZ intentar activar el mòdul dins 4MHZ, el pols de reconèixer el senyal (ackformat) és massa estret i no poden ser capturades per 4MHZ domini.

Gràcies de totes maneres.

 
Si no hi ha una relació de fase entre el rellotge dominis metastability llavors sempre és un problema que necessita ser abordat.O bé el seu codi de sobte tots els misteriosos deixar de funcionar fins que es reprogramar.

Una manera de fer front a metastability és assegurar que tots els senyals són de doble tapa folped abans d'utilitzar.Com en el codi de la senyal cruce el rellotge de domini
s'utilitza després que encara que només va ser un filpflop (això no és recormended).

He attahced una mica de codi que he creat fa molt de temps.És bo per aconseguir frenar el canvi parralell dades (pel
que fa als dos rellotges) d'un rellotge de domini a un altre i garantir que vaig arribar.Podria ser un valor d'un cop d'ull si el teu va a fer més coses com aquesta.

Què fa el codi és:
-
Els usuaris metaestables registres.
- Busqui l'augment de vora per determinar quan les dades són vàlids
- Targetes de nou una senyal a la acknolge rebre banda (útil per saber quan es pot enviar el següent).
És molt senzill i molt lent.

Applogise per alguna raó vaig ser obligat a afegir. Pdf a l'extrem (només eliminar. Pdf)

Si les dades
s'està movent ràpidament usar un ASYNC FIFO.

Tractant de ser útil que em feu saber si dissagree aquí o amb qualsevol cosa pot fer d'una manera millor.
Ho sentim, però necessita accés per veure aquest arxiu adjunt

 
Cita:

Sé que el problema és el següent:Al reconèixer el senyal (ackformat) dins del domini 16MHZ intentar activar el mòdul dins 4MHZ, el pols de reconèixer el senyal (ackformat) és massa estret i no poden ser capturades per 4MHZ domini.
 
He fixat la meva errors.

Ho sento per vostè enganyosa, vaig pensar que era metastability problema, però per fi vaig saber que era problema de la inestabilitat de la mà.

Gràcies de nou i tenir un bon cap de setmana.

 

Welcome to EDABoard.com

Sponsor

Back
Top