1-mavzu Raqamli texnikaning asosiy prinsipi




Download 406 Kb.
Sana19.09.2023
Hajmi406 Kb.
#82716
Bog'liq
Gidravlik 8-LJ., Sanjar, 163550774413239937, 1 кисм тарих, MONOGRAFIYA, Практика Кунделик ТЖА КК, 6-Ma\'ruza, 4-maruza, 2 5231167714378131103, Fanlar majmuasi 2023-24, tabiatning-sog-lomlashtiruvchi-kuchlari-va-gigiyenik-omillar, 1-laboratoriya ishi, CSS darslari 71f5cde2cc46d03f58a1e5132d2d38ba, Yoshlar maʼnaviy dunyosining shakllanishi

1-mavzu Raqamli texnikaning asosiy prinsipi.

Raqamli texnologiyaning asosiy printsipi ikkilik raqamlar yoki bitlar yordamida ma'lumotlarni taqdim etish va manipulyatsiya qilishdir. Raqamli texnologiyada axborot ikkilik shaklda ifodalanadi va qayta ishlanadi, har bir bit 0 yoki 1 ga teng.


Raqamli texnologiyaning analog texnologiyalardan asosiy ustunligi yuqori aniqlik va ishonchlilik bilan ma'lumotlarni qayta ishlash, saqlash va uzatish qobiliyatidir. Raqamli signallar uzoq masofalarga buzilishsiz uzatilishi mumkin va ular raqamli sxemalar va tizimlar tomonidan osonlik bilan qayta ishlanishi mumkin.


Raqamli tizimlarda ma'lumotlar eshiklar kabi raqamli sxemalar tomonidan bajariladigan VA, OR va EMAS kabi mantiqiy operatsiyalar yordamida qayta ishlanadi. Raqamli sxemalar mikroprotsessorlar, xotira qurilmalari va raqamli aloqa tizimlari kabi murakkabroq tizimlarni yaratish uchun birlashtirilishi mumkin.


Raqamli texnologiyaning yana bir muhim jihati algoritmlardan foydalanish bo‘lib, ular ma’lumotlarni muayyan usulda qayta ishlashni tavsiflovchi ko‘rsatmalar to‘plamidir. Algoritmlar kompyuter dasturlari kabi dasturiy ta'minotda yoki raqamli sxemalar kabi apparat vositalarida amalga oshirilishi mumkin.


Xulosa qilib aytadigan bo'lsak, raqamli texnologiyaning asosiy printsipi - aniqlik, ishonchlilik va ma'lumotlarni samarali qayta ishlash va uzatishga e'tibor qaratgan holda, ikkilik raqamlardan foydalangan holda ma'lumotlarni taqdim etish va manipulyatsiya qilish.
Tanlash chiziqlari MUX ning ishlashini boshqaruvchi ikkilik signallardir. Ular manzil satrlari vazifasini bajarib, qaysi ma'lumotlar kiritilishi chiqishga uzatilishini belgilaydi. Tanlash chiziqlari ma'lum bir holatda bo'lganda, ular ma'lumotlar kiritishlaridan birini tanlaydi va bu kirish chiqishga uzatiladi.\
Ha, bu to'g'ri! Tanlash satrlari ma'lumotlar kirishlaridan qaysi biri multipleksorda chiqish liniyasiga uzatilishini aniqlash uchun ishlatiladi. Tanlash satrlari ikkilik "manzil" signallari sifatida ishlaydi, ma'lumotlar kirishlaridan qaysi biri chiqishga uzatilishi kerakligini belgilaydi.
Multiplekserdagi tanlash satrlari soni ma'lumotlar kiritish soniga to'g'ridan-to'g'ri proportsionaldir. Misol uchun, agar multipleksorda 2^n ma'lumot kiritish bo'lsa, unda n ta tanlash qatori bo'ladi.
Tanlash chiziqlarining ikkilik qiymatlari qaysi ma'lumotlar kiritilishi tanlanganligini va chiqishga uzatilishini aniqlaydi. Misol uchun, agar multipleksorda 2 ta tanlash chizig'i va 4 ma'lumot kiritish bo'lsa, tanlash chizig'i qiymatlarining har bir mumkin bo'lgan kombinatsiyasi 4 ma'lumot kiritishdan biriga mos keladi. Agar tanlash satrlari 00 ga o'rnatilgan bo'lsa, birinchi ma'lumotlar kiritish chiqishga uzatiladi. Agar ular 01 ga o'rnatilgan bo'lsa, ikkinchi ma'lumot kiritish chiqishga uzatiladi va hokazo.
Shunday qilib, multipleksor tanlash liniyalarining holatidan kelib chiqib, bir nechta signallarni bitta aloqa liniyasi yoki kanali orqali uzatish imkonini beradi.
Bundan tashqari, raqamli texnologiyalar hayotimizning ko'plab sohalariga, aloqa va o'yin-kulgidan sog'liqni saqlash va transportgacha katta ta'sir ko'rsatdi. Misol uchun, raqamli texnologiya internet, ijtimoiy media va lahzali xabar almashishning keng qo'llanilishi bilan muloqot qilish uslubimizni inqilob qildi.
O'yin-kulgida raqamli texnologiyalar video o'yinlar va striming xizmatlari kabi ommaviy axborot vositalarining yangi shakllarini rivojlanishiga olib keldi. Bu, shuningdek, musiqa, filmlar va televizorlarni iste'mol qilish va his qilish uslubimizni o'zgartirdi.
Sog'liqni saqlash sohasida raqamli texnologiya katta hajmdagi tibbiy ma'lumotlar va ma'lumotlarni saqlash va ulardan foydalanish imkonini berdi, bu esa bemorlarning natijalarini yaxshilashga va samaraliroq davolanishga olib keldi. Shuningdek, u teletibbiyot va masofaviy monitoringni yo'lga qo'ydi, bu esa bemorlarga o'z uylarida qulay sharoitda yordam ko'rsatish imkonini beradi.
Nihoyat, raqamli texnologiya transportning ko‘plab jihatlarini, jumladan, o‘zi boshqariladigan transport vositalarini rivojlantirish va raqamli tizimlarni transport infratuzilmasiga integratsiyalashuvini o‘zgartirib, xavfsizlik va samaradorlikni oshirishga olib keldi.

Umuman olganda, raqamli texnologiya bizning dunyomizga chuqur ta'sir ko'rsatdi va bizning yashash, ishlash va bir-birimiz bilan o'zaro munosabatimizni shakllantirishda davom etmoqda.


Xulosa qilib aytadigan bo'lsak, multipleksor raqamli sxema bo'lib, u tanlash liniyalari holatiga qarab ma'lumotlarni tanlashni amalga oshiradi va uning chiqishi tanlangan ma'lumotlarni kiritish hisoblanadi.
Bundan tashqari, raqamli texnologiyalar sohasidagi yutuqlar ta'lim va o'rganishga ham sezilarli ta'sir ko'rsatdi. Internetning keng tarqalganligi tufayli talabalar endi katta hajmdagi axborot va ta'lim resurslaridan foydalanish imkoniyatiga ega bo'lib, ularga o'z tezligida va dunyoning istalgan nuqtasidan o'rganish imkonini beradi.

Onlayn ta'lim platformalari va elektron kitoblar ham ta'lim berish usulini o'zgartirib, uni talabalar uchun yanada qulayroq va qulayroq qildi. Raqamli texnologiya, shuningdek, talabalarga jismoniy joylashuvidan qat'i nazar, bir-biri bilan hamkorlik qilish va muloqot qilish imkonini berdi va bu ularning o'rganish tajribasini yanada oshirdi.


Tadqiqot va ishlanmalar sohasida raqamli texnologiyalar ilmiy kashfiyotlar tezligi va samaradorligiga katta ta'sir ko'rsatdi. Ilg'or hisoblash vositalari va simulyatsiyalar yordamida tadqiqotchilar murakkab hisob-kitoblar va simulyatsiyalarni amalga oshirishlari mumkin, bu esa keng doiradagi yangi yutuqlar va innovatsiyalarga olib keladi.


Va nihoyat, raqamli texnologiyalar iqtisodiyotga ham sezilarli ta'sir ko'rsatdi, raqamli iqtisodiyotning yuksalishi va elektron tijorat, raqamli reklama va bulutli hisoblash kabi sohalarning o'sishi. Bu yangi ish o‘rinlari va biznes imkoniyatlarini yaratdi, kompaniyalarga global bozorlar va mijozlarga yanada samarali kirish imkonini berdi.


Xulosa qilib aytadigan bo'lsak, raqamli texnologiyalardagi yutuqlar hayotimizning ko'plab sohalarida keng qamrovli va chuqur ta'sir ko'rsatdi va kelajakda uning ta'siri o'sishda davom etadi.


2-mavzu Sanoq sistemasi va uni o‘zgartirish usullari.

Raqamlar tizimi - bu raqamlar kabi belgilar to'plamidan foydalangan holda raqamlarni ifodalash usuli. Zamonaviy kompyuterlar va raqamli tizimlarda ishlatiladigan eng keng tarqalgan raqamli tizim ikkilik tizim bo'lib, raqamlarni ifodalash uchun faqat ikkita 0 va 1 belgilardan foydalanadi.


Boshqa keng tarqalgan raqamli tizimlarga o'nta belgidan (0 dan 9 gacha) o'nlik tizim, sakkiz belgidan (0 dan 7 gacha) sakkizlik tizim va o'n oltita belgidan (0 dan 9 gacha va A dan F gacha) o'n oltilik tizim kiradi. ).


Bir raqamli tizimdan ikkinchisiga o'tish uchun asosiy konvertatsiya deb ataladigan matematik jarayon qo'llaniladi. Masalan, ikkilik sonni o'nlik songa aylantirish uchun ikkilik sondagi har bir raqam eng o'ngdagi raqamdan boshlab o'z pozitsiyasining darajasiga ko'tarilib, 2 ga ko'paytiriladi. Ushbu mahsulotlarning yig'indisi ekvivalent o'nlik sonni beradi.


O'nlik sonni ikkilik songa o'tkazish uchun o'nlik son qayta-qayta 2 ga bo'linadi va qolganlari teskari tartibda yoziladi. Qoldiqlar ketma-ketligi ekvivalent ikkilik sonni beradi.


Shunga o'xshab, boshqa raqamli tizimlar o'rtasida o'zgartirish uchun raqamli tizimning asosiga bo'linish va ko'paytirishning bir xil jarayonidan foydalanish mumkin. Yagona farq - bu hisob-kitobda ishlatiladigan asos bo'lib, u qo'llaniladigan raqamli tizim bilan belgilanadi.

Xulosa qilib aytadigan bo'lsak, raqamli tizimlar raqamlarni belgilar to'plamidan foydalangan holda ifodalash usuli bo'lib, bazaviy konvertatsiya bir raqamli tizimdan ikkinchisiga o'tish uchun ishlatiladigan matematik jarayondir.


Asosiy konversiyadan tashqari, qidiruv jadvallari va konversiya algoritmlari yordamida raqamli tizimlar oʻrtasida konvertatsiya qilish ham mumkin. Misol uchun, qidiruv jadvali boshqa raqamli tizimdagi raqamning ekvivalent o'nli, ikkilik, sakkizlik yoki o'n oltilik ko'rinishini tezda topish uchun ishlatilishi mumkin.

O'zgartirish algoritmlari esa raqamli tizimlar o'rtasida konvertatsiya qilish uchun matematik operatsiyalardan foydalanadi. Masalan, o‘nlik sonni qayta-qayta 2 ga bo‘lish va qoldiqlarni ikkilik ko‘rinishda saqlash yo‘li bilan o‘nlik sonni ikkilikka aylantirish uchun algoritmdan foydalanish mumkin.


Aytish joizki, raqamli tizimlar turli sohalarda, jumladan, informatika, elektrotexnika va matematikada qo‘llaniladi. Ushbu sohalarda hisob-kitoblarni amalga oshirish, raqamli qurilmalar bilan bog'lanish yoki ma'lumotlarni saqlash va qayta ishlash uchun ko'pincha turli raqamli tizimlar o'rtasida konvertatsiya qilish kerak bo'ladi.


Turli raqamli tizimlar o'rtasida konvertatsiya qilish qobiliyati ko'plab sohalarda muhim mahoratdir va keng ko'lamli ilovalar uchun foydalidir. Qidiruv jadvallari, konversiya algoritmlari yoki asosiy konversiyadan foydalanishdan qat'i nazar, bu raqamli tizimlar va texnologiyalar bilan ishlaydigan har bir kishi uchun muhim vositadir.


Bundan tashqari, ma'lum bir raqamli tizimda ifodalanishi mumkin bo'lgan raqamlar oralig'ini hisobga olish ham muhimdir. Raqamli tizimdagi belgilar soni ifodalanishi mumkin bo'lgan raqamlar oralig'ini belgilaydi. Masalan, ikkilik tizimda faqat ikkita belgi ishlatiladi, shuning uchun 8 bit (1 bayt) bilan ifodalanishi mumkin bo'lgan eng katta son o'nlik kasrda 255 ga teng. O'nlik sistemada 10 ta belgidan foydalaniladi, shuning uchun ifodalanishi mumkin bo'lgan raqamlar diapazoni ancha katta.

Kompyuter xotirasi yoki raqamli signalni qayta ishlash kabi ba'zi ilovalarda ma'lum bir raqamli tizimda ifodalanishi mumkin bo'lgan raqamlar oralig'ini, shuningdek tasvirning aniqligi va aniqligini hisobga olish muhimdir. Bunday hollarda raqamlarni to'g'ri va aniq ifodalash uchun o'n oltilik yoki o'nlik kabi kattaroq raqamli tizimdan foydalanish kerak bo'lishi mumkin.


Va nihoyat, shuni ham ta'kidlash joizki, raqamli tizimlar faqat raqamlarni ifodalash bilan cheklanmaydi. Ular, shuningdek, ASCII yoki Unicode kodlash kabi usullardan foydalangan holda harflar, belgilar va tasvirlar kabi ma'lumotlarning boshqa shakllarini ifodalash uchun ham ishlatilishi mumkin.


Xulosa qilib aytganda, raqamli tizimlar raqamli texnologiya va hisoblashda asosiy rol o'ynaydi. Turli raqamli tizimlarni va ular o'rtasida konvertatsiya qilish usullarini tushunish raqamli tizimlar bilan ishlaydigan har bir kishi va kompyuter fanlari va texnologiyasiga qiziqqan har bir kishi uchun juda muhimdir.


3- Mavzu Sonlarni bir sanoq sistemasidan boshqasiga o‘zgartirish.

Raqamlarni bir raqamli tizimdan ikkinchisiga o'tkazish uchun siz asosiy o'zgartirish usulidan foydalanishingiz mumkin. Raqamni bir raqamli tizimdan ikkinchisiga qanday o'zgartirish mumkin:


Raqamni asl sanoq sistemasida yozing.


Har bir raqamni eng o'ngdagi raqamdan boshlab o'z pozitsiyasining kuchiga ko'tarilgan bazaga ko'paytirish orqali sonni o'nli kasrga aylantiring.
2-bosqichda olingan o'nlik sonni maqsadli raqamli tizimga o'nlik sonni maqsadli raqamli tizimning asosiga bo'lish va qoldiqlarni teskari tartibda yozish orqali o'zgartiring.
Ikkilik sonni oʻnlik songa oʻtkazish misoli:

Ikkilik raqamni yozing: 1011


O'nli kasrga aylantirish: 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 8 + 2 + 1 = 11
1011 ikkilik sonining o'nlik ekvivalenti 11 ga teng.
Va bu erda o'nlik sonni ikkilik raqamga aylantirish misoli:

Kasr sonini yozing: 17


O'nlik sonni takroran 2 ga bo'ling va qoldiqlarni teskari tartibda yozing: 17/2 = 8 qoldiq 1, 8/2 = 4 qoldiq 0, 4/2 = 2 qoldiq 0, 2/2 = 1 qoldiq 0, 1 / 2 = 0 qoldiq 1
17 o'nlik sonining ikkilik ekvivalenti 10001 ga teng.
Raqamlarni istalgan raqamli tizimdan boshqa raqamli tizimga aylantirish uchun ushbu asosiy konvertatsiya usulidan foydalanishingiz mumkin. Har bir raqamli tizim uchun to'g'ri bazadan foydalanganingizga ishonch hosil qiling.
Turli raqamli tizimlar orasidagi raqamlarni o‘zgartirish uchun “Bo‘l va zabt et” algoritmi kabi konversiya algoritmlaridan ham foydalanish mumkin. Bo'l va zabt et algoritmi aylantirilishi kerak bo'lgan sonni maqsadli raqamli tizimning asosiga bo'lish va qolganlarni raqamni maqsadli raqamli tizim tasvirida raqamlar sifatida ishlatish yo'li bilan ishlaydi. Jarayon natija nolga teng bo'lguncha takrorlanadi.

Masalan, “Bo‘l va zabt et” algoritmi yordamida o‘nlik sonni ikkilik songa qanday o‘tkazish mumkin:


O'nlik sonni 2 ga bo'ling.


Bo'linishning qolgan qismini sonning ikkilik ko'rinishidagi eng o'ngdagi raqam sifatida yozing.
Natija nolga teng bo'lguncha, bo'linish jarayonini 1-bosqichdagi qism bilan takrorlang.
O'nlik sonning ikkilik ko'rinishini olish uchun 2-bosqichda olingan qoldiqlarni o'ngdan chapga o'qing.
Shuni ta'kidlash kerakki, raqamli tizimlar o'rtasida konvertatsiya qilish uchun ko'plab boshqa algoritmlar mavjud, ularning har biri o'zining kuchli va zaif tomonlariga ega. Asosiy konvertatsiya usuli va Bo'l va zabt et algoritmi turli raqamli tizimlar o'rtasida raqamlarni o'zgartirish uchun mavjud bo'lgan ko'plab texnikalarning ikkita misolidir.

Xulosa qilib aytadigan bo'lsak, raqamlarni raqamli tizimlar o'rtasida aylantirish raqamli texnologiya va hisoblashning asosiy vazifasidir. Asosiy konversiyadan, konversiya algoritmlaridan yoki boshqa texnikalardan foydalanishdan qat'i nazar, raqamli tizimlar va texnologiyalar bilan ishlash uchun mavjud bo'lgan turli usullarni va ulardan qanday samarali foydalanishni tushunish muhimdir.


Raqamlarni bir raqamli tizimdan boshqasiga o'tkazishda maqsadli raqamli tizim diapazonini hisobga olish ham muhimdir. Agar maqsadli raqamli tizim dastlabki raqamli tizimdan kichikroq diapazonga ega bo'lsa, u holda konvertatsiya paytida ba'zi ma'lumotlar yo'qolishi mumkin va natija aniq bo'lmasligi mumkin.

Misol uchun, 8 dan ortiq raqamli o'nlik sonni ikkilik raqamga o'tkazish ma'lumotlarning yo'qolishiga olib kelishi mumkin, chunki 8 xonali ikkilik son faqat o'nli kasrda 255 gacha bo'lgan sonlarni ifodalashi mumkin. Bunday hollarda raqamlarni to'g'ri ko'rsatish uchun o'n oltilik yoki o'nlik kabi kattaroq raqamli tizimdan foydalanish kerak bo'lishi mumkin.


Bundan tashqari, raqamli tizimlar o'rtasida konvertatsiya qilishda tasvirning aniqligi va aniqligini hisobga olish muhimdir. Ilovaga qarab, raqamni ma'lum darajada aniqlik bilan ifodalash kerak bo'lishi mumkin va konvertatsiya jarayonida yaxlitlash yoki kesish kerak bo'lishi mumkin.


Va nihoyat, raqamlarni raqamli tizimlar o'rtasida o'tkazishda vakillikning endianligini hisobga olish ham muhimdir. Endianness raqamning raqamlari xotirada saqlanadigan tartibni anglatadi va turli tizimlar turli endianness konventsiyalaridan foydalanishi mumkin. Raqamlarni raqamli tizimlar o'rtasida o'zgartirganda, aniq natijalarga erishish uchun endiannessning to'g'ri ishlashiga ishonch hosil qilish muhimdir.


Xulosa qilib aytadigan bo'lsak, raqamlarni raqamli tizimlar o'rtasida o'zgartirish raqamli texnologiya va hisoblashda muhim vazifa bo'lib, vakillikning diapazoni, aniqligi, aniqligi va endianligini diqqat bilan ko'rib chiqishni talab qiladi. Raqamli tizimlar va texnologiyalar bilan ishlaydigan har bir kishi uchun ushbu tushunchalarni tushunish va raqamlarni raqamli tizimlar o'rtasida qanday qilib samarali o'zgartirish kerak.


4- Mavzu EBCDIC, ASCII, BCD kodlari. ЕВСВIC, ASCII, BCD bo‘ycha kodlash


EBCDIC (Kengaytirilgan ikkilik kodli o'nlik almashinuv kodi) va ASCII (Axborot almashinuvi uchun Amerika standart kodi) hisoblashda matnni ifodalash uchun ishlatiladigan ikki xil belgilar kodlash sxemalari.

EBCDIC IBM tomonidan ishlab chiqilgan va asosiy kompyuterlar va IBM mos tizimlarida keng qo'llanilgan. Belgini ifodalash uchun u 8 bitdan foydalanadi va harflar, raqamlar, tinish belgilari va boshqaruv belgilarini o'z ichiga olgan 256 tagacha belgini ifodalashi mumkin.


Boshqa tomondan, ASCII 7-bitli belgilar kodlash sxemasi bo'lib, u 128 tagacha belgilarni, jumladan, harflar, raqamlar, tinish belgilari va boshqaruv belgilarini ifodalashi mumkin. ASCII belgilarni kodlashning eng keng tarqalgan sxemasi bo'lib, ko'pchilik shaxsiy kompyuterlar va boshqa ko'plab hisoblash tizimlari tomonidan qo'llaniladi.


BCD (Binary Coded Decimal) - o'nlik sonlarni ikkilik shaklda ifodalash uchun ishlatiladigan raqamli kodlash sxemasi. BCD har bir o'nli raqamni ifodalash uchun to'rt bitdan foydalanadi, bu 9999 gacha bo'lgan o'nlik sonlarni ko'rsatishga imkon beradi. BCD kodlash odatda raqamli mantiqiy sxemalar va kompyuter tizimlarida o'nli sonlarni ixcham va samarali tarzda ifodalash uchun ishlatiladi.


Xulosa qilib aytganda, EBCDIC, ASCII va BCD hisoblashda qo'llaniladigan turli xil kodlash sxemalari bo'lib, ularning har biri o'ziga xos foydalanish va afzalliklarga ega. EBCDIC asosiy kompyuterlarda belgilarni ko'rsatish uchun ishlatiladi, ASCII eng ko'p ishlatiladigan belgilar kodlash sxemasi va BCD o'nli sonlarni ikkilik shaklda ifodalash uchun ishlatiladi.


Shuni ta'kidlash kerakki, BCD o'nlik sonlarni ifodalash uchun samarali bo'lsa-da, u sof ikkilik vakillik kabi samarali emas. Buning sababi shundaki, BCD har bir o'nli raqamni ifodalash uchun to'rt bitdan foydalanadi, ikkilik esa bir xil raqamni faqat uchta bit bilan ifodalashi mumkin. Biroq, BCD odamlar tomonidan oson o'qilishi va tushunarli bo'lishining afzalliklariga ega, chunki har bir BCD raqami to'g'ridan-to'g'ri o'nli raqamga to'g'ri keladi.

Xulosa qilib aytganda, EBCDIC, ASCII va BCD hisoblashda muhim kodlash sxemalari bo‘lib, ularning har biri o‘ziga xos foydalanish va afzalliklarga ega. Ushbu kodlash sxemalari o'rtasidagi farqlarni va ulardan qanday samarali foydalanishni tushunish raqamli tizimlar va texnologiyalar bilan ishlaydigan har bir kishi uchun juda muhimdir.


Ta'kidlash joizki, yana bir kodlash sxemasi - bu Unicode bo'lib, u dunyoning aksariyat yozuv tizimlarida ishlatiladigan belgilarni ifodalash uchun mo'ljallangan belgilar kodlash standartidir. Unicode 130 000 dan ortiq belgilarni qo'llab-quvvatlaydi va turli tillarda va madaniyatlarda qo'llaniladigan skriptlar va belgilarning keng doirasini ifodalashga qodir.


Unicode keng ko'lamli belgilar va skriptlarni qo'llab-quvvatlash qobiliyati tufayli ko'pchilik zamonaviy hisoblash tizimlarida standart belgilar kodlash sxemasi sifatida ASCII va EBCDIC ni almashtirdi. Unicode ko'plab zamonaviy operatsion tizimlarda, veb-brauzerlarda va dasturlash tillarida qo'llaniladi va zamonaviy hisoblash landshaftining muhim tarkibiy qismidir.


Xulosa qilib aytganda, belgilarni kodlash hisoblashning muhim jihati bo'lib, turli xil kodlash sxemalarini va ulardan foydalanish holatlarini tushunish raqamli tizimlar va texnologiyalar bilan ishlaydigan har bir kishi uchun juda muhimdir. EBCDIC, ASCII, BCD yoki Unicode bilan ishlashdan qat'i nazar, aniq va samarali natijalarga erishish uchun ushbu kodlash sxemalari qanday ishlashini va ulardan qanday samarali foydalanishni yaxshi tushunish muhimdir.


Shuni ham ta'kidlash kerakki, BCD kodlashning turli xil versiyalari mavjud, ular orasida 8421 BCD, 2421 BCD va ortiqcha-3 BCD mavjud. BCD kodlashning ushbu turli versiyalari o'nlik sonlarni ifodalash usulida farqlanadi, ammo ularning barchasi har bir o'nli raqamni ifodalash uchun ma'lum ikkilik naqshdan foydalanishning asosiy printsipiga ega.

8421 BCD kodlashda har bir o'nli raqam noyob to'rt bitli ikkilik naqsh bilan ifodalanadi, eng muhim bit 8 qiymatini va eng muhim bit 1 qiymatini ifodalaydi.


2421 BCD kodlashda har bir o'nlik raqam uch bitli ikkilik naqsh bilan ifodalanadi, eng muhim bit 4 qiymatini va eng muhim bit 1 qiymatini ifodalaydi.


Haddan tashqari 3 BCD kodlash 8421 BCD ga o'xshaydi, lekin har bir ikkilik naqsh uchtaga ofset qilinadi, shuning uchun 0 raqami uchun ikkilik naqsh aslida 3 raqami uchun ikkilik naqshdir.


Xulosa qilib aytadigan bo'lsak, BCD kodlashning turli versiyalarini tushunish va ular o'rtasida qanday konvertatsiya qilish BCD kodlashdan foydalanadigan raqamli tizimlar va texnologiyalar bilan ishlaydigan har bir kishi uchun muhimdir. BCD kodlashning har bir versiyasi o'zining afzalliklari va kamchiliklariga ega va foydalanish uchun to'g'ri versiyani tanlash vazifaning o'ziga xos talablariga bog'liq.


BCD kodlashning turli versiyalariga qo'shimcha ravishda, har birining o'ziga xos foydalanish holatlariga ega bo'lgan har xil turdagi multipleksorlar va de-multiplekserlar mavjudligini ham ta'kidlash kerak. Masalan, ma'lumotlar multipleksorlari va manzilli multipleksorlar, shuningdek, ma'lumotlarning ko'p qirrali va manzilli ko'paytirgichlari mavjud.


Ma'lumotlar multipleksorlari bir nechta ma'lumotlar oqimini bitta chiqish oqimiga birlashtirish uchun ishlatiladi, ma'lumotlar de-multipleksatorlari esa bitta ma'lumot oqimini bir nechta chiqish oqimlariga ajratish uchun ishlatiladi. Manzil multipleksorlari va manzil de-multipleksatorlari raqamli tizimdagi ma'lum manzillarga va undan signallarni yo'naltirish uchun ishlatiladi.


Multipleksorning yana bir muhim turi vaqtga bo'linadigan multipleksor bo'lib, u har bir oqimga ma'lum vaqt oralig'ini ajratish orqali bir nechta ma'lumotlar oqimini bitta kanal orqali uzatish uchun ishlatiladi. Bu bir nechta ma'lumotlar oqimini bitta kanalni almashish imkonini beradi va ma'lum miqdordagi ma'lumotlar oqimi uchun zarur bo'lgan kanallar sonini kamaytiradi.


Xulosa qilib aytadigan bo'lsak, har xil turdagi multipleksorlar va de-multiplekserlarni tushunish va ulardan qanday samarali foydalanish raqamli tizimlar va texnologiyalar bilan ishlaydigan har bir kishi uchun muhimdir. Ma'lumotlar multipleksorlari, manzillar ko'paytirgichlari yoki vaqtga bo'linadigan multipleksorlar bilan ishlashdan qat'i nazar, aniq va samarali natijalarga erishish uchun turli xil turlari va ulardan foydalanish holatlari haqida yaxshi tushunchaga ega bo'lish muhimdir.


5-Mavzu: ASCII, BCD kodlari yordamida kodlash

ASCII (Axborot almashish uchun Amerika standart kodi) va BCD (ikkilik kodli o'nlik) raqamli tizimda ma'lumotlarni taqdim etishning ikki xil usulidir.


ASCII - standart ASCII belgilar to'plamidagi har bir belgini ifodalash uchun 7 bitli ikkilik koddan foydalanadigan belgilar kodlash sxemasi. ASCII belgilar to'plami harflar, raqamlar va maxsus belgilarni o'z ichiga olgan bir qator belgilarni o'z ichiga oladi va har bir belgi noyob ikkilik kod bilan ifodalanadi. Masalan, “A” harfi ikkilik kod 1000001, “3” raqami esa 0011 ikkilik kod bilan ifodalanadi.


Boshqa tomondan, BCD har bir o'nli raqamni ko'rsatish uchun 4 bitli ikkilik koddan foydalanadigan o'nlik sanoqli kodlash sxemasidir. BCD o'nlik sonlarni ifodalash uchun ishlatiladi va har bir o'nlik raqam noyob 4 bitli ikkilik kod bilan ifodalanadi. Masalan, “4” o’nlik soni 0100 ikkilik kod bilan, “9” o’nlik soni esa 1001 ikkilik kod bilan ifodalanadi.


O'nlik sonni BCD ga aylantirish uchun raqamning har bir o'nli raqami uning mos keladigan 4 bitli ikkilik kodi bilan ifodalanadi. Olingan ikkilik kod o'nlik sonning BCD ko'rinishidir. Masalan, "42" o'nlik soni BCD da 0100 0010 ikkilik kodi sifatida ifodalanadi.


Xulosa qilib aytganda, ASCII va BCD raqamli tizimlar va texnologiyalarda qo'llaniladigan muhim kodlash sxemalaridir. ASCII va BCD kodlari yordamida ma'lumotlarni qanday kodlash va dekodlashni tushunish raqamli tizimlar va texnologiyalar bilan ishlaydigan har bir kishi uchun juda muhim va aniq va samarali natijalarga erishish uchun ikkala kodlash sxemasini yaxshi tushunish muhimdir.


Shuni ta'kidlash kerakki, ASCII yanada moslashuvchan va keng qo'llaniladigan kodlash sxemasi bo'lsa-da, BCD hali ham ba'zi ilovalarda, xususan, xotira va ishlov berish quvvati cheklangan o'rnatilgan tizimlarda keng qo'llaniladi.


Misol uchun, BCD ko'pincha raqamli soatlar va kalkulyatorlarda, shuningdek, raqamli displeylarning ayrim turlarida qo'llaniladi, chunki u o'nlik sonlarning ixcham va samarali tasvirini ta'minlaydi. BCD shuningdek, tranzaktsiyalarni qayta ishlash uchun o'nlik sonlarning ixcham ko'rinishi talab qilinadigan ba'zi moliyaviy ilovalarda qo'llaniladi.


Biroq, raqamli tizimlar kuchliroq bo'lib, xotira arzonlashgani sababli, ASCII ko'plab ilovalarda dominant kodlash sxemasiga aylandi. Bu belgilar va belgilarning keng doirasi, shuningdek, zamonaviy kompyuter tizimlarining ko'pchiligi bilan mosligi bilan bog'liq.


Xulosa qilib aytadigan bo'lsak, BCD ma'lum ilovalarda qo'llanilsa-da, ASCII zamonaviy raqamli tizimlar va texnologiyalarda yanada moslashuvchan va keng qo'llaniladigan kodlash sxemasidir. Har bir kodlash sxemasining afzalliklari va kamchiliklarini tushunish va ularning har birini qachon ishlatishni bilish raqamli tizimlar va texnologiyalar bilan ishlaydigan har bir kishi uchun muhim mahoratdir.


Shuni ham ta'kidlash kerakki, BCD kodlashning bir nechta o'zgarishlari mavjud, jumladan 8421 BCD, 2421 BCD va Excess-3 BCD. Ushbu o'zgarishlarning har biri o'ziga xos xususiyatlarga va foydalanishga ega va muayyan dastur uchun eng yaxshi kodlash sxemasini tanlash uchun ular orasidagi farqlarni tushunish muhimdir.


Misol uchun, 8421 BCD BCD ning eng keng tarqalgan shakli bo'lib, o'nlik sonlar ikkilik shaklda ifodalanadigan ko'plab ilovalarda qo'llaniladi. 8421 BCD har bir o'nlik raqamni ifodalash uchun to'rt bitdan foydalanadi va har bir o'nlik raqam noyob ikkilik ko'rinishga ega.


2421 BCD esa har bir o'nlik raqamni ifodalash uchun faqat ikkita bitdan foydalanadi. Ushbu kodlash sxemasi xotira yoki ishlov berish quvvati cheklangan ilovalarda qo'llaniladi va har bir o'nli raqamni ifodalash uchun ishlatiladigan bitlarning kamayishi yanada samaraliroq kodlash imkonini beradi.


Ortiqcha-3 BCD BCD ning o'zgarishi bo'lib, uni kodlashdan oldin har bir o'nli raqamga 3 qo'shadi. Ushbu kodlash sxemasi ma'lumotlarni 0 dan 9 gacha ajratish kerak bo'lgan ilovalarda qo'llaniladi, chunki natijada olingan ikkilik kod hech qachon 0 dan 9 gacha bo'lgan ikkilik ko'rinishga o'xshamaydi.


Xulosa qilib aytadigan bo'lsak, BCD kodlashning turli shakllarini, jumladan 8421 BCD, 2421 BCD va Excess-3 BCD ni tushunish muayyan dastur uchun eng yaxshi kodlash sxemasini tanlash uchun muhimdir. Har bir kodlash sxemasining afzalliklari va kamchiliklarini, shuningdek ulardan foydalanishni bilish ma'lum bir vaziyat uchun to'g'ri kodlash sxemasidan foydalanishni ta'minlashga yordam beradi.


BCD va ASCII ga qo'shimcha ravishda raqamli texnologiyada qo'llaniladigan yana bir qancha kodlash sxemalari mavjud. Masalan, Unicode - bu juda ko'p turli tillar va skriptlardagi belgilar va belgilarning standartlashtirilgan ko'rinishini ta'minlovchi keng qo'llaniladigan kodlash sxemasi. Unicode turli platformalar va qurilmalarda matn toʻgʻri va izchil koʻrsatilishini taʼminlash uchun koʻplab ilovalarda, jumladan, veb, dasturiy taʼminot va kompyuter tizimlarida qoʻllaniladi.

6-Mavzu Mantiqiy algebra, mantiqiy matematik ifoda.Mantiqiy algebraniqullashAND, OR, NOT mantiqiy elementlarni o‘rganish


Matematik mantiq, ramziy mantiq yoki rasmiy mantiq deb ham ataladi, matematikaning fikrlash tuzilishi va tamoyillarini o'rganadigan bo'limidir. Matematik mantiqda gaplar ramziy tarzda ifodalanadi va gaplar orasidagi mantiqiy munosabatlar “va”, “yoki”, “yo‘q” kabi mantiqiy bog‘lovchilar yordamida o‘rnatiladi.


∧ belgisi bilan ifodalangan “va” bog‘lovchisi ikkita A va B mulohazalar orasidagi mantiqiy munosabatni ifodalash uchun ishlatiladi. Agar A va B gaplarning ikkalasi ham to‘g‘ri bo‘lsa, “A ∧ B” ifodasi ham to‘g‘ri bo‘ladi. Agar A yoki B (yoki ikkalasi) noto'g'ri bo'lsa, "A ∧ B" noto'g'ri.


∨ belgisi bilan ifodalangan “yoki” bog‘lovchisi ikkita A va B mulohazalari o‘rtasidagi mantiqiy munosabatni ifodalash uchun ishlatiladi. Agar A yoki B (yoki ikkalasi) bayonoti to‘g‘ri bo‘lsa, “A ∨ B” gapi ham to‘g‘ri bo‘ladi. . Agar A va B ham yolg'on bo'lsa, "A ∨ B" noto'g'ri.


¬ belgisi bilan ifodalangan “not” bog‘lovchisi gapning haqiqat qiymatini inkor etish uchun ishlatiladi. Agar A bayonoti to'g'ri bo'lsa, ¬A noto'g'ri. Agar A bayonot noto'g'ri bo'lsa, ¬A to'g'ri bo'ladi.


Matematik mantiqda bayonotlar va bayonotlar orasidagi mantiqiy munosabatlar haqiqat jadvallari yordamida ifodalanishi mumkin. Haqiqat jadvali bayonotlar to'plami uchun haqiqat qiymatlarining barcha mumkin bo'lgan kombinatsiyalarini sanab o'tadi va mantiqiy bog'lovchilar bilan ifodalangan bayonotning haqiqat qiymatini ko'rsatadi.


Xulosa qilib aytadigan bo'lsak, matematik mantiq - bu matematikaning fikrlash tuzilishi va tamoyillarini o'rganadigan bo'limi. U gaplar orasidagi mantiqiy munosabatlarni ifodalash uchun "va", "yoki" va "no" kabi mantiqiy bog'lovchilardan foydalanadi va haqiqat jadvallari mantiqiy bog'lovchilar bilan ifodalangan bayonotlarning haqiqat qiymatini ifodalash uchun ishlatiladi.


Bundan tashqari, matematik mantiq kompyuter fanining ko'plab sohalari, jumladan, nazariy kompyuter fanlari, dasturlash tillari va sun'iy intellektning asosidir. Matematik mantiqning tamoyillari va usullari dasturlash tillarining sintaksisi va semantikasini rasmiy tavsiflash, shuningdek, avtomatlashtirilgan fikrlash uchun algoritmlar va qaror qabul qilish tartiblarini ishlab chiqish uchun ishlatiladi.

Matematik mantiq rol o'ynaydigan yana bir muhim soha - bu rasmiy tillarni va avtomatlar nazariyasini o'rganishdir. Rasmiy tillar kompyuter dasturlari va boshqa matn turlarining sintaksisini aniq belgilash uchun vositani taqdim etadi. Avtomatlar nazariyasi, o‘z navbatida, kompilyatorlar, parserlar va boshqa dasturiy vositalarda qo‘llaniladigan rasmiy tillarni qayta ishlash algoritmlarini loyihalash va tahlil qilish uchun nazariy asos bo‘lib xizmat qiladi.


Xulosa qilib aytadigan bo'lsak, matematik mantiq kompyuter fanining asosiy tarkibiy qismi bo'lib, dasturlash tillari, sun'iy intellekt, rasmiy tillar va avtomatlar nazariyasi va boshqalar kabi sohalarda muhim rol o'ynaydi. Matematik mantiqning tamoyillari va usullari kompyuter dasturlari va boshqa matn turlarining sintaksisi, semantikasi va qayta ishlanishini rasman tavsiflash va tahlil qilish uchun ishlatiladi.


Matematik mantiq ham matematika asoslariga katta hissa qo'shganligini ham aytib o'tish joiz. Jumladan, matematik mantiq toʻplamlar nazariyasi va arifmetika asoslarini oʻrganish, matematikaning tip nazariyasi va kategoriyalar nazariyasi kabi muqobil asoslarini ishlab chiqishda qoʻllanilgan.

Matematik mantiqdagi eng mashhur natijalardan biri bu Gödelning toʻliqsizlik teoremalari boʻlib, u har qanday rasmiy tizimda natural sonlarning asosiy xossalarini tavsiflash uchun yetarli kuchga ega boʻlgan holda, har doim toʻgʻri boʻlgan, lekin tizimda isbotlab boʻlmaydigan gaplar boʻlishini koʻrsatdi. . Bu matematikaning asoslari va rasmiy fikrlash chegaralari uchun muhim ahamiyatga ega.


Xulosa qilib aytadigan bo'lsak, matematik mantiq - bu matematikaning boy va qiziqarli sohasi bo'lib, ko'plab ilovalar va informatika va matematikaning boshqa sohalari bilan chuqur bog'liqdir. Bu matematika asoslari, avtomatlashtirilgan fikrlash va dasturlash tillari va dasturiy vositalarni loyihalash bo'yicha davom etayotgan ishlar bilan tadqiqot va ishlanmalarning faol sohasi bo'lib qolmoqda.


Matematik mantiqning yana bir muhim tadqiqot sohasi klassik bo'lmagan mantiqni o'rganishdir. Propozitsion mantiq va birinchi tartibli mantiq kabi klassik mantiqlar keng o‘rganilgan va informatika va matematikada ko‘plab qo‘llanmalarga ega. Biroq, qo'llashning ko'p sohalarida klassik mantiq tizimlarning kerakli xususiyatlarini qo'lga kiritish uchun etarlicha ifodali yoki kuchli emas.

Modal mantiqlar, vaqtinchalik mantiqlar va loyqa mantiqlar kabi klassik bo'lmagan mantiqlar ushbu cheklovlarni bartaraf etish va tizimlar haqida fikr yuritish uchun yanada moslashuvchan va ifodali asosni ta'minlash uchun ishlab chiqilgan. Masalan, modal mantiqlar vaqt o‘tishi bilan o‘zgarib turadigan yoki turli holatlarga ega bo‘lgan tizimlarning xossalari to‘g‘risida mulohaza yuritish uchun, loyqa mantiqlar esa noaniqlik yoki noaniq tizimlar haqida fikr yuritish uchun ishlatiladi.


So'nggi yillarda murakkab tizimlar haqida fikr yuritish uchun kengroq asos yaratish uchun klassik va noklassik mantiqlarni birlashtirishga qiziqish ortib bormoqda. Bu klassik va noklassik mantiqning kuchli tomonlarini o‘zida mujassamlashtirgan va sun’iy intellekt, dasturiy injiniring va ma’lumotlar bazalari kabi sohalarda ilovalarga ega bo‘lgan gibrid mantiqlarning rivojlanishiga olib keldi.


Xulosa qilib aytadigan bo'lsak, matematik mantiq faol va o'sib borayotgan tadqiqot sohasi bo'lib, informatika va matematikada keng qo'llaniladi. Matematikaning asoslari va rasmiy fikrlash chegaralaridan tortib dasturlash tillari va dasturiy vositalarni loyihalashgacha matematik mantiq bizning dunyoni tushunishimizga va u haqida fikr yuritish qobiliyatimizga katta hissa qo'shgan va qo'shmoqda.


Shuni ham ta'kidlash joizki, matematik mantiq kompyuter fanlari va algoritmlarni loyihalash bilan chambarchas bog'liqdir. Matematik mantiqning bo'limlari bo'lgan rasmiy tillar va avtomatlar nazariyasini o'rganish hisoblash nazariyasi va algoritmlarni loyihalash uchun asos yaratadi.

Rasmiy tillarni o'rganish ko'plab kompyuter dasturlari va ma'lumotlar tuzilmalarining asosiy qurilish bloklari bo'lgan satrlarni tahlil qilish va manipulyatsiya qilish usullarini ishlab chiqishga olib keldi. Avtomatlar nazariyasi mashinalarning xatti-harakatlarini va algoritmlarning murakkabligini o'rganish uchun matematik asosni taqdim etadi va naqshlarni moslashtirish, leksik tahlil va algoritmlarni optimallashtirish kabi muammolarni hal qilish usullarini ishlab chiqishga olib keldi.


Bundan tashqari, informatika fanida mantiqni o‘rganish dasturiy va apparat tizimlari uchun fikrlash va tekshirish usullarini ishlab chiqishga olib keldi. Masalan, dasturiy va apparat tizimlarining toʻgʻriligini avtomatik tekshirish usuli boʻlgan modelni tekshirish teoremani avtomatlashtirilgan isbotlash va vaqtinchalik mantiqni qoʻllash tamoyillariga asoslanadi.


Va nihoyat, shuni ta'kidlash kerakki, matematik mantiq sun'iy intellekt, bilimlarni namoyish qilish va ma'lumotlar bazalari kabi sohalarda ko'plab amaliy dasturlarga ega. Masalan, sun'iy intellekt tizimlarida bilimlarni ifodalash uchun bilimlarni ifodalash tillarini ishlab chiqish va ma'lumotlar bazalarini so'rash va manipulyatsiya qilish uchun samarali algoritmlarni loyihalash uchun mantiqiy yondashuvlar qo'llanilgan.


Xulosa qilib aytganda, matematik mantiq kompyuter fanlari uchun muhim o'rganish sohasi bo'lib, sun'iy intellekt, dasturiy injiniring va ma'lumotlar bazalari kabi sohalarda ko'plab amaliy qo'llanmalarga ega. Matematik mantiqni o'rganish algoritmlarni loyihalash, dasturiy va apparat tizimlarini tekshirish va sun'iy intellektda bilimlarni aks ettirish uchun asos yaratadi.

7-mavzu OR inkor va OR inkor invertori mantiqiy elementlarni o‘rganish

Salbiy OR (NOR) va salbiy OR inverter (NOT-NOR) mantiqiy elementlarini o'rganish raqamli mantiqiy dizayn va kompyuter muhandisligining muhim qismidir.


NOR darvozasi mantiqiy NOR operatsiyasini amalga oshiradigan raqamli mantiqiy eshikdir. Ikki yoki undan ortiq kirish va bitta chiqish liniyasi mavjud. NOR shlyuzining chiqishi faqat uning barcha kirish satrlari past bo'lganda (mantiq 0) yuqori bo'ladi (mantiq 1). Agar uning kirish satrlaridan birortasi baland bo'lsa, chiqish past bo'ladi. 2 kirishli NOR shlyuzining haqiqat jadvali quyida ko'rsatilgan:

A B Q
0 0 1


0 1 0
1 0 0
110
NOT-NOR darvozasi EMAS va NOR darvozasining mantiqiy birikmasidir. Unda bitta kirish va bitta chiqish liniyasi mavjud. EMAS-NOR shlyuzining chiqishi NOR shlyuzining chiqishiga teskari hisoblanadi. EMAS-NOR darvozasining haqiqat jadvali quyida ko'rsatilgan:

A Q
0 1


1 0
NOR va NOT-NOR eshiklari raqamli sxemalarni loyihalash uchun foydali qurilish bloklaridir, chunki ular turli xil mantiqiy operatsiyalarni amalga oshirish uchun ishlatilishi mumkin. Misol uchun, ular AND, OR, NAND va XOR kabi mantiqiy funktsiyalarni, shuningdek, qo'shimchalar, taqqoslashlar va flip-floplar kabi murakkabroq funktsiyalarni amalga oshirish uchun ishlatilishi mumkin.

Xulosa qilib aytganda, salbiy OR va salbiy OR inverter mantiqiy elementlarini o'rganish raqamli mantiqiy dizayn va kompyuter muhandisligining muhim qismidir. Ushbu eshiklar raqamli sxemalarni loyihalash va turli xil mantiqiy operatsiyalarni amalga oshirish uchun foydali qurilish bloklari hisoblanadi.


Davom etgan holda, NOR va NO-NOR shlyuzlari ketma-ket sxemalarda ham qo'llanilishi mumkin, bu erda ular flip-floplar, hisoblagichlar va davlat mashinalarini amalga oshirish uchun ishlatilishi mumkin. Flip-floplar ketma-ket sxemalarda muhim qurilish bloklari hisoblanadi, chunki ular ikkilik ma'lumotlarni saqlash va uzatish uchun ishlatilishi mumkin. Flip-floplar odatda shlyuzlarning kombinatsiyasi, shu jumladan NOR eshiklari yordamida quriladi.

Hisoblagichlar esa hodisalarni hisoblash yoki soat sikllari sonini kuzatish uchun ishlatiladi. Hisoblagichlar flip-floplar va boshqa eshiklar, shu jumladan NOR eshiklari yordamida amalga oshirilishi mumkin. Hisoblagichda ishlatiladigan flip-floplar soni hisoblagichdagi bitlar sonini va shuning uchun maksimal hisoblash qiymatini aniqlaydi.


Davlat mashinalari - raqamli sxemalarni loyihalash uchun matematik model bo'lgan chekli holat mashinalarini amalga oshirish uchun ishlatiladigan ketma-ket sxemalarning bir turi. Davlat mashinalari odatda flip-floplar va boshqa eshiklar, shu jumladan NOR eshiklari yordamida amalga oshiriladi. Davlat mashinasidagi flip-floplar joriy holatni saqlaydi va boshqa eshiklar joriy kirishlar asosida keyingi holatni aniqlaydigan o'tish funktsiyalarini amalga oshirish uchun ishlatiladi.


Xulosa qilib aytganda, salbiy OR va manfiy OR inverter mantiqiy elementlarini o'rganish raqamli sxemalar va kompyuter muhandisligini tushunish uchun muhimdir. Ushbu eshiklar turli xil mantiqiy operatsiyalarni, jumladan flip-floplar, hisoblagichlar va davlat mashinalari kabi ketma-ket sxemalarni amalga oshirish uchun foydali qurilish bloklari hisoblanadi


Davom etsak, NOR darvozasi va NOT-NOR darvozasi raqamli sxemalarning asosiy komponentlari bo'lib, ularni tushunish raqamli tizimlarni loyihalash va tahlil qilish uchun juda muhimdir. NOR eshigi AND va OR ning mantiqiy operatsiyalarini amalga oshirish uchun ishlatilishi mumkin va uning qo'sh, NO-NOR eshigi NAND va NO-OR ning mantiqiy operatsiyalarini amalga oshirish uchun ishlatilishi mumkin. Bu eshiklar dekoderlar, multipleksorlar va arifmetik sxemalar kabi murakkabroq raqamli sxemalarni hosil qilish uchun birlashtirilishi mumkin.


Salbiy OR va manfiy OR inverter mantiqiy elementlarini o'rganish, shuningdek, ularning tarqalish kechikishi, quvvat sarfi va shovqin chegaralari kabi kommutatsiya xususiyatlarini tahlil qilishni o'z ichiga oladi. Ushbu parametrlar raqamli dizaynda muhim ahamiyatga ega, chunki ular raqamli sxemalarning tezligi, ishonchliligi va quvvat samaradorligiga ta'sir qiladi.


Asosiy mantiqiy eshiklarni o'rganish bilan bir qatorda, bir chipda bir nechta eshiklar va boshqa komponentlarni o'z ichiga olgan integral mikrosxemalar (IC) dizaynini o'rganish ham muhimdir. Ushbu IClar mikroprotsessorlar, xotira qurilmalari va dasturlashtiriladigan mantiqiy qurilmalar kabi murakkabroq raqamli tizimlarni amalga oshirish uchun ishlatilishi mumkin. Ushbu IClarning dizayni elektr, mexanik va termal mulohazalarning kombinatsiyasini o'z ichiga oladi va IC ishlab chiqarishda ishlatiladigan ishlab chiqarish jarayonlari va materiallarni tushunishni talab qiladi.


Xulosa qilib aytganda, salbiy OR va manfiy OR inverter mantiqiy elementlarini o'rganish raqamli elektronika va kompyuter muhandisligining hal qiluvchi jihati hisoblanadi. Ushbu eshiklar va ularning raqamli sxemalar va tizimlarda qo'llanilishini tushunish zamonaviy raqamli tizimlarni loyihalash va tahlil qilish uchun juda muhimdir.


Davom etib, shuni ta'kidlash kerakki, zamonaviy raqamli tizimlar ko'pincha yuqorida muhokama qilingan asosiy eshiklarga asoslangan flip-floplar va hisoblagichlar kabi ilg'or mantiqiy elementlardan foydalanadi. Ushbu murakkabroq komponentlarni o'rganish raqamli tizimlar, jumladan, kompyuter protsessorlari, xotira qurilmalari va aloqa tizimlarining ishlashi va dizaynini tushunish uchun juda muhimdir.


Bundan tashqari, dizaynni o'rganish ham muhimdir


8-mavzu Mantiqiy algebrada soddalashtirish

Mantiqiy algebrada soddalashtirish murakkab mantiqiy ifodalarni ekvivalent haqiqat qiymatlariga ega bo'lgan sodda ifodalarga qisqartirishni o'z ichiga oladi. Bu ko'pincha mantiqiy qonunlar va qoidalar, masalan, kommutativ, assotsiativ va distributiv qonunlar, shuningdek De Morgan qonunlari va AND, OR, va NOT kabi mantiqiy operatorlar uchun identifikatsiyalar yordamida amalga oshiriladi. Soddalashtirishdan maqsad mantiqiy ifodalarni tushunish va baholashni osonlashtirish hamda avtomatlashtirilgan fikrlash tizimlarida ularning ish faoliyatini yaxshilashdan iborat.


Mantiqiy algebrada soddalashtirish uchun ishlatiladigan ba'zi umumiy usullar quyidagilardan iborat:

Mantiqiy algebraik manipulyatsiya: Bu murakkab iboralarni oddiyroqlarga qisqartirish uchun mantiqiy algebraning turli qonunlari va identifikatorlarini qo'llashni o'z ichiga oladi. Masalan, A VA (B OR C) ifodasini taqsimlash qonuni yordamida (A VA B) YOKI (A VA C) ga soddalashtirish mumkin.


Haqiqat jadvalini tahlil qilish: Bu berilgan mantiqiy ifoda uchun haqiqat jadvalini tuzishni, so'ngra ifodani soddalashtirish uchun ishlatilishi mumkin bo'lgan naqsh va ortiqchalarni aniqlash uchun jadvaldan foydalanishni o'z ichiga oladi. Misol uchun, agar haqiqat jadvalining ikkita satri bir xil chiqish qiymatiga ega bo'lsa, u holda bu qatorlardagi o'zgaruvchilar bitta atamaga birlashtirilishi mumkin.


Karnaugh xaritalari: Karnaugh xaritalari mantiqiy ifodalarni soddalashtirishning grafik usulidir. Usul mantiqiy ifodaning haqiqat jadvalini ikki o'lchovli panjara sifatida ko'rsatishni va keyin birlashtirilishi yoki yo'q qilinishi mumkin bo'lgan atamalarni aniqlash uchun to'rdagi naqsh va simmetriyalardan foydalanishni o'z ichiga oladi.


Umuman olganda, mantiqiy algebrada soddalashtirish mantiqiy ifodalarning samaradorligi va o'qilishini oshirish, ularni tahlil qilish va mulohaza qilishni osonlashtirish uchun muhim vositadir.


Mantiqiy funktsiyani optimallashtirish: Bu berilgan mantiqiy ifodani amalga oshirish uchun zarur bo'lgan mantiqiy eshiklar yoki sxemalar sonini minimallashtirishni o'z ichiga oladi. Optimallashtirish usullaridan biri ifodani mahsulot yig'indisi yoki yig'indisi ko'paytmasi shakliga aylantirish, so'ngra ifodani ifodalash uchun zarur bo'lgan minimal atamalar to'plamini aniqlash uchun Karnaugh xaritalari yoki Quine-McCluskey algoritmlari kabi usullardan foydalanishdir.

O'zgartirish: Bu ifoda qismlarini oddiyroq, ekvivalent iboralar bilan almashtirishni o'z ichiga oladi. Masalan, (A VA B) YOKI (A VA EMAS B) ifodani almashtirish yordamida A ga soddalashtirish mumkin.


Yutish: Bu allaqachon mavjud atamalarni "singdirish" orqali ifodalarni soddalashtirish uchun distributiv qonundan foydalanishni o'z ichiga oladi. Masalan, A YOKI (A VA B) ifodasini yutish yordamida A ga soddalashtirish mumkin.


Umuman olganda, soddalashtirish texnikasini tanlash aniq ifoda va soddalashtirish maqsadlariga bog'liq. Turli xil uslublar har xil turdagi ifodalar uchun ko'proq yoki kamroq samarali bo'lishi mumkin va turli maqsadlar turli darajadagi optimallashtirish yoki qisqartirishni talab qilishi mumkin. Shunga qaramay, yuqorida tavsiflangan usullar turli kontekstlarda mantiqiy ifodalarni soddalashtirish uchun foydali vositalar to'plamini taqdim etadi.


Idempotentlik: Bu ifodadagi takroriy atamalarni yo'q qilishni o'z ichiga olgan soddalashtirish usuli. Masalan, A YOKI A ifodasini idempotentlik yordamida faqat A ga soddalashtirish mumkin.

Ikkilamchi inkorlarni soddalashtirish: Bu ifodadagi ikkilamchi inkorlarni olib tashlashni o'z ichiga oladi. Masalan, NO(NOT A) ifodasini faqat A ga soddalashtirish mumkin.


Qarama-qarshiliklar va tavtologiyalarni soddalashtirish: Bu har doim to'g'ri (tavtologiyalar) yoki har doim yolg'on (qarama-qarshiliklar) bo'lgan iboralarni soddalashtirishni o'z ichiga oladi. Masalan, A VA EMAS A ifodasi har doim noto'g'ri bo'lib, uni faqat 0 ga soddalashtirish mumkin.


Ichki iboralarni soddalashtirish: Bu (A VA (B OR C)) kabi ichki ichki ifodalarga ega bo'lgan iboralarni soddalashtirishni o'z ichiga oladi. Bunday ifodalarni soddalashtirish uchun taqsimlash va almashtirish kabi usullardan foydalanish mumkin.


Ushbu usullardan foydalangan holda, ko'pincha murakkab mantiqiy ifodalarni sezilarli darajada soddalashtirish, ularni tushunish va boshqarishni osonlashtiradi. Bu, ayniqsa, raqamli sxemalarni loyihalash va tahlil qilishda muhim bo'lishi mumkin, bu erda mantiqiy ifodalar juda murakkab va tegishli soddalashtirish usullarisiz boshqarish qiyin bo'lishi mumkin.


Ortiqchalikni kamaytirish: Bu ifodaning umumiy chiqishiga hissa qo'shmaydigan atamalarni olib tashlashni o'z ichiga oladi. Masalan, (A VA B) YOKI A ifodasini faqat A ga soddalashtirish mumkin, chunki birinchi atama ortiqcha.


Faktoring: Bu ifodani soddalashtirish uchun umumiy atamalarni guruhlashni o'z ichiga oladi. Masalan, A VA (B OR C) ifodasini taqsimlash qonuni yordamida (A VA B) YOKI (A VA C) koeffitsientiga kiritish mumkin.


Konsensus teoremasi: Bu soddalashtirish qoidasi boʻlib, agar oʻzgaruvchi funktsiyaning barcha mintermlarida (yoki makstermlarida) bir xil koʻrinishda (inkor qilingan yoki yoʻq) paydo boʻlsa, u holda bu oʻzgaruvchini funksiyadan chiqarib tashlash mumkin. Masalan, A VA (B YOKI C) VA (B YOKI C EMAS) ifodasini konsensus teoremasi yordamida A VA C ga soddalashtirish mumkin.


Subsumption: Bu boshqa shartlar bilan qamrab olingan iboradan ortiqcha shartlarni olib tashlashni o'z ichiga oladi. Misol uchun, (A VA B) YOKI A ifodasi subsumpsiya yordamida faqat A ga soddalashtirilishi mumkin.


Umuman olganda, bu usullar mantiqiy ifodalarni soddalashtirish va ularning ish faoliyatini optimallashtirish uchun bir qator vositalarni taqdim etadi. Ushbu usullardan foydalanish orqali mantiqiy ifodalarning murakkabligini kamaytirish, ular bilan ishlash va tahlil qilishni osonlashtirish, raqamli sxemalar va boshqa avtomatlashtirilgan fikrlash tizimlarining samaradorligini oshirish mumkin.


9-mavzu Morgan qonuni. Minimizasiya prinsipi (tartibi) va mantiqiy ifoda


De Morgan qonunlari - bu takliflarning konyunksiyasi (VA) yoki diszyunksiyasi (OR) inkori bilan bog'liq bo'lgan ikkita ekvivalent qoidalar to'plami. Ular quyidagichadir:


Bog‘lovchining inkori mantiqiy jihatdan qo‘shma gaplarning inkorlarining diszyunksiyasiga teng. Belgilarda ~(p ∧ q) ≡ (~p ∨ ~q).


Dizyunksiyaning inkori mantiqiy jihatdan ayirma gaplarning inkorlarining birikmasiga teng. Belgilarda ~(p ∨ q) ≡ (~p ∧ ~q).
Bu qonunlar inkorni o'z ichiga olgan mantiqiy ifodalarni manipulyatsiya qilish uchun foydalidir va bunday ifodalarni soddalashtirish uchun ishlatilishi mumkin. Masalan, ~(A ∧ B) ifodasini De Morgan qonuni yordamida ~(A) ∨ ~(B) ga soddalashtirish mumkin, bu bilan ishlash yoki tahlil qilish osonroq.

Mantiqiy ifodada minimallashtirish printsipi oddiyroq iboralar murakkabroq bo'lganidan ko'ra afzalroq bo'ladi, qolgan hamma narsa tengdir. Ushbu tamoyil ko'pincha avtomatlashtirilgan fikrlash tizimlarida qo'llaniladi, bu erda sodda iboralar murakkabroqlarga qaraganda tezroq va kamroq xotira bilan qayta ishlanishi mumkin. Minimallashtirish printsipi ko'pincha mantiqiy algebra va raqamli mantiqiy dizayn kontekstida qo'llaniladi, bu erda mantiqiy ifodalar sxemalar yoki kompyuter dasturlari sifatida amalga oshirilishi kerak.


Soddalashtirish tartibi nuqtai nazaridan, soddalashtirilgan aniq ifodaga va soddalashtirish maqsadlariga qarab turli xil usullar va qoidalar turli tartiblarda qo'llanilishi mumkin. Biroq, ko'pincha soddalashtirish tartibini boshqaradigan ba'zi umumiy tamoyillar mavjud. Masalan, soddalashtirish jarayonining boshida ortiqcha va qarama-qarshiliklarni bartaraf etadigan qoidalarni qo'llash ko'pincha foydalidir, chunki ular tezda keyingi soddalashtirishga olib kelishi mumkin. Yagona atamalarni oʻz ichiga olgan qoidalarni qoʻllashdan oldin (masalan, idempotentlik va singdirish kabi) atamalarning katta guruhlarini (masalan, taqsimlash va faktoring) oʻz ichiga olgan qoidalarni qoʻllash ham foydalidir. Umuman olganda, soddalashtirish tartibi aniq ifoda va soddalashtirish maqsadlariga bog'liq bo'ladi.


Mantiqiy ifodani soddalashtirishning yana bir muhim usuli bu mantiqiy ifodalarni vizuallashtirish va soddalashtirishning grafik usulini ta'minlovchi Karnaugh xaritalaridan foydalanishdir. Karnaugh xaritalari ifodaning murakkabligini kamaytiradigan, birlashtirilishi mumkin bo'lgan atamalar guruhlarini tizimli ravishda aniqlash uchun ishlatilishi mumkin.

De Morgan qonunlariga qo'shimcha ravishda, mantiqiy ifodani soddalashtirishda qo'llaniladigan boshqa qoidalar va usullar quyidagilardan iborat:


A ∧ (B ∨ C) ≡ (A ∧ B) ∨ (A ∧ C) va A ∨ (B ∧ C) ≡ (A ∨ B) ∧ (A ∨ C) ekanligini bildiruvchi taqsimot qonuni. Bu qoida murakkab iboralarni oddiyroqlarga ajratish uchun ishlatilishi mumkin.


Absorbsiya, bu A ∨ (A ∧ B) ≡ A va A ∧ (A ∨ B) ≡ A. Bu qoida takrorlangan atamalar bilan ifodalarni soddalashtirish uchun ishlatilishi mumkin.
A ∨ ~A ≡ 1 va A ∧ ~A ≡ 0 ekanligini bildiruvchi to'ldiruvchi qonun. Bu qoidadan inkorni o'z ichiga olgan ifodalarni soddalashtirish mumkin.
A ∧ 1 ≡ A va A ∨ 0 ≡ A kabi mantiqiy identifikatsiyalar. Bu identifikatsiyalardan mantiqiy doimiylar (0 va 1) ishtirokidagi ifodalarni soddalashtirish uchun foydalanish mumkin.
Mantiqiy ifodani soddalashtirishda qo'llaniladigan texnika yoki qoidani tanlash aniq ifoda va soddalashtirish maqsadlariga bog'liq. Ko'pincha, mumkin bo'lgan eng oddiy ifodaga erishish uchun usullarning kombinatsiyasi qo'llaniladi.
Ushbu soddalashtirish usullaridan tashqari, mantiqiy ifodalarni avtomatik ravishda minimallashtirish uchun ishlatilishi mumkin bo'lgan algoritmlar ham mavjud. Bunday algoritmlardan biri Quine-McCluskey algoritmi bo'lib, u berilgan haqiqat jadvali uchun mahsulotlarning minimal yig'indisi ifodasini topish usuli hisoblanadi.

Quine-McCluskey algoritmi bir nechta bosqichlarni o'z ichiga oladi, jumladan, faqat bitta o'zgaruvchi bilan farq qiluvchi mintermlar (yoki makstermlar) guruhlarini shakllantirish, bu guruhlarni kattaroq guruhlarni tashkil qilish uchun birlashtirish va barcha mintermlarni (yoki) qamrab oluvchi minimal guruhlar bo'lgan asosiy implikantlarni aniqlash. maxterms). Keyin algoritm asosiy implikant diagrammasini tuzadi va asosiy implikantlarni topadi, ular boshqa hech qanday bosh implikant qamrab olmaydigan kamida bitta mintermni (yoki maxtermni) qamrab oladigan asosiy implikantlardir. Nihoyat, algoritm minimal ifodani hosil qilish uchun asosiy asosiy implikantlarni birlashtiradi.


Quine-McCluskey algoritmi va boshqa minimallashtirish algoritmlari mantiqiy ifodalarni soddalashtirishda juda samarali bo'lishi mumkin bo'lsa-da, ular, ayniqsa, kattaroq ifodalar uchun hisoblash intensiv bo'lishi mumkin. Natijada, yuqorida ko'rib chiqilgan kabi oddiy texnika va qoidalar ko'pincha sodda ifodalar uchun, murakkabroq algoritmlar esa kattaroq ifodalar uchun yoki yuqori darajadagi optimallashtirish talab qilinganda qo'llaniladi.


Amaliy qo'llash nuqtai nazaridan, mantiqiy ifodani soddalashtirish va minimallashtirish kompyuter fanlari, elektrotexnika va matematika kabi keng sohalarda muhim ahamiyatga ega. Mantiqiy ifodalar takliflar orasidagi mantiqiy munosabatlarni ifodalash uchun ishlatiladi va Boolean algebrasi va raqamli mantiqiy dizaynning muhim tarkibiy qismidir.

Informatika fanida mantiqiy ifodalar dasturlashda keng qo'llaniladi, bu erda ular shartlarni, boshqaruv oqimini va boshqa mantiqiy operatsiyalarni ifodalash uchun ishlatiladi. Mantiqiy ifodalarni soddalashtirish va optimallashtirish dasturlarning ishlashi va samaradorligini oshirishga yordam beradi.


Elektrotexnikada mantiqiy ifodalar raqamli sxemalarni loyihalash uchun ishlatiladi, bu erda ular sxema bajarishi kerak bo'lgan mantiqiy funktsiyalarni ifodalaydi. Mantiqiy ifodani soddalashtirish va minimallashtirish raqamli sxemani loyihalashda muhim ahamiyatga ega, bunda sxemadagi kichik o'zgarishlar uning ishlashi va samaradorligiga katta ta'sir ko'rsatishi mumkin.


Matematikada mantiqiy ifodalar rasmiy mantiq va isbot nazariyasida qo'llaniladi, bu erda ular mantiqiy munosabatlar va ayirmalarni ifodalash uchun ishlatiladi. Mantiqiy ifodani soddalashtirish murakkab mantiqiy bayonotlarni tushunarliroq va ular bilan ishlashni osonlashtirishga yordam beradi.


Umuman olganda, mantiqiy ifodani soddalashtirish va minimallashtirish keng sohalarda qo'llaniladigan muhim usullardir. Mantiqiy iboralarni soddalashtirish orqali biz ularni tushunish, ishlash va tahlil qilishni osonlashtiramiz va ko'pincha ishlash, samaradorlik va boshqa muhim ko'rsatkichlarda yaxshilanishlarga erishishimiz mumkin.


Mantiqiy ifodani soddalashtirish va minimallashtirish raqamli signallarni qayta ishlash va aloqa tizimlarida ham muhimdir. Ushbu sohalarda mantiqiy ifodalar signalni qayta ishlash algoritmlari, aloqa protokollari va boshqa muhim funktsiyalarni ifodalash uchun ishlatiladi.

Raqamli signallarni qayta ishlashda mantiqiy ifodalar raqamli signallarni qayta ishlash uchun ishlatiladigan mantiqiy funktsiyalarni ifodalash uchun ishlatiladi. Ushbu ifodalarni soddalashtirish va optimallashtirish orqali biz tasvir va videoni qayta ishlash, audioni qayta ishlash va ma'lumotlarni siqish kabi ko'plab ilovalarda muhim bo'lgan tezroq va samaraliroq signalni qayta ishlashga erishishimiz mumkin.


Aloqa tizimlarida raqamli signallarni uzatish va qabul qilish uchun ishlatiladigan protokollarni ifodalash uchun mantiqiy ifodalardan foydalaniladi. Ushbu iboralarni soddalashtirish va optimallashtirish orqali biz simsiz aloqa, raqamli eshittirish va sun'iy yo'ldosh aloqasi kabi ko'plab ilovalarda muhim bo'lgan tezroq va ishonchli aloqaga erishishimiz mumkin.


Mantiqiy ifodani soddalashtirish va minimallashtirish apparat dizaynida ham muhim ahamiyatga ega, bu erda ular raqamli sxemalar va tizimlarni loyihalash uchun ishlatiladi. Mantiqiy ifodalarni soddalashtirish va optimallashtirish orqali biz raqamli sxemalarning murakkabligi va hajmini kamaytirishimiz mumkin, bu esa xarajatlarni kamaytirishi, ishonchliligini oshirishi va dizayn jarayonini tezlashtirishi mumkin.


Umuman olganda, mantiqiy ifodani soddalashtirish va minimallashtirish ko'plab sohalarda va ilovalarda qo'llaniladigan muhim usullardir. Ushbu usullarni tushunish va ularni samarali qo'llash orqali biz keng doiradagi tizim va jarayonlarning ishlashi, samaradorligi va ishonchliligini oshirishimiz mumkin.


Mantiqiy ifodani soddalashtirish va minimallashtirishning yana bir muhim qo'llanilishi dasturiy ta'minotni sinovdan o'tkazish va tekshirishdadir. Bu sohalarda mantiqiy ifodalar dastur spetsifikatsiyalari va talablarini ifodalash, test holatlari va tekshirish shartlarini ifodalash uchun ishlatiladi.


Mantiqiy ifodalarni soddalashtirish va minimallashtirish orqali biz ularni tushunish va ular bilan ishlashni osonlashtiramiz, shuningdek, ko'pincha dastur spetsifikatsiyalari va talablaridagi xatolar va nomuvofiqliklarni aniqlashimiz mumkin. Bu dasturiy ta'minot sifati va ishonchliligini oshirishga yordam beradi hamda sinov va tekshirish vaqtini va narxini qisqartirishi mumkin.


Mantiqiy ifodalarni soddalashtirish va minimallashtirish sun'iy intellekt va mashinani o'rganishda ham muhimdir, bu erda mantiqiy iboralar dunyo haqidagi bilim va mulohazalarni ifodalash uchun ishlatiladi. Ushbu ifodalarni soddalashtirish va optimallashtirish orqali biz fikrlash tizimlarining ishlashi va samaradorligini oshirishimiz va ularni yanada aniq va ishonchli qilishimiz mumkin.


Va nihoyat, mantiqiy ifodani soddalashtirish va minimallashtirish ta'limda muhim ahamiyatga ega bo'lib, ular mantiq, mantiqiy algebra va boshqa tegishli fanlarni o'rgatish uchun ishlatiladi. Mantiqiy ifodani soddalashtirishni o'z ichiga olgan misollar va mashqlarni qo'llash orqali o'qituvchilar o'quvchilarda muammoni hal qilish ko'nikmalarini rivojlantirishga yordam berishlari va ularni mantiqiy fikrlash va tahlildan foydalanadigan sohalarda martaba tayyorlashlari mumkin.


Xulosa qilib aytganda, mantiqiy ifodani soddalashtirish va minimallashtirish ko'plab sohalarda va ilovalarda qo'llaniladigan muhim usullardir. Ushbu usullarni va ularning qo'llanilishini tushunish orqali biz tizimlar va jarayonlarning ishlashi, samaradorligi va ishonchliligini oshirishimiz mumkin, shuningdek, fikr yuritish va tahlil qilish qobiliyatimizni oshirishimiz mumkin


.
10-mavzu: Mantiqiy algebra qonunlari mantiqiy ifodalarni qanday qilib manipulyatsiya qilish va soddalashtirishni boshqaradigan qoidalar to'plamidir. Mantiqiy algebraning eng muhim qonunlaridan biri distributiv qonun bo'lib, unda quyidagilar ko'rsatilgan:

css
Kodni nusxalash


A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C)
A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C)
Ushbu qonun bizga mantiqiy operatorni operandlar to'plamiga taqsimlash imkonini beradi, bu ko'pincha ifodani soddalashtirishi mumkin.

Mantiqiy algebraning yana bir muhim qonuni De Morgan qonuni bo'lib, unda quyidagilar aytiladi:


css
Kodni nusxalash


¬(A ∧ B) = ¬A ∨ ¬B
¬(A ∨ B) = ¬A ∧ ¬B
Bu qonun mantiqiy ifodalarning inkorlarini boshqa mantiqiy operatorlar nuqtai nazaridan ifodalashga imkon beradi, bu ko'pincha ifodani soddalashtirishi mumkin.

Mantiqiy ifodalarni minimallashtirish - bu mantiqiy ifodani eng sodda shaklga keltirish jarayonidir. Mantiqiy ifodalarni minimallashtirishning turli usullari mavjud, jumladan Karnaugh xaritalari va Boolean algebraik manipulyatsiyasi.


Karnaugh xaritasi usuli mantiqiy ifodani ikki o'lchovli to'r sifatida ifodalashni va undan keyin oddiyroq ifodalarni hosil qilish uchun birlashtirilishi mumkin bo'lgan qo'shni hujayralar guruhlarini topishni o'z ichiga oladi. Ushbu usul ko'pincha raqamli sxemalarni loyihalashda qo'llaniladi, chunki u raqamli sxemalar dizaynini optimallashtirish uchun ishlatilishi mumkin.


Mantiqiy algebraik manipulyatsiya ifodani soddalashtirish uchun mantiqiy algebra qonunlarini qo'llashni o'z ichiga oladi. Ushbu usul ko'pincha dasturiy ta'minotni sinovdan o'tkazish va tekshirishda qo'llaniladi, chunki u dastur spetsifikatsiyalari va talablaridagi xatolar va nomuvofiqliklarni aniqlash uchun ishlatilishi mumkin.


Umuman olganda, mantiqiy algebra qonunlari va mantiqiy ifodalarni minimallashtirish ko'plab sohalarda va ilovalarda qo'llaniladigan muhim usullardir. Ushbu usullarni va ularning qo'llanilishini tushunib, biz tizimlar va jarayonlarning ishlashi, samaradorligi va ishonchliligini oshirishimiz, shuningdek, ma'lumotlarni tahlil qilish va tahlil qilish qobiliyatimizni oshirishimiz mumkin.


Karnaugh xaritalari va Boolean algebraik manipulyatsiyasidan tashqari, Quine-McCluskey algoritmi va Espresso algoritmi kabi mantiqiy ifodalarni minimallashtirish uchun ishlatilishi mumkin bo'lgan boshqa usullar mavjud.

Quine-McCluskey algoritmi mantiqiy funktsiyalarni minimallashtirish usuli bo'lib, u Karnaugh xaritalariga o'xshaydi, lekin juda ko'p o'zgaruvchilarga ega funktsiyalar uchun ishlatilishi mumkin. Bu kirishlarning barcha mumkin bo'lgan kombinatsiyalarini ko'rsatadigan diagramma yaratishni va keyin birlashtirilishi mumkin bo'lgan atamalar guruhlarini aniqlash uchun diagrammadagi qatorlarni taqqoslashni o'z ichiga oladi.


Espresso algoritmi Karnaugh xaritalari va Quine-McCluskey algoritmi elementlarini birlashtirgan algoritm yordamida mantiqiy ifodalarni minimallashtirish uchun ishlatilishi mumkin bo'lgan dasturiy vositadir. U katta va murakkab mantiqiy funktsiyalarni bajara oladi va raqamli elektron dizayn va boshqa ilovalarda ishlatilishi mumkin.


Mantiqiy iboralarni minimallashtirish tizimlar va jarayonlarning ishlashi va samaradorligini oshirish, shuningdek, fikr yuritish va ma'lumotni tahlil qilish qobiliyatini oshirishning muhim usuli hisoblanadi. U raqamli signallarni qayta ishlash, aloqa tizimlari, dasturiy ta'minotni sinovdan o'tkazish va tekshirish, sun'iy intellekt va mashinani o'rganish, ta'lim kabi keng soha va ilovalarda qo'llaniladi.


Mantiqiy algebra qonunlarini va mantiqiy ifodalarni minimallashtirishning turli usullarini tushunib, biz murakkab ifodalarni soddalashtirishimiz, xatolar va nomuvofiqliklarni kamaytirishimiz, tizim va jarayonlarning sifati va ishonchliligini oshirishimiz mumkin.


Mantiqiy ifodani minimallashtirishning yana bir muhim jihati soddalashtirish qoidalarini qo'llash tartibidir. Umuman olganda, minimallashtirishning ikkita yondashuvi mavjud: algebraik yondashuv va evristik yondashuv.


Algebraik yondashuv soddalashtirilgan ifodaga erishish uchun mantiqiy algebra qoidalarini tizimli va uslubiy tarzda qo'llashni o'z ichiga oladi. Ushbu yondashuv yanada qat'iy va aniq, lekin ko'p vaqt talab qilishi mumkin va har doim ham eng maqbul echimga olib kelmasligi mumkin.


Boshqa tomondan, evristik yondashuv soddalashtirilgan ifodaga erishish uchun sezgi va sinov va xatolikdan foydalanishni o'z ichiga oladi. Bu yondashuv tezroq va moslashuvchan, lekin har doim ham algebraik yondashuv kabi aniq yoki optimal bo'lmasligi mumkin.


Algebraik yondashuvdan foydalanganda soddalashtirish qoidalarini qo'llashimiz mumkin bo'lgan turli xil tartiblar ham mavjud. Umumiy yondashuvlardan biri, avvalo, kommutativ, assotsiativ va distributiv qoidalarni qo'llash, keyin esa De Morgan qonuni va to'ldiruvchi qoidani qo'llashdir. Yana bir yondashuv - avval to'ldiruvchi qoida va taqsimlash qoidalarini qo'llash, keyin esa boshqa qoidalarni istalgan tartibda qo'llash.


Umuman olganda, yondashuv va tartibni tanlash muammoning o'ziga xos konteksti va talablariga bog'liq. Ba'zi muammolar yanada qat'iy va aniq yondashuvni talab qilishi mumkin, boshqalari esa yanada moslashuvchan va intuitiv yondashuvni talab qilishi mumkin. Xuddi shunday, ba'zi muammolar qoidalarni qo'llashning muayyan tartibidan foyda ko'rishi mumkin, boshqalari esa bu borada yanada moslashuvchan bo'lishi mumkin.


Umuman olganda, mantiqiy ifodani minimallashtirish juda ko'p turli sohalarda va ilovalarda qo'llaniladigan muhim texnikadir. Mantiqiy ifodalarni minimallashtirish uchun turli yondashuvlar va tartiblarni tushunib, biz murakkab ifodalarni soddalashtirishimiz, xatolar va nomuvofiqliklarni kamaytirishimiz, tizim va jarayonlarning sifati va ishonchliligini oshirishimiz mumkin.


Algebraik va evristik yondashuvlarga qo'shimcha ravishda, masalaning o'ziga xos konteksti va talablariga qarab, mantiqiy ifodani minimallashtirish uchun ishlatilishi mumkin bo'lgan turli xil texnika va vositalar ham mavjud.

Masalan, raqamli elektron dizaynda mantiqiy ifodalarni minimallashtirish uchun mantiqiy algebraik manipulyatsiya va Karnaugh xaritalari keng qo'llaniladi. Ushbu usullardan mantiqiy sxemalarni soddalashtirish, eshiklar va tranzistorlar sonini kamaytirish, sxemaning ishlashi va quvvat sarfini optimallashtirish uchun foydalanish mumkin.


Dasturiy ta'minotni sinovdan o'tkazish va tekshirishda mantiqiy ifodalarni minimallashtirish uchun odatda modelni tekshirish va ramziy bajarish qo'llaniladi. Ushbu usullardan dasturiy ta'minot tizimlarining xatti-harakatlarini tahlil qilish va xatolar va nomuvofiqliklarni aniqlash uchun barcha mumkin bo'lgan bajarish yo'llarini o'rganish va tizim xatti-harakatlarining modelini yaratish orqali foydalanish mumkin.


Mashinani o'rganish va sun'iy intellektda mantiqiy ifodalarni minimallashtirish uchun xususiyatlarni tanlash va o'lchovni kamaytirish odatda qo'llaniladi. Ushbu usullardan modelning aniqligi yoki ishlashiga hissa qo'shadigan eng mos xususiyatlar yoki o'zgaruvchilarni aniqlash va murakkablikni kamaytirish va samaradorlikni oshirish uchun ortiqcha yoki ahamiyatsiz xususiyatlarni yo'q qilish uchun foydalanish mumkin.


Umuman olganda, mantiqiy ifodani minimallashtirish uchun texnika va vositani tanlash muammoning o'ziga xos konteksti va talablariga bog'liq. Mavjud bo'lgan turli xil texnika va vositalarni, ularning kuchli va cheklovlarini tushunib, biz muammoni hal qilish uchun eng mos yondashuvni tanlashimiz va optimal natijalarga erishishimiz mumkin.


Mantiqiy ifodani minimallashtirishning yana bir muhim jihati soddalik va optimallik o'rtasidagi kelishuvdir. Umuman olganda, soddaroq ifodani tushunish va boshqarish osonroq, lekin ishlash yoki boshqa mezonlarga ko'ra har doim ham eng maqbul bo'lishi mumkin emas. Boshqa tomondan, optimal ifoda murakkabroq va tushunish qiyinroq bo'lishi mumkin, lekin yaxshiroq ishlash yoki boshqa afzalliklarni berishi mumkin.

Misol uchun, raqamli elektron dizaynda soddalashtirilgan sxemani tushunish va tekshirish osonroq bo'lishi mumkin, lekin eng yaxshi ishlash yoki samaradorlikni ta'minlamasligi mumkin. Boshqa tomondan, optimallashtirilgan sxema murakkabroq va tekshirish qiyinroq bo'lishi mumkin, lekin yaxshiroq ishlash va samaradorlikni ta'minlashi mumkin.


Xuddi shunday, mashinani o'rganish va sun'iy intellektda oddiyroq modelni tushunish va talqin qilish osonroq bo'lishi mumkin, lekin eng yaxshi aniqlik yoki ishlashni ta'minlamasligi mumkin. Boshqa tomondan, optimallashtirilgan model murakkabroq va tushunish qiyinroq bo'lishi mumkin, lekin yaxshiroq aniqlik va ishlashni ta'minlaydi.


Umuman olganda, oddiylik va optimallik o'rtasidagi tanlov muammoning o'ziga xos konteksti va talablariga bog'liq. Ba'zi muammolar oddiy va intuitiv echimni talab qilishi mumkin, boshqalari esa yanada murakkab va optimallashtirilgan echimni talab qilishi mumkin. Oddiylik va optimallik o'rtasidagi o'zaro bog'liqlikni tushunib, biz murakkablikning tegishli darajasi va muammoni optimallashtirish haqida asosli qarorlar qabul qilishimiz mumkin.


Umuman olganda, mantiqiy ifodani minimallashtirish juda ko'p turli sohalarda va ilovalarda qo'llaniladigan muhim texnikadir. Mantiqiy ifodani minimallashtirish bilan bog'liq turli yondashuvlar, buyruqlar, texnikalar va kelishuvlarni tushunish orqali biz murakkab ifodalarni soddalashtirishimiz, xatolar va nomuvofiqliklarni kamaytirishimiz, tizim va jarayonlarning sifati va ishonchliligini oshirishimiz mumkin.


Mantiqiy ifodalarni minimallashtirishda oddiylik va optimallik o'rtasidagi o'zaro kelishuvdan tashqari, tizimning boshqa qismlariga ta'siri, amalga oshirish xarajatlari, yechimning saqlanishi va miqyosi kabi boshqa omillarni ham hisobga olish kerak.

Misol uchun, raqamli sxemani loyihalashda minimallashtirilgan sxema tizimning boshqa qismlariga, masalan, kontaktlarning zanglashiga olib kelishi va quvvat sarfiga sezilarli ta'sir ko'rsatishi mumkin. Darvozalar yoki tranzistorlar soni bo'yicha kamroq maqbul bo'lsa ham, muayyan vaqt yoki quvvat talablarini qondirish uchun yanada murakkab sxema zarur bo'lishi mumkin.


Xuddi shunday, dasturiy ta'minotni sinovdan o'tkazish va tekshirishda minimallashtirilgan ifoda tizimning boshqa qismlariga, masalan, sinov holatlarining qamrovi va to'liqligiga ta'sir qilishi mumkin. Oddiylik nuqtai nazaridan kamroq maqbul bo'lsa ham, tizimning barcha mumkin bo'lgan xatti-harakatlari sinovdan o'tkazilishi va tekshirilishini ta'minlash uchun yanada murakkab ifoda zarur bo'lishi mumkin.


Umuman olganda, minimallashtirish darajasini tanlash muammoning o'ziga xos konteksti va talablariga, shuningdek mavjud resurslar va cheklovlarga bog'liq. Tizimning boshqa qismlariga ta'sirini, amalga oshirish narxini va yechimning texnik xizmat ko'rsatishi va kengaytirilishini hisobga olgan holda, biz muammoni minimallashtirishning tegishli darajasi haqida xabardor qarorlar qabul qilishimiz mumkin.


Umuman olganda, mantiqiy ifodani minimallashtirish murakkab ifodalarni soddalashtirish, xatolar va nomuvofiqliklarni kamaytirish uchun ishlatilishi mumkin bo'lgan kuchli texnikadir.


11-mavzu: Karno xaritasi yordamida mantiqiy ifodalarni minimallashtirish printsiplari


Karno xaritasi, shuningdek, Karnaugh xaritasi sifatida ham tanilgan, mantiqiy ifodalarni vizual va intuitiv tarzda minimallashtirish usulidir. Karno xaritasi ikki o'lchovli jadval bo'lib, u mantiqiy ifodaning kirish o'zgaruvchilarining barcha mumkin bo'lgan kombinatsiyalarini ifodalaydi. Jadval shunday tuzilganki, ulashgan katakchalar faqat bir bit bilan farq qiladigan kirishlarga mos keladi.


Carnot xaritasi yordamida mantiqiy ifodalarni minimallashtirish tamoyillari quyidagilardan iborat:


Guruhlash: Karno xaritasidagi mantiqiy ifodadagi 1 ga mos keladigan qo‘shni katakchalar guruhlarini aniqlang. Guruhlar gorizontal yoki vertikal ravishda tuzilishi mumkin, lekin diagonal emas.


Soddalashtirish: 1 ning har bir guruhini qamrab oluvchi eng oddiy ifodani aniqlang. Eng oddiy ifoda eng kam o'zgaruvchilarga va eng kam inkorlarga ega bo'lgan ifodadir. Guruh bir nechta ifoda bilan qamrab olinishi mumkin, lekin har bir ifoda iloji boricha sodda bo'lishi kerak.


Kombinatsiya: Bitta kichraytirilgan ifoda hosil qilish uchun har bir 1 guruhini qamrab oluvchi ifodalarni birlashtiring. Bu har bir guruhni qamrab oluvchi iboralarning OR ni olish orqali amalga oshiriladi.


Tekshirish: Haqiqat jadvallarini solishtirish yoki boshqa usullardan foydalanish orqali minimallashtirilgan ifodaning asl ifodaga ekvivalentligini tekshiring.


Karno xaritasi texnikasi oltitagacha o'zgaruvchiga ega ifodalar uchun ishlatilishi mumkin. Oltidan ortiq o'zgaruvchiga ega iboralar uchun algebraik manipulyatsiya yoki evristik usullar kabi boshqa usullar ko'proq mos kelishi mumkin.


Umuman olganda, Carnot xaritasi mantiqiy ifodalarni, xususan, oz sonli o'zgaruvchilarga ega ifodalarni minimallashtirish uchun foydali va kuchli texnikadir. Guruhlash, soddalashtirish, kombinatsiyalash va tekshirish tamoyillariga rioya qilish orqali biz tushunish va manipulyatsiya qilish osonroq bo'lgan soddalashtirilgan va optimal ifodaga erishishimiz mumkin.


Karno xaritasi yordamida mantiqiy ifodani minimallashtirish kontekstida guruhlash deganda xaritadagi mantiqiy ifodadagi 1 ga mos keladigan qo‘shni katakchalarni aniqlash va ifodani soddalashtirish uchun ularni guruhlash jarayoni tushuniladi. Guruhlash jarayoni Karno xaritasi usulining birinchi bosqichi bo'lib, u 1 ni o'z ichiga olgan qo'shni hujayralarning to'rtburchaklar guruhlarini aniqlashni o'z ichiga oladi.

Guruhlash jarayoni gorizontal yoki vertikal ravishda amalga oshirilishi mumkin, lekin diagonal emas. Maqsad, har bir hujayra faqat bitta guruhga kiritilganligini ta'minlash bilan birga, 1 ning mumkin bo'lgan eng katta guruhlarini aniqlashdir. Har bir guruh ikki kuchga ega bo'lgan o'lchamga ega bo'lishi kerak, ya'ni 1, 2, 4, 8 va hokazo.


Guruhlar aniqlangandan so'ng, keyingi qadam har bir guruhni qamrab oluvchi eng oddiy ifodani topish orqali ifodani soddalashtirishdir. Bu umumiy shartlarni izlash va ortiqcha shartlarni yo'q qilishni o'z ichiga oladi. Nihoyat, har bir guruhni qamrab oluvchi soddalashtirilgan ifodalar birlashtirilib, kichraytirilgan ifoda hosil qilinadi.


Umuman olganda, guruhlash Karno xaritasi usulida muhim qadamdir, chunki u atamalar sonini kamaytirish va ortiqchalikni bartaraf etish orqali mantiqiy ifodani soddalashtirish imkonini beradi. Guruhlash, soddalashtirish, kombinatsiyalash va tekshirish tamoyillariga rioya qilish orqali biz tushunish va boshqarish osonroq bo'lgan optimallashtirilgan va soddalashtirilgan ifodaga erishishimiz mumkin.


Karno xaritasi yordamida mantiqiy ifodani minimallashtirish kontekstida soddalashtirish mantiqiy ifodadagi 1 ga mos keladigan xaritadagi qo'shni kataklarning har bir guruhini qamrab oluvchi eng oddiy ifodani topish jarayonini anglatadi. Soddalashtirish jarayoni Karno xaritasi usulining ikkinchi bosqichi bo'lib, u o'zgaruvchilar sonini kamaytirish va har bir guruhni qamrab oluvchi iboralardagi ortiqchalikni yo'q qilishni o'z ichiga oladi.

Soddalashtirish jarayoni umumiy shartlarni izlash va ortiqcha shartlarni yo'q qilishni o'z ichiga oladi. Bu har bir guruhni qamrab oluvchi iboralarning OR ni olish va bir nechta iboralarda uchraydigan atamalarni birlashtirish orqali amalga oshiriladi. Maqsad har bir guruhni qamrab oluvchi, eng kam o'zgaruvchiga va eng kam inkorga ega bo'lgan eng oddiy ifodani topishdir.


Ifodalarni soddalashtirish uchun ko'pincha mantiqiy algebra qonunlaridan, masalan, taqsimlash qonuni, kommutativ qonun va assotsiativ qonunlardan foydalanish foydali bo'ladi. Ushbu qonunlar bizga atamalar sonini kamaytiradigan va ortiqcha narsalarni yo'q qiladigan tarzda iboralarni manipulyatsiya qilish imkonini beradi.


Har bir guruhni qamrab oluvchi iboralar soddalashtirilgach, ular birlashtirilib, kichraytirilgan ifoda hosil qilinadi. Yakuniy minimallashtirilgan ifoda asl mantiqiy ifodaning soddalashtirilgan va optimallashtirilgan versiyasi bo'lib, uni tushunish va boshqarish osonroq.


Umuman olganda, soddalashtirish Karno xaritasi usulida muhim qadamdir, chunki u mantiqiy ifodaning murakkabligini kamaytirish va ortiqchalikni bartaraf etish imkonini beradi. Har bir guruhni qamrab oluvchi iboralarni soddalashtirish orqali biz tushunish va manipulyatsiya qilish osonroq bo'lgan optimallashtirilgan va soddalashtirilgan ifodaga erishishimiz mumkin.


Carnot xaritasi yordamida mantiqiy ifodani minimallashtirish kontekstida kombinatsiya mantiqiy ifodadagi 1 ga mos keladigan xaritadagi qo'shni kataklarning har bir guruhini qamrab oluvchi soddalashtirilgan ifodalarni birlashtirish jarayonini anglatadi. Kombinatsiyalash jarayoni Karno xaritasi usulining uchinchi bosqichi bo'lib, u soddalashtirilgan ifodalarni yakuniy ifodadagi atamalar sonini minimallashtiradigan tarzda birlashtirishni o'z ichiga oladi.


Kombinatsiyalash jarayoni har bir guruhni qamrab oluvchi soddalashtirilgan iboralarning VA ni olishni o'z ichiga oladi. Yakuniy ifodadagi atamalar sonini minimallashtirish uchun ko'pincha umumiy atamalarni izlash va ortiqchalikni bartaraf etish foydali bo'ladi. Bu bir nechta iboralarda uchraydigan atamalarni birlashtirish va ortiqcha atamalarni yo'q qilish orqali amalga oshiriladi.


Kombinatsiyalash jarayonining maqsadi mantiqiy ifodadagi barcha 1 larni qamrab olgan holda, eng kam sonli atamalarga ega bo'lgan ifodaga erishishdir. Soddalashtirilgan iboralarni ortiqchalikni bartaraf etadigan va atamalar sonini kamaytiradigan tarzda birlashtirib, biz tushunish va manipulyatsiya qilish osonroq bo'lgan optimallashtirilgan va soddalashtirilgan ifodaga erishishimiz mumkin.


Ifodalar birlashtirilgach, yakuniy minimallashtirilgan ifoda olinadi. Bu ibora asl mantiqiy ifodaning optimallashtirilgan va soddalashtirilgan versiyasini ifodalaydi, uni tushunish va manipulyatsiya qilish osonroq.
Umuman olganda, kombinatsiya Carnot xaritasi usulida muhim qadamdir, chunki u bizga minimal miqdordagi atamalarga ega bo'lgan optimallashtirilgan va soddalashtirilgan ifodaga erishish imkonini beradi. Har bir guruhni qamrab oluvchi soddalashtirilgan iboralarni birlashtirib, biz ortiqchalikni bartaraf etishimiz va atamalar sonini kamaytirishimiz mumkin, bu esa tushunish va manipulyatsiya qilish osonroq bo'lgan iboraga olib keladi.
Carnot xaritasi yordamida mantiqiy ifodani minimallashtirish kontekstida tekshirish nazarda tutilad
12- mavzu Karno xaritasi yordamida mantiqiy ifodalarni minimallashtirish

Karno xaritasi usuli - mantiqiy ifodalarni minimallashtirish uchun ishlatiladigan grafik texnika. U mantiqiy ifodada kirish va chiqishlar o‘rtasidagi munosabatni ko‘rsatuvchi ikki o‘lchovli haqiqat jadvali bo‘lgan Karnaugh xaritasiga asoslangan.


Carnot xaritasi usuli besh asosiy bosqichdan iborat:


Karnaugh xaritasini yarating: Bu mantiqiy ifodaning kirish va chiqishlari bilan jadval chizishni va ifodadagi 1 ga mos keladigan kataklarni guruhlashni o'z ichiga oladi.


Qo'shni hujayralarni guruhlash: Bu Karnaugh xaritasida ifodadagi 1 ga mos keladigan qo'shni hujayralarni har bir guruh 2, 4, 8 yoki 16 hujayradan iborat bo'ladigan tarzda guruhlashni o'z ichiga oladi.


Har bir guruhni soddalashtirish: Bu Karnaugh xaritasidagi qo'shni hujayralarning har bir guruhini mantiqiy algebraik usullardan foydalangan holda soddalashtirishni o'z ichiga oladi, masalan, Boolean algebrasi qonunlari va De Morgan qonunlari.


Soddalashtirilgan iboralarni birlashtirish: Bu Karnaugh xaritasidagi qo'shni hujayralarning har bir guruhini qamrab oluvchi soddalashtirilgan iboralarni yakuniy ifodadagi atamalar sonini kamaytiradigan tarzda birlashtirishni o'z ichiga oladi.


Minimallashtirilgan ifodani tekshirish: Bu kichraytirilgan ifoda mantiqiy ifodadagi barcha 1 ni qamrab olishini va hech qanday 0 ni qamrab olmasligini tekshirishni va uning asl mantiqiy ifodaga ekvivalentligini va mantiqiy algebra qoidalariga rioya qilishini tekshirishni o'z ichiga oladi.


Umuman olganda, Karno xaritasi usuli mantiqiy ifodalarni, ayniqsa 4 yoki 5 tagacha kirishli ifodalarni minimallashtirishning samarali va samarali usuli hisoblanadi. Yuqorida keltirilgan beshta qadamni bajarish orqali biz tushunish va manipulyatsiya qilish osonroq bo'lgan va mantiqiy sxemalar yoki tizimlarda ishlatilishi mumkin bo'lgan optimallashtirilgan va soddalashtirilgan ifodaga erishishimiz mumkin.


Karno xaritasi usulini tasvirlash uchun ikkita kirish, A va B bo'lgan oddiy mantiqiy ifodani ko'rib chiqamiz:

F(A,B) = AB + A'B


Birinchi qadam, ushbu ifoda uchun Karnaugh xaritasini yaratishdir, u ikkita qator va kirish kombinatsiyalarini ifodalovchi ikkita ustunli jadvaldir. Har bir kirish kombinatsiyasi uchun chiqish qiymatlarini to'ldiramiz:


AB 00 01 11 10


F 0 1 0 1
Keyinchalik, Karnaugh xaritasida 1 ni o'z ichiga olgan qo'shni hujayralarni guruhlaymiz. Bunday holda, biz ikkita guruhga egamiz: biri ikkita hujayrali (01 va 11) va ikkita hujayrali (10 va 11).

AB 00 01 11 10


F 0 1 0 1
Keyingi qadam mantiqiy algebraik usullardan foydalangan holda har bir hujayra guruhini soddalashtirishdir. Birinchi guruh (01 va 11) uchun biz B koeffitsienti uchun distributiv qonunni qo'llashimiz mumkin:

F = A(B + B') = A


Ikkinchi guruh (10 va 11) uchun biz A koeffitsienti uchun distributiv qonunni qo'llashimiz mumkin:


F = (A + A')B = B


Endi biz har bir guruh uchun soddalashtirilgan ifodalarni birlashtirib, minimallashtirilgan ifodani olishimiz mumkin:


F = A + B


Nihoyat, biz minimallashtirilgan ifoda mantiqiy ifodadagi barcha 1 ni qamrab olganligini va u asl ifodaga ekvivalent ekanligini tekshiramiz. Bunday holda, minimallashtirilgan ifoda barcha 1 ni (01, 10 va 11) qamrab oladi va hech qanday 0 ni (00) qamrab olmaydi. Minimallashtirilgan ifodaning asl ifodaga ekvivalentligini ularning haqiqat jadvallarini solishtirish orqali ham tekshirishimiz mumkin. Ikkala ifoda ham bir xil haqiqat jadvaliga ega ekanligini ko'rishimiz mumkin, bu esa minimallashtirilgan ifodaning to'g'ri ekanligini tasdiqlaydi va mantiqiy sxemalar yoki tizimlarda asl ifoda o'rnida ishlatilishi mumkin.


Umuman olganda, Carnot xaritasi usuli mantiqiy ifodalarni minimallashtirishning samarali usuli bo'lib, undan ko'proq kirishlar va kattaroq haqiqat jadvallari bilan ifodalarni soddalashtirish uchun ham foydalanish mumkin.


13-mavzu Summator va hisoblagich haqida tushuncha. Yarim va to‘liq summatorlar. Yarim va to‘liq hisoblagichlar. BCD algebra. Summator va yarim hisoblagichlar.

Toplayıcı - bu ikkilik raqamlarni qo'shishni amalga oshiradigan raqamli sxema. U kirish sifatida ikkita ikkilik sonni oladi va yig'indini chiqaradi va natijani chiqaradi. Yarim to'ldiruvchi ikkita bitta ikkilik raqamni qo'shadi va yig'indini ishlab chiqaradi va natijani beradi. To'liq qo'shuvchi ikkita ikkilik raqamni olib kirish bilan birga qo'shadi va yig'indi va ko'chirish natijasini chiqaradi.


Hisoblagich - bu sodir bo'lgan soat tsikllari sonini hisoblaydigan raqamli sxema. Yarim hisoblagich 2 tagacha hisoblashi mumkin, to'liq hisoblagich esa 2^n gacha hisoblashi mumkin, bu erda n - hisoblagichdagi bitlar soni.

BCD algebrasi ikkilik kodli oʻnlik (BCD) sonlar ustida arifmetik amallarni bajarish usulidir. Bu BCD raqamlarini ularning o'nli ekvivalentlariga aylantirish, operatsiyani bajarish va keyin natijani BCD shakliga aylantirishni o'z ichiga oladi.


Topuvchi va yarim hisoblagich - qo'shish va hisoblash amallarini bajarish uchun bir yarim hisoblagichni birlashtirgan sxema. Topuvchi joriy hisobga kiritilgan qiymatni qo'shish uchun, yarim hisoblagich esa soat sikllari sonini hisobga olish uchun ishlatiladi.


Xulosa qilib aytganda, qo'shimchalar va hisoblagichlar elektronika va kompyuter tizimlarida muhim raqamli sxemalardir. Yarim va to'liq qo'shimchalar, yarim va to'liq hisoblagichlar, BCD algebrasi va qo'shimcha va yarim hisoblagichlar raqamli sxemani loyihalash va ishlatishda muhim tushunchalardir.


Topuvchilar va hisoblagichlar mavzusini kengaytirish uchun shuni ta'kidlash joizki, yig'uvchilar mikroprotsessorlarda, raqamli signal protsessorlarida va boshqa raqamli mantiqiy sxemalarda keng qo'llaniladi. Ular kompyuterda arifmetik va mantiqiy amallarni bajarish uchun juda muhim bo‘lib, ular ilovaga qarab har xil turdagi va dizaynlarda bo‘ladi.

Yarim va toʻliq qoʻshimchalardan tashqari, boshqa koʻrinishdagi qoʻshimchalar, toʻlqinli koʻchma qoʻshimchalar va koʻtaruvchi-tanlash qoʻshimchalari ham mavjud. Har bir to'plovchi turi o'zining afzalliklari va kamchiliklariga ega bo'lib, to'ldiruvchini tanlash tezlik, quvvat sarfi va maydon kabi omillarga bog'liq.


Boshqa tomondan, hisoblagichlar turli xil ilovalarda, jumladan chastotalarni ajratuvchilar, raqamli soatlar va hodisalar hisoblagichlarida qo'llaniladi. Ular ikkilik hisoblagichlar, BCD hisoblagichlari va qo'ng'iroq hisoblagichlari va boshqalar kabi turli xil turlari mavjud. Ikkilik hisoblagichlar eng ko'p ishlatiladigan hisoblagichlar turi bo'lib, ular raqamli sxemalarning asosiy qurilish bloklari bo'lgan flip-floplar yordamida amalga oshirilishi mumkin.


Shuni ta'kidlash kerakki, qo'shimchalar va hisoblagichlarni birlashtirib, yanada murakkab sxemalarni yaratish mumkin. Masalan, sonlar ketma-ketligini hosil qilish uchun ikkilik hisoblagichdan, ketma-ketlikdagi har bir raqamga qo'shimcha qiymat qo'shish uchun to'ldiruvchidan foydalanish mumkin. Bu raqamli signalni qayta ishlash kabi ilovalarda foydali bo'lishi mumkin, bunda konvolyutsiya va filtrlash kabi operatsiyalar signaldagi har bir namunaga sobit qiymat qo'shishni talab qiladi.


Xulosa qilib aytganda, qo'shimchalar va hisoblagichlarni tushunish raqamli sxemani loyihalash va ishlatish uchun asosiy hisoblanadi. Raqamli tizimlarda optimal ishlash va samaradorlikni ta'minlash uchun har xil turdagi qo'shimchalar va hisoblagichlar, shuningdek ularning ilovalari tushunilishi kerak.


Qo'shimchalar bilan bog'liq yana bir muhim tushuncha - bu ko'chirish biti bo'lib, u maksimal ifodalanadigan qiymatdan oshib ketadigan ikkita raqamni qo'shganda sodir bo'ladigan toshib ketishni anglatadi. Misol uchun, ikkita 8-bitli raqamni qo'shganda, maksimal natija 255 ni tashkil qiladi, bu ikkilik tizimda 11111111 sifatida ifodalanadi. Agar ikkita raqamning yig'indisi 255 dan katta bo'lsa, to'lib ketishni ko'rsatish uchun tashish biti 1 ga o'rnatiladi.


Yarim va to'liq hisoblagichlarga qo'shimcha ravishda modul-n hisoblagichlar ham mavjud bo'lib, ular ma'lum bir qiymatga qadar hisoblanadi va keyin nolga qaytariladi. Misol uchun, modul-10 hisoblagichi 0 dan 9 gacha hisoblanadi va keyin 0 ga qayta o'rnatiladi. Modulo-n hisoblagichlari raqamli soatlar kabi ilovalarda foydali bo'lib, ma'lum miqdordagi davrlarni sanab o'tgandan keyin hisoblagich qayta o'rnatilishi kerak.


BCD algebrasi qo'shimchalar va hisoblagichlar bilan bog'liq yana bir muhim tushunchadir. BCD - bu o'nlik sonlarni ikkilik raqamlar yordamida ifodalash usuli bo'lib, bunda har bir o'nlik raqam to'rt bitli ikkilik kod bilan ifodalanadi. BCD arifmetikasi BCD raqamlarini qo'shish, ayirish va ko'paytirishni o'z ichiga oladi va u moliyaviy kalkulyatorlar, raqamli soatlar va LED displeylar kabi ilovalarda keng qo'llaniladi.


Va nihoyat, shuni ta'kidlash kerakki, qo'shimchalar va hisoblagichlar ko'pincha VHDL va Verilog kabi apparat tavsiflash tillari (HDL) yordamida amalga oshiriladi. HDLlar dizaynerlarga raqamli sxemalarni yuqori darajadagi abstraktsiyada tasvirlash va ularni apparatda qo'llashdan oldin ularning xatti-harakatlarini simulyatsiya qilish imkonini beradi.


Xulosa qilib aytadigan bo'lsak, qo'shimchalar va hisoblagichlar raqamli kontaktlarning zanglashiga olib keladigan asosiy bloklari bo'lib, ularni tushunish raqamli sxemani loyihalash va ishlatish uchun juda muhimdir. Har xil turdagi qo'shimchalar va hisoblagichlar, tashish bitlari, modul-n hisoblagichlar, BCD algebrasi va HDLlar raqamli sxema dizaynerlari va muhandislari uchun o'zlashtirish uchun muhim tushunchalardir.


14-mavzu: Summator va yarim hisoblagichlarnituzish.


Qo'shimchalar va yarim hisoblagichlar raqamli sxemalarda muhim qurilish bloklari bo'lib, arifmetik va hisoblash operatsiyalarini bajarish uchun ishlatiladi. Bu erda qo'shimchalar va yarim hisoblagichlarning asosiy konstruktsiyalari keltirilgan:


Yarim qo'shuvchi:


Yarim to'ldiruvchi - bu ikkita bit qo'shadigan va yig'indisi va tashish bitini ishlab chiqaradigan sxema. Yarim to'ldirgichning asosiy konstruktsiyasi ikkita kirish, A va B va ikkita chiqish, S (sum) va C (tashuvchi) dan iborat. Yarim to'ldiruvchi uchun haqiqat jadvali:
A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Yarim to'ldiruvchi ikkita XOR eshiklari va bitta AND darvozasi yordamida amalga oshirilishi mumkin. XOR shlyuzlari yig'indi bitini, AND shlyuzi esa ko'chirish bitini ishlab chiqaradi.

To'liq qo'shuvchi:


To'liq qo'shuvchi - bu uchta bit qo'shib, yig'indisi va tashish bitini ishlab chiqaradigan sxema. To'liq qo'shimchaning asosiy konstruktsiyasi uchta kirishdan, A, B va C_in (tashish) va ikkita chiqish, S (sum) va C_out (o'tkazish) dan iborat. To'liq qo'shimcha uchun haqiqat jadvali:
A B C_in S C_out
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
To'liq qo'shimchani ikkita yarim qo'shimcha va OR darvozasi yordamida amalga oshirish mumkin. Birinchi yarim to‘ldiruvchi A va B ni qo‘shib, qisman yig‘indi va tashishni hosil qiladi. Ikkinchi yarim qo'shuvchi qisman yig'indini va C_in ni qo'shib, yakuniy yig'indini va boshqa ko'chirishni hosil qiladi. OR shlyuzi ikkita ko'chirish bitini birlashtiradi va C_outni amalga oshiradi.

Yarim hisoblagich:


Yarim hisoblagich 2 tagacha hisoblovchi sxema bo'lib, ya'ni u ikkita holatga ega, 0 va 1. Yarim hisoblagichning asosiy konstruktsiyasi bitta kirish, C_in (tashish) va bitta chiqish, Q (hisoblash) dan iborat. . Yarim hisoblagich uchun haqiqat jadvali:
C_in Q
0 0
1 1
Yarim hisoblagich D flip-flop yordamida amalga oshirilishi mumkin. Flip-flopning kirishi tashish C_in ga ulangan va chiqish Q soni.

To'liq hisoblagich:


To'liq hisoblagich 2^n gacha hisoblovchi sxema bo'lib, bu erda n - hisoblagichdagi bitlar soni. To'liq hisoblagichning asosiy konstruktsiyasi kaskadda ulangan n D flip-flopdan iborat bo'lib, har bir flip-flopning chiqishi keyingi flip-flopning kirishiga ulangan. Birinchi flip-flopning kirishi tashish C_in ga ulangan va oxirgi flip-flopning chiqishi Q sonidir.
Yarim to'ldiruvchi - ikkita bitta bitli ikkilik sonlarni (A va B) qo'shadigan va yig'indisi (S) va tashish (C) dan iborat ikki bitli chiqishni ishlab chiqaradigan sxema. Yarim to'ldiruvchi uchun haqiqat jadvali quyidagicha:

A B S C
0 0 0 0


0 1 1 0
1 0 1 0
1 1 0 1
Haqiqat jadvalidan ko'rinib turibdiki, yig'indi biti oddiygina ikkita kirishning XOR (A XOR B), tashish biti esa ikkita kirishning (A VA B) VAsidir. Shunday qilib, yarim to'ldiruvchi ikkita mantiqiy eshik yordamida amalga oshirilishi mumkin: XOR va AND eshiklari.

Yarim to'ldirgichning sxemasi quyida ko'rsatilgan:


lua
Kodni nusxalash


A ---o ____
|----| \
B ---o | XOR --- S
|____/ |
|
__________|
|
|
| ____
|----| \
| VA --- C
|____/ |
|
__________|
O'chirish diagrammasida A va B ikkita kirish, S - yig'indisi va C - tashish chiqishi. XOR shlyuzi yig'indi bitini (S), AND shlyuzi esa ko'chirish bitini (C) ishlab chiqaradi.
Bu erda sxema qanday ishlashi haqida tushuntirish berilgan:

Ikki kirish biti, A va B kontaktlarning zanglashiga olib kirganda, ular birinchi navbatda XOR eshigiga yuboriladi. XOR eshigi ikkita kirishni taqqoslaydi va agar kirishlar boshqacha bo'lsa, 1 (yoki yuqori) chiqish va kirishlar bir xil bo'lsa, 0 (yoki past) chiqishni ishlab chiqaradi. Shuning uchun, agar A va B farqli bo'lsa, XOR eshigi 1 hosil qiladi (ya'ni, A XOR B = 1), bu yig'indi bitiga (S) aylanadi. Agar A va B bir xil bo'lsa, XOR eshigi 0 hosil qiladi (ya'ni, A XOR B = 0), bu yig'indi bitiga (S) aylanadi.


Keyin ikkita kirish biti, A va B AND darvozasiga yuboriladi. AND shlyuzi faqat ikkala kirish 1 bo'lsa, 1 chiqishini hosil qiladi. Shuning uchun, agar A va B ikkalasi ham 1 bo'lsa, AND eshigi 1 ni (ya'ni, A VA B = 1) hosil qiladi, bu esa tashish bitiga (C) aylanadi. Agar A va B ning biri yoki ikkalasi 0 bo'lsa, AND shlyuzi 0 ni hosil qiladi (ya'ni, A VA B = 0), bu esa tashish bitiga (C) aylanadi.


Xulosa qilib aytadigan bo'lsak, yarim to'ldiruvchi sxema ikki bitning ikkilik qo'shilishini amalga oshiradi va yig'indi va ko'chirish bitlarini ishlab chiqaradi. Yig'indi biti ikkita kirish bitining XOR ko'rsatkichidir, tashish biti esa ikkita kirish bitining ANDidir. Sxema oddiy va samarali bo'lib, uni raqamli elektronikada ko'plab ilovalar uchun foydali qiladi


Ikkita ikkilik sonni qo‘shish uchun yarim to‘ldirgichdan qanday foydalanishga misol:


Faraz qilaylik, biz 0101 va 0011 ikkilik raqamlarini qo'shmoqchimiz. Qo'shishni quyidagicha bajarish uchun yarim qo'shimchadan foydalanishimiz mumkin:


Birinchidan, ikkita eng kam ahamiyatli bitni (LSB) qo'shamiz, ular 1 va 1. Yarim qo'shimcha uchun haqiqat jadvalidan foydalanib, yig'indisi bit (S) 0 va tashish biti (C) 1 ekanligini ko'rishimiz mumkin.


yaml
Kodni nusxalash


A: 0 1 0 1
+ 1 1
B: 0 0 1 1
-----------------
S: 0 1
C: 1
Keyinchalik, biz 0 va 1 bo'lgan keyingi ikkita muhim bitni va oldingi qo'shimchadan olib o'tish bitini qo'shamiz, ya'ni 1. Yarim qo'shimcha uchun haqiqat jadvalidan yana foydalanib, yig'indi biti (S) ekanligini ko'rishimiz mumkin. 0 va tashish biti (C) 1 ga teng.

yaml
Kodni nusxalash


A: 0 1 0 1
+ 1 1
B: 0 0 1 1
---------------
S: 0 0 1
C: 10
Nihoyat, biz ikkita eng muhim bitni, ya'ni 1 va 0 ni va oldingi qo'shimchadan olib o'tish bitini qo'shamiz, ya'ni 1. Yana yarim qo'shimcha uchun haqiqat jadvalidan foydalanib, yig'indi biti (S) ekanligini ko'rishimiz mumkin. 0 ga, tashish biti (C) 1 ga teng.

yaml
Kodni nusxalash


A: 0 1 0 1
+ 1 1
B: 0 0 1 1
---------------
S: 0 0 1 0
C: 1 0 0
Shuning uchun 0101 va 0011 ikkita ikkilik sonlarni qo'shish natijasi 10010 ikkilik son (ikkita to'ldiruvchi yozuvda) bo'ladi. Ko'rishimiz mumkinki, yarim to'ldiruvchi tomonidan chiqarilgan yig'indi biti natijaning eng kam ahamiyatli biti (LSB) sifatida ishlatiladi, yarim qo'shimchaning ko'chirish biti esa keyingi muhim bit sifatida ishlatiladi va hokazo.

15-mavzu BCD-7 bo‘g‘inlidecodersxemasinituzish.


BCD-7 segmentli dekoder ikkilik kodli o'nlik (BCD) kirishni mos keladigan 7 segmentli displey chiqishiga aylantiradigan kombinatsiyalangan mantiqiy sxema. BCD-7 segment dekoderi haqiqat jadvali va kombinatsiyalangan mantiqiy eshiklar yordamida amalga oshirilishi mumkin, masalan, AND eshiklari, OR eshiklari va EMAS eshiklari.


BCD kiritish 0 dan 9 gacha bo'lgan o'nlik raqamni ifodalovchi 4 bitli ikkilik koddir. 7 segmentli displeyda turli raqamlarni ko'rsatish uchun yoqilishi yoki o'chirilishi mumkin bo'lgan etti segment mavjud. Quyidagi diagrammada ko'rsatilganidek, etti segment a, b, c, d, e, f va g deb etiketlanadi:


lua
Kodni nusxalash


a
---
f | | b
| g |
---
e | | c
| |
---
d
Har bir segment yoqilgan (yoqilgan) yoki o'chirilgan (yoqilmagan) va mos ravishda 1 yoki 0 ikkilik qiymati yordamida boshqarilishi mumkin. Shuning uchun, BCD-7 segmentli dekoder 4 bitli BCD kiritishni oladi va 7 segmentli displey segmentlariga mos keladigan etti ikkilik chiqishni ishlab chiqaradi.

BCD-7 segment dekoderi uchun misol haqiqat jadvali:


BCD Kirish a b c d e f g


0000 1 1 1 1 1 1 0
0001 0 1 1 0 0 0 0
0010 1 1 0 1 1 0 1
0011 1 1 1 1 0 0 1
0100 0 1 1 0 0 1 1
0101 1 0 1 1 0 1 1
0110 1 0 1 1 1 1 1
0111 1 1 1 0 0 0 0
1000 1 1 1 1 1 1 1
1001 1 1 1 1 0 1 1
Haqiqat jadvali har bir mumkin bo'lgan BCD kiritish uchun 7-segmentli displey segmentlarining qiymatlarini ko'rsatadi. Misol uchun, BCD kiritish 0000 bo'lsa (bu o'nlik raqam 0 ni bildiradi), 7 segmentli displeyning barcha yetti segmenti o'chirilgan bo'lishi kerak bo'lgan g segmentidan tashqari yoqilgan bo'lishi kerak. Shuning uchun a, b, c, d, e, f va g chiqishlarining qiymatlari g dan tashqari 1 ga teng, bu 0 ga teng.

BCD-7 segment dekoder sxemasini amalga oshirish uchun biz BCD kirishini ettita chiqish segmentining har biri uchun mos qiymatlarga aylantiradigan kombinatsiyalangan mantiqiy eshiklar tizimini yaratish uchun haqiqat jadvalidan foydalanishimiz mumkin. Amaldagi maxsus mantiqiy eshiklar dekoder dizayniga bog'liq bo'ladi, lekin odatda VA eshiklari, OR eshiklari va EMAS eshiklarining kombinatsiyasini o'z ichiga oladi.


Sxema ishlab chiqilgan va amalga oshirilgandan so'ng, biz BCD kirishini dekoderga kiritishimiz va ettita chiqish segmenti uchun mos keladigan qiymatlarni olishimiz mumkin. Bular


qiymatlar keyinchalik tegishli raqamni ko'rsatish uchun 7 segmentli displeyning alohida segmentlarini boshqarish uchun ishlatilishi mumkin.

7-segmentli displeyda BCD raqamlarini ko'rsatishning umumiy usuli umumiy anod yoki umumiy katod konfiguratsiyasidan foydalanishdir. Umumiy anod konfiguratsiyasida alohida segmentlarning barcha anodlari bir-biriga ulanadi va BCD-7 segment dekoderining bitta chiqish pimi bilan boshqariladi. Keyin alohida segmentlarning katodlari dekoderning alohida chiqish pinlariga ulanadi. Chiqish pinini yuqoriga (mantiqiy daraja 1) aylantirilganda, tegishli segment o'chadi. Umumiy katod konfiguratsiyasida alohida segmentlarning katodlari bir-biriga ulanadi va dekoderning bitta chiqish pimi bilan boshqariladi, anodlar esa alohida chiqish pinlariga ulanadi.


Xulosa qilib aytganda, BCD-7 segmentli dekoder 4-bitli BCD kirishini 7-segmentli displey segmentlariga mos keladigan etti ikkilik chiqishga aylantiradigan kombinatsiyalangan mantiqiy sxemadir. Dekoder haqiqat jadvali va kombinatsiyalangan mantiqiy eshiklar yordamida amalga oshirilishi mumkin va chiqishlar tegishli raqamni ko'rsatish uchun displeyning alohida segmentlarini boshqarish uchun ishlatilishi mumkin. Dekoderning o'ziga xos amalga oshirilishi 7-segmentli displeyning konfiguratsiyasiga va dasturning o'ziga xos talablariga bog'liq bo'lishi mumkin. BCD-7 segment dekoderining keng tarqalgan o'zgarishi - kirishni yoqish bilan BCD-7 segment dekoderidir. Ushbu o'zgarish dekoderni yoqish yoki o'chirish uchun ishlatiladigan qo'shimcha kirish pinini o'z ichiga oladi. Yoqish kiritish yuqori bo'lsa (mantiqiy daraja 1), dekoder an'anaviy tarzda ishlaydi va BCD kiritishni ettita chiqish segmenti uchun mos qiymatlarga aylantiradi. Yoqish kiritish past bo'lsa (mantiqiy daraja 0), BCD kiritish qiymatidan qat'i nazar, barcha chiqish segmentlari o'chiriladi.


BCD-7 segment dekoderining yana bir o'zgarishi o'n oltilikdan 7-segmentli dekoderdir. Bu dekoder 4-bitli ikkilik kiritishni oladi va uni yetti chiqish segmenti uchun mos qiymatlarga aylantiradi, lekin kirish BCD raqami oʻrniga oʻn oltilik raqamni (0 dan F gacha) ifodalaydi. Ushbu dekoder haqiqat jadvali va BCD-7 segment dekoderiga o'xshash kombinatsiyalangan mantiqiy eshiklar yordamida amalga oshirilishi mumkin.


Umuman olganda, BCD-7 segment dekoderlari va ularning o'zgarishlari odatda raqamli elektronikada 7 segmentli displeylarda o'nlik raqamlarni ko'rsatish uchun ishlatiladi. Ular oddiy va samarali sxemalar bo'lib, ular kam sonli mantiqiy eshiklar yordamida amalga oshirilishi mumkin, bu ularni keng ko'lamli ilovalar uchun foydali qiladi.


16-mavzuBCD-7 bo‘g‘inlidecodersxemasinituzish.


BCD-7 segment dekoderi raqamli mantiqiy sxema bo'lib, ikkilik kodli o'nlik (BCD) formatida 4 bitli kirishni oladi va mos keladigan o'nli raqamni ko'rsatish uchun 7 segmentli displey segmentlarini harakatga keltira oladigan etti ikkilik signallarni chiqaradi. Etti ikkilik signallar displey segmentlarini ifodalaydi, har bir signal ma'lum bir segmentga mos keladi.


BCD-7 segment dekoderi har bir mumkin bo'lgan kirish kombinatsiyasi uchun chiqish signallarini aniqlash uchun haqiqat jadvalidan foydalanadi. Haqiqat jadvali 16 ta qatordan iborat bo'lib, to'rtta kirish bitining har bir mumkin bo'lgan kombinatsiyasi uchun bittadan va displeyning har bir segmenti uchun bittadan yetti ustundan iborat. Haqiqat jadvali BCD kiritish asosida har bir segment uchun ikkilik qiymatlarni belgilaydi. Masalan, "0" raqamini ko'rsatish uchun a, b, c, d, e va f segmentlari yoqilgan, g segmenti esa o'chirilgan. Haqiqat jadvali barcha mumkin bo'lgan BCD kirish qiymatlari uchun har bir segment uchun mos ikkilik qiymatlarni belgilaydi.


BCD-7 segment dekoderi odatda mantiqiy eshiklar kombinatsiyasi yordamida amalga oshiriladi, masalan, AND eshiklari, OR eshiklari va EMAS eshiklari. Dekoderga kirishlar har bir segment uchun chiqish signallarini yaratish uchun zarur mantiqiy operatsiyalarni bajaradigan eshiklarga ulanadi.


Odatiy amalga oshirishda BCD kirishi dekoderga beriladi, so'ngra displeyning har bir segmenti uchun mos keladigan ikkilik signallarni hosil qiladi. Keyin bu ikkilik signallar kerakli raqamni ko'rsatish uchun 7 segmentli displeyning alohida segmentlarini boshqarish uchun ishlatiladi. Misol uchun, agar BCD kiritish "0110" bo'lsa, o'nlik 6 raqamiga mos keladi, dekoder a, b, c, d segmentlari uchun 1, 1, 1, 0, 1, 1, 1 ikkilik qiymatlarini hosil qiladi. mos ravishda e, f va g. Keyin bu ikkilik qiymatlar 6 raqamini ko'rsatish uchun displeyning tegishli segmentlarini yoqish uchun ishlatiladi.


Umuman olganda, BCD-7 segment dekoderi 7 segmentli displeyda o'nlik raqamlarni ko'rsatishning oddiy va samarali usuli hisoblanadi. U asosiy mantiqiy eshiklar yordamida osongina amalga oshirilishi mumkin va keng tarqalgan raqamli elektronika ilovalarida keng qo'llaniladi. BCD-7 segment dekoderidan foydalanishda muhim e'tiborga olish - chiqish signallarining polaritesi. Chiqish signallari aniq amalga oshirishga qarab faol yuqori yoki faol past bo'lishi mumkin. Faol yuqori amalga oshirishda ikkilik qiymat 1 displeyning mos keladigan segmentini yoqadi, 0 ikkilik qiymati esa uni o'chiradi. Faol past amalga oshirishda 0 ikkilik qiymati displeyning mos keladigan segmentini yoqadi, ikkilik qiymati 1 esa uni o'chiradi. Polaritni tanlash maxsus dasturga va foydalaniladigan 7 segmentli displeyning konfiguratsiyasiga bog'liq.


Yana bir e'tibor - 7-segmentli displey uchun umumiy anod yoki umumiy katod konfiguratsiyasidan foydalanish. Umumiy anod konfiguratsiyasida alohida segmentlarning barcha anodlari bir-biriga ulanadi va BCD-7 segment dekoderining bitta chiqish pimi bilan boshqariladi, katodlar esa alohida chiqish pinlariga ulanadi. Umumiy katod konfiguratsiyasida alohida segmentlarning barcha katodlari bir-biriga ulanadi va dekoderning bitta chiqish pimi bilan boshqariladi, anodlar esa alohida chiqish pinlariga ulanadi. Konfiguratsiyani tanlash, shuningdek, maxsus dastur va displey talablariga bog'liq.


Nihoyat, BCD-7 segment dekoderiga kirish BCD ma'lumotlarining haqiqiy ekanligini ta'minlash muhimdir. Noto'g'ri kiritilgan ma'lumotlar kutilmagan natijalarga olib kelishi yoki dekoderga zarar etkazishi mumkin. Kirish BCD ma'lumotlarining to'g'riligini ta'minlashning bir usuli - BCD-ni ikkilik konvertor yoki dekoderga yuborishdan oldin kirishni tekshirishi mumkin bo'lgan mikrokontrollerdan foydalanish.


Xulosa qilib aytganda, BCD-7 segment dekoderi 7 segmentli displeyda o'nlik raqamlarni ko'rsatishning oddiy va samarali usuli hisoblanadi. U 4 bitli BCD kirishini displey segmentlariga mos keladigan etti ikkilik signalga aylantiradi. Polarlik va konfiguratsiyani tanlash maxsus dastur va displey talablariga bog'liq va kirish ma'lumotlarining haqiqiy BCD ma'lumotlari bo'lishini ta'minlash muhimdir.


BCD-7 segment dekoderining ishlashini ko'rsatish uchun misolni ko'rib chiqing. Faraz qilaylik, biz BCD-7 segmentli dekoder yordamida 7 segmentli displeyda o'nlik "3" raqamini ko'rsatmoqchimiz. "3" ning BCD ko'rinishi ikkilik tizimda 0011 ga teng.

BCD-7 segment dekoderi uchun haqiqat jadvalidan foydalanib, biz BCD kiritish asosida displeyning har bir segmenti uchun ikkilik qiymatlarni aniqlashimiz mumkin. BCD 0011 kiritish uchun haqiqat jadvali har bir segment uchun quyidagi ikkilik qiymatlarni beradi:


Segment a: 0


b segmenti: 0
C segmenti: 1
d segmenti: 1
Segment e: 0
Segment f: 0
Segment g: 0
Ushbu ikkilik qiymatlar "3" raqamini ko'rsatish uchun yoqilishi kerak bo'lgan displey segmentlariga mos keladi. Faol yuqori amalga oshirishda biz c va d segmentlari uchun chiqish pinlarini 1 ikkilik qiymatiga o'rnatamiz, a, b, e, f va g segmentlari uchun chiqish pinlari esa 0 ikkilik qiymatiga o'rnatiladi. Faol past amalga oshirishda biz a, b, e, f va g segmentlari uchun chiqish pinlarini 1 ikkilik qiymatiga, c va d segmentlari uchun chiqish pinlarini esa 0 ikkilik qiymatiga o'rnatamiz.

Displeyning segmentlariga tegishli ikkilik qiymatlarni qo'llash orqali biz "3" raqamini ko'rsatishimiz mumkin. Ushbu jarayon 0 dan 9 gacha bo'lgan barcha o'nlik raqamlar uchun takrorlanishi mumkin, bu bizga BCD-7 segmentli dekoder yordamida 7 segmentli displeyda istalgan raqamni ko'rsatishga imkon beradi.


17- mavzu Multipleksorlar va Demultipleksorlar sxemasi.
Multipleksatorlar va demultipleksatorlar bir nechta signallarni bitta ma'lumot liniyasi orqali uzatish imkonini beruvchi raqamli sxemalardir.

Multiplekser (ko'pincha "mux" deb qisqartiriladi) - bir nechta kirish signallaridan birini tanlab, uni bitta chiqishga uzatuvchi sxema. Kirish signalini tanlash ikkilik boshqaruv kirishlari to'plami tomonidan boshqariladi. Multipleksorning eng keng tarqalgan turi 2 dan 1 gacha bo'lgan multipleksor bo'lib, u ikkita kirish, bitta chiqish va bitta boshqaruv kirishiga ega. 2 dan 1 gacha bo'lgan multipleksor uchun haqiqat jadvali:


S A B F
0 0 x 0


0 1 x 1
1 x 0 0
1 x 1 1
Ushbu haqiqat jadvalida A va B ikkita kirish, F chiqish, S esa A va B o'rtasida tanlovni tanlaydigan boshqaruv kirishidir. S 0 bo'lsa, chiqish A ga teng, S 1 bo'lsa, chiqish B ga teng.

Demultipleksator (ko'pincha "demux" deb qisqartiriladi) bitta kirish signalini qabul qiladigan va uni ikkilik boshqaruv kirishlari to'plamiga asoslangan holda bir nechta chiqish liniyalaridan biriga uzatuvchi sxema. Demultipleksning eng keng tarqalgan turi 1 dan 2 gacha bo'lgan demultipleksator bo'lib, u bitta kirish, ikkita chiqish va bitta boshqaruv kirishiga ega. 1 dan 2 gacha demultipleksator uchun haqiqat jadvali:


S F0 F1
0 1 0


1 0 1
Ushbu haqiqat jadvalida kirish F bilan, ikkita chiqish esa F0 va F1 bilan belgilanadi. S 0 bo'lsa, kirish F0 ga, S 1 bo'lsa, kirish F1 ga uzatiladi.

Murakkab sxemalar hosil qilish uchun multipleksatorlar va demultipleksatorlar birlashtirilishi mumkin. Masalan, 4 dan 1 gacha bo'lgan multipleksor ikkita 2 dan 1 gacha va 1 dan 2 gacha bo'lgan demultiplekser yordamida tuzilishi mumkin. Ikkita 2 dan 1 gacha bo'lgan multipleksorlar kirishlar juftligini tanlash uchun ishlatiladi va 1 dan 2 gacha bo'lgan demultipleksator multipleksorlarning ikkita chiqishi o'rtasida tanlash uchun ishlatiladi.


Multiplekserlar va demultipleksatorlar ma'lumotlarni uzatish, manzilni dekodlash va xotiradan foydalanishni boshqarish kabi turli xil ilovalarda qo'llaniladi.Mana 2 dan 1 gacha va 1 dan 2 gacha bo'lgan demultiplekser uchun sxemalar:


2-dan 1-ga multiplekser:


lua
Kodni nusxalash


_____
| |
A ---->| |
| MUX |----> F
S ---->| |
|_____|
_____
B ---->| |
| MUX |----> F
S ---->|_____|

Ushbu sxemada A va B ikkita kirish, F - chiqish va S - A va B o'rtasida tanlaydigan boshqaruv kirishidir. Multipleksor ikkita AND shlyuzi va bitta OR shlyuzini o'z ichiga oladi. S 0 bo'lsa, chiqish A ga, S 1 bo'lsa, chiqish B ga teng bo'ladi.


1 dan 2 gacha demultipleksator:


lua
Kodni nusxalash


_____
| |
F ---->| DEMUX |
|_____|----> F0
_____
| |
F ---->| DEMUX |
|_____|----> F1
Ushbu sxemada kirish F bilan, ikkita chiqish esa F0 va F1 bilan belgilanadi. Demultipleksatorda bitta EMAS va ikkita AND eshiklari mavjud. S 0 bo'lsa, kirish F0 ga, S 1 bo'lsa, kirish F1 ga uzatiladi.

E'tibor bering, multipleksor ham, demultipleksator ham qo'shimcha boshqaruv kirish va eshiklarini qo'shish orqali ko'proq kirish va chiqishlarni boshqarish uchun kengaytirilishi mumkin. Shu bilan birga, kirish va chiqishlar soni ortib borishi bilan sxemaning murakkabligi tez oshadi.


Multiplekser va demultipleksatorni birgalikda ishlatadigan murakkabroq sxemaga misol:


4-dan 1-ga multiplekser:


zang
Kodni nusxalash


_____
| |
A0 ---->| |
| |
A1 ---->| |
| |
| MUX |----> F
A2 ---->| |
| |
A3 ---->| |
|_____|
_____
S0 ---->| |
| DEMUX |----> F0
S1 ---->|_____|----> F1
Ushbu sxemada to'rtta kirish (A0, A1, A2 va A3), bitta chiqish (F) va ikkita boshqaruv kirishlari (S0 va S1) mavjud. 4-to-1 multipleksor S0 va S1 qiymatlari asosida to'rtta kirishni tanlaydi va tanlangan kirishni chiqishga uzatadi. Demultipleksator S0 qiymatidan kelib chiqib, multipleksorning ikkita chiqishi o'rtasida tanlash uchun ishlatiladi. S0 0 bo'lsa, multipleksorning chiqishi F0 ga, S0 1 bo'lsa, multipleksorning chiqishi F1 ga uzatiladi.

Multipleksatorlar va demultipleksatorlar odatda raqamli elektronikada turli komponentlar orasidagi ma'lumotlar oqimini boshqarish uchun ishlatiladi. Multipleksatorlar bir nechta ma'lumotlar manbalarini tanlash uchun, demultipleksatorlar esa ma'lumotlarni bir nechta manzillarga tarqatish uchun ishlatiladi. Ushbu sxemalar, ayniqsa, cheklangan ma'lumotlar liniyalari mavjud bo'lgan ilovalarda, masalan, xotira manzilini dekodlashda yoki bitta aloqa liniyasi orqali ma'lumotlarni uzatishda foydalidir.


Multiplekserlar va demultipleksatorlardan foydalanadigan murakkabroq sxemaning yana bir misoli:

8 dan 3 gacha kodlovchi:


zang
Kodni nusxalash


_____
| |
A0 ---->| |
| |
A1 ---->| |
| |
A2 ---->| |
| |
A3 ---->| |
| |
A4 ---->| |
| ENC |----> Y0
A5 ---->| |
| |
A6 ---->| |
| |
A7 ---->|_____|----> Y1
_____
| |
Y0 ---->| DEMUX |
|_____|----> B0

18-mavzu: Multipleksorlarvademultipleksorlarniqurish.


Multiplekserlar, shuningdek, "muxes" deb ham ataladi, bir nechta mumkin bo'lgan kirishlardan bitta kirishni tanlab, uni chiqishga uzatadigan raqamli mantiqiy sxemalardir. Multiplekserlar odatda raqamli elektronikada turli komponentlar orasidagi ma'lumotlar oqimini boshqarish uchun ishlatiladi.


Oddiy multipleksorda n ta ma'lumot kiritish, bitta chiqish va m tanlash kirishlari mavjud bo'lib, ular chiqishga qaysi ma'lumotlar kiritilishini tanlash uchun ishlatiladi. Tanlangan kirishlar soni tanlanishi mumkin bo'lgan ma'lumotlar kiritish sonini aniqlaydi. Multiplekserning chiqishi tanlangan ma'lumotlarni kiritish hisoblanadi.


Bu erda ikkita tanlangan kirish S0 va S1 bo'lgan 4 dan 1 gacha multipleksorning namunasi:


zang
Kodni nusxalash


_____
| |
A0 ---->| |
| |
A1 ---->| |
| |
A2 ---->| |
| |
A3 ---->| |
| MUX |
S0 ---->| |
| |
S1 ---->|_____|----> F
Ushbu sxemada to'rtta ma'lumot kiritish (A0, A1, A2 va A3), ikkita tanlangan kirish (S0 va S1) va bitta chiqish (F) mavjud. Multiplekser tanlangan kirishlarning qiymatlari asosida to'rtta ma'lumot kiritishdan birini tanlaydi va tanlangan ma'lumot kiritishni chiqishga uzatadi.

Multiplekserni qurish uchun siz mantiqiy eshiklar va invertorlar kombinatsiyasidan foydalanishingiz mumkin. Sxemani mantiqiy algebra yordamida loyihalash mumkin, keyin esa AND, OR va EMAS kabi eshiklar yordamida amalga oshirilishi mumkin.


Masalan, 4 dan 1 gacha bo'lgan multipleksor uchun haqiqat jadvali:


farq
Kodni nusxalash


S1 | S0 | F
----|----|---
0 | 0 | A0
0 | 1 | A1
1 | 0 | A2
1 | 1 | A3
Ushbu haqiqat jadvalidan foydalanib, F chiqishi uchun mantiqiy ifodani quyidagicha yozishimiz mumkin:

zang
Kodni nusxalash


F = S1'S0'A0 + S1S0'A1 + S1'S0A2 + S1S0A3
Ushbu ifoda quyidagi diagrammada ko'rsatilganidek, VA, OR va EMAS eshiklarining kombinatsiyasi yordamida amalga oshirilishi mumkin:

zang
Kodni nusxalash


_____
| |
S1 ---->| |
| |
|_____| _____
| | |
S0 ---->YO'Q--+--|----| VA |---> F
Multiplekserlar yoki qisqacha MUX - raqamli sxemalar bo'lib, ular bir nechta kirishlarni nazorat signallari to'plamining qiymatlari asosida bitta chiqishga tanlab yo'naltirish imkonini beradi. Ular odatda raqamli elektronikada ma'lumotlar signallari yoki soat signallari kabi bir nechta kirish manbalari o'rtasida almashish uchun ishlatiladi.

Multiplekser istalgan miqdordagi kirishga ega bo'lishi mumkin, lekin eng keng tarqalgan turlari 2^n kirish va n nazorat signaliga ega. Masalan, 2-to-1 MUX ikkita ma'lumot kirishiga, bitta chiqishga va bitta nazorat signaliga ega. 4-to-1 MUX to'rtta ma'lumot kirishiga, bitta chiqishga va ikkita nazorat signaliga va boshqalarga ega.


Multipleksorning ishlashi boshqaruv signallarining qiymatlariga asoslanadi, ular qaysi kirishning chiqishga yo'naltirilganligini aniqlaydi. Boshqaruv signallari odatda ikkilikdir va kirishlardan birini tanlash uchun ishlatiladi. MUX ning chiqishi tanlangan kirish hisoblanadi.


Multipleksorlar turli mantiqiy eshiklar yordamida amalga oshirilishi mumkin, masalan, AND, OR, va NOT shlyuzlari va tranzistorlar yoki integral mikrosxemalar kabi diskret komponentlar yordamida qurilishi mumkin. Bitta paketda bir nechta MUX-larni o'z ichiga olgan maxsus IC-lar ham mavjud.


Mana 2 dan 1 gacha MUX uchun namuna sxemasi:


lua
Kodni nusxalash


_____
D0 --| |
| MUX |
D1 --|_____|-- F
| |
S ------|___|
Ushbu sxemada ikkita ma'lumot kiritish (D0 va D1), bitta chiqish (F) va bitta boshqaruv signali (S) mavjud. Boshqaruv signali S ikkita ma'lumot kirishidan qaysi biri chiqishga yo'naltirilganligini aniqlaydi. Agar S past (0) bo'lsa, u holda D0 chiqishga yo'naltiriladi. Agar S baland bo'lsa (1), u holda D1 chiqishga yo'naltiriladi.

Ushbu 2 dan 1 ga MUX uchun haqiqat jadvali quyidagicha:


farq
Kodni nusxalash


S | D0 | D1 | F
---|----|----|---
0 | X | X | D0
1 | X | X | D1
Haqiqat jadvalidagi X "farq qilma" qiymatlarini ifodalaydi, ya'ni tegishli boshqaruv signali faol bo'lganda chiqish D0 yoki D1 bo'lishi mumkin.

19-mavzu : Trigger haqida umumiy ma’lumot.


Raqamli elektronikada trigger - bu ishga tushirish hodisasiga javoban bir holatdan ikkinchi holatga o'tadigan impuls yoki signalni yaratish uchun ishlatiladigan elektron element. Tetiklash hodisasi kirish signalining o'zgarishi, soat pulsi yoki kirish signallarining ma'lum bir kombinatsiyasi bo'lishi mumkin.


Triggerlarni ikki turga bo'lish mumkin: darajadagi tetiklantiruvchi va chekka tetikli.


Darajali ishga tushirilgan triggerlar kirish signali ma'lum bir holatda bo'lsa, uzluksiz chiqish signalini hosil qiladi. Masalan, yuqori darajadagi tetik, kirish signali yuqori bo'lsa, doimiy yuqori chiqish signalini hosil qiladi. Kirish signali past bo'lsa, past darajadagi tetik doimiy past chiqish signalini hosil qiladi.


Chetdan tetiklanadigan triggerlar tetiklash hodisasi sodir bo'lganda bir holatdan ikkinchi holatga o'tadigan impuls yoki signal hosil qiladi. Qo'zg'atuvchi hodisa ko'tarilgan chekka, pasayish tomoni yoki ikkalasi bo'lishi mumkin. Ko'tarilgan chekka trigger kirish signali pastdan yuqoriga o'tganda impuls hosil qiladi va tushadigan chekka trigger kirish signali yuqoridan pastga o'tganda impuls hosil qiladi.


Triggerlar odatda raqamli sxemalarda flip-floplar, hisoblagichlar va siljish registrlari kabi boshqa raqamli elementlarning vaqtini sinxronlashtirish va nazorat qilish uchun ishlatiladi. Ular, shuningdek, motorlar, o'rni va LEDlar kabi boshqa qurilmalarni boshqarish uchun impulslarni yaratish uchun ishlatilishi mumkin.


Ko'p turdagi triggerlar mavjud, jumladan monostabil multivibratorlar, barqaror multivibratorlar va Shmitt triggerlari. Ushbu triggerlar AND, OR va NAND eshiklari kabi turli xil mantiqiy eshiklar yordamida amalga oshirilishi mumkin yoki ular tranzistorlar yoki integral mikrosxemalar kabi diskret komponentlar yordamida tuzilishi mumkin.


Triggerning keng tarqalgan turlaridan biri monostabil multivibrator bo'lib, u bir martalik deb ham ataladi. Monostabil multivibrator tetiklantiruvchi hodisaga javoban belgilangan muddatdagi bitta chiqish pulsini hosil qiladi. Chiqish impulsining davomiyligi rezistorlar va kondensatorlar kabi tashqi komponentlarning qiymatlari bilan belgilanadi va mikrosaniyadan soniyagacha bo'lishi mumkin.


Yana bir keng tarqalgan tetik turi barqaror multivibrator bo'lib, u erkin ishlaydigan osilator sifatida ham tanilgan. Stabil multivibrator tashqi tetiklash hodisasiga muhtoj bo'lmasdan, belgilangan chastotada ikki holat o'rtasida almashinadigan doimiy chiqish signalini hosil qiladi. Chiqish signalining chastotasi tashqi komponentlarning qiymatlari bilan belgilanadi va keng diapazonda sozlanishi mumkin.


Shmitt triggerlari shovqinli signallarni tozalash va histerezisni ta'minlash uchun keng qo'llaniladigan boshqa turdagi tetikdir. Ular kirish signalining shovqinidan qat'i nazar, ma'lum bir chegara kuchlanishida bir holatdan ikkinchisiga o'tadigan toza chiqish signalini hosil qiladi. Shmitt trigger tomonidan taqdim etilgan histerezis kirish signalining shovqini yoki tebranishlari tufayli noto'g'ri ishga tushirishni oldini olishga yordam beradi.


Triggerlar raqamli elektronikada muhim qurilish bloklari bo'lib, turli xil sxemalarda, jumladan, impuls generatorlari, soat sxemalari va ma'lumotlarni yig'ish tizimlarida qo'llaniladi. Ular diskret komponentlar yoki ixtisoslashtirilgan integral mikrosxemalar yordamida amalga oshirilishi mumkin va turli ilovalarga mos keladigan keng konfiguratsiya va spetsifikatsiyalarda mavjud.


Monostabil multivibratorlar, barqaror multivibratorlar va Shmitt triggerlariga qo'shimcha ravishda, raqamli sxemalarda tez-tez ishlatiladigan ko'plab boshqa turdagi triggerlar mavjud. Ba'zi misollar quyidagilarni o'z ichiga oladi:


Chetdan tetiklanadigan flip-floplar: Bular bir bit ma'lumotni saqlaydigan va soat signalining ko'tarilgan yoki pasaygan chetida holatni o'zgartiradigan raqamli sxemalar.


Impuls generatorlari: Bu tetiklantiruvchi hodisaga javoban sobit yoki o'zgaruvchan davomiylikdagi impulslarni hosil qiluvchi sxemalar.


Vaqt sxemalari: Bu aniq vaqt kechikishlari yoki intervallarni hosil qiluvchi sxemalar bo'lib, ko'pincha boshqa raqamli elementlar bilan birgalikda ishlatiladi.


Hisoblagichlar: Bu impulslarni hisoblaydigan va hisoblashni ifodalovchi raqamli chiqishni yaratadigan sxemalar.


Shift registrlari: Bu ko'pincha ma'lumotlarni saqlash, aloqa qilish va qayta ishlash uchun ishlatiladigan raqamli bitlar ketma-ketligini saqlaydigan va o'zgartiradigan sxemalar.


Triggerlar boshqa raqamli elementlar bilan birlashtirilishi mumkin, masalan, ma'lumotlarni yig'ish, signalni qayta ishlash, aloqa va nazorat qilish kabi raqamli funktsiyalarning keng doirasini amalga oshirish. Ular TTL, CMOS, ECL, LVDS va boshqalar kabi turli xil kirish va chiqish signal formatlarida ishlashga mo'ljallangan bo'lishi mumkin va tezlik, quvvat sarfi, shovqinga chidamlilik va narx kabi turli xil ishlash parametrlari uchun optimallashtirilishi mumkin. .


Triggerlarni va umuman raqamli sxemalarni loyihalash raqamli elektronika nazariyasini yaxshi tushunishni, shuningdek, turli dizayn vositalari va simulyatsiya dasturlarini bilishni talab qiladi. Raqamli sxemalarni loyihalashda yordam berish uchun ko'plab manbalar, jumladan, darsliklar, o'quv qo'llanmalari, dizayn bo'yicha qo'llanmalar va simulyatsiya dasturlari paketlari bilan onlayn va bosma nashrlarda mavjud.


20- mavzu: Surilma (shilk-shilk zanjir) sxemasini tuzish. RS.D.JR.TTriggeri.

Vaqt sxemalari raqamli tizimlarda signallarning vaqtini ishlab chiqaradigan va boshqaradigan elektron sxemalardir. Ular soat ishlab chiqarish, sinxronizatsiya, impulsni shakllantirish va signalni kechiktirish kabi turli xil ilovalarda keng qo'llaniladi.


Vaqt sxemalari kondensatorlar, rezistorlar, diodlar, tranzistorlar va operatsion kuchaytirgichlar kabi har xil turdagi elektron komponentlar yordamida ishlab chiqilishi mumkin. Vaqt sxemalarining dizayni ko'tarilish vaqti, pasayish vaqti, impuls kengligi, chastota va ish aylanishi kabi talab qilinadigan vaqt parametrlariga bog'liq.


Vaqt sxemasining keng tarqalgan turlaridan biri ketma-ket yoki parallel ulangan rezistor va kondansatkichdan iborat bo'lgan RC davridir. RC davrlari eksponensial to'lqin shakllari, uchburchak to'lqin shakllari va kvadrat to'lqin shakllari kabi turli xil vaqt to'lqin shakllarini yaratish uchun ishlatilishi mumkin. RC davrlarining vaqt parametrlari qarshilik va kondansatör qiymatlarini o'zgartirish orqali sozlanishi mumkin.


Vaqt sxemasining yana bir keng tarqalgan turi - belgilangan chastota va amplituda davriy to'lqin shaklini hosil qiluvchi osilator. Osilatorlar LC davrlari, kristalli rezonatorlar va operatsion kuchaytirgichlar kabi turli turdagi elektron komponentlar yordamida ishlab chiqilishi mumkin. Osilatorlarning chastotasi tashqi komponentlarning qiymatlarini o'zgartirish yoki kirish kuchlanishiga javob beradigan kuchlanish bilan boshqariladigan osilatorlar (VCO) yordamida sozlanishi mumkin.


Vaqt sxemalarining boshqa turlariga a.ni kiritadigan kechikish davrlari kiradi


Hisoblagichlar raqamli tizimda soat pulslari yoki hodisalar sonini hisoblash uchun ishlatiladigan raqamli sxemalardir. Ular odatda chastota o'lchash, vaqtni hisoblash va nazorat qilish tizimlari kabi turli xil ilovalarda qo'llaniladi.


Hisoblagichlarni ishlash rejimi va hisoblash qiymatini saqlash va chiqarish usullariga qarab bir necha turlarga bo'lish mumkin. Hisoblagichlarning umumiy turlariga quyidagilar kiradi:


Asinxron hisoblagichlar: To'lqinli hisoblagichlar sifatida ham tanilgan bu hisoblagichlar kaskadli tarzda ulangan flip-floplar yordamida ishlab chiqilgan. Asinxron hisoblagichda har bir flip-flopning chiqishi keyingi flip-flopning taktli kirishiga ulanadi. Natijada, har bir flip-flopning chiqishi bir soat tsiklining kechikishi bilan o'zgaradi va bu to'lqin effektiga olib keladi. Asinxron hisoblagichlarni loyihalash va amalga oshirish oson, lekin ular vaqtni belgilash muammolaridan aziyat chekadi va chiqishda nosozliklar bo'lishi mumkin.


Sinxron hisoblagichlar: Bu hisoblagichlar bir vaqtning o'zida soat bilan ishlaydigan flip-floplar yordamida ishlab chiqilgan. Sinxron hisoblagichda barcha flip-floplar bir xil soat signali bilan soatlanadi, bu esa chiqishning bir vaqtning o'zida o'zgarishini ta'minlaydi. Sinxron hisoblagichlar asinxron hisoblagichlarga qaraganda tezroq va ishonchliroqdir, lekin ular ko'proq texnik vositalarni talab qiladi va loyihalash ancha murakkab.


Yuqori hisoblagichlar: Bu hisoblagichlar boshlang'ich qiymatdan maksimal qiymatgacha hisoblashadi va keyin boshlang'ich qiymatga o'rashadi. Maksimal qiymat hisoblash qiymatini saqlash uchun ishlatiladigan bitlar soni bilan belgilanadi.


Hisoblagichlarni pastga tushirish: Bu hisoblagichlar boshlang'ich qiymatdan nolga qadar sanashadi va keyin maksimal qiymatga o'rashadi. Boshlang'ich qiymat hisoblash qiymatini saqlash uchun ishlatiladigan bitlar soni bilan belgilanadi.


Ikkilik hisoblagichlar: Bu hisoblagichlar hisoblash qiymatini har biri bilan ikkilik formatda saqlaydi


Zanjir sxemasini yaratish. RS.D.JR.TTriggeri.
Mana D flip-flop, JK flip-flop va T flip-flop bilan RS flip-flop uchun zanjir diagrammasi:

lua
Kodni nusxalash


+---+ +---+
| |-------| |
| R | +----| |
| | | | |
+---+ | +---+
|
+---+ +---+ +---+ +---+
| |-------| |------+ |-------| |
| S | +----| | | J | +----| |
| | | | | | | | | |
+---+ | +---+ +---+ | +---+
| |
| |
+---------+ |
| |
| |
| +---+ |
+---| D |----+
| |
+---+

+---+ +---+


| |------------| |
| J | +--------+ | Q |
| | | | | |
+---+ | | +---+
| |
+---+ +---+ | +---+ | +---+
| |------+ |-+--| |-+------+ |
| K | +---| | | Q | +---| T |
| | | | | | | | | |
+---+ | +---+ +---+ | +---+
| |
+--------------------+

Ushbu diagrammada har xil turdagi flip-floplar, shu jumladan kirish va chiqish liniyalari o'rtasidagi o'zaro bog'liqlik ko'rsatilgan. RS flip-flop D flip-flopga ulangan, u o'z navbatida JK flip-flopga, JK flip-flop esa T flip-flopga ulangan. Har bir flip-flop uchun kirish satrlari tegishli kirishlari bilan, chiqish chiziqlari esa tegishli chiqishlari bilan etiketlanadi. Diagrammada ma'lumotlarning yo'nalishi ham ko'rsatilgan


21-mavzuTriggerning mantiqiy sxemasini tuzish


Triggerning asosiy turi SR (Set-Reset) flip-flop bo'lib, u SR mandali sifatida ham tanilgan. SR flip-flopning mantiqiy diagrammasi ikkita o'zaro bog'langan NAND eshiklaridan yoki ikkita o'zaro bog'langan NOR eshiklaridan iborat.


SR flip-flopining asosiy ishlashi quyidagicha:


S (o'rnatish) kirishi YUQOR bo'lsa va R (qayta o'rnatish) kirishi LOW bo'lsa, Q chiqishi YUQORI va Q' chiqishi LOW ga o'rnatiladi.


R kirish YUQOR bo'lsa va S kirish LOW bo'lsa, Q chiqishi LOW, Q' chiqishi esa YUQOR bo'ladi.
Ikkala kirish ham YUQOR bo'lsa, chiqish holati noaniq bo'ladi (shuningdek, "taqiqlangan" holat sifatida ham tanilgan).
Taqiqlangan holatni oldini olish uchun biz SR flip-flopiga soatli kirishni qo'shishimiz mumkin, bu soat bilan SR flip-flop (SR-CLK flip-flop) deb ataladigan chekka tetiklangan versiyani yaratishimiz mumkin.

SR-CLK flip-flopning mantiqiy diagrammasi holat o'zgarishlarini boshqaradigan AND shlyuzini o'z ichiga oladi. S va R kirishlari ikkita alohida NAND shlyuzlarining kirishlariga ulanadi, keyin ular AND darvozasining ikkita kirishiga ulanadi. AND shlyuzining chiqishi SR flip-flopini tashkil etuvchi ikkita o'zaro bog'langan NAND shlyuzlarining kirishlariga ulanadi. Soat kiritish AND shlyuzining kirishlaridan biriga ulangan.


SR-CLK flip-flopning ishlashi quyidagicha:


Kirish soati LOW bo'lsa, AND shlyuzining chiqishi ham LOW bo'ladi va SR flip-flop ushlab turish holatida, joriy chiqish holati saqlanib qoladi.


Soat kiritishi YUQORI bo‘lsa, S va R kirishlari ham YUQOR bo‘lsa, AND darvozasi chiqishi faqat YUQOR bo‘ladi. Bu flip-flopning joriy holatiga qarab chiqish holatini almashtirishga olib keladi. Agar Q YUQORI bo'lsa va Q' LOW bo'lsa, S kirishidagi YUQORI Q ning YUQORI bo'lib qolishiga olib keladi, R kirishidagi YUKOR esa Q ning PASTga tushishiga olib keladi. Agar Q LOW bo'lsa va Q' YUQOR bo'lsa, S kirishidagi YUQORI Q ning YUQORI bo'lishiga olib keladi, R kirishidagi YUKOR esa Q ning PAST bo'lib qolishiga olib keladi.
Xulosa qilib aytganda, SR flip-flop ikkilik holatni saqlash uchun ishlatilishi mumkin bo'lgan asosiy trigger turidir. SR-CLK flip-flop - bu holat o'zgarishlarini boshqarish uchun soat kiritishidan foydalanadigan chekka tetiklangan versiya. Har ikkala turdagi flip-floplar istalgan chiqish harakatiga qarab NAND yoki NOR eshiklari yordamida tuzilishi mumkin.

Yana bir keng tarqalgan ishlatiladigan flip-flop turi D flip-flop bo'lib, u ma'lumotlar flip-flop sifatida ham tanilgan. D flip-flopda bitta ma'lumot kiritish (D), soat kiritish (CLK) va ikkita chiqish (Q va Q') mavjud. D flip-flopning chiqish holati soat kiritishining ko'tarilgan chetidagi (yoki konstruktsiyasiga qarab tushadigan chetida) D kirish holatiga o'zgaradi.


D flip-flopning mantiqiy diagrammasi o'zaro bog'langan NAND shlyuzlari yoki NOR shlyuzlaridan iborat bo'lib, kirish D shlyuzlardan biriga ulangan va soat kiritish boshqa shlyuzga ulangan. Chiqish Q shlyuzlarning biridan, Q' chiqishi esa boshqa eshikdan olinadi.


D flip-flopning ishlashi quyidagicha:


Kirish soati LOW bo'lsa, flip-flop ushlab turish holatida bo'ladi, joriy chiqish holati saqlanadi.


Kirish soati YUQORI bo'lganda, chiqish holati D kirish holatiga o'zgaradi. Agar D YUQORI bo'lsa, Q YUQORI, Q' esa PASTga o'tadi. Agar D LOW bo'lsa, Q PAST, Q' esa YUKOR bo'ladi.
Xulosa qilib aytganda, D flip-flop - bu bitta ikkilik bitli ma'lumotlarni saqlash uchun ishlatilishi mumkin bo'lgan trigger turi. Chiqish holati soat kiritishining ko'tarilgan (yoki pasaygan) chetida o'zgaradi va D kirish holatiga o'rnatiladi.

Flip-flopning yana bir turi JK flip-flop bo'lib, u RS flip-flopiga o'xshaydi, lekin J-K kiritish deb nomlanuvchi qo'shimcha kirishga ega. J-K kirishi flip-flopning RS flip-flopiga nisbatan ba'zi qo'shimcha funktsiyalarga ega bo'lishiga imkon beradi.


JK flip-flopning mantiqiy diagrammasi o'zaro bog'langan NAND shlyuzlari yoki NOR shlyuzlaridan iborat bo'lib, J va K kirishlari shlyuzlardan biriga, soatli kirish esa boshqa shlyuzga ulangan. Chiqish Q shlyuzlarning biridan, Q' chiqishi esa boshqa eshikdan olinadi.


JK flip-flopning ishlashi quyidagicha:


Kirish soati LOW bo'lsa, flip-flop ushlab turish holatida bo'ladi, joriy chiqish holati saqlanadi.


Kirish soati YUKOR bo'lganda, chiqish holati J va K kirishlari asosida o'zgaradi. JK flip-flop uchun haqiqat jadvali quyidagicha:
J K Q(t) Q(t+1)
0 0 Q(t) Q(t)
0 1 Q(t) 0
1 0 Q(t) 1
1 1 Q(t) ~Q(t)
Bu yerda Q(t) va Q(t+1) mos ravishda t va t+1 vaqtdagi chiqish holatini bildiradi. ~ belgisi mantiqiy EMAS operatorini bildiradi.

Haqiqat jadvalidan shuni ko'rishimiz mumkinki, J va K ham PAY bo'lganda, chiqish holati o'zgarishsiz qoladi. J YUQORI va K LOW bo'lsa, chiqish YUQORI, J LOW va K YUQOR bo'lsa, chiqish LOW ga o'rnatiladi. J va K ikkalasi ham YUQOR bo'lsa, chiqish holati o'zgaradi, ya'ni joriy holatga qarab YUQORI dan LOW ga yoki LOW dan YUQORI ga o'zgaradi.


Xulosa qilib aytganda, JK flip-flop - bu bitta ikkilik ma'lumotlar bitini saqlash uchun ishlatilishi mumkin bo'lgan qo'shimcha funktsiyaga ega bo'lgan chiqish holatini almashtirish uchun ishlatilishi mumkin bo'lgan trigger turi. Chiqish st



22-mavzu: Hisoblagich haqid aumumiy ma’lumot.
Asinxron hisoblagichni ishlash prinsipini o‘rganish. Yig‘indi hosil qiluvchi hisoblagich
Hisoblagich - bu vaqt o'tishi bilan sodir bo'ladigan soat impulslari yoki hodisalar sonini hisoblaydigan raqamli sxema. Hisoblagichlar vaqtni belgilash, chastotani o'lchash va nazorat qilish kabi keng ko'lamli raqamli ilovalarda qo'llaniladi.

Hisoblagichlarning har xil turlari mavjud, ammo ulardan biri asinxron hisoblagich bo'lib, u dalgalanma hisoblagichi sifatida ham tanilgan. Asinxron hisoblagich flip-floplar zanjiridan iborat bo'lib, bitta flip-flopning chiqishi zanjirdagi keyingi flip-flopning kirishiga ulanadi. Har bir flip-flop oldingi flip-flopning chiqishi bilan tetiklanadi, shuning uchun umumiy hisoblash ketma-ketligi soat kiritishi va flip-floplar orqali qayta aloqa aylanishi bilan belgilanadi.

Asinxron hisoblagichning ishlash printsipi quyidagicha:

Zanjirdagi birinchi flip-flop soat kiritish orqali ishga tushiriladi va soat pulsining ko'tarilgan chetidagi holatni o'zgartiradi.


Keyin birinchi flip-flopning chiqishi zanjirdagi ikkinchi flip-flopni ishga tushirish uchun ishlatiladi, bu esa soat pulsining keyingi ko'tarilgan chetidagi holatni o'zgartiradi.
Keyin ikkinchi flip-flopning chiqishi zanjirdagi uchinchi flip-flopni ishga tushirish uchun ishlatiladi va hokazo.
Umumiy hisoblash ketma-ketligi zanjirdagi flip-floplarning ikkilik naqshlari bilan belgilanadi, har bir flip-flop umumiy hisobda biroz hissa qo'shadi.
Asinxron hisoblagich yuqoriga yoki pastga sanash uchun mo'ljallangan bo'lishi mumkin va har qanday bosqich yoki bitlarga ega bo'lishi mumkin. Biroq, asinxron hisoblagichlar bir qator kamchiliklarga ega, masalan:

Tarqatishning kechikishi: Zanjirdagi flip-floplar oldingi flip-flopning chiqishi bilan tetiklanganligi sababli, har bir flip-flopning chiqishi zanjirdagi keyingi flip-flopga tarqalishi uchun biroz vaqt talab etiladi. Bu umumiy hisoblash ketma-ketligining kechikishiga olib kelishi mumkin, bu uzoq zanjirlar yoki yuqori chastotali soat kiritishlari uchun ahamiyatli bo'lishi mumkin.


Nosozliklar: Asinxron hisoblagichlar nosozliklar yoki soxta chiqish holatlaridan ham aziyat chekishi mumkin, ayniqsa kirish o'tishlari soat pulsining tetiklash chetiga yaqin bo'lsa.
Ushbu muammolarni hal qilish uchun ko'pincha asinxron hisoblagichlar o'rniga sinxron hisoblagichlar qo'llaniladi. Sinxron hisoblagichlar zanjirdagi barcha flip-floplar uchun umumiy soat kiritishidan foydalanadi va chiqish o'tishlarini sinxronlashtirish va nosozliklarni bartaraf etish uchun qo'shimcha mantiqdan foydalanadi.

Sinxron hisoblagichlarning keng tarqalgan turlaridan biri ikkilik yig'indi hisoblagichi bo'lib, u parallel qo'shuvchi yoki to'lqinli taymer sifatida ham tanilgan. Ikkilik yig'ish hisoblagichi to'liq qo'shuvchi zanjirlar zanjiridan iborat bo'lib, har bir to'liq qo'shuvchi umumiy sonning bir bitini ifodalaydi. Har bir to'liq qo'shimchaning tashish chiqishi zanjirdagi keyingi to'liq qo'shuvchining tashish kirishiga ulanadi, bu esa ko'chirishning sxema bo'ylab to'lqinlanishiga va to'g'ri ikkilik yig'indini yaratishga imkon beradi.

Umuman olganda, hisoblagichlar raqamli sxemalarda muhim qurilish bloklari bo'lib, vaqt o'tishi bilan hodisalarni kuzatish va o'lchash uchun keng ko'lamli ilovalarda qo'llaniladi.
Ikkilik yig'indi hisoblagichi yoki parallel qo'shuvchi haqida batafsil ma'lumot berish uchun bu turdagi sinxron hisoblagich ko'pincha ko'p bitli hisoblash kerak bo'lganda ishlatiladi. U zanjirga ulangan bir nechta to'liq qo'shimchalardan iborat bo'lib, har bir to'liq qo'shuvchi sanoqning bir bitini ifodalaydi.

Ikkilik yig'ish hisoblagichining ishlash printsipi quyidagicha:

Zanjirdagi birinchi to'liq qo'shuvchi soat signalini, shuningdek, odatda nolga o'rnatiladigan dastlabki tashish signalini oladi. Birinchi to'liq qo'shuvchiga kiritilgan ma'lumotlar ham kuzatilishi kerak bo'lgan hisobning birinchi bitiga mos keladi.
Soat signalining ko'tarilgan chetida birinchi to'liq qo'shuvchi o'zining kirishlari asosida yig'indi va bajaruvchi signalni ishlab chiqaradi, keyin esa zanjirdagi ikkinchi to'liq qo'shimchaga uzatiladi.
Ikkinchi to'liq qo'shimcha ham oldingi bajarilish signalini, shuningdek, hisoblashning ikkinchi bitiga mos keladigan kirishlarni oladi. Keyin ikkinchi to‘liq qo‘shuvchidan olib boruvchi signal zanjirdagi uchinchi to‘liq qo‘shimchaga uzatiladi va har bir qo‘shimcha to‘liq qo‘shuvchi uchun shunday davom etadi.
Zanjirdagi oxirgi to'liq qo'shuvchidan olib boriladigan signal odatda o'chiriladi, chunki uni qabul qilish uchun qo'shimcha to'liq qo'shimcha qurilmasi yo'q. Buning o'rniga, u ortiqcha signal sifatida yoki tashqi hodisani tetiklash uchun ishlatilishi mumkin.
Umuman olganda, ikkilik yig'ish hisoblagichi 0 dan 2 ^ n-1 gacha bo'lgan sonlarni kuzatish uchun mo'ljallangan bo'lishi mumkin, bu erda n - zanjirdagi to'liq qo'shimchalar soni. Har bir to'liq qo'shimchaning chiqishlari LED displey yoki raqamli ekran kabi chiqish qurilmasida hisoblashning alohida bitlarini ko'rsatish uchun ham ishlatilishi mumkin.

Umuman olganda, ikkilik yig'indi hisoblagichi kabi sinxron hisoblagichlar asinxron hisoblagichlarga qaraganda ishonchliroq va aniqroq hisoblashni ta'minlaydi, chunki ular tarqalish kechikishlari va nosozliklarga kamroq ta'sir qiladi. Biroq, ularni loyihalash va amalga oshirish murakkabroq bo'lishi mumkin, ayniqsa katta hisoblar yoki yuqori tezlikdagi ilovalar uchun.

23-mavzu : Ayiruvchi hisoblagich.Asinxron hisoblagichni tuzish.

Davom Asinxron ayiruvchi hisoblagich yaratish uchun siz mantiqiy eshiklar va flip-floplar kombinatsiyasidan foydalanishingiz kerak bo'ladi. 2 bitli ayiruvchi hisoblagichni yaratish uchun umumiy jarayon:

Birinchidan, joriy hisoblash qiymatini ushlab turadigan flip-flop yaratishingiz kerak. Buning uchun D flip-flop yoki JK flip-flopdan foydalanishingiz mumkin. Oddiylik uchun D flip-flopdan foydalanamiz.

Flip-flopning Q chiqishini zanjirdagi keyingi flip-flopning D kirishiga ulang. Bu joriy hisoblash qiymatini hisoblagichning keyingi bosqichiga o'tkazish imkonini beradi.

Birinchi flip-flopning Q' chiqishini ikkinchi flip-flopning D kirishiga ulang. Bu ayiruvchi hisoblagichni yaratadi, bunda keyingi hisoblash qiymati joriy hisoblash qiymati minus 1 ga teng.

Hisoblagich 0 dan boshlanishini ta'minlash uchun siz zanjirdagi barcha flip-floplarning qayta o'rnatish kirishiga qayta o'rnatish signalini ulashingiz mumkin.

Shuningdek, har bir flip-flopning soat kirishiga soat signalini ulashingiz mumkin, shunda hisoblagich har bir soat pulsini hisoblaydi.

Mana 2 bitli ayiruvchi hisoblagichning diagrammasi:

lua
Kodni nusxalash
+------+ +------+
| |-----| |-----
--| D | | D |-----
| | | |
+------+ +------+
| |
| +-----+ | +-----+
---| Q | ---| Q |
+-----+ +-----+
Ushbu diagrammada D flip-floplar ketma-ket ulangan, har bir flip-flopning chiqishi keyingi flip-flopning kirishiga ulangan. Birinchi flip-flopning (Q) chiqishi hisoblagichning eng kam ahamiyatli biti (LSB), ikkinchi flip-flopning (Q') chiqishi esa hisoblagichning eng muhim biti (MSB) hisoblanadi. Qayta tiklash kiritish va soat kiritish nazorat signallariga ulanadi, ular hisoblagichni 0 ga tiklaydi va har bir soat pulsida hisoblagichni oshiradi.

Ayiruvchi mantiqni amalga oshirish uchun siz ba'zi qo'shimcha mantiqiy eshiklardan foydalanishingiz kerak bo'ladi. Xususan, joriy hisoblash qiymatining LSB ni "qarz olish" signali bilan solishtirish uchun sizga XOR eshigi kerak bo'ladi. Agar qarz olish signali yuqori bo'lsa, demak, hisoblagichning oldingi bosqichi joriy hisoblash qiymatidan 1 ni olib tashlagan va biz joriy bosqichda yana 1 ni olib tashlashimiz kerak. Agar qarz olish signali past bo'lsa, bu avvalgi bosqichda 1 ni ayilmaganligini anglatadi va biz joriy hisoblash qiymatini keyingi bosqichga o'tkazishimiz mumkin.

Qarz olish signalini yaratish uchun joriy hisoblash qiymatining MSB ni oldingi hisoblash qiymatining LSB bilan solishtirish uchun AND darvozasidan foydalanishingiz mumkin. Agar MSB 1 bo'lsa va LSB 0 bo'lsa, bu avvalgi hisoblash qiymati toq raqam bo'lganligini va keyingi bosqichdan 1 ni olishimiz kerakligini anglatadi.

Mana, ayiruvchi mantiqni o'z ichiga olgan o'zgartirilgan diagramma:

lua
Kodni nusxalash
+------+ +------+
Qarz olish --->| |-----| |-----
--| D | | D |-----
| | | |
+------+ +------+
| |
| +-----+ | +-----+
---| Q | ---| Q |
+-----+ +-----+
Ushbu diagrammada "Qarz" signali oldingi bosqichning LSB chiqishi bilan birga XOR shlyuziga ulangan kirishdir. XOR shlyuzining chiqishi birinchi flip-flopning D kirishiga ulangan. Birinchi flip-flopning chiqishi avvalgidek ikkinchi flip-flopning D kirishiga ulanadi. Ikkinchi flip-flopning chiqishi joriy hisoblash qiymatidir.

Ushbu ayiruvchi mantiqdan foydalangan holda, hisoblagich oldingi hisoblash qiymatidan qat'i nazar, har bir soat pulsida 1 ga sanab chiqadi. Agar hisoblagich 0 ga yetsa, u maksimal qiymatiga o'raladi (bu holda, 2 bitli hisoblagich uchun 3).

Qayta tiklash mantig'ini amalga oshirish uchun siz qayta o'rnatish signalini ikkinchi flip-flopning (Q') teskari chiqishi bilan birlashtirgan qo'shimcha AND shlyuzidan foydalanishingiz mumkin. Qayta tiklash signali yuqori bo'lsa, AND shlyuzining chiqishi yuqori bo'ladi, bu ikkala flip-flopni 0 ga qaytaradi.
Qayta tiklash mantig'ini o'z ichiga olgan yakuniy diagramma:

lua
Kodni nusxalash


+------+ +------+
Qayta tiklash --->| |-----| |-----
--| D | | D |-----
| | | |
+------+ +------+
| |
| +-----+ | +-----+
---| Q | ---| Q |
+-----+ +-----+
Ushbu diagrammada qayta o'rnatish signali ikkinchi flip-flopning (Q') teskari chiqishi bilan birga AND shlyuziga ulangan kirishdir. AND shlyuzining chiqishi ikkala flip-flopning reset kirishiga ulanadi.

Ushbu yakuniy diagramma bilan asenkron ayiruvchi hisoblagich tugallandi. Siz ushbu hisoblagichdan har bir soat pulsida 1 ga sanashingiz kerak bo'lgan turli ilovalarda, masalan, taymerlar, chastota ajratgichlar yoki boshqa shunga o'xshash sxemalarda foydalanishingiz mumkin.

Shuni ta'kidlash kerakki, ayiruvchi hisoblagich asinxron dizayndir, ya'ni kirishlar o'zgarishi bilan chiqish o'zgaradi, r
24- mavzu: Hisoblagich haqida umumiy ma’lumot.

Hisoblagich masofa, vaqt, harorat, og'irlik, bosim kabi turli jismoniy miqdorlarni yoki kuchlanish, oqim va qarshilik kabi elektr miqdorlarni o'lchash va ko'rsatish uchun ishlatiladigan qurilma. Hisoblagichlar fan, muhandislik, sanoat va kundalik hayot kabi turli sohalarda keng qo'llaniladi.

Hisoblagichlarni o'lchash printsipi yoki o'lchanadigan jismoniy miqdorga qarab tasniflash mumkin. Ba'zi keng tarqalgan hisoblagich turlariga quyidagilar kiradi:

Analog hisoblagichlar - bu shkalada o'lchangan miqdorni ko'rsatish uchun igna ishlatadigan elektromexanik qurilmalar. Masalan, voltmetrlar, ampermetrlar va bosim o'lchagichlar.

Raqamli hisoblagichlar - bu o'lchangan miqdorni ko'rsatish uchun raqamli displeylardan foydalanadigan elektron qurilmalar. Masalan, raqamli multimetrlar, termometrlar va osiloskoplar.

Smart hisoblagichlar - bu boshqa qurilmalar va tizimlar bilan aloqa qila oladigan, energiya iste'moli va ishlab chiqarish haqida batafsil ma'lumot beradigan ilg'or raqamli hisoblagichlar. Ular elektr va gaz uchun aqlli tarmoq tizimlarida keng qo'llaniladi.

Hisoblagichlar odatda ma'lum bir o'lchov oralig'ida ishlash uchun mo'ljallangan va turli xil aniqlik va ruxsat xususiyatlariga ega. Kerakli o'lchov diapazoni, aniqligi va boshqa xususiyatlardan kelib chiqib, ma'lum bir dastur uchun to'g'ri hisoblagichni tanlash muhimdir.

Hisoblagichlar boshqa o'lchash asboblarining aniqligi va ishonchliligini ta'minlash uchun turli xil kalibrlash va sinov jarayonlarida ham qo'llaniladi. Kalibrlash - bu vaqt o'tishi bilan aniq va izchil ko'rsatkichlarni ta'minlash uchun hisoblagich yoki o'lchash moslamasini sozlash jarayonini anglatadi.

Umuman olganda, hisoblagichlar turli sohalarda turli jismoniy miqdorlarni o'lchash va kuzatishda muhim rol o'ynaydi va ilmiy tadqiqotlar, muhandislik dizayni va boshqa ko'plab ilovalar uchun muhim vositadir.
She'riyatda urg'u-bo'g'in o'lchagichdan tashqari boshqa o'lchagich turlari ham qo'llaniladi. Masalan, bo'g'in o'lchagich urg'u yoki urg'usiz bo'lishidan qat'i nazar, faqat satrdagi bo'g'inlar soniga asoslanadi. Ushbu turdagi metr odatda haykuning ba'zi shakllarida uchraydi, bu erda birinchi va uchinchi qatorlar besh bo'g'inli, ikkinchi qatorda etti bo'g'in mavjud.

Hisoblagichlarning yana bir turi - miqdoriy o'lchagich bo'lib, u bo'g'inlarning urg'usiga emas, balki uzunligiga asoslanadi. Ushbu turdagi hisoblagich ba'zi tillarda, masalan, lotin va qadimgi yunon tillarida qo'llaniladi, bu erda bo'g'inlar davomiyligiga qarab uzun yoki qisqa deb tasniflanadi.

Zamonaviy she’riyatda ba’zi shoirlar qat’iy metrik naqshga amal qilmaydigan erkin she’rlardan ham foydalanishlari mumkin. Buning o'rniga, erkin she'r o'ziga xos ritm va tuzilishni yaratish uchun satrlarni ajratish, takrorlash va tasvir kabi boshqa qurilmalarga tayanadi.

Umuman olganda, she'riyatda metrdan foydalanish musiqiylik va ritm tuyg'usini yaratish, kalit so'zlar va g'oyalarni ta'kidlash orqali o'quvchi tajribasini sezilarli darajada oshirishi mumkin. Turli xil effektlarni yaratish uchun har xil turdagi metrlardan foydalanish mumkin va ko'plab shoirlar noyob va innovatsion she'riyat asarlarini yaratish uchun metr bilan tajriba o'tkazadilar.

Hisoblagichlarning har xil turlaridan tashqari, o'ziga xos metr naqshlaridan foydalanadigan turli xil she'riy shakllar ham mavjud. Misol uchun, ballada shaklida ko'pincha sakkiz va olti bo'g'inli o'zgaruvchan naqshli har bir baytda to'rt qatordan iborat umumiy metrdan foydalaniladi. Limerik shakli ham o'ziga xos metr naqshiga ega bo'lib, birinchi, ikkinchi va beshinchi qatorlar uchta urg'uli bo'g'inli va uchinchi va to'rtinchi qatorlar ikkita urg'uli bo'g'inli besh qatordan iborat.

Hisoblagichni tushunish ham o'quvchilarga she'rni tahlil qilish va baholashga yordam beradi. She’rda qo‘llanilgan o‘lchagich turini aniqlash orqali o‘quvchilar she’r ritmini va uning asarning umumiy ma’nosi va hissiyotiga qanday hissa qo‘shishini yaxshiroq tushunishlari mumkin. Hisoblagich, shuningdek, o'quvchilarga shoirning musiqiy va tuzilgan san'at asarini yaratishdagi mahorati va mahoratini baholashga yordam beradi.

Umuman olganda, metr she'rning asosiy jihati bo'lib, she'rning tuzilishi va ritmini ta'minlaydi va uning o'quvchiga umumiy ta'sirini kuchaytiradi.

25-mavzu: Sinxron hisoblagichni ishlash prinsipini o‘rganish. Yig‘indi hosil qiluvchi hisoblagich

Sinxron hisoblagich - bu hisoblagich flip-floplarining ishlashini sinxronlashtirish uchun soat signalidan foydalanadigan raqamli hisoblagichning bir turi. Hisoblagich flip-floplar zanjiridan iborat bo'lib, bu erda har bir flip-flop bir xil soat signali bilan tetiklanadi. Har bir flip-flopning chiqishi zanjirdagi keyingi flip-flopning soat kiritishiga ulanadi.

Sinxron hisoblagichning ishlash printsipi quyidagicha:

Hisoblagich barcha flip-flop chiqishlarini nolga o'rnatuvchi reset signalini qo'llash orqali ma'lum holatga ishga tushiriladi.

Soat signali pastdan yuqoriga o'tganda, zanjirdagi birinchi flip-flop ishga tushiriladi, bu uning chiqishi holatini o'zgartirishga olib keladi. Keyinchalik bu chiqish zanjirdagi keyingi flip-flop uchun soat kiritishiga aylanadi.

Soat signali pastdan yuqoriga o'tganda, zanjirdagi har bir keyingi flip-flop o'z navbatida ishga tushiriladi, bu esa uning chiqishi holatini o'zgartirishga olib keladi. Zanjirdagi oxirgi flip-flopning chiqishi keyin hisoblagichning chiqishiga aylanadi.

Hisoblagich har bir soat pulsi bilan o'z holatlari bo'ylab aylanishni davom ettiradi, u maksimal hisobiga yetguncha davom etadi va shu nuqtada u dastlabki holatga qaytadi.

Sinxron hisoblagichlarning bir turi yig'indi hisoblagichi bo'lib, u ikkilik qo'shuvchi yoki to'lqinli taymer sifatida ham tanilgan. Jamlovchi hisoblagich kiruvchi soat pulslarini hisoblagichning joriy soniga qo'shish uchun bir qator to'liq qo'shuvchi sxemalardan foydalanadi. Har bir to'liq qo'shuvchi sxema oldingi to'liq qo'shuvchi zanjirning tashish chiqishini joriy sanashga qo'shadi va zanjirdagi keyingi to'liq qo'shuvchi zanjirga uzatiladigan yangi tashish chiqishini hosil qiladi.

Yig'ish hisoblagichining afzalligi shundaki, u bir xil miqdordagi flip-floplardan iborat oddiy ikkilik hisoblagichga qaraganda kattaroq songa qadar hisoblashi mumkin. Biroq, salbiy tomoni shundaki, u ko'proq sxemani talab qiladi va oddiy ikkilik hisoblagichga qaraganda sekinroq bo'lishi mumkin.

Umuman olganda, sinxron hisoblagichlar raqamli elektronika va hisoblashda turli xil ilovalar, jumladan hisoblash, vaqt va chastotani o'lchash uchun keng qo'llaniladi. Ular soat signaliga asoslangan holatlar ketma-ketligini yaratishning ishonchli va aniq usulini taklif qiladi va raqamli tizimlarga osongina integratsiya qilinishi mumkin.
Yig'ish hisoblagichida har bir to'liq qo'shuvchi sxema joriy hisobga kiruvchi soat pulsining bir bitini qo'shadi. Birinchi to'liq qo'shuvchi sxemasi joriy sanashga soat pulsining eng kam ahamiyatli bitini (LSB) qo'shadi, oxirgi to'liq qo'shuvchi sxema esa joriy sanashga eng muhim bitni (MSB) qo'shadi.

Birinchi to'liq qo'shuvchi sxemaning tashish chiqishi ikkinchi to'liq qo'shuvchi sxemaning tashish kirishiga ulanadi va oxirgi to'liq qo'shuvchi sxemaning tashish chiqishi bekor qilinmaguncha davom etadi. Har bir to'liq qo'shuvchi sxemaning yig'indisi hisoblagich chiqishining bir qismiga aylanadi.

Misol uchun, 4-bitli yig'ish hisoblagichi to'rtta to'liq qo'shuvchi sxemalardan iborat bo'lib, ularning har biri ikkita kirish (a va b) va ikkita chiqish (sum va tashish) ga ega. Birinchi to'liq qo'shuvchi sxema soat impulsining LSB ni a kirish sifatida qabul qiladi va joriy hisoblashning eng kichik bitini b kirish sifatida qabul qiladi. Ikkinchi to'liq qo'shuvchi sxema birinchi to'liq qo'shuvchi sxemaning tashish chiqishini a kirish sifatida qabul qiladi va joriy hisobning keyingi eng muhim bitini kirish b sifatida oladi va hokazo.

To'rtinchi to'liq qo'shuvchi sxemaning chiqishi hisoblagichning 4 bitli chiqishiga aylanadi. Hisoblagich ikkilik tizimda 0 dan 15 gacha (0000 dan 1111 gacha) hisoblashi mumkin va keyin 0 ga qayta tiklanadi.

Umuman olganda, yig'ish hisoblagichlari odatda chastota bo'luvchi, vaqtni kechiktirish sxemalari va soat bo'luvchisi kabi turli xil ilovalar uchun raqamli sxemalarda qo'llaniladi. Ular soat pulslarini hisoblashning moslashuvchan va samarali usulini taklif qiladi va hisoblash asosida raqamli chiqishni yaratadi. Biroq, bir nechta to'liq qo'shuvchi sxemalardan foydalanish yig'indi hisoblagichlarini oddiy ikkilik hisoblagichlarga qaraganda sekinroq va murakkabroq qilishi mumkin.
Yig'ish hisoblagichlarining oddiy ikkilik hisoblagichlardan asosiy afzalligi ularning ikkilik bo'lmagan (radiks) raqamlash tizimlarida hisoblash qobiliyatidir. Misol uchun, 4 xonali BCD (Binary Coded Decimal) hisoblagichi to'rtta to'liq qo'shuvchi sxemalar yordamida amalga oshirilishi mumkin, bunda har bir raqam BCD da 0 dan 9 gacha hisoblashi mumkin.

Yig'ish hisoblagichlarining yana bir afzalligi ularning boshqa raqamlash tizimlarida hisoblash qobiliyatidir, masalan, Grey kod yoki ortiqcha-3 kod. Kulrang kod ikkilik kod bo'lib, unda har bir keyingi raqam faqat bir bit bilan farqlanadi va ko'pincha aylanadigan kodlovchilar va raqamli potansiyometrlarda qo'llaniladi. Ortiqcha 3 kodi ikkilik kod bo'lib, har bir o'nlik raqam 4 bitli ikkilik kod bilan ifodalanadi va ko'pincha BCD qo'shimchalari va ayirish vositalarida qo'llaniladi.

Bundan tashqari, ko'proq bitli kattaroq hisoblagichlarni yaratish uchun yig'ish hisoblagichlarini osongina kaskadlash mumkin. Masalan, ikkilik tizimda 255 tagacha hisoblashi mumkin bo'lgan 8 bitli hisoblagich yaratish uchun ikkita 4 bitli yig'indi hisoblagichlarini kaskadlash mumkin.

Biroq, yig'ish hisoblagichlaridan foydalanishda ba'zi cheklovlar mavjud. Bitta cheklov ularning tezligidir, chunki har bir to'liq qo'shuvchi sxema hisoblash jarayonini sekinlashtiradigan kechikishni keltirib chiqaradi. Yana bir cheklov - ularning murakkabligi,

26-mavzu: Ayiruvchihisoblagich.Sinxronhisoblagichnituzish.

-mavzu Ayiruvchi hisoblagich - bu kirish signaliga qarab yuqoriga yoki pastga sanash mumkin bo'lgan sinxron hisoblagichning bir turi. U yig'ish hisoblagichiga o'xshash printsipni qo'llaydi, lekin joriy hisobdan kirish signalini ayirib tashlashi mumkin bo'lgan to'ldiruvchi sxema qo'shilishi bilan.

Ayiruvchi hisoblagichni o'rnatish uchun sizga flip-floplar to'plami, shuningdek, komplement sxemasi va dekoder sxemasi kerak bo'ladi. Komplement sxemasi kirish signalini oladi va uni o'zining 2-to'ldiruvchi shakliga aylantiradi, bu kirish signalini maksimal hisoblash qiymatidan ayirish ekvivalenti hisoblanadi. Dekoder sxemasi hisoblash qiymatini oladi va uni tashqi qurilmalarni boshqarish uchun ishlatilishi mumkin bo'lgan chiqishlar to'plamiga aylantiradi.

4 bitli ayiruvchi hisoblagichni o'rnatish uchun quyidagi qadamlar mavjud:

Soat signalini flip-floplarning soat kirishiga ulang.
Flip-floplarning aniq kirishini hisoblagichni 0 ga ishga tushiradigan qayta o'rnatish signaliga ulang.
Flip-floplarning chiqishlarini komplement sxemasining kirishlariga ulang.
Kirish signalini komplement sxemasining kirishiga ulang.
Komplement zanjirining chiqishini birinchi flip-flopning B kirishiga ulang.
Har bir flip-flopning Q chiqishini ketma-ketlikda keyingi flip-flopning A kirishiga ulang.
Oxirgi flip-flopning komplement chiqishini birinchi flip-flopning tashish kirishiga ketma-ket ulang.
Flip-floplarning chiqishlarini dekoder pallasining kirishlariga ulang.
Dekoder pallasining chiqishlarini hisoblash qiymatiga qarab boshqarilishi kerak bo'lgan tashqi qurilmalarga ulang.
Hisoblagich o'rnatilgandan so'ng, u kirish signali asosida yuqoriga yoki pastga hisoblash uchun ishlatilishi mumkin. Kirish signali yuqori bo'lsa, hisoblagich yuqoriga, kirish signali past bo'lsa, hisoblagich pastga sanaydi. Komplement sxemasi kirish signalining to'ldiruvchisini oladi va uni joriy hisobdan ayiradi, hisoblagich har ikki yo'nalishda ham hisoblash imkonini beradi.

Umuman olganda, ayiruvchi hisoblagichlar taymerlar, chastota ajratgichlar va raqamli boshqaruv tizimlari kabi kirish signali asosida yuqoriga yoki pastga hisoblashni talab qiladigan turli xil ilovalar uchun foydalidir. Ular soat pulslarini hisoblashning moslashuvchan va samarali usulini taklif qiladi va hisoblash asosida raqamli chiqishni ishlab chiqaradi va raqamli sxemalar va tizimlarga osongina birlashtirilishi mumkin.


Ayiruvchi hisoblagichning asosiy afzalliklaridan biri uning yuqoriga va pastga hisoblash qobiliyatidir, bu esa kirish signali asosida hisoblash yo'nalishini o'zgartirish kerak bo'lgan ilovalarda foydali bo'ladi. Misol uchun, raqamli boshqaruv tizimida sensor yoki tashqi buyruq holatiga qarab hisoblash yo'nalishini o'zgartirish kerak bo'lishi mumkin.

Ayiruvchi hisoblagichning yana bir afzalligi uning qo‘shish va ayirish kabi arifmetik amallarni bajarish qobiliyatidir. Topuvchi va ayirish sxemalarining kombinatsiyasidan foydalanib, ikkilik sonlar ustida turli amallarni bajara oladigan to'liq arifmetik birlikni amalga oshirish mumkin.

Biroq, ayiruvchi hisoblagichlardan foydalanishda ba'zi cheklovlar mavjud. Bitta cheklov ularning murakkabligidir, chunki to'ldiruvchi sxema va tashish sxemasi hisoblagichning hajmi va murakkabligini oshirishi mumkin bo'lgan qo'shimcha mantiqni qo'shadi. Yana bir cheklov - bu noto'g'ri hisoblash yoki noto'g'ri minimallashtirilmasa, chiqishda xatolarga olib kelishi mumkin bo'lgan nosozliklarga moyilligi.

Ushbu cheklovlarga qaramay, ayiruvchi hisoblagichlar raqamli elektronika va hisoblashda foydali va keng qo'llaniladigan sinxron hisoblagich turi bo'lib qolmoqda. Ular soat pulslarini hisoblash va kirish signali asosida raqamli chiqishni yaratishning moslashuvchan va samarali usulini taklif qiladi va raqamli tizimlarga osongina integratsiya qilinishi mumkin.

Ayiruvchi hisoblagichlardan tashqari, ilovalarni hisoblash uchun ishlatilishi mumkin bo'lgan sinxron hisoblagichlarning boshqa turlari mavjud. Keng tarqalgan turlardan biri Jonson hisoblagichi bo'lib, u holatlarning tsiklik ketma-ketligini amalga oshirish uchun siljish registridan foydalanadi. Yana bir tur - halqali hisoblagich bo'lib, aylana siljish registrini amalga oshirish uchun flip-floplar halqasidan foydalanadi.

Yuqorida aytib o'tilganidek, yig'indi hisoblagichlari - bu kirish signali asosida hisoblash uchun ishlatilishi mumkin bo'lgan sinxron hisoblagichlarning yana bir turi. Yig'ish hisoblagichlari kirish signalini joriy hisoblash qiymatiga qo'shish uchun qo'shimcha sxemasidan foydalanadi, bu esa kirish signali asosida hisoblash imkonini beradi. Ular ayiruvchi hisoblagichlarga qaraganda soddaroq va murakkabroq, lekin sanab bo'lmaydi yoki arifmetik amallarni bajara olmaydi.

Muayyan dastur uchun hisoblagichni tanlayotganda, dasturning o'ziga xos talablarini, jumladan, hisoblash diapazoni, hisoblash yo'nalishi, soat signalining chastotasi va kerakli chiqishlar sonini hisobga olish kerak. Ko'rib chiqilishi kerak bo'lgan boshqa omillarga quvvat sarfi, tezlik va narx, shuningdek, mos komponentlar va dizayn vositalarining mavjudligi kiradi.

Umuman olganda, sinxron hisoblagichlar ko'plab raqamli elektronika va hisoblash ilovalarida asosiy komponent bo'lib, soat pulslarini hisoblash va hisoblash qiymatiga asoslangan raqamli chiqishni yaratishning ko'p qirrali va samarali usulini taklif qiladi. Taymer, chastota bo'luvchi yoki raqamli boshqaruv tizimini loyihalashtirasizmi, sinxron hisoblagichlarning printsiplari va ishlashini tushunish muvaffaqiyatli loyihalash va amalga oshirish uchun juda muhimdir.


27-mavzu : Mantiqiyventel (jumrak) haqidatushuncha.

Mantiqiyventel, jumrak yoki ritorik figuralar nomi bilan ham mashhur boʻlib, arab, fors va urdu sheʼriyatida matnning goʻzalligi va nafisligini oshirish maqsadida qoʻllaniladigan uslubiy va lingvistik vositalardir. Bu qurilmalar ma’no yaratish, murakkab fikr va hissiyotlarni obrazli til yordamida yetkazish uchun ishlatiladi.

Mantiqiyventelning har xil turlari bor, lekin ular odatda ikkita toifaga bo'linadi: tovush naqshlari va semantik naqshlar. Tovush qoliplari tovushlarning takrorlanishi yoki oʻzgarishiga asoslanadi, semantik qoliplar esa soʻz yoki fikrning takrorlanishi yoki oʻzgarishiga asoslanadi.

Mantiqiyventel tovush naqshiga misollar:

Tavriya: so'z bir nechta talqin qilish imkonini beradigan kontekstda ishlatiladigan nutq shakli. Masalan, “Mening tosh yuragim bor” iborasini tom ma’noda, toshdan yasalgan jismoniy yurakni nazarda tutuvchi yoki majoziy ma’noda, his-tuyg’u va shafqatsizlikni anglatuvchi talqin qilish mumkin.
Iltifat: so'zlovchi ikki xil nuqtai nazar yoki grammatik shaxslar o'rtasida almashinadigan nutq shakli. Masalan, “Osmonga qarasam, u menga orqaga qarab turgandek bo‘ladi”.
Tajnis: Ketma-ket kelgan so‘z yoki iboralarda bir xil undosh tovush takrorlanadigan nutq shakli. Masalan, "mushukning miyovi" yoki "pitter-patter".
Mantiqiyventel semantik qolipiga misollar:

Tashbih: Bir narsa boshqa narsaga qiyoslanadigan nutq. Masalan, "Uning ko'zlari yulduzlarga o'xshardi".


Tamtil: taqqoslash uchun o'xshatish qo'llaniladigan nutq figurasi. Masalan, "U gepard kabi tez yugurdi".
Tazmin: gap takrorlash orqali tasdiqlanadigan yoki ta'kidlanadigan nutq shakli. Misol uchun, "Men qattiq o'qiyman, keyin esa yanada qattiqroq o'qiyman".
“Mantiqiyventel” ham nasrda, ham she’riyatda qo‘llanilishi mumkin bo‘lib, arab, fors va urdu adabiyotidagi boy adabiy an’ananing muhim qismidir. Ulardan matn mazmunida teranlik va noziklik yaratish, tasviriy va obrazli til yordamida o‘quvchida his-tuyg‘ularni uyg‘otish uchun foydalaniladi.
Ayiruvchi hisoblagichning asosiy afzalliklaridan biri uning yuqoriga va pastga hisoblash qobiliyatidir, bu esa kirish signali asosida hisoblash yo'nalishini o'zgartirish kerak bo'lgan ilovalarda foydali bo'ladi. Misol uchun, raqamli boshqaruv tizimida sensor yoki tashqi buyruq holatiga qarab hisoblash yo'nalishini o'zgartirish kerak bo'lishi mumkin.

Ayiruvchi hisoblagichning yana bir afzalligi uning qo‘shish va ayirish kabi arifmetik amallarni bajarish qobiliyatidir. Topuvchi va ayirish sxemalarining kombinatsiyasidan foydalanib, ikkilik sonlar ustida turli amallarni bajara oladigan to'liq arifmetik birlikni amalga oshirish mumkin.

Biroq, ayiruvchi hisoblagichlardan foydalanishda ba'zi cheklovlar mavjud. Bitta cheklov ularning murakkabligidir, chunki to'ldiruvchi sxema va tashish sxemasi hisoblagichning hajmi va murakkabligini oshirishi mumkin bo'lgan qo'shimcha mantiqni qo'shadi. Yana bir cheklov - bu noto'g'ri hisoblash yoki noto'g'ri minimallashtirilmasa, chiqishda xatolarga olib kelishi mumkin bo'lgan nosozliklarga moyilligi.

Ushbu cheklovlarga qaramay, ayiruvchi hisoblagichlar raqamli elektronika va hisoblashda foydali va keng qo'llaniladigan sinxron hisoblagich turi bo'lib qolmoqda. Ular soat pulslarini hisoblash va kirish signali asosida raqamli chiqishni yaratishning moslashuvchan va samarali usulini taklif qiladi va raqamli tizimlarga osongina integratsiya qilinishi mumkin.


Ayiruvchi hisoblagichlardan tashqari, ilovalarni hisoblash uchun ishlatilishi mumkin bo'lgan sinxron hisoblagichlarning boshqa turlari mavjud. Keng tarqalgan turlardan biri Jonson hisoblagichi bo'lib, u holatlarning tsiklik ketma-ketligini amalga oshirish uchun siljish registridan foydalanadi. Yana bir tur - halqali hisoblagich bo'lib, aylana siljish registrini amalga oshirish uchun flip-floplar halqasidan foydalanadi.

Yuqorida aytib o'tilganidek, yig'indi hisoblagichlari - bu kirish signali asosida hisoblash uchun ishlatilishi mumkin bo'lgan sinxron hisoblagichlarning yana bir turi. Yig'ish hisoblagichlari kirish signalini joriy hisoblash qiymatiga qo'shish uchun qo'shimcha sxemasidan foydalanadi, bu esa kirish signali asosida hisoblash imkonini beradi. Ular ayiruvchi hisoblagichlarga qaraganda soddaroq va murakkabroq, lekin sanab bo'lmaydi yoki arifmetik amallarni bajara olmaydi.

Muayyan dastur uchun hisoblagichni tanlayotganda, dasturning o'ziga xos talablarini, jumladan, hisoblash diapazoni, hisoblash yo'nalishi, soat signalining chastotasi va kerakli chiqishlar sonini hisobga olish kerak. Ko'rib chiqilishi kerak bo'lgan boshqa omillarga quvvat sarfi, tezlik va narx, shuningdek, mos komponentlar va dizayn vositalarining mavjudligi kiradi.

Umuman olganda, sinxron hisoblagichlar ko'plab raqamli elektronika va hisoblash ilovalarida asosiy komponent bo'lib, soat pulslarini hisoblash va hisoblash qiymatiga asoslangan raqamli chiqishni yaratishning ko'p qirrali va samarali usulini taklif qiladi. Taymer, chastota bo'luvchi yoki raqamli boshqaruv tizimini loyihalashtirasizmi, sinxron hisoblagichlarning printsiplari va ishlashini tushunish muvaffaqiyatli loyihalash va amalga oshirish uchun juda muhimdir.


28-mavzu: Mantiqiyelementninigelektranalogi

Raqamli elektronikada mantiqiy elementlar ikkilik signallar ustida mantiqiy amallarni bajarish uchun ishlatiladi. Ular raqamli sxemalarning asosiy qurilish bloklari bo'lib, mikroprotsessorlar, xotira qurilmalari va raqamli signal protsessorlari kabi turli xil raqamli tizimlarni amalga oshirish uchun ishlatiladi. Mantiqiy elementlar odatda yuqori yoki past signallarda ishlaydi va VA, YOKI, EMAS, XOR va boshqalar kabi amallarni bajarishi mumkin.

Aksincha, analog elektronikada signallar uzluksiz qiymatlar oralig'ini olishi mumkin va mantiqiy operatsiyalar matematik funktsiyalarni amalga oshiradigan analog sxemalar yordamida amalga oshiriladi. Mantiqiy elementning elektron analogiga misol - operatsion kuchaytirgich (op-amp).

Op-amp - bu qo'shish, ayirish, ko'paytirish va integratsiyani o'z ichiga olgan turli xil analog funktsiyalarni amalga oshirish uchun ishlatilishi mumkin bo'lgan yuqori daromadli kuchaytirgich. U odatda tashqi qayta aloqa rezistorlari va kondensatorlar bilan matematik funktsiyalarni amalga oshirish uchun ishlatiladi, masalan, yig'ish kuchaytirgichi yoki integrator.

Masalan, kirish signalini doimiy koeffitsientga ko'paytiruvchi qayta aloqa zanjiri yordamida analog multiplikatorni amalga oshirish uchun op-amp ishlatilishi mumkin. Xuddi shunday, op-amp ham bir nechta kirish signallarini qo'shadigan yig'ish kuchaytirgich sxemasidan foydalanib, analog qo'shimchani amalga oshirish uchun ishlatilishi mumkin.

Mantiqiy operatsiyalarni amalga oshirish uchun ishlatilishi mumkin bo'lgan boshqa analog sxemalarga ikkita kirish signalini solishtirish va taqqoslash natijasi asosida ikkilik chiqishni yaratish uchun ishlatiladigan komparatorlar va boshqaruv kirishiga asoslangan signallarni tanlab yo'naltirish uchun ishlatilishi mumkin bo'lgan analog kalitlar kiradi. .

Raqamli mantiqiy elementlar kam quvvat iste'moli, yuqori shovqin immuniteti va raqamli sxemalarga oson integratsiya qilish afzalliklarini taklif qilsa, analog mantiqiy elementlar yuqori aniqlik, yuqori tarmoqli kengligi va uzluksiz signallarda ishlash qobiliyatining afzalliklarini taklif qiladi. Ham raqamli, ham analog mantiqiy elementlar zamonaviy elektron tizimlar uchun muhim qurilish bloklari bo'lib, ulardan foydalanishni tanlash dasturning o'ziga xos talablariga bog'liq.

Ba'zi hollarda, ma'lum bir funktsiyani yoki tizimni amalga oshirish uchun raqamli va analog sxemalarni birlashtirish kerak bo'lishi mumkin. Misol uchun, raqamli signalni analog signalga aylantirish uchun raqamli-analogli konvertor (DAC) ishlatilishi mumkin, keyinchalik ma'lum bir funktsiyani amalga oshirish uchun analog sxema tomonidan qayta ishlanishi mumkin.

Xuddi shunday, analog-raqamli konvertor (ADC) analog signalni raqamli signalga aylantirish uchun ishlatilishi mumkin, keyinchalik ma'lum bir funktsiyani amalga oshirish uchun raqamli sxema tomonidan qayta ishlanishi mumkin. Ba'zi hollarda raqamli va analogli sxemalar kombinatsiyasi aralash signal tizimini amalga oshirish uchun ishlatilishi mumkin, masalan, o'rnatilgan analog-raqamli konvertorlar va raqamli-analog konvertorlari bo'lgan mikrokontroller.

Umuman olganda, raqamli yoki analog mantiqiy elementlardan foydalanishni tanlash dasturning o'ziga xos talablariga, jumladan, tezlik, aniqlik, shovqin immuniteti va quvvat sarfi kabi omillarga bog'liq. Ko'pgina hollarda, ma'lum bir funktsiya yoki tizimni amalga oshirish uchun raqamli va analog sxemalarning kombinatsiyasidan foydalanish mumkin va bunday tizimlarni loyihalash va amalga oshirish raqamli va analog elektronikani to'liq tushunishni talab qiladi.Raqamli va analog elektronika o'rtasida raqamli yoki analog mantiqiy elementlardan foydalanishni tanlashda e'tiborga olinishi kerak bo'lgan ba'zi muhim farqlar mavjud. Asosiy farqlardan biri shundaki, raqamli sxemalar shovqinga yuqori immunitetga ega, analog sxemalar esa shovqinga juda sezgir.

Raqamli sxemalar yuqori yoki past bo'lgan ikkilik signallarda ishlaydi va kontaktlarning zanglashiga olib keladigan har qanday shovqin signalni bir holatdan ikkinchisiga o'zgartirmasa, odatda e'tiborga olinmaydi. Aksincha, analog sxemalar uzluksiz signallarda ishlaydi va kontaktlarning zanglashiga olib keladigan har qanday shovqin chiqish signalida buzilish yoki xatolarga olib kelishi mumkin.

Yana bir farq shundaki, raqamli sxemalar xotira qurilmalari va ishlov berish elementlaridan foydalangan holda katta hajmdagi ma'lumotlarni saqlash va qayta ishlash imkoniyatini taklif qiladi, analog sxemalar esa shunga o'xshash operatsiyalarni amalga oshirish uchun odatda murakkabroq matematik funktsiyalarni talab qiladi. Misol uchun, raqamli signal protsessori maxsus apparat va dasturiy ta'minot yordamida raqamli signallar ustida murakkab matematik operatsiyalarni bajarishi mumkin, analog signal protsessor esa odatda yanada murakkab sxema dizaynini talab qiladi.

Nihoyat, raqamli kontaktlarning zanglashiga olib kirishi, signalni qayta ishlashning soddaligi va shovqinga chidamliligi tufayli ularni loyihalash va disk raskadrovka qilish odatda analog sxemalarga qaraganda osonroq. Biroq, raqamli sxemalar murakkabroq bo'lishi mumkin va ishlash uchun analog sxemalarga qaraganda ko'proq quvvat talab qiladi, ayniqsa yuqori tezlikdagi ilovalar uchun.

Umuman olganda, raqamli yoki analog mantiqiy elementlardan foydalanishni tanlash dasturning o'ziga xos talablariga bog'liq va dizayner ishlash, murakkablik, quvvat sarfi va narx o'rtasidagi muvozanatni diqqat bilan ko'rib chiqishi kerak. Ko'pgina hollarda, istalgan ishlash va funksionallikka erishish uchun raqamli va analog sxemalarning kombinatsiyasidan foydalanish mumkin va dizayner bunday tizimlarni muvaffaqiyatli amalga oshirish uchun ham raqamli, ham analog elektronikani to'liq tushunishi kerak.


29- mavzu : Xotiradan tushirib qoldirish bo‘yicha mantiqiy elementalar dasturinituzish.

Albatta, Python-da mantiqiy elementlardan foydalangan holda ma'lumotlarni xotiradan yuklash va tushirishni ko'rsatadigan misol dasturi:

piton
Kodni nusxalash
# Xotirada ma'lumotlarni saqlash uchun bo'sh ro'yxatni ishga tushiring
xotira = []

# Xotiraga maʼlumotlarni yuklash funksiyasini belgilang


def load_data(ma'lumotlar):
xotira.append(ma'lumotlar)
print(f"Ma'lumotlar {ma'lumotlar} xotiraga yuklangan")

# Xotiradan ma'lumotlarni olib tashlash funksiyasini belgilang


def unload_data():
agar len (xotira) > 0 bo'lsa:
ma'lumotlar = xotira.pop()
print(f"Xotiradan tushirilgan ma'lumotlar {ma'lumotlar}")
boshqa:
print ("Xotira bo'sh, yuklab olish uchun ma'lumot yo'q")

# Dasturni sinab ko'ring


load_data("olma")
load_data("banan")
unload_data()
load_data("gilos")
unload_data()
unload_data()
Dastur ma'lumotlarni saqlash uchun xotira deb nomlangan bo'sh ro'yxatni ishga tushirish bilan boshlanadi. Keyin u xotiradan ma'lumotlarni yuklash va tushirish uchun ikkita funktsiyani belgilaydi, load_data va unload_data.

load_data funksiyasi xotiraga yuklanadigan ma'lumotlar bo'lgan bitta parametr, ma'lumotni oladi. Funktsiya ma'lumotlarni xotira ro'yxatiga qo'shadi va ma'lumotlar yuklanganligini bildiruvchi xabarni chop etadi.

unload_data funksiyasi buning teskarisini bajaradi - u xotirada biron bir ma'lumot mavjudligini tekshiradi va agar shunday bo'lsa, u ro'yxatdan eng so'nggi ma'lumotlar elementini o'chiradi va ma'lumotlar tushirilganligini bildiruvchi xabarni chop etadi. Xotirada ma'lumot bo'lmasa, u xotira bo'shligini bildiruvchi xabarni chop etadi.

Nihoyat, dastur load_data va unload_data funksiyalarini xotiraga uch xil turdagi mevalarni yuklash, ulardan ikkitasini tushirish va xotira allaqachon bo'sh bo'lganda boshqasini tushirishga urinish orqali sinovdan o'tkazadi. Chiqish quyidagicha ko'rinishi kerak:

edi
Kodni nusxalash
Apple ma'lumotlarini xotiraga yukladi
Xotiraga ma'lumotlar yuklangan banan
Xotiradan o'chirilgan ma'lumotlar banan
Xotiraga ma'lumotlar gilosi yuklandi
Xotiradan yuklab olingan ma'lumotlar gilosi
Xotira bo'sh, yuklab olish uchun ma'lumot yo'q
Albatta, bu erda xotira yaratish va ma'lumotlarni yuklash va tushirishni amalga oshirish uchun mantiqiy elementlardan foydalanadigan murakkabroq misol (FIFO) usulidan foydalanib:

piton
Kodni nusxalash


# Xotirada ma'lumotlarni saqlash uchun bo'sh ro'yxatni ishga tushiring
xotira = []

# FIFO yondashuvidan foydalangan holda ma'lumotlarni xotiraga yuklash funksiyasini aniqlang


def load_data(ma'lumotlar):
xotira.insert(0, maʼlumotlar)
print(f"FIFO yondashuvidan foydalangan holda xotiraga {ma'lumotlar} yuklangan")

# FIFO yondashuvidan foydalangan holda ma'lumotlarni xotiradan tushirish funksiyasini aniqlang


def unload_data():
agar len (xotira) > 0 bo'lsa:
ma'lumotlar = xotira.pop()
print(f"FIFO usuli yordamida xotiradan tushirilgan ma'lumotlar {ma'lumotlari")
boshqa:
print ("Xotira bo'sh, yuklab olish uchun ma'lumot yo'q")

# Dasturni sinab ko'ring


load_data("olma")
load_data("banan")
load_data("gilos")
unload_data()
load_data("sana")
unload_data()
unload_data()
unload_data()
Ushbu dastur avvalgisiga o'xshaydi, lekin load_data va unload_data funktsiyalari endi FIFO yondashuvidan foydalanadi, bu erda xotiraga qo'shilgan eng so'nggi ma'lumotlar elementi birinchi bo'lib o'chiriladi. Endi load_data funktsiyasi xotira ro'yxatining boshiga ma'lumotlarni qo'shish uchun kiritish usulidan foydalanadi va unload_data funktsiyasi ro'yxat oxiridan eng so'nggi ma'lumotlar elementini olib tashlash uchun pop usulidan foydalanadi.

Ushbu dasturning chiqishi quyidagicha ko'rinishi kerak:

vbnet
Kodni nusxalash
FIFO yondashuvi yordamida xotiraga ma'lumotlar olma yuklandi
FIFO yondashuvidan foydalangan holda xotiraga ma'lumotlar banan yuklangan
FIFO yondashuvidan foydalangan holda xotiraga ma'lumotlar gilosi yuklandi
FIFO yondashuvidan foydalangan holda ma'lumotlar olma xotiradan o'chirildi
FIFO yondashuvidan foydalangan holda ma'lumotlar sanasi xotiraga yuklandi
FIFO yondashuvidan foydalangan holda xotiradan o'chirilgan ma'lumotlar sanasi
FIFO yondashuvidan foydalangan holda xotiradan ma'lumotlar gilosi tushirildi
FIFO yondashuvidan foydalangan holda xotiradan ma'lumotlar bananlari tushirildi
Xotira bo'sh, yuklab olish uchun ma'lumot yo'q
Ushbu dastur sizning maxsus ehtiyojlaringiz va talablaringizni qondirish uchun yanada moslashtirilishi va kengaytirilishi mumkin.
Albatta, bu erda xotira yaratish va oxirgi kelgan birinchi chiqish (LIFO) usuli yordamida ma'lumotlarni yuklash va tushirishni amalga oshirish uchun mantiqiy elementlardan foydalanadigan yana bir misol:
piton
Kodni nusxalash
# Xotirada ma'lumotlarni saqlash uchun bo'sh ro'yxatni ishga tushiring
xotira = []

# LIFO yondashuvidan foydalangan holda ma'lumotlarni xotiraga yuklash funksiyasini aniqlang


def load_data(ma'lumotlar):
xotira.append(ma'lumotlar)
print(f"LIFO yondashuvidan foydalangan holda xotiraga {ma'lumotlar yuklangan")

# LIFO yondashuvidan foydalanib, xotiradan ma'lumotlarni o'chirish funksiyasini aniqlang


def unload_data():
agar len (xotira) > 0 bo'lsa:
ma'lumotlar = xotira.pop()
print(f"LIFO yondashuvi yordamida xotiradan tushirilgan ma'lumotlar {ma'lumotlari")
boshqa:
print ("Xotira bo'sh, yuklab olish uchun ma'lumot yo'q")

# Dasturni sinab ko'ring


load_data("olma")
load_data("banan")
load_data("gilos")
unload_data()
load_data("sana")
unload_data()
unload_data()
unload_data()
Ushbu dastur avvalgisiga o'xshaydi, lekin load_data va unload_data funktsiyalari endi LIFO yondashuvidan foydalanadi, bu erda xotiraga qo'shilgan eng so'nggi ma'lumotlar elementi oxirgi o'chiriladi. load_data funktsiyasi endi xotira ro'yxatining oxiriga ma'lumotlarni qo'shish uchun qo'shish usulidan foydalanadi va unload_data funktsiyasi ro'yxat oxiridan eng so'nggi ma'lumotlar elementini olib tashlash uchun pop usulidan foydalanadi.

Ushbu dasturning chiqishi quyidagicha ko'rinishi kerak:

vbnet
Kodni nusxalash
LIFO yondashuvi yordamida xotiraga ma'lumotlar olma yuklandi
LIFO yondashuvidan foydalangan holda xotiraga ma'lumotlar banan yuklangan
LIFO yondashuvidan foydalangan holda xotiraga ma'lumotlar gilosi yuklandi
LIFO yondashuvidan foydalangan holda xotiradan ma'lumotlar gilosi tushirildi
LIFO yondashuvidan foydalangan holda ma'lumotlar sanasi xotiraga yuklandi
LIFO yondashuvidan foydalangan holda xotiradan o'chirilgan ma'lumotlar sanasi
LIFO yondashuvidan foydalangan holda xotiradan ma'lumotlar bananlari tushirildi
LIFO yondashuvidan foydalangan holda ma'lumotlar olma xotiradan tushirildi
Xotira bo'sh, yuklab olish uchun ma'lumot yo'q
Avvalgidek, siz ushbu dasturni o'z ehtiyojlaringiz va talablaringizga mos ravishda sozlashingiz va kengaytirishingiz mumkin.

30- mavzu: Mantiqiy elementlarsxemasiasosidasimulyatsiya (mug‘ombirlik) dasturinituzish .


Albatta, oddiy bank hisob tizimini simulyatsiya qilish uchun mantiqiy elementlardan foydalanadigan simulyatsiya dasturiga misol:

piton
Kodni nusxalash
# Bank hisobini ifodalash uchun sinfni belgilang
sinf bank hisobi:
def __init__ (o'zini, hisob_raqami, balansi):
self.account_number = hisob_raqami
self.balance = muvozanat

def depozit (o'z-o'zidan, miqdori):


self.balance += summa
chop etish(f"{self.account_number} hisobiga {amount} omonat qilingan")

def olish (o'z-o'zidan, miqdori):


agar self.balance >= summasi:
self.balance -= miqdori
chop etish(f"{self.account_number} hisobidan {amount} yechib olindi")
boshqa:
chop etish(f"{self.account_number} hisobidagi balans yetarli emas")

# Bank hisob tizimini simulyatsiya qilish funksiyasini aniqlang


def simulate_bank_system():
# Boshlang'ich balansi 1000 bo'lgan bank hisobini yarating
hisob1 = Bank hisobi (1, 1000)

# Hisobga 500 depozit qo'ying


hisob1.depozit(500)

# Hisobdan 200 yechib oling


hisob 1.withdraw(200)

# Hisobdan 1000 yechib oling (balans yetarli emasligi sababli ruxsat etilmasligi kerak)


account1.withdraw(1000)

# Boshlang'ich balansi 500 bo'lgan ikkinchi bank hisobini yarating


hisob2 = Bank hisobi (2, 500)

# Ikkinchi hisobdan 200 yechib oling


account2.withdraw(200)

# Ikkinchi hisob raqamiga 1000 depozit qo'ying


hisob2.depozit (1000)

# Ikkinchi hisobdan 1500 yechib oling (balans yetarli emasligi sababli ruxsat etilmasligi kerak)


account2.withdraw(1500)

# Simulyatsiyani ishga tushiring


simulate_bank_system()
Ushbu dastur bank hisobini ko'rsatish uchun BankAccount sinfidan foydalanadi va sinf uchun ikkita usulni belgilaydi: depozit va yechib olish. Depozit usuli hisobvaraq balansiga ma’lum miqdorda pul qo‘shadi, yechib olish usuli esa hisobvaraqdagi mablag‘ yetarli bo‘lgan taqdirdagina hisobvaraq balansidan ma’lum miqdorda mablag‘ni olib tashlaydi.

Simulate_bank_system funksiyasi oddiy bank hisobi tizimini simulyatsiya qilish uchun BankAccount sinfidan foydalanadi. U ikkita bank hisobini yaratadi, har bir hisob bo'yicha bir qator depozitlar va pul mablag'larini amalga oshiradi va natijalarni chop etadi.

Ushbu dasturning chiqishi quyidagicha ko'rinishi kerak:

csharp
Kodni nusxalash


1-hisobga 500 depozit qo'yilgan
1-hisobdan 200 yechib olindi
1-hisobdagi balans yetarli emas
2 hisobidan 200 yechib olindi
2-hisobga 1000 depozit qo'yilgan
2-hisobdagi balans yetarli emas
Bu oddiy misol, lekin siz mantiqiy elementlardan murakkabroq simulyatsiyalarni yaratish uchun foydalanishingiz mumkin, masalan, biznes jarayonlari, ta'minot zanjiri boshqaruvi yoki hatto butun shaharlar yoki ekotizimlarni simulyatsiya qilish.
Albatta, oddiy transport chorrahasini simulyatsiya qilish uchun mantiqiy elementlardan foydalanadigan simulyatsiya dasturining yana bir misoli:

piton
Kodni nusxalash


# Harakat chorrahasini ifodalash uchun sinfni belgilang
TrafficCorsection sinfi:
def __init__ (o'z-o'zidan):
self.north_south = 'yashil' # boshlang'ich holati: shimol-janub yashil, sharq-g'arbiy qizil
self.east_west = "qizil"
self.timer = 0 # taymerni 0 soniyagacha ishga tushiradi

def switch_lights(self):


agar self.taymer == 0:
# Shimol-janubiy yashildan sharq-g'arbiy yashil rangga o'tish
if self.north_south == 'yashil':
self.north_south = "qizil"
self.east_west = "yashil"
self.timer = 30 # taymerni 30 soniyaga sozlang
print("Chiroqlarni almashtirish: shimoliy-janubiy qizil, sharq-g'arbiy yashil")
# Sharqiy-g'arbiy yashil rangdan shimol-janubiy yashil rangga o'ting
boshqa:
self.north_south = "yashil"
self.east_west = "qizil"
self.timer = 30 # taymerni 30 soniyaga sozlang
print("Chiroqlarni almashtirish: shimoliy-janubiy yashil, sharq-g'arbiy qizil")
boshqa:
self.taymer -= 1 # taymerni 1 soniyaga kamaytiradi

# Harakat chorrahasini simulyatsiya qilish funksiyasini aniqlang


def simulate_traffic_intersection():
# Yo'l kesishmasi ob'ektini yarating
kesishma = TrafficCresection()

# 5 daqiqa (300 soniya) davomida harakatlanish chorrahasini simulyatsiya qiling


diapazondagi i uchun (300):
intersection.switch_lights()

# Simulyatsiyani ishga tushiring


simulate_traffic_intersection()
Bu dastur tirbandlik chorrahasini ifodalash uchun TrafficIntersection sinfidan foydalanadi va sinf uchun ikkita misol oʻzgaruvchisini belgilaydi: shimoliy-janubiy va sharqiy-gʻarbiy yoʻnalishlar uchun mos ravishda svetoforlar holatini ifodalovchi shimoliy-janubiy va sharqiy-gʻarbiy va taymer. chiroqlar o'chguncha qolgan vaqtni bildiradi.

TrafficIntersection klassi shuningdek, chiroqlarning joriy holatiga va taymerda qolgan vaqtga qarab svetoforlarni shimoliy-janubiy yashildan sharqiy-g'arbiy yashil rangga yoki aksincha o'zgartiruvchi switch_lights usulini belgilaydi. Usul chiroqlarning yangi holatini ko'rsatuvchi xabarni chop etadi.

Simulate_traffic_intersection funksiyasi TrafficIntersection ob'ektini yaratadi va har soniyada ob'ektdagi switch_lights usulini chaqirish orqali 5 daqiqa (300 soniya) davomida harakatlanish chorrahasini simulyatsiya qiladi.

Ushbu dasturning chiqishi quyidagicha ko'rinishi kerak:

yaml
Kodni nusxalash
Kommutatsiya chiroqlari: shimoliy-janubiy yashil, sharq-g'arbiy qizil
O'zgaruvchan chiroqlar: shimoliy-janubiy qizil, sharq-g'arbiy yashil
Kommutatsiya chiroqlari: shimoliy-janubiy yashil, sharq-g'arbiy qizil
O'zgaruvchan chiroqlar: shimoliy-janubiy qizil, sharq-g'arbiy yashil
Kommutatsiya chiroqlari: shimoliy-janubiy yashil, sharq-g'arbiy qizil
O'zgaruvchan chiroqlar: shimoliy-janubiy qizil, sharq-g'arbiy yashil
...
Ushbu dastur simulyatsiya dasturining oddiy namunasidir, lekin siz murakkabroq simulyatsiyalarni yaratish uchun mantiqiy elementlardan foydalanishingiz mumkin, masalan, murakkab transport tizimlari, transport tarmoqlari yoki ob-havo modellari simulyatsiyasi.
farida matirzayeva
davom eting
Mantiqiy elementlardan foydalangan holda simulyatsiya dasturining yana bir misoli, bu safar oddiy robot harakati simulyatori uchun:

piton
Kodni nusxalash


# Robotni ifodalash uchun sinfni aniqlang
sinf roboti:
def __init__ (self, x, y):
self.x = x # x koordinatasi
self.y = y # y koordinatasi

def harakat (o'z-o'zidan, yo'nalishda):


agar yo'nalish == "yuqoriga":
self.y += 1
elif yo'nalishi == 'pastga':
self.y -= 1
elif yo'nalishi == 'o'ng':
self.x += 1
elif yo'nalishi == "chap":
self.x -= 1

# Robot harakatini taqlid qilish funksiyasini belgilang


def simulate_robot_motion():
# Dastlabki holatiga ega robot ob'ektini yarating (0, 0)
robot = Robot(0, 0)

# Robot harakatini 10 qadamga taqlid qiling


diapazondagi i uchun (10):
# Tasodifiy yo'nalishni yarating (yuqoriga, pastga, o'ngga yoki chapga)
yo'nalish = random.choice(['yuqoriga', 'pastga', 'o'ngga', 'chapga'])

# Robotni tanlangan yo'nalishda harakatlantiring


robot.harakat (yo'nalish)

# Robotning yangi pozitsiyasini chop eting


print(f"Qadam {i+1}: ({robot.x}, {robot.y})")

# Simulyatsiyani ishga tushiring


simulate_robot_motion()
Bu dastur mantiqiy elementlardan foydalangan holda simulyatsiya dasturining oddiy namunasidir. Shu kabi usullardan murakkabroq tizimlarni simulyatsiya qilish uchun foydalanishingiz mumkin, masalan, to'dali robototexnika, ishlab chiqarish yig'ish liniyalari yoki kimyoviy reaktsiyalar.
31-mavzu: Kombinasiyalimantiqiysxemaningnazariyqullanilishi:
Summatorlarningnazariyqullanilishini

Qo'shimchalar kombinatsiyalangan mantiqiy sxemalar bo'lib, ular ikkita ikkilik sonni qo'shish uchun ishlatiladi. Ular arifmetik amallarni bajarish uchun kompyuterlar va kalkulyatorlar kabi raqamli tizimlarda keng qo'llaniladi.

Bu erda qo'shimchalarning nazariy qo'llanilishi:

Kompyuter protsessorlari: qo'shimchalar kompyuter protsessorlarining muhim tarkibiy qismi bo'lib, ko'rsatmalarni bajarish va matematik operatsiyalarni bajarish uchun javobgardir. Kompyuter protsessorlarida ikkilik sonlar ustida qo‘shish va ayirish amallarini bajarish uchun bir nechta qo‘shimchalar mavjud.

Arifmetik mantiq birliklari (ALUs): ALU'lar arifmetik va mantiqiy operatsiyalarni bajarish uchun mikroprotsessorlar va raqamli signal protsessorlarida qo'llaniladi. ALU qo'shish, ayirish va ko'paytirish amallarini bajarish uchun bir nechta qo'shimchalarni o'z ichiga oladi.

Xotira manzilini hisoblash: Qo'shimchalar xotiradan ma'lumotlarni o'qish va yozish uchun xotira manzilini hisoblash uchun ishlatiladi. Kompyuter arxitekturasida xotira manzili asosiy manzilga ofset qo'shish orqali hisoblanadi. Ushbu hisobni tez va samarali bajarish uchun qo'shimchalardan foydalanish mumkin.

Kriptografiya: Qo'shimchalar ikkilik raqamlar ustida operatsiyalarni bajarish uchun Kengaytirilgan shifrlash standarti (AES) kabi kriptografik algoritmlarda qo'llaniladi. AES-da qo'shimchalar shifrlangan matnni yaratish uchun shifrlash kalitiga xabar ma'lumotlarini qo'shish uchun ishlatiladi.

Raqamli signalni qayta ishlash (DSP): DSP raqamli shakldagi signallarni, masalan, audio va video signallarni qayta ishlash uchun ishlatiladigan texnikadir. Qo'shimchalar DSP algoritmlarida signalni qayta ishlash operatsiyalarini bajarish uchun ishlatiladi, masalan, ikkita signalni bir-biriga qo'shish.

Xulosa qilib aytadigan bo'lsak, qo'shimchalar raqamli tizimlarda ikkilik sonlar ustida matematik amallarni bajarish uchun keng qo'llaniladi. Ular kompyuter protsessorlari, arifmetik mantiq birliklari va xotira manzillarini hisoblashning muhim tarkibiy qismidir. Qo'shimchalar kriptografiya va raqamli signallarni qayta ishlashda ham ilovalarga ega.
Tasvirni qayta ishlash: Qo'shimchalar tasvirni qayta ishlash dasturlarida ham qo'llanilishi mumkin, masalan, chekkalarni aniqlash, bu tasvirdagi qo'shni piksellar orasidagi farqni hisoblashni o'z ichiga oladi. Qo'shimchalar qirralarni aniqlash uchun qo'shni piksellarning qiymatlarini bir-biriga qo'shish uchun ishlatiladi.

Boshqarish tizimlari: qo'shimchalar boshqaruv tizimlarida hisob-kitoblarni amalga oshirish va kirish signallari asosida qaror qabul qilish uchun ishlatilishi mumkin. Masalan, yopiq tsiklli boshqaruv tizimida kerakli va haqiqiy chiqish signallari orasidagi farqni hisoblash va farqni minimallashtirish uchun kirish signalini sozlash uchun qo'shimchalar ishlatilishi mumkin.

Xatolarni aniqlash va tuzatish: qo'shimchalar uzatilgan ma'lumotlarning to'g'riligini ta'minlash uchun nazorat summasi usuli kabi xatolarni aniqlash va tuzatish usullarida qo'llanilishi mumkin. Tekshirish summasi usuli har bir ma'lumot paketining ikkilik qiymatlarini qo'shish va natijani qo'shimcha paket sifatida qo'shishni o'z ichiga oladi. Keyin qabul qiluvchi qabul qilingan paketlarning nazorat summasini hisoblab chiqishi va xatolarni aniqlash uchun uni uzatilgan nazorat summasi bilan solishtirishi mumkin.

Ovozni qayta ishlash: qo'shimchalar ikki yoki undan ortiq audio signallarni bir-biriga aralashtirish kabi audio ishlov berish dasturlarida ishlatilishi mumkin. Bunday holda, yig'uvchi kirish sifatida ikkita signalning ikkilik qiymatlarini oladi va ikkita kirishning kombinatsiyasi bo'lgan bitta chiqish signalini ishlab chiqaradi.

Videoni qayta ishlash: Qo'shimchalar videoni qayta ishlash dasturlarida, masalan, videoning fonini boshqa rasm yoki video bilan almashtirishni o'z ichiga olgan xroma kaliti sifatida ishlatilishi mumkin. Qo'shimchalar yakuniy chiqish videosini yaratish uchun oldingi va fon video signallarini birlashtirish uchun ishlatiladi.

Xulosa qilib aytganda, qo'shimchalar raqamli tizimlarning asosiy qurilish bloki bo'lib, kompyuter protsessorlari, boshqaruv tizimlari, xatolarni aniqlash va tuzatish, audio va videolarni qayta ishlash kabi turli sohalarda ko'plab ilovalarga ega.


Tarmoq protokollari: qo'shimchalar uzatilgan paketlardagi xatolarni aniqlash uchun ishlatiladigan nazorat summalarini hisoblash uchun tarmoq protokollarida ishlatilishi mumkin. Masalan, Internet protokoli (IP) uzatiladigan ma'lumotlarning yaxlitligini ta'minlash uchun qo'shimchalar asosidagi nazorat summasi algoritmidan foydalanadi. Ishlab chiqarishni to'xtating
Hisoblagichlar - vaqt o'tishi bilan sodir bo'ladigan soat impulslari yoki hodisalar sonini hisoblash uchun ishlatiladigan kombinatsiyalangan mantiqiy sxemalar. Ular raqamli tizimlarda signal chastotasini o'lchash, vaqt signallarini yaratish va hodisalarni hisoblash kabi turli vazifalarni bajarish uchun keng qo'llaniladi.

Hisoblagichlarning ba'zi nazariy qo'llanilishi:

Chastotani o'lchash: Hisoblagichlar ma'lum vaqt oralig'ida sodir bo'lgan takt pulslarining sonini hisoblash orqali signalning chastotasini o'lchash uchun ishlatilishi mumkin. Keyin chastotani soat pulslari sonini vaqt davriga bo'lish orqali hisoblash mumkin.

Vaqt signalini yaratish: Hisoblagichlar raqamli tizim uchun soat signali kabi vaqt signallarini yaratish uchun ishlatilishi mumkin. Hisoblagich soat pulslarining sonini hisoblaydi va ma'lum bir raqamga erishilganda chiqish signalini hosil qiladi.

Voqealarni hisoblash: Hisoblagichlar ro'y beradigan hodisalar sonini, masalan, pullik kassa orqali o'tadigan avtomobillar sonini hisoblash uchun ishlatilishi mumkin. Hisoblagich har safar hodisa sodir bo'lganda ortadi va umumiy hisob ko'rsatilishi yoki xotirada saqlanishi mumkin.

Ikkilik sanoqli kasrga o‘tkazish: Hisoblagichlar ikkilik sonlarni o‘nlik sonlarga aylantirish uchun ishlatilishi mumkin. Hisoblagich 1 ga o'rnatilgan ikkilik raqamlar sonini hisoblaydi va mos keladigan o'nlik qiymatni chiqaradi.

Boshqarish tizimlari: Hisoblagichlar boshqaruv tizimlarida operatsiyalarni vaqt va ketma-ketlik kabi vazifalarni bajarish uchun ishlatilishi mumkin. Misol uchun, hisoblagich ma'lum bir vaqtda sodir bo'lishi uchun ma'lum bir operatsiyani qo'zg'atadigan zarba hosil qilish uchun ishlatilishi mumkin.
32- mavzu: Kombinasiyalimantiqiysxemaningnazariyqullanilishi: Hisoblagichlarnazariyasi

Raqamli soatlar: Hisoblagichlar raqamli soatlarda vaqtni kuzatish uchun ishlatiladi. Hisoblagich sodir bo'lgan soat pulslarining sonini hisoblaydi va displeyda vaqtni ko'rsatish uchun ishlatiladigan chiqish signalini hosil qiladi.

Ketma-ketlikni aniqlash: Hisoblagichlar hodisalarning muayyan ketma-ketligini aniqlash uchun ishlatilishi mumkin. Hisoblagich har safar hodisa sodir bo'lganda ortadi va ma'lum bir qatorga erishilganda chiqish signalini hosil qiladi.

Svetoforni boshqarish: Hisoblagichlar chorrahadan o'tadigan avtomobillar sonini sanash va shunga mos ravishda svetoforning vaqtini sozlash orqali svetoforlarni boshqarish uchun ishlatilishi mumkin.

Xulosa qilib aytish mumkinki, hisoblagichlar raqamli tizimlarda chastotani o'lchash, vaqt signalini yaratish, hodisalarni hisoblash, ikkilikdan o'nga aylantirish, boshqaruv tizimlari, raqamli soatlar, ketma-ketlikni aniqlash va svetoforni boshqarish kabi vazifalarni bajarish uchun keng qo'llaniladi. Hisoblagichlar ko'plab raqamli tizimlarning muhim tarkibiy qismi bo'lib, keng doiradagi ilovalarda muhim rol o'ynaydi.
Manzil yaratish: Hisoblagichlar xotira manzillariga kirish uchun ketma-ket manzillarni yaratish uchun xotira manzillashda ishlatilishi mumkin. Masalan, hisoblagich xotira chipida ma'lumotlarni o'qish yoki yozish uchun manzillarni yaratish uchun ishlatilishi mumkin.

Puls kengligi modulyatsiyasi: Hisoblagichlar o'zgaruvchan ish sikli signalini yaratish uchun impuls kengligi modulyatsiyasi (PWM) davrlarida ishlatilishi mumkin. Hisoblagich belgilangan vaqt oralig'ida sodir bo'lgan takt pulslari sonini hisoblaydi va hisoblash bilan mutanosib bo'lgan ish aylanishi bilan chiqish signalini hosil qiladi.

Kod yaratish: Hisoblagichlar turli raqamli tizimlarda qo'llaniladigan kulrang kodlar yoki BCD kodlari kabi raqamli kodlarni yaratish uchun ishlatilishi mumkin.

Tasodifiy raqamlarni yaratish: Hisoblagichlar statistik tasodifiylikni ko'rsatadigan hisoblashlar ketma-ketligini yaratish orqali psevdo-tasodifiy raqamlarni yaratish uchun ishlatilishi mumkin.

Hodisalarni sinxronlashtirish: Hisoblagichlar turli tezliklarda sodir bo'ladigan hodisalarni sinxronlashtirish uchun ishlatilishi mumkin. Masalan, hisoblagich ikki xil soat signalini sinxronlashtiradigan impuls hosil qilish uchun ishlatilishi mumkin.

Chastota bo'linishi: Hisoblagichlar soat signalining chastotasini belgilangan omilga bo'lish uchun ishlatilishi mumkin. Hisoblagich ma'lum miqdordagi taktli impulslardan keyin chiqish signalini ishlab chiqaradi, bu esa soat signalining chastotasini samarali ravishda taqsimlaydi.

Raqamli signalni qayta ishlash: Hisoblagichlar FFT algoritmlari kabi raqamli signalni qayta ishlash dasturlarida vaqt-domenni chastota-domenga aylantirishni amalga oshirish uchun ishlatilishi mumkin.

Umuman olganda, hisoblagichlar raqamli tizimlarda keng ko'lamli ilovalarga ega bo'lib, ular xotirani adreslash, impuls kengligi modulyatsiyasi, kod ishlab chiqarish, tasodifiy sonlarni yaratish, hodisalarni sinxronlashtirish, chastotalarni taqsimlash va raqamli signallarni qayta ishlash kabi turli sohalarda qo'llanilishi mumkin.


Seriyali aloqa: Hisoblagichlar ma'lumotlar oqimini yaratish yoki qabul qilish uchun ketma-ket aloqa protokollarida ishlatilishi mumkin. Hisoblagich sinxron aloqa uchun soat impulslarini yaratishi yoki asinxron aloqa uchun ma'lumotlar bitlari sonini hisoblashi mumkin.

Multiplekslash va demultiplekslash: Hisoblagichlar multiplekslash yoki demultiplekslash pallasida turli xil kirish yoki chiqish kanallarini tanlash uchun ishlatilishi mumkin. Hisoblagich tegishli kanalni tanlash uchun foydalaniladigan manzillar ketma-ketligini hosil qiladi.

Boshqarish signalini yaratish: Hisoblagichlar raqamli tizimda turli operatsiyalarni boshqarish uchun ishlatiladigan nazorat signallarini yaratish uchun ishlatilishi mumkin. Misol uchun, hisoblagich qayta o'rnatish jarayonini boshlaydigan signalni yaratishi mumkin
33- mavzu: Xotiradasturiuchunhisoblagichlarmantiqiysxemasinituzish
Xotira dasturlari va kalkulyatorlar uchun mantiqiy sxemani yaratish uchun kombinatsiyalangan mantiqiy sxemadan foydalanish mumkin. Xotira dasturi va kalkulyator uchun mantiqiy sxemaga misol:

Kirish/chiqish moduli: Bu modul foydalanuvchidan kirish ma’lumotlarini qabul qilish va chiqish ma’lumotlarini foydalanuvchiga yuborish uchun javobgardir.

Xotira moduli: Ushbu modul xotiradan ma'lumotlarni saqlash va olish uchun javobgardir. Xotira moduli RAM, ROM yoki kesh xotirasi kabi bir nechta xotira birliklaridan iborat bo'lishi mumkin.

Arifmetik modul: Bu modul qo‘shish, ayirish, ko‘paytirish va bo‘lish kabi arifmetik amallarni bajarish uchun javobgardir. Arifmetik modul bir nechta arifmetik birliklardan iborat bo'lishi mumkin, masalan, qo'shimchalar, ayirishlar, ko'paytiruvchilar va bo'lishlar.

Boshqaruv moduli: Ushbu modul xotira dasturi va kalkulyatorning umumiy ishlashini nazorat qilish uchun javobgardir. Boshqarish moduli soat generatorini, davlat mashinasini va boshqaruv mantiqiy sxemasini o'z ichiga olishi mumkin.

Xotira uchun dasturiy ta’minot va kalkulyatorning mantiqiy sxemasi yig‘uvchilar, ko‘paytirgichlar, komparatorlar, dekoderlar, kodlovchilar, multipleksorlar va demultipleksatorlar kabi kombinatsiyalangan mantiqiy sxemalar yordamida amalga oshirilishi mumkin. Kombinatsion mantiqiy sxemalar AND, OR, NO, XOR, NAND va NOR kabi turli mantiqiy eshiklar yordamida loyihalashtirilishi mumkin.

Masalan, kirish/chiqish moduli multipleksor sxemasi yordamida amalga oshirilishi mumkin, u foydalanuvchidan kirish ma'lumotlarini tanlaydi va uni tegishli modulga yuboradi. Xotira moduli dekoder sxemasi yordamida amalga oshirilishi mumkin, u xotira blokini tanlaydi va ma'lumotlarni qayta ishlash uchun arifmetik modulga yuboradi. Arifmetik modul kerakli arifmetik amallarni bajaradigan qo'shimcha va ko'paytiruvchi sxemalar yordamida amalga oshirilishi mumkin. Boshqaruv moduli xotira dasturiy ta'minoti va kalkulyatorning umumiy ishlashini boshqaruvchi davlat mashinasi sxemasi yordamida amalga oshirilishi mumkin.

Umuman olganda, kombinatsiyalangan mantiqiy sxema turli mantiqiy eshiklar va sxemalar yordamida amalga oshirilishi mumkin bo'lgan xotira dasturiy ta'minoti va kalkulyator uchun mantiqiy sxemani yaratish uchun ishlatilishi mumkin. Mantiqiy sxema xotira dasturiy ta'minoti va kalkulyatorning o'ziga xos talablari va ishlash maqsadlarini qondirish uchun moslashtirilishi va optimallashtirilishi mumkin.Xotira dasturi va kalkulyator uchun mantiqiy sxemaning batafsilroq misoli:

Kirish/chiqish moduli:

Foydalanuvchidan kirish ma'lumotlarini tanlash va tegishli modulga yuborish uchun multiplekser sxemasi


Tegishli moduldan chiqish ma'lumotlarini tanlash va uni foydalanuvchiga yuborish uchun demultiplexer sxemasi
Modullar o'rtasida ma'lumotlarni saqlash va uzatish uchun bufer sxemasi
Xotira moduli:

Real vaqt rejimida ma'lumotlarni saqlash va olish uchun RAM xotira birligi


Ruxsat etilgan yoki oldindan dasturlashtirilgan ma'lumotlarni saqlash va olish uchun ROM xotira birligi
Tez-tez kiriladigan ma'lumotlarni tezroq olish uchun saqlash uchun kesh xotira birligi
Arifmetik modul:

Qo'shish va ayirish amallarini bajarish uchun qo'shuvchi sxema


Ko'paytirish va bo'lish amallarini bajarish uchun multiplikator sxemasi
Ikki raqamni solishtirish va ularning teng, katta yoki bir-biridan kichikligini aniqlash uchun taqqoslash sxemasi
AND, OR, NOT, XOR va NAND kabi mantiqiy amallarni bajarish uchun mantiqiy sxema
Boshqarish moduli:

Sinxron ishlash uchun soat signallarini yaratish uchun soat generatorining sxemasi


Xotira dasturi va kalkulyatorning umumiy ishlashini nazorat qilish uchun davlat mashinasi sxemasi
Kirish/chiqish, xotira va arifmetik modullarni boshqarish uchun mantiqiy sxemani boshqarish
Mantiqiy sxema xotira dasturiy ta'minoti va kalkulyatorning o'ziga xos talablari va ishlash maqsadlariga javob berish uchun yanada optimallashtirilishi va moslashtirilishi mumkin. Masalan, suzuvchi nuqtali arifmetika, murakkab raqamlar operatsiyalari, ilmiy funksiyalar va statistik tahlil kabi ilg'or funksiyalarni qo'llab-quvvatlash uchun qo'shimcha modullar qo'shilishi mumkin. Bundan tashqari, mantiqiy sxema keng qamrovli raqamli tizimni yaratish uchun operatsion tizimlar, foydalanuvchi interfeyslari va periferik qurilmalar kabi boshqa dasturiy va apparat komponentlari bilan birlashtirilishi mumkin.
Mantiqiy sxemani batafsilroq ko'rsatish uchun keling, har bir modul va ularni tashkil etuvchi sxemalarni batafsil ko'rib chiqamiz:

Kirish/chiqish moduli:

Multiplekser sxemasi: Multiplekser sxemasi foydalanuvchidan kirish ma'lumotlarini tanlash va uni tegishli modulga yuborish uchun ishlatilishi mumkin. Multiplekser bir nechta kirish va bitta chiqishga ega bo'lib, u kirish ma'lumotlarini boshqaruv signali asosida tanlaydi. Tekshirish signali boshqaruv modulidagi boshqaruv mantiqiy sxemasi tomonidan yaratilishi mumkin.
Demultipleksator sxemasi: Tegishli moduldan chiqish ma'lumotlarini tanlash va uni foydalanuvchiga yuborish uchun demultipleksator sxemasidan foydalanish mumkin. Demultipleksator bitta kirish va bir nechta chiqishga ega va u boshqaruv signali asosida chiqish ma'lumotlarini tanlaydi. Tekshirish signali boshqaruv modulidagi boshqaruv mantiqiy sxemasi tomonidan yaratilishi mumkin.
Bufer sxemasi: modullar o'rtasida ma'lumotlarni saqlash va uzatish uchun bufer sxemasidan foydalanish mumkin. Bufer bitta kirish va bitta chiqishga ega va u kiritilgan ma'lumotlarni keyingi modulga jo'natish uchun tayyor bo'lgunga qadar vaqtincha saqlaydi. Bufer, shuningdek, vaqt mos kelmasligi yoki signal buzilishlari tufayli ma'lumotlarning yo'qolishi yoki buzilishining oldini oladi.
Xotira moduli:

RAM xotira birligi: RAM xotira birligi real vaqtda ma'lumotlarni saqlash va olish uchun ishlatilishi mumkin. Operativ xotirada manzil satrlari, ma'lumotlar liniyalari to'plami va boshqaruv liniyalari to'plami mavjud. Manzil satrlari xotira joyini tanlash uchun, ma'lumotlar satrlari ma'lumotlarni o'qish yoki yozish uchun, boshqaruv chiziqlari esa xotira ishlashini yoqish yoki o'chirish uchun ishlatiladi. RAM ma'lumotlar tuzilishi va kirish sxemasiga qarab bir o'lchovli massiv yoki ko'p o'lchovli matritsa sifatida tashkil etilishi mumkin.


ROM xotira birligi: ROM xotira birligi qattiq yoki oldindan dasturlashtirilgan ma'lumotlarni saqlash va olish uchun ishlatilishi mumkin. ROMda manzil satrlari va ma'lumotlar liniyalari to'plami mavjud va u faqat o'qish uchun mo'ljallangan, ya'ni ma'lumotlarni o'zgartirish yoki o'chirish mumkin emas. ROM ko'rsatmalar, doimiylar yoki qidirish jadvallarini saqlash uchun ishlatilishi mumkin.
Kesh xotira birligi: Kesh xotira birligi tezroq olish uchun tez-tez foydalaniladigan ma'lumotlarni saqlash uchun ishlatilishi mumkin. Kesh asosiy xotiradan kichikroq hajmga ega, lekin u tezroq va protsessorga yaqinroq. Kesh kesh hajmi va almashtirish siyosatiga qarab to'g'ridan-to'g'ri xaritalangan, to'liq assotsiativ yoki to'plam-assotsiativ tuzilma sifatida tashkil etilishi mumkin.
Arifmetik modul:

Qo'shish sxemasi: qo'shish va ayirish amallarini bajarish uchun qo'shimcha sxemasidan foydalanish mumkin. Topuvchi ikkita kirish raqami va bitta chiqish raqamiga ega va u ikkita kirish raqamini nazorat signaliga ko'ra qo'shadi yoki ayiradi. Bitning kengligi va tezligi talablariga qarab, qo'shgich yarim qo'shuvchi, to'liq qo'shuvchi yoki ko'taruvchi ko'rsatkich sifatida ishlab chiqilishi mumkin.


Ko'paytma sxemasi: ko'paytirish va bo'lish amallarini bajarish uchun ko'paytma sxemasidan foydalanish mumkin. Multiplikator ikkita kirish raqami va bitta chiqish raqamiga ega va u ikkita kirish raqamini nazorat signaliga ko'ra ko'paytiradi yoki ajratadi. Ko'paytirgich bit kengligi va murakkablik talablariga qarab ikkilik multiplikator, Booth multiplikatori yoki Wallace daraxt ko'paytmasi sifatida ishlab chiqilishi mumkin.
Taqqoslash sxemasi: Ikki raqamni solishtirish va ularning teng, katta yoki bir-biridan kichikligini aniqlash uchun taqqoslash sxemasidan foydalanish mumkin. Taqqoslovchida ikkita kirish raqami va bitta chiqish signali mavjud bo'lib, u taqqoslash natijasiga qarab chiqish signalini yuqori yoki past darajaga o'rnatadi. Taqqoslovchi raqam formati va aniqlik talablariga qarab, kattalik solishtiruvchisi, imzolangan taqqoslagich yoki suzuvchi nuqtali komparator sifatida ishlab chiqilishi mumkin.
Mantiqiy sxema: mantiqiy sxema VA, YOKI, EMAS, XOR va kabi mantiqiy amallarni bajarish uchun ishlatilishi mumkin.

34- mavzu: Xotiradasturiuchunsummatorlarmantiqiysxemasinituzish


Albatta, xotira dasturi uchun qo'shimchani o'z ichiga olgan mantiqiy sxema misoli:

lua
Kodni nusxalash


________ ________
| | | |
| ADDR |---| RAM |
|________| |________|
| |
| |
| _______ |
| | | |
|--| ADDER |<-|
|_______|

Ushbu sxemada ikkita asosiy komponent mavjud: manzil generatori (ADDR) va RAM xotira moduli. ADDR xotira manzillari ketma-ketligini hosil qiladi, ular ma'lumotlarni o'qish yoki yozish uchun RAMga yuboriladi. ADDER sxemasi dastur mantiqiga qarab xotira manzilini oshirish yoki kamaytirish uchun ishlatiladi.

Bu sxema qanday ishlaydi:

ADDR ikkilik manzil signalini hosil qiladi, u RAM moduliga yuboriladi.


Operativ xotira tanlangan xotira manzilida boshqaruv signallari asosida ma'lumotlarni o'qiydi yoki yozadi.
ADDER ADDR dan ikkilik manzil signalini oladi va boshqaruv signallari asosida undan doimiy qiymat qo'shadi yoki ayiradi.
Yangi manzil signali ADDR ga qaytariladi, u navbatdagi manzilni hosil qiladi.
Misol uchun, agar ADDR "0101" manzil signalini yaratsa va ADDER unga 1 qo'shsa, yangi manzil signali "0110" bo'ladi. Bu dasturga ketma-ketlikda keyingi xotira joyiga kirish imkonini beradi. Xuddi shunday, agar ADDER manzil signalidan 1 ni olib tashlasa, yangi manzil signali "0100" bo'lib, oldingi xotira joyiga kiradi. ADDER bit kengligi va tezlik talablariga qarab ikkilik qo'shuvchi, to'lqinli ko'taruvchi yoki ko'taruvchi ko'rsatuvchi sifatida ishlab chiqilishi mumkin.
Ushbu sxemani apparatda amalga oshirish uchun siz flip-floplar, registrlar va multipleksorlar bilan bir qatorda AND, OR va XOR eshiklari kabi raqamli mantiqiy eshiklar kombinatsiyasidan foydalanishingiz mumkin. Odatda integral mikrosxemalar sifatida mavjud bo'lgan oldindan ishlab chiqilgan qo'shimcha va ayiruvchi modullardan ham foydalanishingiz mumkin.

Mana mantiqiy sxemaning yuqori darajadagi umumiy ko'rinishi:

ADDR ikki qismga bo'lingan ikkilik manzil signalini ishlab chiqaradi: manzil qiymati va boshqaruv signallari.
Manzil qiymati o'qish/yozish operatsiyalari uchun operativ xotiraga yuboriladi.
Tekshirish signallari manzil qiymatini va doimiy qiymatni (masalan, 1 yoki -1) oladigan va yangi manzil qiymatini yaratadigan ADDER sxemasini boshqarish uchun ishlatiladi.
Yangi manzil qiymati ADDR ga qaytariladi, u navbatdagi manzilni hosil qiladi.
ADDER sxemasi o'sish yoki kamaytirish operatsiyasining yo'nalishiga qarab ikkilik qo'shimcha yoki ayirish modullari yordamida ishlab chiqilishi mumkin. Boshqaruv signallari dekoderlar, multipleksorlar va mantiqiy eshiklar kabi turli xil kombinatsiyalangan mantiqiy sxemalar yordamida yaratilishi mumkin.

Umuman olganda, biriktiruvchiga ega xotira dasturi uchun mantiqiy sxema murakkab tizim bo'lib, to'g'ri funksionallik va ishlashni ta'minlash uchun ehtiyotkorlik bilan loyihalash va sinovdan o'tishni talab qiladi.

35- mavzu: Kodlash va dekoder (Kodni ochish)ni amalga oshirish.

Kodlash va dekodlash raqamli elektronikada muhim tushunchalar bo'lib, ular ikkilik signallar va Grey kod, BCD yoki ASCII kabi boshqa turdagi kodlar o'rtasida konvertatsiya qilish uchun ishlatiladi. Umuman olganda, kodlash ma'lumotlarni ma'lum bir formatda kodlash jarayonini anglatadi, dekodlash esa ma'lumotlarni asl formatiga qaytarish jarayonini anglatadi.

Raqamli elektronikada kodlash va dekodlash ko'pincha kodlovchilar, dekoderlar, multipleksorlar va demultipleksatorlar kabi kombinatsiyalangan mantiqiy sxemalar yordamida amalga oshiriladi. Ushbu sxemalar AND, OR va XOR eshiklari kabi asosiy raqamli mantiqiy eshiklar yordamida qurilishi mumkin va murakkab tizimlarni yaratish uchun turli usullar bilan birlashtirilishi mumkin.

Raqamli mantiqiy sxemalar yordamida kodlash va dekodlashni amalga oshirishning qisqacha ko'rinishi:

Kodlovchi: Kodlovchi - bu kirish signallari to'plamini ikkilik kodga aylantiradigan kombinatsiyalangan sxema. Kirish signallari odatda ikkilik raqamlar sifatida ifodalanadi va chiqish kodi faol kirish signalining o'rnini ifodalaydi. Masalan, 4 dan 2 gacha bo'lgan ikkilik kodlovchi 4 ta kirish signalini oladi va 2 ta chiqish signalini ishlab chiqaradi, bu erda chiqish signallari faol kirish signalining o'rnini ifodalaydi (masalan, kirish signali 2 uchun 0010, kirish signali 1 uchun 0001 va boshqalar). ).

Dekoder: Dekoder - bu ikkilik kodni chiqish signallari to'plamiga aylantiradigan kombinatsiyalangan sxema. Kirish kodi odatda ikkilik raqam sifatida ifodalanadi va chiqish signallari kirish kodining dekodlangan qiymatini ifodalaydi. Masalan, 2-dan 4-gachasi ikkilik dekoder kirish sifatida 2-bitli ikkilik kodni oladi va 4 ta chiqish signalini ishlab chiqaradi, bu erda chiqish signallari kirish kodining dekodlangan qiymatini ifodalaydi (masalan, kirish kodi uchun 0001, kirish uchun 0010). kod 1 va boshqalar).

Multiplekser: Multiplekser (MUX) - bu bir nechta kirish signallaridan birini tanlab, uni chiqishga uzatuvchi kombinatsiyalangan sxema. Kirish signalini tanlash odatda ikkilik kodlar sifatida ifodalanadigan nazorat signallari to'plami bilan boshqariladi. Masalan, 4 dan 1 gacha MUX 4 ta kirish signalini oladi va 1 ta chiqish signalini ishlab chiqaradi, bu erda kirish signalini tanlash 2 bitli ikkilik kod bilan boshqariladi.

Demultipleksator: Demultipleksator (DEMUX) - boshqaruv signallarining qiymatiga asoslanib, kirish signalini bir nechta chiqish signallaridan biriga yo'naltiruvchi kombinatsiyalangan sxema. Boshqaruv signallari odatda ikkilik kodlar sifatida ifodalanadi va har bir chiqish signali nazorat signallarining ma'lum bir qiymatiga mos keladi. Masalan, 1 dan 4 gacha bo'lgan DEMUX 1 ta kirish signalini oladi va 4 ta chiqish signalini ishlab chiqaradi, bu erda chiqish signalini tanlash 2 bitli ikkilik kod bilan boshqariladi.

Umuman olganda, raqamli mantiqiy sxemalarda kodlash va dekodlashni amalga oshirish kombinatsiyaviy mantiq, mantiqiy algebra va raqamli elektronikani chuqur tushunishni talab qiladigan murakkab mavzudir. Ushbu sxemalarni amalga oshirish uchun oldindan ishlab chiqilgan ko'plab IC va ishlab chiqish to'plamlari mavjud bo'lib, ular dizayn va sinov jarayonini soddalashtirishga yordam beradi.
36-mavzu : Xotira dasturi uchun kodlash va dekoder mantiqiy sxemasini tuzish

Kodlash va dekodlash kompyuter fanlari va axborot nazariyasidagi asosiy tushunchalar bo'lib, ular xatolarni tuzatish, siqish, shifrlash va raqamli aloqa kabi turli xil ilovalarda qo'llaniladi.

Dasturiy ta'minotda kodlash va dekodlashni qanday amalga oshirish mumkinligi haqida qisqacha ma'lumot:

Kodlash:
Kodlash xabarni (ya'ni, belgilar yoki ma'lumotlar ketma-ketligi) aloqa kanali orqali uzatilishi yoki ma'lumotlarni saqlash qurilmasida saqlanishi mumkin bo'lgan kodlangan tasvirga aylantirishni o'z ichiga oladi. Ikkilik kodlar, ASCII kodlari, Unicode va Huffman kodlari kabi turli xil kod turlari mavjud.


Dasturiy ta'minotda kodlashni amalga oshirish uchun siz odatda kiritilgan xabarni chiqish kodiga qanday aylantirish kerakligini ko'rsatadigan qoidalar yoki algoritmlar to'plamini belgilashingiz kerak. Misol uchun, agar siz matnli xabarni ikkilik kod sifatida kodlamoqchi bo'lsangiz, xabardagi har bir belgi va uning tegishli ikkilik ko'rinishi (masalan, ASCII yoki Unicode yordamida) o'rtasidagi xaritani belgilashingiz kerak bo'ladi. Yakuniy kodlangan xabarni yaratish uchun har bir belgi uchun ikkilik kodlarni birlashtirishingiz mumkin.

Dekodlash:


Dekodlash - kodlangan tasvirdan asl xabarni tiklash uchun kodlash jarayonini teskari o'zgartirish jarayoni. Xabarni dekodlash uchun siz birinchi navbatda xabarni o'zgartirish uchun ishlatilgan kodlash sxemasiga kirishingiz kerak.
Dasturiy ta'minotda dekodlashni amalga oshirish uchun odatda kodlangan xabarni asl xabarga qaytarishi mumkin bo'lgan teskari funksiya yoki algoritmni belgilashingiz kerak. Misol uchun, agar siz matnli xabarni ASCII kodlari yordamida kodlagan bo'lsangiz, har bir ikkilik kodni tegishli ASCII belgisiga aylantirib, so'ngra asl xabarni yaratish uchun belgilarni birlashtirib xabarni dekodlashingiz mumkin.

Umuman olganda, kodlash va dekodlashni amalga oshirish maxsus kodlash sxemasi va qo'llanilishiga bog'liq. Ko'pgina dasturiy ta'minot kutubxonalari va dasturlash tillari har xil turdagi ma'lumotlarni kodlash va dekodlash uchun o'rnatilgan funktsiyalar yoki sinflarni taqdim etadi. Biroq, agar siz maxsus kodlash sxemasi yoki algoritmini amalga oshirishingiz kerak bo'lsa, kerakli o'zgarishlarni amalga oshirish uchun o'z kodingizni yozishingiz kerak bo'lishi mumkin.


Kodlash va dekodlashni amalga oshirish bo'yicha yana bir nechta tafsilotlar:

Xatoni tuzatish:


Kodlash va dekodlashning asosiy ilovalaridan biri xatolarni tuzatishdir. Shu nuqtai nazardan, kodlangan xabar uzatish yoki saqlash vaqtida yuzaga kelishi mumkin bo'lgan xatolar yoki shovqinlarga qarshi mustahkam bo'lishi uchun mo'ljallangan. Dekoder asl xabarni tiklash uchun ushbu xatolarni aniqlash va tuzatish uchun javobgardir.
Xatolarni tuzatishni amalga oshirish uchun odatda Reed-Solomon kodi yoki konvolyutsion kod kabi murakkabroq kodlash sxemasidan foydalanishingiz kerak. Ushbu kodlar kodlangan xabarga ortiqcha ma'lumotlarni qo'shadi, ulardan xatolarni aniqlash va tuzatish uchun foydalanish mumkin. Keyin dekodlash algoritmi ushbu ortiqcha ma'lumotdan xatolarni tuzatish va asl xabarni tiklash uchun foydalanadi.

Shifrlash:


Kodlash va dekodlashning yana bir muhim qo'llanilishi shifrlash bo'lib, u xabarni maxfiy kalitsiz o'qib bo'lmaydigan kodlangan shaklga aylantirishni o'z ichiga oladi. Keyin dekoder xabarning shifrini ochish va asl ochiq matnni tiklash uchun kalitdan foydalanishi mumkin.
Shifrlashni amalga oshirish uchun siz odatda maxfiy kalit yordamida kirish xabarini o'zgartiradigan kriptografik algoritmdan foydalanishingiz kerak. Nosimmetrik kalitli shifrlar, ochiq kalitli shifrlar va xesh-funksiyalar kabi kriptografik algoritmlarning juda ko'p turlari mavjud. Dekoder xabarning shifrini ochish uchun kodlovchi tomonidan ishlatiladigan bir xil maxfiy kalitga kirish huquqiga ega bo'lishi kerak.

Siqish:
Va nihoyat, kodlash va dekodlash ma'lumotlarni siqish uchun ham ishlatilishi mumkin, bu xabarni asl xabardan ko'ra ixchamroq kodlangan shaklga aylantirishni o'z ichiga oladi. Keyin dekoder asl xabarni tiklash uchun bu jarayonni teskari qiladi.


Siqishni amalga oshirish uchun siz odatda Lempel-Ziv-Welch algoritmi yoki Huffman kodlash algoritmi kabi siqish algoritmidan foydalanishingiz kerak. Ushbu algoritmlar kirish xabari hajmini kamaytirish uchun turli xil kodlash usullaridan foydalanadi. Keyin dekoder xabarni ochish va asl ma'lumotlarni qayta tiklash uchun bir xil algoritmdan foydalanadi.

Umuman olganda, kodlash va dekodlashni amalga oshirish tizimning o'ziga xos qo'llanilishi va talablariga bog'liq. Ko'p hollarda kerakli kodlash va dekodlash funksiyalarini amalga oshirish uchun mavjud dasturiy ta'minot kutubxonalari yoki dasturlash tili xususiyatlaridan foydalanishingiz mumkin. Biroq, ba'zi hollarda, kerakli xatti-harakatga erishish uchun o'zingizning shaxsiy kodingizni yozishingiz kerak bo'lishi mumkin.


Dasturlash tillarida amalga oshirish:
Ko'pgina dasturlash tillari har xil turdagi kodlash va dekodlash uchun o'rnatilgan yordamni ta'minlaydi. Masalan, Python-da siz base64 kodlash yordamida ikkilik ma'lumotlarni kodlash va dekodlash uchun base64 modulidan foydalanishingiz mumkin. Xuddi shunday, tuzlangan modul Python obyektlarini uzatilishi yoki saqlanishi mumkin bo'lgan ikkilik formatga seriyalashtirish va keyin asl ob'ektlarni tiklash uchun ularni seriyadan chiqarish uchun ishlatilishi mumkin.
C++ da siz har xil turdagi kodlash va dekodlashni amalga oshirish uchun standart kutubxona sinflari va funksiyalaridan foydalanishingiz mumkin. Masalan, ikkilik ma'lumotlarni kodlash va dekodlash uchun std::bitset sinfidan yoki turli belgilar to'plamidan foydalangan holda matn ma'lumotlarini kodlash va dekodlash uchun std::string sinfidan foydalanishingiz mumkin. Shuningdek, shifrlash yoki siqish kabi ilg'or kodlash va dekodlash funksiyalarini amalga oshirish uchun Boost yoki OpenSSL kabi uchinchi tomon kutubxonalaridan ham foydalanishingiz mumkin.

Ishlash bo'yicha mulohazalar:


Kodlash va dekodlash algoritmlarining ishlashi ko'pgina ilovalarda, ayniqsa katta hajmdagi ma'lumotlar yoki real vaqtda ishlov berish talablari bilan ishlashda muhim bo'lishi mumkin. Shu sababli, tegishli kodlash va dekodlash algoritmlarini tanlash va maksimal ishlash uchun ularni amalga oshirishni optimallashtirish muhimdir.
Masalan, kodlash va dekodlash algoritmlarini tezlashtirish uchun keshlash, parallelizm yoki vektorlashtirish kabi usullardan foydalanishingiz mumkin. Hisob-kitoblarni tezlashtirish uchun siz grafik ishlov berish birliklari (GPU) yoki maydonda dasturlashtiriladigan eshik massivlari (FPGA) kabi maxsus apparat vositalaridan ham foydalanishingiz mumkin.

Umuman olganda, kodlash va dekodlashni amalga oshirish asosiy algoritmlarni chuqur tushunishni va ularni muayyan muammolarga qo'llashni talab qiladi. Tegishli kodlash va dekodlash usullarini diqqat bilan tanlab, ularni amalga oshirishni optimallashtirish orqali siz yuqori mahsuldorlikka va ishonchli ma'lumotlarni uzatish va saqlashga erishishingiz mumkin.


Sinov va tasdiqlash:
Nihoyat, kerakli funktsional va ishlash talablariga javob berishini ta'minlash uchun kodlash va dekodlashni amalga oshirishni sinab ko'rish va tasdiqlash muhimdir. Bu birlik testi, integratsiya testi va tizim testi kabi turli xil testlarni o'z ichiga olishi mumkin.
Birlik testida siz kodlash va dekodlash algoritmlarining individual komponentlari yoki funktsiyalarini ularning kutilganidek harakat qilishiga ishonch hosil qilish uchun sinab ko'rasiz. Integratsiya testida siz turli komponentlar yoki funktsiyalar o'rtasidagi o'zaro ta'sirni ularning birgalikda to'g'ri ishlashiga ishonch hosil qilish uchun sinab ko'rasiz. Tizim testida siz umumiy tizimni funktsional va ishlash talablariga javob berishini tekshirish uchun sinovdan o'tkazasiz.

Sinov va tekshirish jarayonini avtomatlashtirish uchun turli xil vositalar va usullardan foydalanishingiz mumkin, masalan, test tizimlari, kod qamrovini tahlil qilish va ishlash profilini yaratish. Bu amalga oshirishdagi har qanday muammo yoki xatolarni aniqlash va tuzatishga yordam beradi hamda kodlash va dekodlash algoritmlarining toʻgʻri va samarali ishlashini taʼminlaydi.

Xulosa qilib aytganda, kodlash va dekodlashni amalga oshirish ko'plab informatika va axborot nazariyasi ilovalarining asosiy jihati hisoblanadi. Asosiy algoritmlarni va ularni muayyan muammolarga qo'llashni tushunib, kodlash va dekodlash usullarini diqqat bilan tanlash va optimallashtirish orqali siz yuqori unumdorlikka va ishonchli ma'lumotlarni uzatish va saqlashga erishishingiz mumkin.
37-mavzu: Multipleksor va de-multipleksorlarning sxemasini amalga oshirish.
Multipleksor va de-multipleksorlarning zararlisini amalga oshirish.Multiplexers va demultiplexers ma'lumotlarni tanlash va tarqatish uchun ishlatiladigan raqamli sxemalardir.
Multiplekser (MUX) - bu tanlash satrlarining holatiga ko'ra bir nechta kirish chiziqlaridan bitta chiqish chizig'ini tanlaydigan qurilma. U bir nechta signallarni bitta aloqa liniyasi yoki kanali orqali uzatish imkonini beradi.
Demultipleksator (DEMUX) multipleksorning teskarisi bo'lib, u bitta kirish chizig'ini tanlaydi va uni tanlash satrlari holatidan kelib chiqib bir nechta chiqish qatorlaridan biriga yo'naltiradi.
Multipleksorning mantiqiy sxemasi quyidagi bosqichlar yordamida amalga oshirilishi mumkin:
Kirish signallari MUX ning ma'lumotlar kirishlariga qo'llaniladi.
Tanlash chiziqlari qaysi kirish liniyasi chiqish liniyasiga uzatilishini aniqlash uchun ishlatiladi.
MUX ning chiqishi tanlangan kirish liniyasidir.
Demultipleksatorning mantiqiy sxemasi quyidagi bosqichlar yordamida amalga oshirilishi mumkin:
Kirish signali DEMUX ning ma'lumotlar kiritishiga qo'llaniladi.
Tanlash chiziqlari kirish signali qaysi chiqish chizig'iga yo'naltirilishini aniqlash uchun ishlatiladi.
Kirish signali tanlangan chiqish liniyasiga yo'naltiriladi.
MUX va DEMUX sxemalarida tanlash chiziqlari qaysi kirish yoki chiqish liniyasi faol bo'lishini aniqlaydi. Kerakli tanlash qatorlari soni kontaktlarning zanglashiga olib kirish yoki chiqishlari soniga qarab belgilanadi.
Multiplekserda kirish signallari MUX ning ma'lumotlar kirishlariga qo'llaniladi. Tanlash satrlari ma'lumotlar kirishlaridan qaysi biri chiqish liniyasiga uzatilishini aniqlash uchun ishlatiladi.
Multiplekserdagi ma'lumotlarni kiritish soni har xil bo'lishi mumkin, lekin eng keng tarqalgan konfiguratsiyalar 2^n ma'lumot kiritishidir, bu erda n - tanlash qatorlari soni. Misol uchun, agar MUX 2 ta tanlash qatoriga ega bo'lsa, u 4 tagacha ma'lumot kiritishiga ega bo'lishi mumkin (2^2). Agar u 3 ta tanlash qatoriga ega bo'lsa, u 8 tagacha ma'lumot kiritishiga ega bo'lishi mumkin (2^3) va hokazo.

38-mavzu: Xotira dasturi uchun multipleksor va de-multipleksorlarning mantiqiy sxemasinit uzish

Multiplekser (yoki qisqacha MUX) bu bir nechta kirishlardan birini tanlaydigan va tanlangan kirishni bitta chiqishga yo'naltiruvchi raqamli sxema. Ko'pincha xotira dasturiy ta'minotida bir nechta xotira joylariga bitta manzil qatori yordamida murojaat qilish imkonini berish uchun ishlatiladi.
Mana 4 dan 1 gacha bo'lgan multipleksorning mantiqiy sxemasi:

lua
Kodni nusxalash


+-------+
A0 ---| |
A1 ---| |
A2 ---| MUX |----> Chiqish
A3 ---| |
D0 ---| |
D1 ---| |
D2 ---| |
D3 ---|-------+
D0, D1, D2 va D3 kirishlari ma'lumotlar kirishlari, A0, A1, A2 va A3 kirishlari esa manzilli kirishlar hisoblanadi. MUX ning chiqishi manzilli kirishlarning ikkilik qiymatiga qarab tanlanadi.

Masalan, agar A0 = 0, A1 = 1, A2 = 0 va A3 = 1 bo'lsa, tanlangan kirish D3, MUX chiqishi esa D3 ga teng bo'ladi.

De-multiplekser (yoki qisqacha DEMUX) MUX ning teskarisi bo'lib, u bitta kirishni oladi va uni bir nechta chiqishlardan biriga tarqatadi. Shuningdek, u bitta ma'lumot kiritishni bir nechta xotira joylariga yozishga ruxsat berish uchun xotira dasturiy ta'minotida qo'llaniladi.

Mana 1 dan 4 gacha bo'lgan de-multipleksatorning mantiqiy sxemasi:


Lua
Kodni nusxalash
+-------+
A0 ---| |
A1 ---| |
A2 ---| DEMUX|----> Chiqish 0
A3 ---| |
--| |
--| |
--| |
--| |
+-------+
Kirish DEMUX ning D kirishiga ulangan va A0, A1, A2 va A3 manzilli kirishlari kirish uzatiladigan chiqishni tanlaydi.

Misol uchun, agar A0 = 1, A1 = 0, A2 = 1 va A3 = 0 bo'lsa, u holda kirish 5-chiqishga yo'naltiriladi va 5-chiqishning chiqishi kirish qiymatiga teng bo'ladi.

Ushbu diagrammalar multipleksor va de-multiplekser sxemalarining soddalashtirilgan namunalari bo'lib, ular xotira dasturiy ta'minotidagi maxsus ilovaga qarab ko'proq kirish va chiqishlarga ega bo'lishi mumkin.
Xotira dasturiy ta'minotida multipleksorlar va de-multipleksatorlar ko'pincha aniq xotira joylariga murojaat qilish uchun manzil dekoderlari bilan birgalikda ishlatiladi. Manzil dekoderi bir nechta xotira chiplari yoki xotira banklaridan birini tanlash uchun manzil satrlaridan foydalanadi va multipleksor yoki de-multiplekser tanlangan xotira chipi yoki banki ichida ma'lum bir xotira joyini qo'shimcha tanlash uchun ishlatiladi.

Misol uchun, agar har biri 4K xotira joylashuviga ega bo'lgan to'rtta xotira chipi bo'lsa, manzil dekoderi manzil satrlari qiymatiga qarab to'rtta xotira chipidan birini tanlaydi va 4-dan 1-gachasi multipleksorlardan birini tanlaydi. Qolgan manzil satrlari asosida tanlangan xotira chipidagi 4K xotira joylari.

Xuddi shunday, agar 16K xotira joylariga ega bo'lgan bitta xotira chipi mavjud bo'lsa, u holda 1 dan 4 gacha bo'lgan de-multipleksator ma'lumotlarni kiritishni manzil satrlari qiymatiga qarab 4K xotira joylaridan biriga tarqatish uchun ishlatiladi.

Multiplekserlar va de-multipleksatorlar xotira dasturiy ta'minotining boshqa sohalarida, masalan, ma'lumotlar shinasini boshqarish va xotira manzilini xaritalashda ham qo'llaniladi. Barcha holatlarda xotira tizimlarining samarali va ishonchli ishlashi uchun ushbu sxemalarni to'g'ri loyihalash va amalga oshirish juda muhimdir.


Xotira dasturlarida foydalanishdan tashqari, multipleksorlar va de-multiplekserlar boshqa raqamli sxemalarda, masalan, ma'lumotlarni uzatish va signallarni qayta ishlashda ham keng qo'llaniladi.

Masalan, raqamli aloqa tizimida bir nechta ma'lumotlar oqimini bitta aloqa kanali orqali uzatish uchun bitta ma'lumot oqimiga birlashtirish uchun multipleksordan foydalanish mumkin. Qabul qiluvchi tomonda kiruvchi ma'lumotlar oqimini dastlabki ma'lumotlar oqimlariga ajratish uchun de-multiplexerdan foydalanish mumkin.

Signalni qayta ishlash dasturlarida multipleksorlar va de-multipleksatorlar turli kirish signallari o'rtasida almashish yoki keyingi qayta ishlash uchun signalning turli chastotali komponentlarini ajratish uchun ishlatilishi mumkin.

Umuman olganda, multipleksorlar va de-multiplekserlar raqamli sxemalarning asosiy qurilish bloklari bo'lib, turli xil ilovalarda keng qo'llaniladi. Ushbu sxemalarning to'g'ri dizayni va amalga oshirilishi istalgan funksionallik va ishlashga erishish uchun juda muhimdir.


Muayyan ilovalar uchun mo'ljallangan har xil turdagi multipleksorlar va de-multiplekserlar mavjud. Bu erda bir nechta keng tarqalgan turlar mavjud:

2-to-1 multipleksor: Bu ikkita kirish va bitta chiqishga ega bo'lgan eng oddiy multipleksor turi. U tanlangan kirish qiymatiga qarab kirishlardan birini tanlaydi.

4-to-1 multipleksor: Ushbu turdagi multipleksorlar to'rtta kirish va bitta chiqishga ega. U ikkita tanlangan kirish qiymatiga qarab to'rtta kirishdan birini tanlaydi.

8-to-1 multipleksor: Bu turdagi multipleksorlar sakkizta kirish va bitta chiqishga ega. U uchta tanlangan kirish qiymatiga qarab sakkizta kirishdan birini tanlaydi.

16-to-1 multipleksor: Ushbu turdagi multipleksorlar o'n oltita kirish va bitta chiqishga ega. U to'rtta tanlangan kirish qiymatiga qarab o'n oltita kirishdan birini tanlaydi.

1 dan 2 gacha de-multipleksator: Bu bitta kirish va ikkita chiqishga ega bo'lgan eng oddiy de-multipleksator turi. U tanlangan kirish qiymatiga qarab kirishni ikkita chiqishdan biriga taqsimlaydi.

1 dan 4 gacha de-multiplekser: Bu turdagi de-multiplekser bitta kirish va to'rtta chiqishga ega. U ikkita tanlangan kirish qiymatiga qarab kirishni to'rtta chiqishdan biriga taqsimlaydi.

1 dan 8 gacha de-multiplekser: Bu turdagi de-multiplekserda bitta kirish va sakkizta chiqish mavjud. U uchta tanlangan kirish qiymatiga qarab kirishni sakkizta chiqishdan biriga taqsimlaydi.

1 dan 16 gacha de-multiplekser: Bu turdagi de-multiplekser bitta kirish va o'n olti chiqishga ega. U kirishni to'rtta tanlangan kirish qiymatiga qarab o'n oltita chiqishdan biriga taqsimlaydi.

Ushbu asosiy turlarga qo'shimcha ravishda, yuqori tezlikda ma'lumotlarni uzatish, audio va videolarni qayta ishlash va xotira tizimlari kabi maxsus ilovalar uchun mo'ljallangan multipleksorlar va de-multiplekserlarning yanada murakkab turlari mavjud.


39-mavzu : Triggerining sxemani amalga oshirish.
Flip-flop yoki mandal ma'lumotlarning bitta ikkilik raqamini (bitini) saqlashi mumkin bo'lgan ketma-ket raqamli sxemalarning asosiy qurilish blokidir. Flip-flop ikkita barqaror holatga ega, ular odatda ikkita chiqish signallari, Q va Q' (Q ning to'ldiruvchisi) bilan ifodalanadi, ular tashqi kirish tomonidan o'zgartirilgunga qadar barqaror bo'lib qoladi. Flip-floplarning har xil turlari mavjud, ammo eng keng tarqalgan turlaridan biri D flip-flop hisoblanadi.

Mana D flip-flopning mantiqiy sxemasi:

D flip-flop sxemasi

D flip-flop ikkita kirishga ega: D (ma'lumotlar kiritish) va CLK (soat kiritish) va ikkita chiqish: Q va Q'. Takt kiritishi yuqori (musbat chekka tetiklangan) bo'lsa, D kirish Q chiqishiga, D kirishining to'ldiruvchisi esa Q' chiqishiga o'tkaziladi. Kirish soati past bo'lsa, Q va Q' chiqishlari avvalgi holatida qoladi.

D flip-flopning haqiqat jadvali quyidagicha:

css
Kodni nusxalash


CLK D | Q Q'
---------|-------
0 X | Q Q'
1 0 | 0 1
1 1 | 1 0
Mana NAND shlyuzlari yordamida D flip-flopning amalga oshirilishi:

NAND eshiklari yordamida flip-flopni amalga oshirish

Ushbu dastur ikkita NAND eshiklari va invertordan foydalanadi. Kirish soati yuqori bo'lsa, birinchi NAND eshigi Q chiqishini D kirish qiymatiga o'rnatadigan impuls hosil qiladi va ikkinchi NAND eshigi Q' chiqishini D kirishining to'ldiruvchisiga qaytaradigan impuls hosil qiladi. Kirish soati past bo'lsa, inverter teskari aloqa zanjirining uzilishini va chiqishlarning oldingi holatida qolishini ta'minlaydi.

E'tibor bering, D flip-flop faqat bir turdagi flip-flop bo'lib, JK flip-flop va T flip-flop kabi turli xil kirish va chiqish harakatlariga ega bo'lgan boshqa turdagi flip-floplar mavjud. Flip-flopni tanlash ishlab chiqilayotgan ketma-ket raqamli sxemaning o'ziga xos talablariga bog'liq.


Bu erda NOR eshiklari yordamida D flip-flopning amalga oshirilishi:

NOR eshiklari yordamida flip-flopni amalga oshirish

Ushbu dastur ikkita NOR eshiklari va invertordan foydalanadi. Kirish soati past bo'lsa, birinchi NOR eshigi Q' chiqishini D kirishining to'ldiruvchisiga o'rnatadigan impuls hosil qiladi va ikkinchi NOR eshik Q chiqishini D kirish qiymatiga qaytaradigan impuls hosil qiladi. Kirish soati yuqori bo'lsa, inverter teskari aloqa zanjirining uzilishini va chiqishlarning oldingi holatida qolishini ta'minlaydi.

Asosiy D flip-flopga qo'shimcha ravishda, qo'shimcha kirish va chiqish signallariga ega bo'lgan yanada murakkab turdagi flip-floplar mavjud, masalan, kirishni yoqish, oldindan o'rnatilgan kirish va aniq kiritish, ular xatti-harakatlarini ko'proq nazorat qilish imkonini beradi. flip-flop. Ushbu turdagi flip-floplar odatda mikroprotsessorlar va xotira tizimlari kabi ilg'or raqamli sxemalarda qo'llaniladi.


Mana NAND shlyuzlari yordamida JK flip-flopning amalga oshirilishi:

NAND eshiklari yordamida JK flip-flopni amalga oshirish

JK flip-flop uchta kirishga ega: J (o'rnatilgan kirish), K (qayta o'rnatish kiritish) va CLK (soat kiritish) va ikkita chiqish: Q va Q'. Kirish soati yuqori bo'lsa, flip-flop holati J va K kirishlari bilan aniqlanadi. Agar J va K ikkalasi ham past bo'lsa, chiqishlar avvalgi holatida qoladi. Agar J yuqori va K past bo'lsa, Q chiqishi yuqoriga o'rnatiladi va Q' chiqishi past bo'ladi. Agar K yuqori va J past bo'lsa, Q chiqishi past, Q' chiqishi esa yuqori darajaga o'rnatiladi. Agar J va K ikkalasi ham baland bo'lsa, chiqishlar o'zgaradi, ya'ni Q chiqishi avvalgi holatining teskari holatiga o'tadi va Q' chiqishi Q chiqishining teskari holatiga o'tadi.

JK flip-flopining haqiqat jadvali quyidagicha:

css
Kodni nusxalash
CLK J K | Q Q'
------------|-------
0 X X | Q Q'
1 0 0 | Q Q'
1 0 1 | 0 1
1 1 0 | 1 0
1 1 1 | ~Q Q
E'tibor bering, "~" belgisi to'ldiruvchini anglatadi, shuning uchun ~Q Q chiqishining to'ldiruvchisini ifodalaydi.

Xuddi shunday, JK flip-flop raqamli sxemaning o'ziga xos talablariga qarab NOR eshiklari yoki boshqa turdagi mantiqiy eshiklar yordamida amalga oshirilishi mumkin.


40-mavzu : Xotira dasturi uchun triggerining mantiqiy sxemasini tuzish


Xotira dasturida ishlatilishi mumkin bo'lgan D flip-flop trigger sxemasining oddiy amalga oshirilishi:

Xotira dasturi uchun D flip-flop trigger sxemasi

Ushbu sxema D flip-flopni amalga oshirish uchun ikkita NOR eshiklari va invertordan foydalanadi. Sxemaga kirish D kirish bo'lib, u xotira katagida saqlanadigan ma'lumotlarni ifodalaydi. Sxemaning chiqishi Q chiqishi bo'lib, u xotira katagida saqlanadigan ma'lumotlarning qiymatini ifodalaydi. CLK kirishi sxemani ishga tushirish va Q chiqishi qiymatini yangilash uchun ishlatiladigan soat signalini ifodalaydi.

CLK kirishi past bo'lsa, ikkita NOR shlyuzlari orasidagi geribildirim halqasi buziladi va chiqish avvalgi holatida qoladi. CLK kirishi yuqoriga ko'tarilganda, birinchi NOR eshigi Q' chiqishini D kirishining to'ldiruvchisiga o'rnatadigan impuls hosil qiladi va ikkinchi NOR eshigi Q chiqishini D kirish qiymatiga qaytaradigan impuls hosil qiladi. CLK kiritish past darajaga qaytsa, qayta aloqa zanjiri qayta ulanadi va chiqishlar hozirgi holatida qoladi.

Ushbu sxema xotira dasturidagi har bir xotira katakchasi uchun takrorlanishi mumkin, har bir sxemaning D kirishi mos keladigan xotira katakchasi uchun ma'lumotlar kiritishiga ulangan. CLK kirishi global soat signaliga ulanishi mumkin, bu esa xotira dasturidagi barcha sxemalarni bir vaqtning o'zida ishga tushiradi. Bu xotira dasturiga ma'lumotlarni sinxronlashtirilgan va tartibli tarzda saqlash va olish imkonini beradi.
Xotira dasturini amalga oshirish uchun ushbu sxemadan qanday foydalanish mumkinligiga misol keltiramiz. Aytaylik, biz 8 bitli qiymatlarni saqlay oladigan va oladigan xotira dasturini yaratmoqchimiz. Biz har bir xotira katakchasi uchun sxema yaratishimiz va ularni 8 ta hujayradan iborat xotira bankini yaratish uchun ulashimiz kerak. Har bir yacheyka uchun ma'lumotlar kirishlari umumiy 8-bitli avtobusga ulanadi, u xotira dasturidan ma'lumotlarni kiritish va chiqarish uchun ishlatiladi.

Xotira bankini qanday ulash mumkinligi diagrammasi:

Xotira banki diagrammasi

Xotira bankidagi har bir katak o'ziga xos manzilga ega bo'lib, u qaysi katakdan o'qish yoki yozishni tanlash uchun ishlatiladi. Ushbu misolda biz 3-bitli manzil avtobusidan foydalanmoqdamiz, bu bizga 8 tagacha xotira katakchalarini manzillash imkonini beradi. Manzil avtobusi dekoderga ulangan bo'lib, u joriy manzil asosida har bir xotira katakchasi uchun noyob yoqish signalini hosil qiladi.

Biz xotira katakchasiga ma’lumotlarni yozmoqchi bo‘lganimizda, avval manzilni manzil shinasiga, so‘ngra ma’lumotlarni ma’lumotlar shinasiga o‘rnatishimiz kerak. Shuningdek, yozishni yoqish signalini yuqori darajaga o'rnatishimiz kerak, bu esa yozish jarayonini ta'minlaydi. Yozishni yoqish signali har bir D flip-flop trigger sxemasining taktli kirishiga ulanadi, bu ma'lumotlarning soat signalining ko'tarilgan chetidagi to'g'ri xotira katakchasiga yozilishini ta'minlaydi.

Xotira yacheykasidan ma'lumotlarni o'qishni istasak, manzil shinasiga manzilni ham o'rnatishimiz kerak. Keyin o'qishni yoqish signali yuqori darajaga o'rnatiladi, bu esa o'qish jarayonini ta'minlaydi. O'qishni yoqish signali har bir D flip-flop trigger sxemasining chiqishiga ulanadi, bu ma'lumotlarni tanlangan xotira katagidan o'qish va ma'lumotlar shinasiga chiqarish imkonini beradi.

Ushbu dastur yordamida biz 8 bitli qiymatlarni xotira dasturida osongina saqlashimiz va olishimiz mumkin. Xotira hujayralari sonini va ma'lumotlar shinasi va manzil shinasi kengligini ko'paytirish orqali biz yanada kattaroq saqlash hajmi va yanada rivojlangan xususiyatlarga ega xotira dasturini yaratishimiz mumkin.
Quyida yuqorida tavsiflangan D flip-flop trigger sxemasini va xotira bankini amalga oshirish uchun Verilog HDL-dagi ba'zi bir misol kodlari keltirilgan:

css
Kodni nusxalash


// D flip-flop trigger sxemasi
d_flip_flop moduli (
clk kiritish,
d kiritish,
chiqish q
);

sim q_bar;


// Birinchi NOR darvozasi
tayinlash q_bar = ~(d | clk);
// Ikkinchi NOR darvozasi
tayinlash q = ~(q_bar | clk);
endmodul

// Xotira banki


modul xotira_banki (
clk kiritish,
kiritish [7:0] data_in,
[2:0] manzilini kiriting,
yozishni yoqish,
o'qish_enable kiritish,
chiqish [7:0] data_out
);

sim [7:0] xotira [0:7];


sim [2:0] yoqish;
// Dekoder
tayinlash yoqish = {~manzil[2], ~manzil[1], ~manzil[0]};
// D flip-flop trigger sxemalari
genvar i;
hosil qilish
uchun (i = 0; i < 8; i = i + 1) boshlanadi: flip_flop_gen
d_flip_flop flip_flop (
.clk(clk),
.d(ma'lumotlar_in),
.q(xotira[i])
);
oxiri
tugat
// To'g'ri xotira katagidan chiqish ma'lumotlarini tanlash uchun multiplekser
data_out = read_enable tayinlang? xotira[manzil] : 8'bzzzzzzzz;
// To'g'ri xotira katagiga ma'lumotlarni yozish uchun mantiq
har doim @(posedge clk) boshlanadi
agar (write_enable) boshlanadi
xotira[manzil] <= data_in;
oxiri
oxiri

endmodul
Ushbu Verilog kodi ikkita modulni belgilaydi: d_flip_flop va memory_bank. D_flip_flop moduli D flip-flop trigger sxemasining oddiy amalga oshirilishi bo'lsa, memory_bank moduli esa dekoder va D flip-flop trigger sxemalarini o'z ichiga olgan xotira bankining murakkabroq amalga oshirilishidir.

Memory_bank moduli har bir xotira katakchasi uchun ma'lumotlarni saqlash uchun 8 ta simli qatorni o'z ichiga oladi. Genvar sikli d_flip_flop modulining 8 ta nusxasini hosil qiladi, har bir D flip-flop trigger sxemasi mos keladigan xotira katakchasiga ulangan.

Memory_bank moduli joriy manzil va o'qishni yoqish signali asosida to'g'ri xotira katagidan chiqish ma'lumotlarini tanlash uchun multipleksorni ham o'z ichiga oladi. Har doim blok joriy manzil va yozishni yoqish signali asosida soat signalining ko'tarilgan chetidagi to'g'ri xotira katakchasidagi ma'lumotlarni yangilaydi.

Ushbu Verilog kodini sintez qilish va ishlaydigan xotira dasturini yaratish uchun FPGA yoki ASIC da amalga oshirish mumkin. Ma'lumotlar shinasi, manzil shinasi va xotira bankining hajmini o'zgartirish orqali biz turli xil saqlash sig'imlari va ishlash xususiyatlariga ega xotira dasturlarini yaratishimiz mumkin.

41-mavzu: Registrlarni xotirada saqlash sxemasini amalga oshirish.

Xotirada registrlarni saqlash sxemasini amalga oshirish uchun biz ilgari tasvirlangan xotira bankiga o'xshash yondashuvdan foydalanishimiz mumkin. Ma'lumotlarni alohida xotira kataklarida saqlash o'rniga, biz har bir registrning tarkibini alohida xotira bankida saqlaymiz.

Mana, to'rtta 8 bitli registrga ega registr fayli uchun Verilog kodi misoli:

zang
Kodni nusxalash
modul register_file (
clk kiritish,
kiritish [1:0] read_register_1,
kiritish [1:0] read_register_2,
kiritish [1:0] yozish_registri,
yozishni yoqish,
kiritish [7:0] yozish_ma'lumotlari,
chiqish [7:0] read_data_1,
chiqish [7:0] read_data_2
);

// Xotira banklarini ro'yxatdan o'tkazish


xotira_banki reg0 (
.clk(clk),
.data_in(ma'lumotlarni_yozish),
.manzil (yozish_registr == 2'b00 ? 3'b000 : 3'bzzz),
.write_enable(write_enable && write_register == 2'b00),
.read_enable(read_register_1 == 2'b00),
.data_out(read_data_1)
);
xotira_banki reg1 (
.clk(clk),
.data_in(ma'lumotlarni_yozish),
.manzil (yozish_registr == 2'b01 ? 3'b001 : 3'bzzz),
.write_enable(write_enable && write_register == 2'b01),
.read_enable(read_register_1 == 2'b01),
.data_out(read_data_1)
);
xotira_banki reg2 (
.clk(clk),
.data_in(ma'lumotlarni_yozish),
.manzil(yozish_registr == 2'b10 ? 3'b010 : 3'bzzz),
.write_enable(write_enable && write_register == 2'b10),
.read_enable(read_register_1 == 2'b10),
.data_out(read_data_1)
);
xotira_banki reg3 (
.clk(clk),
.data_in(ma'lumotlarni_yozish),
.manzil(yozish_registr == 2'b11 ? 3'b011 : 3'bzzz),
.write_enable(write_enable && write_register == 2'b11),
.read_enable(read_register_1 == 2'b11),
.data_out(read_data_1)
);
// To'g'ri xotira banklaridan chiqish ma'lumotlarini tanlash uchun multiplikatorlar
read_data_1 = {read_register_1 == 2'b00 ni tayinlash? reg0.data_out : 8'bzzzzzzzz};
read_data_1 = {read_register_1 == 2'b01 tayinlang? reg1.data_out : 8'bzzzzzzzz};
read_data_1 = {read_register_1 == 2'b10 ni tayinlash? reg2.data_out : 8'bzzzzzzzz};
read_data_1 = {read_register_1 == 2'b11 ni tayinlash? reg3.data_out : 8'bzzzzzzzz};
read_data_2 = {read_register_2 == 2'b00 ni tayinlang? reg0.data_out : 8'bzzzzzzzz};
read_data_2 = {read_register_2 == 2'b01 tayinlang? reg1.data_out : 8'bzzzzzzzz};
read_data_2 = {read_register_2 == 2'b10 ni tayinlang? reg2.data_out : 8'bzzzzzzzz};
read_data_2 = {read_register_2 == 2'b11 ni tayinlang? reg3.data_out : 8'bzzzzzzzz};
endmodul
Ushbu Verilog kodi to'rtta alohida xotira_bankini o'z ichiga olgan register_file modulini belgilaydi
to'rtta registrning mazmunini saqlash uchun misollar. Har bir xotira_banki namunasi registr raqamiga mos keladigan o'ziga xos manzil kiritishi bilan yaratilgan. write_data kiritish har bir xotira bankining data_in kirishiga ulanadi, bu esa ma'lumotlarni istalgan registrga yozish imkonini beradi. write_register kiritish qaysi registrga yozishni tanlaydi, write_enable kiritish esa yozish operatsiyasini yoqadi. Xuddi shunday, read_register_1 va read_register_2 kirishlari qaysi registrlardan o'qishni tanlaydi va tegishli ma'lumotlar_chiqish chiqishlari oxirgi o'qilgan_ma'lumotlar_1 va o'qilgan_ma'lumotlar_2 chiqishlarini ishlab chiqarish uchun multipleksorlar orqali o'tkaziladi.

Ushbu dastur bir nechta registrlarni alohida xotira banklari yordamida xotirada saqlashga imkon beradi, bu esa alohida registrlardan o'qish va yozishni osonlashtiradi. Ushbu dizayn qo'shimcha registrlarni yoki kattaroq registr kengliklarini qo'llab-quvvatlash uchun osongina kengaytirilishi mumkin.


Mana Verilog-da amalga oshirishning namunasi:

scss
Kodni nusxalash


modul register_file(
clk kiritish,
kirishni tiklash,
kiritish [1:0] yozish_registri,
kiritish [31:0] ma'lumotlarni yozish,
yozishni yoqish,
kiritish [1:0] read_register_1,
kiritish [1:0] read_register_2,
chiqish [31:0] read_data_1,
chiqish [31:0] read_data_2
);

// Har bir registr uchun xotira banklarini instantatsiya qilish


xotira_banki mem_bank_0(.adres(2'b00), .data_in(yozish_ma'lumotlar), .write_enable(write_enable));
xotira_banki mem_bank_1(.adres(2'b01), .data_in(yozish_ma'lumotlar), .write_enable(write_enable));
xotira_banki mem_bank_2(.manzil(2'b10), .data_in(yozish_ma'lumotlar), .write_enable(write_enable));
xotira_banki mem_bank_3(.manzil(2'b11), .data_in(yozish_ma'lumotlar), .write_enable(write_enable));

// O'qilgan ma'lumotlarning chiqishlarini multipleksorlarga ulang


mux2to1 mux_read_data_1(
.data0(mem_bank_0.data_out),
.data1(mem_bank_1.data_out),
.select(read_register_1),
.chiqish (o'qish_ma'lumotlari_1)
);

mux2to1 mux_read_data_2(


.data0(mem_bank_2.data_out),
.data1(mem_bank_3.data_out),
.select(read_register_2),
.chiqish (o'qish_ma'lumotlari_2)
);

har doim @(posedge clk) boshlanadi


agar (qayta tiklash) boshlanadi
mem_bank_0.data_in <= 0;
mem_bank_1.data_in <= 0;
mem_bank_2.data_in <= 0;
mem_bank_3.data_in <= 0;
mem_bank_0.write_enable <= 0;
mem_bank_1.write_enable <= 0;
mem_bank_2.write_enable <= 0;
mem_bank_3.write_enable <= 0;
oxiri
boshqa boshlanadi
// Tanlangan registrga ma'lumotlarni yozish
holat (ro'yxatdan o'tish)
2'b00: mem_bank_0.data_in <= write_data;
2'b01: mem_bank_1.data_in <= write_data;
2'b10: mem_bank_2.data_in <= write_data;
2'b11: mem_bank_3.data_in <= write_data;
standart: mem_bank_0.data_in <= write_data;
oxirgi harf
// Tanlangan registrga yozishni yoqish
case (write_enable)
1'b1: boshlang
holat (ro'yxatdan o'tish)
2'b00: mem_bank_0.write_enable <= 1;
2'b01: mem_bank_1.write_enable <= 1;
2'b10: mem_bank_2.write_enable <= 1;
2'b11: mem_bank_3.write_enable <= 1;
standart: mem_bank_0.write_enable <= 1;
oxirgi harf
oxiri
1'b0: boshlang
mem_bank_0.write_enable <= 0;
mem_bank_1.write_enable <= 0;
mem_bank_2.write_enable <= 0;
mem_bank_3.write_enable <= 0;
oxiri
oxirgi harf
oxiri
oxiri
endmodul

modul xotira_banki(


[1:0] manzilini kiriting,
kiritish [31:0] data_in,
yozishni yoqish,
chiqish [31:0] data_out
);

reg [31:0] xotira [3:0];

data_out = xotirani belgilang

42-mavzu: Registrlarni xotirada siljitish sxemasini amalga oshirish.

Mana, to'rt bosqichli siljish registrini Verilogda amalga oshirish misoli:

cpp
Kodni nusxalash


modul shift_register(
clk kiritish,
kirishni tiklash,
shift_in kiritish,
enable_shift kiritish,
chiqish [3:0] shift_out
);

reg [3:0] ro'yxatga olish;

har doim @(posedge clk) boshlanadi
agar (qayta tiklash) boshlanadi
ro'yxatga olish <= 4'b0000;
oxiri
boshqa boshlanadi
agar (enable_shift) boshlanadi
ro'yxatdan o'tish <= {shift_in, ro'yxatdan o'tish[3:1]};
oxiri
oxiri
oxiri

shift_out = registrni tayinlash;


endmodul
Ushbu siljish registri to'rt bosqichga ega va enable_shift kiritish tasdiqlanganda har bir soat siklida yangi qiymatga o'tishi mumkin. Shift_in kiritish - bu o'tkaziladigan qiymat va shift_out chiqishi - siljish registrining joriy holati.

Verilog kodi to'rt bitli registrni yaratadi va shift_out chiqishini registrning joriy qiymatiga belgilaydi. Shift_in kiritish registrning joriy qiymati bilan birlashtirilib, shift_in kiritishning eng chap biti registrning eng chap tomonidagi yangi bitiga aylanadi. Ushbu operatsiyani faqat enable_shift kiritish tasdiqlanganda amalga oshiriladi. Reset kiritish registrni barcha nolga o'rnatadi. Clk kiritish modul uchun soat signalidir.

Ko'proq bosqichli siljish registrini amalga oshirish uchun siz shunchaki registr o'zgaruvchisining kengligini va shift_out chiqishini kerakli bosqichlar soniga mos ravishda o'zgartirishingiz mumkin. Bundan tashqari, yangi kenglikka mos kelish uchun birlashtirish operatsiyasida ishlatiladigan indeks qiymatlari oralig'ini o'zgartirishingiz kerak bo'ladi.

Sakkiz bosqichli smenali registrni amalga oshirish misoli:

cpp
Kodni nusxalash
modul shift_register_8(
clk kiritish,
kirishni tiklash,
shift_in kiritish,
enable_shift kiritish,
chiqish [7:0] shift_out
);

reg [7:0] ro'yxatga olish;

har doim @(posedge clk) boshlanadi
agar (qayta tiklash) boshlanadi
ro'yxatga olish <= 8'b00000000;
oxiri
boshqa boshlanadi
agar (enable_shift) boshlanadi
ro'yxatdan o'tish <= {shift_in, ro'yxatdan o'tish[7:1]};
oxiri
oxiri
oxiri

shift_out = registrni tayinlash;


endmodul
Ushbu amalga oshirishda registr o'zgaruvchisining kengligi va shift_out chiqishi 8 bitga o'zgartiriladi. Birlashtirish operatsiyasida ishlatiladigan indeks qiymatlari diapazoni ham yangi kenglikka mos kelishi uchun o'zgartiriladi. Ushbu o'zgarishlardan tashqari, siljish registrining ishlashi avvalgi misoldagi kabi qoladi.

Bir vaqtning o'zida bir nechta bitlarda siljishi mumkin bo'lgan siljish registrini amalga oshirish uchun siz shift_in kiritishni kengroq avtobusga o'zgartirishingiz mumkin va bir vaqtning o'zida bir nechta bitlarni almashtirish uchun kengroq birlashma operatsiyasidan foydalanishingiz mumkin.

Mana bir vaqtning o'zida ikki bitga siljishi mumkin bo'lgan to'rt bosqichli siljish registrini amalga oshirish misoli:

cpp
Kodni nusxalash


modul shift_register_2bit(
clk kiritish,
kirishni tiklash,
kiritish [1:0] shift_in,
enable_shift kiritish,
chiqish [3:0] shift_out
);

reg [3:0] ro'yxatga olish;

har doim @(posedge clk) boshlanadi
agar (qayta tiklash) boshlanadi
ro'yxatga olish <= 4'b0000;
oxiri
boshqa boshlanadi
agar (enable_shift) boshlanadi
ro'yxatdan o'tish <= {shift_in, ro'yxatdan o'tish[3:2]};
oxiri
oxiri
oxiri

shift_out = registrni tayinlash;


endmodul
Ushbu amalga oshirishda shift_in kiritish ikki bitga kengaytiriladi va har doim blokidagi birlashtirish operatsiyasi bir vaqtning o'zida ikkita bitga siljish uchun o'zgartiriladi. Shift_out chiqishi hali ham siljish registridagi bosqichlar soniga mos keladigan to'rt bit kengligida.

Shift_in kiritish kengligini oshirish va mos ravishda birlashtirish operatsiyasini sozlash orqali bir vaqtning o'zida ko'proq bitlarni siljitish uchun ushbu yondashuvni o'zgartirishingiz mumkin. Bir vaqtning o'zida bir nechta bitlarda siljishi mumkin bo'lgan siljish registrini amalga oshirishning yana bir usuli - barrel o'tkazgichdan foydalanish. Barrel o'tkazgich - bu bitta soat siklida ikkilik sonni istalgan bitga o'zgartira oladigan raqamli sxema. Barrel o'tkazgichlari ko'pincha raqamli signallarni qayta ishlashda va tez siljish talab qilinadigan boshqa ilovalarda qo'llaniladi.

Mana bir vaqtning o'zida ikki bitga siljish uchun barrel o'tkazgichdan foydalanadigan to'rt bosqichli siljish registrining misoli:

cpp
Kodni nusxalash


modul shift_register_barrel(
clk kiritish,
kirishni tiklash,
kiritish [1:0] shift_in,
enable_shift kiritish,
chiqish [3:0] shift_out
);

reg [3:0] ro'yxatga olish;

har doim @(posedge clk) boshlanadi
agar (qayta tiklash) boshlanadi
ro'yxatga olish <= 4'b0000;
oxiri
boshqa boshlanadi
agar (enable_shift) boshlanadi
ro'yxatga olish <= ro'yxatdan o'tish >>> 2;
registr[1:0] <= shift_in;
oxiri
oxiri
oxiri

shift_out = registrni tayinlash;


endmodul
Bu amalga oshirishda >>> operatori registr o'zgaruvchisida mantiqiy o'ngga siljish amalini bajarish uchun ishlatiladi. Ushbu operatsiya registrdagi barcha bitlarni ikki pozitsiyaga o'ngga siljitadi va registrning chap tomonida ikkita bo'sh joy hosil qiladi. Shift_in kiritishning ikki biti keyin bit bo'yicha topshiriq yordamida bo'sh joylarga yoziladi.

Ushbu amalga oshirish o'zgartirish operatsiyasini bajarish uchun barrel o'tkazgichni talab qiladi, bu multipleksorlar va mantiqiy eshiklarning kombinatsiyasi yordamida amalga oshirilishi mumkin. Barrel o'tkazgichning aniq bajarilishi kerakli siljish bosqichlari soniga va kirish avtobusining kengligiga bog'liq bo'ladi.

43-mavzu: Simulyatsiya dasturi asosida (mug‘ombirlik) registrning mantiqiy sxemasini tuzish

Simulyatsiya dasturi asosida registrning mantiqiy sxemasini yaratish uchun siz quyidagi amallarni bajarishingiz mumkin:

Simulyatsiya dasturidagi xatti-harakatlari asosida registr uchun Verilog modulini yozing.

Verilog modulidan tarmoq roʻyxatini yaratish uchun Verilog sintez vositasidan foydalaning. Tarmoq ro'yxati registrni amalga oshiradigan mantiqiy eshiklar va ulanishlarni tavsiflaydi.

Tarmoq ro'yxatining diagrammasini yaratish uchun Logisim yoki CircuitMaker kabi mantiqiy sxemani yaratish vositasidan foydalaning. Asbobga tarmoq roʻyxatini import qilishingiz va elektron diagrammani koʻrish uchun uning oʻrnatilgan funksiyalaridan foydalanishingiz mumkin.

Elektr sxemasiga signal nomlari kabi kerakli izohlarni qo'shing.

Asinxron qayta o'rnatish va soatni yoqish kirishlari bilan 8 bitli registr uchun Verilog modulining namunasi:

csharp
Kodni nusxalash


modul registri (
clk kiritish,
kirishni tiklash,
kiritishni yoqish,
kiritish [7:0] in,
chiqish reg [7:0] chiqadi
);

har doim @(posedge clk, negedge reset) boshlanadi


agar (!reset) boshlanadi
tashqariga <= 8'b00000000;
oxiri
boshqa boshlanadi
agar (yoqish) boshlanadi
tashqariga <= in;
oxiri
oxiri
oxiri

endmodul
Ushbu modulda soat kiritish (clk), asinxron qayta o'rnatish kiritish (qayta tiklash), yoqish kiritish (yoqish), 8 bitli ma'lumotlar kiritish (kirish) va 8 bitli ma'lumotlar chiqishi (chiqish) mavjud. Har doim blok, agar yoqish yuqori bo'lsa, clk ning ko'tarilgan chetidagi out qiymatini yangilaydi yoki resetning pasayib ketgan chetida nolga o'rnatiladi.

Sintezlash vositasi yordamida ushbu Verilog modulidan tarmoq roʻyxatini yaratganingizdan soʻng, tarmoq roʻyxatini mantiqiy sxemani tuzish vositasiga import qilishingiz va quyidagi koʻrinishdagi diagramma yaratishingiz mumkin:

8 bitli registrning mantiqiy sxemasi

Ushbu diagrammada D flip-floplar, multipleksorlar va mantiqiy eshiklar yordamida registrning amalga oshirilishi ko'rsatilgan. Qayta tiklash kiritishi barcha flip-floplarni asinxron ravishda nolga qaytarish uchun ishlatiladi, faollashtirish kiritish esa keyingi soat chetidagi registrga yuklanadigan kirish qiymatini tanlash uchun ishlatiladi. Kirish multipleksorlarning kirishiga ulanadi, ular joriy registr qiymatini yoki yoqish qiymatiga asoslangan kirish qiymatini tanlaydi. Multiplekserlarning chiqishi joriy registr qiymatini saqlaydigan flip-floplarning kirishiga ulanadi.

Siz sxemani yanada aniqroq va o'qilishi mumkin bo'lishi uchun izohlar va formatlash bilan sozlashingiz mumkin. Misol uchun, siz kirish va chiqishlarga teglar qo'shishingiz, tegishli komponentlarni birga guruhlashingiz va har xil turdagi komponentlarni farqlash uchun ranglar va uslublardan foydalanishingiz mumkin. Mana bir xil 8-bitli registr uchun izohli va formatlangan elektron diagramma misoli:

8 bitli registrning izohli va formatlangan mantiqiy sxemasi

Ushbu diagrammada soat, qayta o'rnatish va yoqish kirishlari etiketlanadi va alohida kirish blokida joylashgan. Multiplekserlar va flip-floplar birlashtirilgan va ularni mantiqiy eshiklardan vizual ravishda ajratish uchun turli xil rangga bo'yalgan. Chiqish blokida xatoliklarni tekshirish yoki boshqa maqsadlarda foydalanish mumkin bo'lgan chiqish chiqishi va inverted out_not chiqishi mavjud.

Umuman olganda, simulyatsiya dasturi asosida registrning mantiqiy sxemasini yaratish bir necha bosqichlarni o'z ichiga oladi, jumladan Verilog modulini yozish, tarmoq ro'yxatini sintez qilish va izohlangan va formatlangan diagramma yaratish uchun mantiqiy sxemani yaratish vositasidan foydalanish. Ushbu bosqichlarni bajarish orqali siz hujjatlar, testlar va keyingi rivojlanish uchun ishlatilishi mumkin bo'lgan reestrning xatti-harakatlarining aniq va ma'lumotli diagrammasini yaratishingiz mumkin.
Registrning mantiqiy sxemasini yaratishda e'tiborga olish kerak bo'lgan muhim narsa tegishli darajadagi abstraktsiyadan foydalanishdir. Diagrammaning maqsadiga qarab, sxemada ko'proq yoki kamroq tafsilotlarni ko'rsatish kerak bo'lishi mumkin. Misol uchun, agar diagramma hujjatlar yoki ta'lim maqsadlari uchun mo'ljallangan bo'lsa, siz sxemani amalga oshirish uchun ishlatiladigan mantiqiy eshiklarning o'ziga xos turlari kabi batafsilroq ma'lumotlarni kiritishingiz mumkin. Boshqa tomondan, agar diagramma simulyatsiya yoki sinov uchun mo'ljallangan bo'lsa, asosiy signallar va komponentlarga e'tibor qaratish uchun sxemani soddalashtirishni xohlashingiz mumkin.

Registrning mantiqiy sxemasini yaratishda e'tiborga olinadigan yana bir narsa bu diagramma registrning harakatini to'g'ri ko'rsatishini ta'minlashdir. Bu diagramma Verilog kodiga yoki registr harakatining boshqa spetsifikatsiyasiga mos kelishi va reestrning har qanday vaqt yoki funksional talablarini hisobga olishi kerakligini anglatadi. Diagrammaning to'g'riligini tekshirish uchun siz simulyatsiya vositasi yordamida sxemani simulyatsiya qilishingiz va chiqishni registrning kutilgan harakati bilan solishtirishingiz mumkin.

Verilog va mantiqiy sxemalarni yaratish vositalaridan foydalanishdan tashqari, mantiqiy sxemalarni yaratish va tahlil qilish uchun ko'plab boshqa vositalar va resurslar mavjud. Mantiqiy sxemalarni yaratish uchun ba'zi mashhur vositalar qatoriga LTSpice, Proteus va TINA kiradi, ularning barchasi raqamli sxemalarni yaratish va tahlil qilish uchun ishlatilishi mumkin bo'lgan simulyatsiya va dizayn vositalaridir. Raqamli mantiq va sxemalar dizayni haqida ko'proq ma'lumot olish uchun ko'plab onlayn resurslar va o'quv qo'llanmalari mavjud bo'lib, ular yangi boshlanuvchilar yoki ushbu sohada o'z mahoratini oshirishni istagan har bir kishi uchun foydali bo'lishi mumkin.

44-mavzu : Hisoblagichning mantiqiy sxemani tadbiq qilish.

Ushbu sxemada soat kiritish har bir flip-flopga ulanadi, shuning uchun ularning barchasi har bir soat siklida holatini o'zgartiradi. Birinchi flip-flop (D0) to'g'ridan-to'g'ri soat kiritishiga ulanadi, shuning uchun u har bir soat siklida holatini o'zgartiradi. Ikkinchi flip-flop (D1) birinchi flip-flopning (Q0) chiqishiga ulangan, shuning uchun u har bir boshqa soat siklida holatini o'zgartiradi va samarali ravishda ikkiga bo'linadi. Uchinchi flip-flop (D2) birinchi ikkita flip-flopning (Q0 va Q1) chiqishlarini birlashtirgan AND shlyuzining chiqishiga ulanadi, shuning uchun u har to'rtinchi soat siklida holatini o'zgartiradi, samarali ravishda to'rtlikda hisoblanadi. To'rtinchi flip-flop (D3) barcha uchta flip-flopning (Q0, Q1 va Q2) chiqishlarini birlashtirgan AND shlyuzining chiqishiga ulanadi, shuning uchun u har sakkizinchi soat siklida holatini o'zgartiradi va sakkiztasini samarali sanaydi. .

45 –mavzu : Simulyatsiya dasturi asosida (mug‘ombirlik) hisoblagichning mantiqiy sxemasini tuzish

Hisoblagichning mantiqiy sxemasini yaratish uchun biz hisoblagich uchun zarur bo'lgan asosiy komponentlarni aniqlashimiz kerak:

Kirish signali: Kirish signali hisoblash ketma-ketligini boshlaydigan tetik signalidir.

Sanoq registri: Hisoblash registri bu hisoblash qiymatini saqlaydigan ikkilik flip-floplar to'plamidir.

Dekodlash mantig'i: dekodlash mantig'i ikkilik hisoblash qiymatini dekodlaydi va har bir hisoblash qiymati uchun signal chiqaradi.

Chiqish: chiqish hisoblash qiymatini ko'rsatadigan signaldir.

Ushbu asosiy komponentlarga asoslanib, hisoblagichning mantiqiy sxemasini quyidagicha tasvirlash mumkin:

lua
Kodni nusxalash
+-----------+ +-----------+
Kirish -->| | | |
| Hisob | | Dekodlash |--> Chiqish
| Ro'yxatdan o'tish | | Mantiq |
| | | |
Soat -->| |--> Hisoblash qiymati | |
+-----------+ +-----------+
Kirish signali uning saqlangan hisoblash qiymatini oshirish yoki kamaytirish uchun hisoblash registrini ishga tushiradi. Soat signali hisoblash registrini va dekodlash mantiqini sinxronlashtirish uchun ishlatiladi. Dekodlash mantig'i ikkilik hisoblash qiymatini chiqish qurilmasida ko'rsatilishi mumkin bo'lgan signalga aylantiradi.

Ushbu hisoblagich uchun simulyatsiya dasturini yaratish uchun biz Verilog yoki VHDL kabi dasturlash tilidan foydalanishimiz mumkin. Ushbu tillar modullar, signallar va jarayonlar kabi raqamli sxemalarni yaratish uchun konstruksiyalarni taqdim etadi.

Oddiy 4 bitli hisoblagich uchun Verilog kodi quyidagicha:

vbnet
Kodni nusxalash


modul hisoblagichi (
clk kiritish,
kirishni tiklash,
kiritishni yoqish,
chiqish reg [3:0] soni
);

har doim @(posedge clk) boshlanadi


agar (qayta tiklash) boshlanadi
soni <= 4'b0000;
end else agar (yoqish) boshlanadi
hisoblash <= sanash + 1;
oxiri
oxiri

endmodul
Ushbu kod soat signali (clk), qayta o'rnatish signali (qayta o'rnatish) va yoqish signali (yoqish) va 4 bitli hisoblash qiymati (hisoblash) uchun kirishlar bilan hisoblagich deb nomlangan Verilog modulini belgilaydi.

Har doim blok - bu Verilog konstruksiyasi bo'lib, u soat signalining ko'tarilgan chekkasida ishga tushiriladigan sinxron jarayonni belgilaydi. Jarayon avval qayta o'rnatish signali faol yoki yo'qligini tekshiradi va agar shunday bo'lsa, hisoblash qiymatini 0 ga o'rnatadi. Agar yoqish signali faol bo'lsa, jarayon hisoblash qiymatini 1 ga oshiradi.

Ushbu Verilog kodini Icarus Verilog yoki ModelSim kabi Verilog simulyatori yordamida kompilyatsiya qilish va simulyatsiya qilish mumkin. Simulyatsiya dasturining chiqishi soatga, qayta o'rnatishga va signallarni yoqishga javoban vaqt o'tishi bilan o'zgaruvchan hisoblash qiymatini ko'rsatadigan to'lqin shakli bo'ladi.


Bundan tashqari, ma'lum hisoblash qiymatlari uchun signallarni chiqarish uchun ushbu Verilog moduliga dekodlash mantiqini qo'shishimiz mumkin. Masalan, hisoblash qiymati 2 ga teng bo'lganda faol bo'lgan signal uchun chiqishni qo'shishimiz mumkin:

lua
Kodni nusxalash


modul hisoblagichi (
clk kiritish,
kirishni tiklash,
kiritishni yoqish,
chiqish reg [3:0] soni,
chiqish reg signali_2
);

har doim @(posedge clk) boshlanadi


agar (qayta tiklash) boshlanadi
soni <= 4'b0000;
end else agar (yoqish) boshlanadi
hisoblash <= sanash + 1;
oxiri
oxiri

har doim @* boshlanadi


signal_2 = (hisoblash == 4'b0010);
oxiri

endmodul
Ushbu kodda biz har doim @* blokini qo'shdik, bu Verilog konstruksiyasi bo'lib, har qanday kirish o'zgarganda ishga tushadigan kombinatsiyalangan jarayonni belgilaydi. Jarayon hisoblash qiymati 2 ga teng yoki yo'qligini tekshirish uchun taqqoslash operatoridan foydalanadi (4'b0010). Agar shunday bo'lsa, signal_2 chiqishini 1 ga o'rnatadi, aks holda chiqishni 0 ga o'rnatadi.

Ushbu Verilog moduli, shuningdek, Verilog simulyatori yordamida kompilyatsiya qilinishi va simulyatsiya qilinishi mumkin. Simulyatsiya dasturining to'lqin shakli chiqishi hisoblash qiymatini va signal_2 chiqishini soatga, qayta o'rnatishga va signallarni yoqishga javoban vaqt o'tishi bilan o'zgarishini ko'rsatadi.

Umuman olganda, hisoblagichning mantiqiy sxemasi nisbatan sodda va hisoblagichning harakatini sinash va tekshirish uchun simulyatsiya dasturini yaratish uchun Verilog yoki VHDL da amalga oshirilishi mumkin. Ko'proq dekodlash mantig'i va chiqishlarini qo'shish orqali biz turli xil usullarda hisoblash va muayyan hisoblash qiymatlari uchun signallarni chiqarish qobiliyatiga ega hisoblagichlarni yaratishimiz mumkin.


Verilog-da hisoblagich yaratishning yana bir yondashuvi hisoblagichning funksionalligini uning jismoniy bajarilishini ko'rsatmasdan belgilaydigan xatti-harakatlar tavsifidan foydalanishdir. Hisoblagich kattaroq tizimning bir qismi bo'lsa, bu foydali bo'lishi mumkin va aniq amalga oshirish tafsilotlari umumiy xatti-harakatlardan kamroq ahamiyatga ega.

Mana, Verilog xatti-harakatlaridan foydalangan holda oddiy 4-bitli hisoblagichga misol:

vbnet
Kodni nusxalash
modul up_counter(
clk kiritish,
kirishni tiklash,
chiqish reg [3:0] soni
);

har doim @(posedge clk) boshlanadi


agar (qayta tiklash) boshlanadi
soni <= 4'b0000;
tugasa boshla
hisoblash <= sanash + 1;
oxiri
oxiri

endmodul
Ushbu kodda up_counter modulida soat signali (clk) va qayta o'rnatish signali (qayta o'rnatish) uchun kirishlar va 4 bitli hisoblash qiymati (hisoblash) uchun chiqish mavjud. Har doim blok soat signalining ko'tarilgan chetida ishga tushiriladi va har bir soat siklida hisoblash qiymatini 1 ga oshiradi. Qayta tiklash signali hisoblash qiymatini 0 ga qaytaradi.



Ushbu kodni Verilog simulyatori yordamida kompilyatsiya qilish va simulyatsiya qilish mumkin. Simulyatsiya dasturining to'lqin shakli chiqishi soat va qayta o'rnatish signallariga javoban vaqt o'tishi bilan o'zgaruvchan hisoblash qiymatini ko'rsatadi.

Hisoblagichni yaratishning bunday xatti-harakati yondashuvi, biz hisoblagichning xatti-harakatlarini uning jismoniy amalga oshirilishining tafsilotlariga berilmasdan, yuqori darajadagi abstraktsiyada tasvirlashni xohlaganimizda foydali bo'lishi mumkin. Shu bilan birga, u hisoblagichning jismoniy tarkibiy qismlarini aniq belgilaydigan tizimli amalga oshirishdan ham kam samarali bo'lishi mumkin. Umuman olganda, xatti-harakatlar yoki tizimli amalga oshirish o'rtasidagi tanlov loyihalashtirilayotgan tizimning o'ziga xos talablariga bog'liq bo'ladi.
Download 406 Kb.




Download 406 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



1-mavzu Raqamli texnikaning asosiy prinsipi

Download 406 Kb.