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 13 versiuni intermediare efectuate de același utilizator)
Linia 8: Linia 8:


{| class="wikitable"
{| class="wikitable"
|- bgcolor="#ddeeff" align="center"
|- bgcolor="#dddddd" align="center"
|colspan=16|'''Valoare''' || '''Forma de undă'''
| Valoare ||  0 ||  1 ||  2 ||  3 ||  4 ||  5 ||  6 ||  7 ||  8 ||  9 || 10 || 11 || 12 || 13 || 14 || 15 || Forme de undă
|- bgcolor="#ddffdd" align="center"
|- bgcolor="#aa9999" align="center"
| 0 || 1 || 0 || 1 || 0 || 1 || 0 || 1 || 0 || 1 || 0 || 1 || 0 || 1 || 0 || 1 || wave
| 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="#ddffdd" align="center"
|- bgcolor="#aa9999" align="center"
| 0 || 0 || 1 || 1 || 0 || 0 || 1 || 1 || 0 || 0 || 1 || 1 || 0 || 0 || 1 || 1 || wave
| 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="#ddffdd" align="center"
|- bgcolor="#aa9999" align="center"
| 0 || 0 || 0 || 0 || 1 || 1 || 1 || 1 || 0 || 0 || 0 || 0 || 1 || 1 || 1 || 1 || wave
| 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="#ddffdd" align="center"
|- bgcolor="#aa9999" align="center"
| 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || wave
| 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:

Schema unui numărător

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:

Valoare  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 Forme de undă
Bit 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Bit 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
Bit 2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
Bit 3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

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.