Diferență între revizuiri ale paginii „Numărătorul”
De la WikiLabs
Jump to navigationJump to search(Nu s-au afișat 14 versiuni intermediare efectuate de același utilizator) | |||
Linia 6: | Linia 6: | ||
'''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: | '''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: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- bgcolor="#dddddd" align="center" | ||
+ | | Valoare || 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || Forme de undă | ||
+ | |- bgcolor="#aa9999" align="center" | ||
+ | | 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="#aa9999" align="center" | ||
+ | | 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="#aa9999" align="center" | ||
+ | | 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="#aa9999" align="center" | ||
+ | | 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.