Cunoștințe, prelegeri, registre

Următoarea aplicare a registrelor de deplasare constă în organizarea tuturor liniilor de întârziere posibile, în special având un număr semnificativ de cascade. Prin intermediul registrelor de deplasare, este posibil să se întârzie orice semnal de intrare cu un număr întreg de cicluri. Cu toate acestea, trebuie luat în considerare faptul că durata semnalului de intrare (și a oricăror elemente ale acestuia) va fi de asemenea transmisă de-a lungul liniei de întârziere cu o precizie a unui ciclu de ceas. Astfel de linii de întârziere pot fi utilizate pentru a compara mai multe cicluri de ceas ulterioare ale unui semnal de intrare, pentru efectuarea operațiilor aritmetice cu mai multe cicluri de ceas ale semnalului de intrare și pentru alte scopuri similare. Lucrarea liniei de întârziere pe registrul de deplasare este ilustrată în Fig. 8.20.


Fig. 8.20. Intrare semnal de întârziere a liniei pe registrul de deplasare

De asemenea, registrele de schimbare pot fi utilizate pentru a genera impulsuri cu o durată specificată, unde lățimea impulsului poate fi specificată de codul de comandă. adică să fie controlate de program. În Fig. 8.21 arată schema posibila a unui astfel de formator.


Fig. 8.21. Conducătorul impulsului cu durata specificată de codul de control

În starea inițială (înainte de o margine pozitivă a semnalului de intrare) flip-flop este resetat la zero, toate ieșirile registrului de deplasare - zerouri la ieșire inversă multiplexor - o unitate. Un cod de control care specifică durata semnalului de ieșire este alimentat către multiplexor. La primirea unui semnal pozitiv de intrare margine de declanșare să fie transferate în unitatea (pornește semnalul de ieșire) și unitatea de semnal începe să se deplaseze secvențial registrul de deplasare pentru fiecare margine a semnalului de ceas.

Să presupunem că codul de control este 5. Apoi, în momentul în care ieșirea 5 a registrului de deplasare apare una. acesta va fi transmis la ieșirea multiplexorului KP7 cu inversiune. În acest caz, semnalul zero de la intrarea -R a flip-flop-ului va reseta flip-flop-ul la zero, adică semnalul de ieșire se va termina.

Astfel, durata semnalului de ieșire va fi determinată de codul de control. Eroarea de stabilire a acestei durate este egală cu o perioadă a semnalului de ceas și depinde de schimbarea de timp dintre partea frontală a semnalului de intrare și partea din față a celui mai apropiat impuls de ceas. Cu cât este mai lungă durata semnalului de ieșire, cu atât este mai mică eroarea relativă în stabilirea preciziei. De exemplu, cu codul de control 0, durata semnalului de ieșire poate fi de la 0 la T, unde T este perioada semnalului de ceas. Și cu codul de control 7, durata semnalului de ieșire va fi de la 7T la 8T. Cu toate acestea, nu luăm în considerare întârzierile declanșatorului, a registrului de deplasare și a multiplexorului.

De asemenea, registrele de schimbare pot fi utilizate pentru a multiplica și împărți numerele binare cu 2 n. unde n este un număr întreg. mai mare de zero. Schimbarea numărului binar la dreapta (spre LSB) printr-un bit este echivalentă cu împărțirea numărului binar 2. Trecerea la stânga (spre MSBs) printr-o singură cifră este echivalentă cu înmulțirea cu 2. Pentru a registrul de deplasare multiplicat și împărțit cod binar are nevoie doar de Scrieți acest cod în registru și mutați-l de câte ori este corect sau spre stânga. Cel mai convenabil pentru acest registru este IR13. În acest caz, este necesar ca evacuările eliberate împins de zerouri, adică, la intrările de expansiune înregistrare DR și DL este necesar să se aplice semnalelor de zero.

În cele din urmă, ultima aplicare a registrului de deplasare. pe care o vom considera, este un generator al unei secvențe aleatoare de semnale sau al unei secvențe aleatoare de coduri. Strict vorbind, secvențele nu vor fi complet aleatoare, ci cvasi-aleatoare, adică vor fi repetate periodic, însă această perioadă este destul de mare. Secvențe aleatoare de semnale și coduri sunt utilizate pe scară largă în echipamentele de testare, în generatoarele de zgomot, în dispozitivele de jocuri logice.

Problema este că semnalul de ieșire sau codul își schimbă starea accidental (sau aproape accidental). Semnalul ar trebui să treacă în mod aleatoriu de la 0 la 1 și 1 la 0, iar codul trebuie să ia în mod accidental valori din intervalul de la 0 la (2-N 1) unde N - numărul de biți de cod (de exemplu, 0 la 255 pentru un cod de 8 biți, ). secvențe pseudo-aleatoare au avantajul față de adevărat aleatoriu care le - previzibil și recurente, dar, în același, și lipsa lor.

Structura generatorului de secvențe quasirandom pe registrul de deplasare este foarte simplă (Figura 8.22). Este un registru de deplasare cu ieșiri paralele (de exemplu, IR8), mai multe (cel puțin două) este combinat prin XOR semnal de ieșire element sau din semnalul de ieșire al care este furnizat la intrarea registrului, închiderea circuitului într-un inel. Circuitul este tactat de un semnal cu frecvență fT.


Fig. 8.22. Structura generatorului de secvențe pseudorandomice

Alegerea numerelor digitale pentru conectarea feedback-ului este o sarcină dificilă, dar există tabele de referință în care sunt prezentate. În ambele cazuri, unul dintre punctele de conectare este ieșirea de ordin înalt. În tabel. 8.9 prezintă punctele de racordare a feedback-ului pentru registrele cu schimbare cu un număr diferit de biți N (numerele de cifre sunt numărate de la zero).

Tabelul arată că mai avantajos să ia numărul de biți nu este multiplu de 8, de exemplu, 7, 15 sau 31. In acest caz, feedback-ul este utilizat numai două puncte de vânzare, adică doar una cu două intrări OR exclusiv elementul.

Perioada de secvență de ieșire a generatorului este ciclurile (2 N -1), unde N este numărul de biți ai registrului de deplasare. În acest timp, fiecare dintre valorile posibile ale codului de ieșire (cu excepția unuia) apare o singură dată. Numărul de unități din semnalul de ieșire este mai mare decât numărul de zerouri pe unitate.

Codul de ieșire 000 0 este o stare interzisă, deoarece blochează funcționarea generatorului, reproducându-se din nou și din nou. Dar, în același timp, un astfel de cod zero poate veni numai de la sine, deci este suficient să se asigure că nu există atunci când circuitul este pornit.

Frecvențele din spectrul semnalului de ieșire vor urma cu un interval (fT / 2 N -1). iar plicul spectrului va fi practic constant până la o frecvență de 0,25fT. adică, zgomotul până la această frecvență poate fi considerat alb (o cadere de 3 dB are loc la o frecvență de 0,45 fT).


Fig. 8.23. Generator de secvențe pseudo-aleatoare de 31 biți pe registrele de deplasare

În Fig. 8.23 prezintă un circuit practic al generatorului de secvență pseudoaleatoare registrul de deplasare 31-biți. Feedback-ul este furnizat de la ieșirile registrelor 30 și 17 prin două intrări OR exclusiv elementul cu un invertor. Datorită utilizării invertorului este interzisă generator de coduri de stare 1111. 1 (și nu codul 000. 0), care, în acest caz, a eliminat foarte simplu - registrele inițiale resetate la zero atunci când aparatul este pornit semnalul -Resets. Generator Cvasi-aleatoare produce o secvență de coduri de 31 de biți din toate ieșirile registrului, iar secvența de cvasi-aleatoare a unu și zero în oricare dintre ieșirile registrului. Un astfel de generator a fost folosit de firma renumită Hewlett-Packard din generatorul său de zgomot.

Articole similare