Бројач

С Википедије, слободне енциклопедије

Бројачи су секвенцијалне мреже чији дијаграми стања представљају репетитивни циклус. Број различитих стања у циклусу се назива модуо, или основа бројача. Бројач са m стања је бројач модула m. Кружни бројачи, синтетизовани коришћењем померачких регистара, могу се, генерално, сврстати у ову класу мрежа. Као меморијски елемент у бројачима се користе флипфлопови. Бројач са n флипфлопова, ако има 2n стања која се мењају у секвенци бинарних бројева, називају се n-битни бројачи или бинарни бројачи модула m=2n. Ако се сви флипфлопови у бројачу тактирају заједничким тактним импулсом, такви бројачи се називају синхрони. Ако тактни импулс није заједнички за све флипфлопове, бројач је асинхрони.

Као компоненте дигиталних система користе се и бројачи који кодују опадајући низ бинарних бројева (бројачи уназад - down counters), и бројачи који, зависно од изабраног режима рада, могу да кодују растући или опадајући низ бинарних бројева. Ови последњи називају се обострани бројачи (up-down counters). Бројачи уназад и обострани бројачи могу бити синтетизовани као асинхрони бројачи или као синхрони бројачи, међутим у пракси се искључиво користе синхрони бројачи. Бројач уназад треба након сваког тактног импулса да декрементира садржај, односно, следеће стање бројача треба да буде бинарни код за 1 мањи од затеченог стања. Код бројача са паралелним уписом, упис омогућава да се у бројач, пре почетка бројања, асинхроним сигналом LOAD, упише иницијални садржај од кога ће бројач почети да броји. Код бројача постоји и излазни сигнал CARRY, који служи за каскадно везивање више бројача.

Врсте бројача[уреди | уреди извор]

У електроници, бројачи се могу врло лако имплементирати користећи флип флопове као регистарска кола. Можемо разликовати:

  • Асинхроне (ripple) бројаче - промена стања битова се користи као такт за накнадно стање флип флопова
  • Синхроне бројаче - стања свих битова се мењају контролисањем једног такта
  • Декадне бројаче - броји десет стања по степену
  • Обостране бројаче - контролним тактом, подешава се хоће ли бројати унапред или уназад
  • Кружне бројаче - формирани помоћу померачких регистра са повратном везом (у облику прстена)
  • Џонсонов бројач - укрштен прстенасти бројач
  • Каскадни бројач
  • Модул бројач

Сваки од ових је користан у одређеним пословима. Обично, бројачка кола су дигитална по природи, и као резултат имају бинарну представу природних бројева. Многе врсте бројачких кола су доступна као дигитални блокови, на пример број чипова у серији 4000 имплементира различите бројаче.

Повремено, постоје предности коришћења других секвенци бројања (не само природне бинарне секвенце), као што су бинарно кодиран децимални бројач, померачки регистар са повратном спрегом, или бројач у Грејовом коду.

Бројачи су корисни за дигиталне сатове и тајмере, ВЦР сатове, итд..

Овај бројач ће се повећавати за један у једном циклусу и трајаће два циклуса до прекорачења. За сваки циклус ће битови наизменично прелазити са 0 на 1 и обрнуто са 1 на 0. Обратите пажњу да је ово ствара нови сат са 50% радног циклуса на тачно пола фреквенције улазног такта. Овај излаз се потом користи као тактни сигнала за слично уређен Д флип-флоп Један ће добити бројач већи за један бит који броји дупло спорије. Спајање даје двобитни бројач:

Cycle Q1 Q0 (Q1:Q0)dec
0 0 0 0
1 0 1 1
2 1 0 2
3 1 1 3
4 0 0 0

Можете да наставите да додајете флип-флопове, и увек преокренути излаз спајате на сопствени улаз улаз, и користите излаз од претходног флип-флоп као тактни сигнала. Резултат се зове ланчани броја.

Синхрони бројач[уреди | уреди извор]

Четворобитни бројач имплементиран помоћу ЈК флип-флопова

Код синхроних бројача, улазни такт се доводи на улаз свих флип-флопова истовремено. Дакле, сви флип-флопови мењају стања истовремено (паралелно). Коло са десне стране представља четворобитно синхронизовани бројач. Ј и К улази првог флип-флопа су повезани на јединицу. Други флип-флоп има Ј и К улазе повезане са излазом претходног флип-флопа, а Ј и К улази трећег флип-флопа су повезани са излазом првог и другог флип-флопа преко И кола. Једноставан начин да имплементирате логику сваког бита овог растућег бројача, је да сваки бит прелази на логичко стање јединице када су сви нижи битови од њега у стању логичке јединице. На пример, први бит мења стање када се нулти бит налази у стању логичке јединице; други бит мења стање када су оба бита, бит на позицији 0 и бит на позицији један, у стању логичке јединице; трећи бит мења стање уколико су сви битови, на позицији 0,1,2 у стању логичке јединице, и тако даље...

Синхронизовани бројачи се могу имплементирати са хардвером коначних аутомата, који су све комплекснији али омогућавају једноставније и стабилније прелазе.

Хардверски бројачи су овог типа.

Декадни бројач[уреди | уреди извор]

Дијаграм кола Декадног бројача реализованог са ЈК флип-флоповима (74LS112D)

Децимални бројач је један од оних који има 10 стања и броји у децималним цифрама. Декадни бројач има десет стања која могу бити бинарно кодована(дакле свако његово стање може бити кодовано у децималну цифру, као што то чини интегрисаноколо серије 7400) или у неки други бинарни код. Декадни бројач је бројач који је дизајниран тако да може бројати до 1010b(децимално 10). Реализација декадног бројача је врло једноставна, један четворобитни бројач се може врло лако трансформисати да буде декадни бројач, додавањем само једног НИ кола. Имплементација је приказана на слици с десне стране. Приметимо да су излази FF2 и FF4 доведени као улаз у НИ коло. Излаз НИ кола доцеден је на CLR улаз сваког флипфлопа.

Декадни бројач броји у децималним цифрама. Креће од нуле и броји до девет, а затим се ресетује на нулу. Излаз бројача може бити ресетован довођењем ниског сигнала на линију за ресетовање. Бројач инкрементује стање све до 1001 (децимално 9). Када се стање инкрементује на 1010 на оба улаза у НИ коло дођу логичке јединице, на излату НИ кола добијамо логичку нулу. Како је излаз доведен на ресет сигнал сваког флипфлопа, стање се врача на 0.

Обострани бројач[уреди | уреди извор]

Бројач који може да промени стање у оба смера, односно, који можемо да контролишемо да ли броји унапред или уназад називамо још и обострани бројач или up/down бројач. Када се селектује стање нагоре, бројач инкрементује вредност. Када се селектује стање надоле, бројач декрементује вредност.

Кружни бројач[уреди | уреди извор]

Кружни (ring) бројач је кружни померачки регистар који када је покренут има само на излазу једног флипфлопа логичко стање јединице, а на свим осталима логичко стање нуле.

Кружни бројач је померачки регистар (каскадна веза флипфлопова) чији је излаз последњег флипфлопа повезан са улазом првог, односно, у круг. Типично, један бит се креће кроз сваки флип флоп и у сваком n-том тренутку се налази на одређеном флипфлопу, уколико их укупно има n. Може се користити као кружни бројач n стања.

Џонсонов бројач[уреди | уреди извор]

Џонсонов бројач (или укрштени кружни бројач, шетајући кружни бројач, Моебиусов бројач) је модификовани кружни бројач, где је излаз последњег флипфлопа инвертован и враћен на улаз првог. Регистар пролази кроз низ битовних образаца чија је дужина једнака двострукој дужини померачког регистра и наставља се неодређено време. Ови бројачи проналазе велику промену, декадном бројачу, ДА конверзији итд. Ови бројачи могу бити лако имплементирани користећи Д- или ЈК флипфлопове.

Рачунарски бројачи[уреди | уреди извор]

У рачунарству, програмски бројач (код неких рачунара се назива још и показивач на инструкцију) се односи на регистар у процесору који означава где се у поступку извршења низа команди налази рачунар. У зависности од архитектуре рачунара, садржи или адресу инструкције која се извршава, или адресу следеће инструкције. Програмски бројач се аутоматски инкрементира за сваки циклус инструкције, тако да се адресе инструкција у меморију смештају секвенцијално. Неке инструкције, као што су инструкције скока (условног или безусловног) и скока на потпрограм прекидају секвенцу и мењају вредност програмског бројача. У случају скока на потпрограм, вредност бројача се чува на стеку, да би се по повратку у главни програм та вредност са стека вратила у програмски бројач.

Веб бројач[уреди | уреди извор]

Веб бројач (енгл. Web counter) је рачунарски програм који указује на број посетилаца одређене стране. Једном сетован, овај бројач се инкрементује сваки пут када неко приступи одређеној страни помоћу претраживача.

Механички бројачи[уреди | уреди извор]

Механички бројач
Неколико механичких бројача

Много пре него што се развила електроника, за бројање догађаја коришћени су механички уређаји, Они се обично састоје од низа дискова постављених на истој основи са означеним цифрама од 0 до 9 на његовом рубу. Сваки диск, осим првог с десне стране, је повезан са диском иза себе. Након једног пуног обртаја диска, диск испред њега увећава вредност (то важи за целу хијерахију). Овакви борјачи су првобито коришћени за контролу процеса производње, али касније су нашчи примене као бројчаници за бицикле, аутомобиле, бензинске пумпе итд. Један од највећих произвођача је Veeder-Root компанија, а њихово име је често коришћено за ову врсту бројача.

Бројачи на бази рачунара[уреди | уреди извор]

Многи аутоматизовани системи користе рачунар или лаптоп за праћење различитих параметара машина и производних података. Бројачи могу рачунати параметре као што су број произведених комада, мерења количине утрошеног материјала итд, па су стога веома корисни у индустрији

Литература[уреди | уреди извор]

  • Georges Ifrah. The Universal History of Numbers : From Prehistory to the Invention of the Computer, Wiley. 1999. ISBN 978-0-471-37568-5..
  • D. Knuth. The Art of Computer Programming. Volume 2, 3rd Ed. Addison–Wesley. pp. 194-213, "Positional Number Systems".
  • A. L. Kroeber (Alfred Louis Kroeber) (1876–1960), Handbook of the Indians of California, Bulletin 78 of the Bureau of American Ethnology of the Smithsonian Institution (1919)
  • J.P. Mallory and D.Q. Adams, Encyclopedia of Indo-European Culture, Fitzroy Dearborn Publishers, London and Chicago, 1997.
  • Nissen, Hans J.; P. Damerow; R. Englund (1993). Archaic Bookkeeping. University of Chicago Press. ISBN 978-0-226-58659-5. 
  • Denise Schmandt-Besserat (1992). How Writing Came About. University of Texas Press. ISBN 978-0-292-77704-0. 
  • Zaslavsky, Claudia (1999). Africa Counts: Number and Pattern in African Cultures. Lawrence Hill Books. ISBN 978-1-55652-350-2.