Numărătorul: Diferență între versiuni
De la WikiLabs
Jump to navigationJump to search
Fără descriere a modificării |
|||
(Nu s-au afișat 6 versiuni intermediare efectuate de același utilizator) | |||
Linia 10: | Linia 10: | ||
|- bgcolor="#dddddd" align="center" | |- bgcolor="#dddddd" align="center" | ||
| Valoare || 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || Forme de undă | | Valoare || 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || Forme de undă | ||
|- bgcolor="# | |- bgcolor="#aa9999" align="center" | ||
| Bit 0 || 0 || 1 || 0 || 1 || 0 || 1 || 0 || 1 || 0 || 1 || 0 || 1 || 0 || 1 || 0 || 1 || | | Bit 0 || bgcolor="#ddeeff" | 0 || 1 || bgcolor="#ddeeff" | 0 || 1 || bgcolor="#ddeeff" | 0 || 1 || bgcolor="#ddeeff" | 0 || 1 || bgcolor="#ddeeff" | 0 || 1 || bgcolor="#ddeeff" | 0 || 1 || bgcolor="#ddeeff" | 0 || 1 || bgcolor="#ddeeff" | 0 || 1 || [[Fișier:num0.png]] | ||
|- bgcolor="# | |- bgcolor="#aa9999" align="center" | ||
| Bit 1 || 0 || 0 || 1 || 1 || 0 || 0 || 1 || 1 || 0 || 0 || 1 || 1 || 0 || 0 || 1 || 1 || | | Bit 1 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || 1 || 1 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || 1 || 1 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || 1 || 1 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || 1 || 1 || [[Fișier:num1.png]] | ||
|- bgcolor="# | |- bgcolor="#aa9999" align="center" | ||
| Bit 2 || 0 || 0 || 0 || 0 || 1 || 1 || 1 || 1 || 0 || 0 || 0 || 0 || 1 || 1 || 1 || 1 || | | Bit 2 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || 1 || 1 || 1 || 1 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || 1 || 1 || 1 || 1 || [[Fișier:num2.png]] | ||
|- bgcolor="# | |- bgcolor="#aa9999" align="center" | ||
| Bit 3 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || | | Bit 3 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || bgcolor="#ddeeff" | 0 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || [[Fișier:num3.png]] | ||
|} | |} | ||
== Interfața unui numărător == | |||
Interfața unui numărător conține în mod obligatoriu următoarele porturi: | |||
* port pentru semnalul de ceas; | |||
* port pentru semnalul de ieșire, care este chiar registrul de numărare. | |||
În plus, mai pot exista: | |||
* port de reset; | |||
* port care controlează direcția de numărare; | |||
* port care oprește sau pornește numărarea; | |||
* port care dă valoarea maximă la care poate ajunge numărătorul; | |||
* port care comandă încărcarea unei valori de start în registrul numărătorului și portul pe care este dată această valoare; | |||
* etc. | |||
== Implementarea unui numărător == | |||
Fiind un circuit secvențial, un numărător se implementează exclusiv cu [[Verilog#Blocuri always secvențiale. Asignări non-blocante (non-blocking assignments)|blocuri always secvențiale]]. |
Versiunea curentă din 24 martie 2012 13:35
Numărătorul este un circuit secvențial care se folosește de un registru pentru a genera o secvență de numere. Cel mai simplu numărător generează o secvență de numere crescătoare, consecutive. Dimensiunea numărătorului este dată de numărul de biți ai registrului folosit.
Schema acestui dispozitiv este următoarea:
Observație: Numărătorul poate fi folosit ca un divizor de frecvență deoarece fiecare bit are o perioadă de două ori mai mare decât cel precedent, iar bitul 0 are o perioadă dublă față de semnalul de ceas:
Interfața unui numărător
Interfața unui numărător conține în mod obligatoriu următoarele porturi:
- port pentru semnalul de ceas;
- port pentru semnalul de ieșire, care este chiar registrul de numărare.
În plus, mai pot exista:
- port de reset;
- port care controlează direcția de numărare;
- port care oprește sau pornește numărarea;
- port care dă valoarea maximă la care poate ajunge numărătorul;
- port care comandă încărcarea unei valori de start în registrul numărătorului și portul pe care este dată această valoare;
- etc.
Implementarea unui numărător
Fiind un circuit secvențial, un numărător se implementează exclusiv cu blocuri always secvențiale.