Asinhronā skaitītāji

8 bitu asinhronais skaitītājs, izmantojot FPGA (Maijs 2019).

$config[ads_text] not found
Anonim

Asinhronā skaitītāji

11. nodaļa - secīgās shēmas


Iepriekšējā sadaļā mēs redzējām ķēdi, izmantojot vienu JK flip-flop, kas skaitīta atpakaļ divu bitu binārā secībā no 11 līdz 10 līdz 01 00. Tā kā būtu vēlams izveidot ķēdi, kas varētu uzskaiti uz priekšu un nevis Tikai atpakaļ, būtu vērts vēlreiz pārbaudīt uz priekšu veikto skaitīšanas kārtu un meklēt vairāk modeļu, kas varētu norādīt, kā izveidot šādu shēmu.

Tā kā mēs zinām, ka bināro skaitļu secības atbilst oktavei (koeficients 2) frekvenču sadalījumam un ka JK flip-flop multivibratori, kas izveidoti "pārslēgšanas" režīmam, ir spējīgi veikt šāda veida frekvenču sadalījumu, mēs varam iedomāties ķēdi kas sastāv no vairākiem JK flip-flopiem, kaskadēti, lai iegūtu četrus produkcijas bitus. Mūsu galvenā problēma ir noteikt, kā savienot šos flip-flops kopā, lai tie pārslēgtos īstajā laikā, lai izveidotu pareizu bināro secību. Pārbaudiet sekojošo bināro skaitļu secību, pievēršot uzmanību modeļiem pirms "pārslēgšanas" ar mazliet starp 0 un 1:

Ievērojiet, ka katrs bits šajā četru bitu secībā pārslēdzas, kad pirms tā bits (bits, kam ir mazāka nozīme vai vietas svars) pārslēdzas konkrētā virzienā: no 1 līdz 0. Mazas bultas norāda tos punktus secībā, kur nedaudz pārslēdzas, bultiņas galviņa, kas norāda uz iepriekšējo bitu, pārejot no "augsta" (1) stāvokļa uz "zemu" (0) stāvokli:

Sākot ar četriem JK flip-flops, kas ir savienoti tādā veidā, lai vienmēr būtu pārslēgšanas režīmā, mums ir jānosaka, kā savienot pulksteņa ieejas tādā veidā, lai katrs nākamais bits pārslēgtu, kad bits pirms tas pāriet no 1 līdz 0. Katra flip-flopa Q izejas kalpo par attiecīgo bināro bitumu no pēdējā, četru bitu skaita:

Ja mēs izmantotu flip-flops ar negatīvu malu ieslēgšanu (burbuļu simboli uz pulksteņa ieejas), mēs varētu vienkārši savienot katra flip-flop pulksteņa ievadi ar Q-izeju flip-flop pirms tā, lai, kad mazliet pirms tas mainās no 1 līdz 0, šī signāla "krītošā maliņa" nākamajā bitiņā nomainīs nākamo flip-flop:

Šī ķēde varētu radīt sekojošus izejas viļņu formas, kad "clocked" ar atkārtotu avotu impulsiem no oscilators:

Pirmajam flip-flop (ar Q 0 izeju) ir pozitīva malu aktivizēta pulksteņa ievade, tādēļ tā tiek pārslēgta ar katru pulksteņa signāla pieaugošo malu. Ievērojiet, ka šajā piemērā pulksteņa signālam darba cikls ir mazāks par 50%. Esmu parādījis signālu šādā veidā, lai parādītu, kā pulksteņa signālam nav jābūt simetriskam, lai iegūtu mūsu četrbitu binārās secības drošu, "tīru" izvades bitu. Šajā pirmajā flip-flop ķēdē, kas parādīta šajā nodaļā, es pats izmantoja pulksteņa signālu kā vienu no izejas bitiem. Tomēr tas ir slikts pretdarbības dizains, jo tas prasa izmantot kvadrātveida viļņu signālu ar 50% darba ciklu ("augsts" laiks = "zems" laiks), lai iegūtu skaitīšanas secību, kurā katrs solis pauzes uz tikpat daudz laika. Tomēr, izmantojot vienu JK flip-flop katram izejas bitiem, mēs atbrīvojam no simetriskā pulksteņa signāla nepieciešamības, ļaujot praktiski izmantot jebkuru augsta / zema viļņa formas dažādību, lai palielinātu skaitīšanas secību.

Kā norāda visas citas bultiņas impulsa diagrammā, katru nākamo izejas bitu pārveido iepriekšējā bitu pāreja no "augstā" (1) uz "zems" (0). Šis ir modelis, kas nepieciešams, lai izveidotu "augšu" skaitīšanas secību.

Mazāk skaidrs risinājums "uz augšu" sekvences ģenerēšanai, izmantojot pozitīvas malas iedarbinātos flip-flops, ir "pulkstenot" katru flip-flop, izmantojot Q 'izeju iepriekšējā flip-flop, nevis Q izejas. Tā kā Q 'izlaide vienmēr būs precīza pretrunīga Q produkcijas stāvoklis JK flip-flop (nav spēkā neesošu stāvokli ar šāda veida flip-flop), no Q izlaides pāreja no augšas uz zemu tiks pievienota Q-izejas pāreja no zemas uz augstu. Citiem vārdiem sakot, katru reizi, kad flip-flop pārejas Q izeja no 1 līdz 0, tā paša flip-flop Q 'izeja pāriet no 0 uz 1, nodrošinot pozitīvo pulksteņa impulsu, mums vajadzēs pārslēgt Pozitīvās malas aktivizēja flip-flop īstajā brīdī:

Viens no veidiem, kā mēs varētu paplašināt abas šīs abas kontūras ķēdes, ir Q 'izejas kā cits četru bināro bitu kopums. Ja mēs aplūkojam šādas ķēdes impulsa diagrammu, mēs redzam, ka Q 'izejas ģenerē lejupskaitīšanas secību, bet Q izejas ģenerē uz augšu- skaitīšanas secību:

Diemžēl visas uzrādītās skaitīšanas ķēdes, kurām ir redzams, ir kopīgas problēmas: svārstību efekts. Šis efekts ir redzams dažu veidu bināru papildinātājā un datu pārveidošanas shēmās, un tas ir saistīts ar uzkrāto pavairošanas aizkavēšanos starp kaskādes vārtiem. Kad flip-flop pārejas Q izeja no 1 līdz 0, tā pārslēdz nākamo flip-flop. Ja nākamais flip-flop pārslēgšana ir pāreja no 1 uz 0, tā pēc tam, kad tā tiks pārslēgta, arī komandu uzņems pogu, un tā tālāk. Tomēr, tā kā pavairošanas komandu (pulksteņa impulsu) un faktisko pārslēgšanas atbildi (Q un Q 'izvadi mainās stāvokļi) vienmēr ir neliela pavairošanas aizkaves summa, jebkuri sekojošie pārslēgi, kas tiks pārslēgti, pārslēgsies kādu laiku pēc pirmais flip-flop ir pārslēgts. Tādējādi, ja bināros skaitīšanas secībā pārslēdz vairākus bitus, visi tie netiks pārslēgti tieši tajā pašā laikā:

Kā redzat, jo vairāk bitu, kas pārslēdzas ar noteiktu pulksteņa impulsu, jo smagāks ir uzkrātais kavēšanās laiks no LSB uz MSB. Kad pulksteņa impulss notiek šādā pārejas punktā (teiksim, pārejā no 0111 līdz 1000), izvades biti secīgi vircinās no LSB uz MSB, jo katrs sekojošais bits pārslēgsies un uzliks nākamajam bitiem pārslēgties, ar nelielu pavairošanas kavējumu starp katru bitu pārslēgšanos. Ja pārejā no 0111 uz 1000, mēs tuvumā aplūkosim šo efektu, mēs varam redzēt, ka īsā laika periodā radīsies nepareizs produkcijas skaitlis, kas radīs "pulsācijas" efektu:

Tā vietā, lai tīri pārejot no "0111" izejas uz "1000" izeju, skaitītāja ķēde ļoti ātri ripple no 0111 uz 0110 līdz 0100 līdz 0000 līdz 1000, vai no 7 līdz 6 līdz 4 līdz 0, un tad līdz 8. Šis uzvedība nopērk skaitītāja ķēdes pulsācijas skaitītāja nosaukumu vai asinhrono skaitītāju .

Daudzās lietojumprogrammās šis efekts ir pieļaujams, jo pulsācija notiek ļoti, ļoti ātri (šeit viltus platums ir pārspīlēts, lai palīdzētu izprast ietekmi). Ja viss, ko mēs gribējām darīt, bija vadīt gaismas diodes (LED), kas sastāv no skaitītāja izejām, piemēram, šī īsā svārstīšanās nebūtu nekādas sekas. Tomēr, ja mēs vēlētos izmantot šo skaitītāju, lai vadītu multipleksera "atlasītās" ieejas, indeksējiet atmiņas rādītāju mikroprocesora (datora) ķēdē vai veiciet kādu citu uzdevumu, ja nepatiesi rezultāti var izraisīt nepareizas kļūdas, tas nebūtu pieņemams . Pastāv veids, kā izmantot šāda veida skaitītāju shēmu lietojumprogrammās, kas ir jutīgas pret nepatiesiem, pulsējošiem rezultātiem, un tas ietver principu, kas pazīstams kā strobing .

Lielākā daļa dekoderu un multiplekseru shēmas ir aprīkotas ar vismaz vienu ieeju, ko sauc par "enable". Šādas shēmas izeja (s) būs aktīva tikai tad, ja aktīvā ievadne tiek aktivizēta. Mēs varam izmantot šo ievades ievadi, lai izstumtu ķēdi, kas saņem pulsācijas skaitītāja izvadi, tādā veidā, ka tā ir atspējota (un tādējādi nereaģē uz skaitītāja izeju) īsā laika periodā, kurā skaitītāja izejas var būt ripple, un iespējota tikai tad, ja ir pietiekami laiks ir pagājis kopš pēdējā pulksteņa impulsa, ka visi rippling būs beigušies. Vairumā gadījumu strobinga signāls var būt tāds pats pulksteņa pulkstenis, kas vada skaitītāja ķēdi:

Ar aktīvu-zemu Enable ievadi saņemošā ķēde reaģē uz četrbitālo skaitītāju cikla bināro skaitu tikai tad, kad pulksteņa signāls ir "zems". Tiklīdz pulksteņa impulss ir "augsts", saemšanas ķēde pārstāj reaģēt uz skaitītāja ķēdes izeju. Tā kā skaitītāja ķēde ir iedarbināta ar pozitīvo malu (kā nosaka pirmais pārejas pulksteņa ievade), visa skaitīšanas darbība notiek pulksteņa signāla pārejā no zemā līdz augstākajam, kas nozīmē, ka saņēmēja ķēde kļūs atspējota tikai pirms jebkādas pārslēgšanās notiek skaitītāja ķēdes četrās izvades bitēs. Saņemšanas ķēde netiks aktivizēta, līdz pulksteņa signāls atgriezīsies zemā stāvoklī, kam vajadzētu būt pietiekami ilgi pēc tam, kad viss ripošanās vairs nav "drošs", lai jauns skaitlis varētu ietekmēt uztvērēja ķēdi. Galvenais parametrs šeit ir pulksteņa signāla "augsts" laiks: tai jābūt vismaz tik ilgi, cik ir maksimālais gaidīšanas režīma laiks. Ja nē, tad pulksteņa signāls priekšlaicīgi aktivizēs saņemšanas ķēdi, bet daži rippling joprojām notiek.

Vēl viens asinhronas vai pulsējošas pretuzonas ķēdes trūkums ir ierobežots ātrums. Lai gan visas vārtu ķēdes ir ierobežotas maksimālās signāla frekvences ziņā, asinhronās pretgaismas shēmas konstrukcija savieno šo problēmu, padarot pavairošanas kavējumus saistošu. Tādējādi pat tad, ja uztvērējā tiek izmantota strobēšana, asinhronā skaitītāja ķēde nevar tikt sakārtota jebkurā frekvencē, kas ir augstāka par to, kas ļauj iespējami lielākai uzkrāto pavairošanas kavēšanos labi iziet pirms nākamā impulsa.

Šīs problēmas risinājums ir counter circuit, kas pavisam izvairās no ripple. Šāda skaitītāju shēma novērstu vajadzību izstrādāt "strobing" funkciju visās digitālajās shēmās, kas izmanto ieejas skaitītāju, un arī baudīt daudz lielāku darbības ātrumu nekā tā asinhronais ekvivalents. Šī skaitītāju shēmas konstrukcija ir nākamās sadaļas priekšmets.

  • PĀRSKATS:
  • "Uz augšu" skaitītāju var izveidot, pieslēdzot pozitīvo malu aktivizēto JK spraudkontaktu pulksteņa ieejām uz iepriekšējo spiedpogu Q 'izejām. Vēl viens veids ir izmantot negatīvās malas iedarbinātos flip-flops, savienojot pulksteņa ieejas ar iepriekšējo flip-flop Q izejām. Jebkurā gadījumā visu spiedpogu J un K ieejas ir savienotas ar V cc vai V dd, lai vienmēr būtu "augsta".
  • Kontroles ķēdes, kas izgatavotas no kaskādētajiem JK flip-flops, kur katra pulksteņa ieeja saņem savus impulsus no iepriekšējā flip-flop izejas, vienmēr izraisa pulsējošu efektu, ja starp dažiem skaitīšanas secības posmiem tiek ģenerēti nepatiesi rezultāti. Šāda veida pretgaismas ķēdes tiek sauktas par asinhronajiem skaitītājiem vai pulsācijas skaitītājiem .
  • Strobēšana ir metode, kas tiek lietota shēmām, kuras saņem asinhrono (ripple) skaitītāju izeju, lai neveiksmīgi netiktu ietekmēti nepatiesi skaitļi, kas iegūti pulsācijas laikā. Būtībā šādas ķēdes ievades iespējošana ir savienota ar skaitītāja pulksteņa impulsu tā, ka tā ir iespējota tikai tad, kad skaitītāja izejas nemainās, un tiek atspējotas tajos periodos, kad mainās skaitītāju izejas, kur notiek pulsācija.