Automate: Diferență între versiuni

De la WikiLabs
Jump to navigationJump to search
Fără descriere a modificării
Fără descriere a modificării
Linia 9: Linia 9:


La fiecare front de ceas, automatul face tranziția la starea următoare, calculată de către circuitul logic combinațional.
La fiecare front de ceas, automatul face tranziția la starea următoare, calculată de către circuitul logic combinațional.
'''Observație:''' Numărul total de stări disponibil unui automat este dat de numărul de biți ai registrului de stare.
'''Observație:''' Există moduri de codificare a stărilor care să permită tranziția sigură în cazul intrărilor asincrone. Din fericire, programele de sinteză moderne detectează automat aceste cazuri și recodifică stările corespunzător.
== Interfața unui automat ==
Interfața unui automat este compusă din următoarele porturi:
* semnalul de ceas, ca intrare;
* semnalul de reset, ca intrare;
* un număr oarecare de intrări, cu diferite funcții;
* un număr oarecare de ieșiri, cu diferite funcții;
== Implementarea unui automat ==
Partea de implementare a unui automat este compusă din definiția unui '''registru de stare''' pe un număr suficient de biți pentru a putea codifica numărul de stări dorite, și definiția tranzițiilor stărilor și ieșirilor, implementate cu ajutorul unui bloc '''always''' secvențial și un sub-bloc '''case'''.

Versiunea de la data 21 aprilie 2012 17:38

Schema bloc generică pentru automate Moore și Mealy

Automatul este un circuit secvențial, utilizat pentru a programa o secvență de operații. Un automat este definit de următoarele elemente:

  • o mulțime de valori de intrare (care în cazul circuitelor sunt porturi de intrare);
  • o mulțime de valori de ieșire (care în cazul circuitelor sunt porturi de ieșire);
  • o mulțime de stări, care alternează în timp și din care doar una este activă la un moment dat (care în cazul circuitelor este memorată într-un registru intern);
  • o funcție de tranziție a stărilor, care calculează starea următoare a automatului în funcție de starea curentă și valorile intrărilor (care în cazul circuitelor este un modul combinațional);
  • o funcție de tranziție a ieșirilor care calculează următoarea valoare a ieșirilor, în funcție de starea curentă (în cazul automatelor de tip Moore), sau în funcție de starea curentă și valorile intrărilor (în cazul automatelor de tip Mealy) (care în cazul circuitelor este un modul combinațional).

La fiecare front de ceas, automatul face tranziția la starea următoare, calculată de către circuitul logic combinațional.

Observație: Numărul total de stări disponibil unui automat este dat de numărul de biți ai registrului de stare.

Observație: Există moduri de codificare a stărilor care să permită tranziția sigură în cazul intrărilor asincrone. Din fericire, programele de sinteză moderne detectează automat aceste cazuri și recodifică stările corespunzător.

Interfața unui automat

Interfața unui automat este compusă din următoarele porturi:

  • semnalul de ceas, ca intrare;
  • semnalul de reset, ca intrare;
  • un număr oarecare de intrări, cu diferite funcții;
  • un număr oarecare de ieșiri, cu diferite funcții;

Implementarea unui automat

Partea de implementare a unui automat este compusă din definiția unui registru de stare pe un număr suficient de biți pentru a putea codifica numărul de stări dorite, și definiția tranzițiilor stărilor și ieșirilor, implementate cu ajutorul unui bloc always secvențial și un sub-bloc case.