Numărătorul: Diferență între versiuni

De la WikiLabs
(Interfața unui numărător)
 
(Nu s-au afișat 8 versiuni intermediare efectuate de același utilizator)
Linia 8: Linia 8:
  
 
{| class="wikitable"
 
{| class="wikitable"
|- bgcolor="#dddddd" align="center" width="15"
+
|- 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="#ddffdd" align="center"
+
|- bgcolor="#aa9999" align="center"
| Bit 0 || 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="#ddeeff" align="center"
+
|- bgcolor="#aa9999" align="center"
| Bit 1 || 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"
| Bit 2 || 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="#ddeeff" align="center"
+
|- bgcolor="#aa9999" align="center"
| Bit 3 || 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 Num0.png
Bit 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Num1.png
Bit 2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 Num2.png
Bit 3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 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 blocuri always secvențiale.