MANTIQIY QURILMALARNI DASTURLASHDA VHDL DASTURLASH TILIDAN FOYDALANISH USULLARI
Umidjon Zaripovich Narziev
Buxoro muhandislik texnologiya instituti "Axborot kommunikasiya texnologiyalari kafedrasi" katta o'qituvchisi
ANNOTATSIYA
Maqolada Quartus II muhitida Verilog HDL dasturlash tili yordamida mantiqiy qurilmalarni dasturlash va boshqarish usullari haqida fikr yuritiladi. Qurilma sifatida Altera Cyclone III 3C16 FPGA ni tanlaymiz. Qurilmaning pinlari va portlarini dastur o'zgaruvchilariga ulash orqali ularga uzatiluvchi signallarni o'zgartirish va boshqarish usullari yoritiladi.
Kalit so'zlar: integral mikrosxema, Verilog HDL File, Assignment, 7 segmentli displey, pinlar, segmentlar.
HOW TO USE VHDL PROGRAMMING LANGUAGE IN PROGRAMMING
LOGICAL DEVICES
Umidjon Zaripovich Narziev
Senior Teacher, Department of Information and Communication Technologies Bukhara Institute of Engineering Technology [email protected]
ABSTRACT
The article discusses how to program and control logical devices using the Verilog HDL programming language in the Quartus II environment. We choose Altera Cyclone III 3C16 FPGA as the device. By connecting the pins and ports of the device to the program changers, they are taught how to change and control the signals transmitted to them.
Keywords: integrated circuits, Verilog HDL file, Assignment, Pins, 7 segment display, segments.
KIRISH
Hozirgi kunda O'zbekiston Respublikasida dasturlash sohasiga qiziqish tobora ortib bormoqda. Bu borada qabul qilingan qaror va qonunlar, bir million dasturchi
loyihasi doirasida olib borilayotgan ishlar dasturchilar sonining ortishiga sabab bo'lmoqda. Dasturlash sohasi bir necha yo'nalishlarga ega bo'lib, ulardan biri mantiqiy qurilmalarni dasturlash sohasi hisoblanadi. Avtomatik ishlovchi qurilmalar, sanoat robotlari, aqlli binolar uchun tuziladigan dasturlar aynan shu soha mahsulotlari hisoblanadi.
ADABIYOTLAR TAHLILI VA METODOLOGIYA
Integral sxema - kichkina kremniy yarim otkazgich plastinkada yaratilgan mikroelektron sxema bo'lib, elektr tokini boshqarish va uni kuchaytirish uchun ishlatiladi. Odatda integral sxemalar kristall yuzasida yaratilgan va ozaro bog'langan tranzistorlar, rezistorlar, kondensator va diodlar kabi ko plab mikroelektron komponentlardan iborat boladi. [4]
Verilog primitivlaridan tashqari Quartus II IDE arxitektura va muayyan vazifalar uchun optimallashtirilgan parametrlangan modul kutubxona funktsiyalarining ko'plab boshqa makrofunksiyalarini va kutubxonasini taqdim etadi. Dasturchi/dizayner makrofunksiyalar, LPM va foydalanuvchi tomonidan belgilangan komponentlar misollarini kiritish uchun komponentning misol nusxalarini ishlatishi mumkin. Komponentlarning to'liq ro'yxatini tegishli Altera hujjatlarida, shu jumladan Quartus II yordam fayllarida topish mumkin. [3]
NATIJALAR
Qurilma maxsus buyurtma asosida yaratilgan bo'lib, o'ziga xos parametrlar va pinlarga ega.
1-rasm. Altera Cyclone III 3C16 FPGA qurilmasi.
Qurilmada 4 ta 7 segmentli displeylar mavjud bo'lib, har bir segmentni boshqarish imkoni berilgan. To'rtala displeylar orasida ularni ajratuvchi maxsus nuqtali segment mavjud.
iimmitimmiiiniim
■1 Irl 1
« I
llltt i I IllltiU UIUIUIIII
•DjioaaiiaaûQ
2-rasm. 7-segmentli displey va maxsus nuqtali segment ko'rinishi.
Displeylarga uolar berish orqali biz ularning holatini o'zgartira olamiz.
o
3
3-rasm. 7-segmentli displey va maxsus nuqtali segmentning strukturasi
Quartus II 9.0 Web Edition dastur muhitini ishga tushirib, qurilmani kompyuterga ulaymiz. Usb blaster drayveri orqali kompyuter ulanganligini ko'radi. Qurilma yoqilgan holatda Quartus II 9.0 Web Edition dasturiga kirildi. Create a New Project ni tanlab, yangi loyiha yartib olamiz.
Yangi loyiha oynasida kerakli sozlamalar o'rnatib olinadi. Yangi loyiha ustasi (New Project Wizard) oynasining 3-qadamida kerakli qurilma, yani EP3C16F484C6N nomi va parametrlari tanlanadi. Bizning maqsadimiz qurilma 7 segmentli displeylarida turli sonlarni hosil qilishdan iborat.
Loyiha tarkibiga yangi Verilog HDL File qo'shish kerak. Kerakli dasturlar matnini aynan shu faylda kiritib, qo'rilmani boshqarish mumkin. [1]
Dastlab yangi modul yaratib, quyidagi o'zgaruvchilarni elon qilamiz. module tim();
output s0,s1,s2,s3,s4,s5,s6,sdp; endmodule
Bu erda output kalit so'zi yordamida chiqish signallari uchun belgilangan o'zgaruvchilar elon qilindi.
s0,s1,s2,s3,s4,s5,s6; signallarining har biri 7 segmentli displeyning alohida segmentlariga ulanadi va unga qiymat berish uchun xizmat qiladi.
Keyingi bosqichda dasturni kompilyatsiya qilib, signal o'zgaruvchilarimizni qurilma pinlari bilan ulashimiz kerak.
4-rasm. PinPlanner oynasi.
O'zgaruvchilami ulash zarur bo'lgan pinlar ro'yxati qurilma hujjatlarida ko'rsatilgan.
Dastur muharririga qaytib, dastur matnini davom ettiramiz.
assign s0= =1;
assign s1= =1;
assign s2= =0;
assign s3= =1;
assign s4= 1;
assign s5= 0;
assign s6= 1;
assign s7= 0;
Bu buyruqlar orqali har bir o'zgaruvchi (qurilma segmenti)ga boshqarish signallarini uzatamiz. Signallarni qurilmaga uzatish uchun Quartus II 9.0 Web Edition dastur muhitidagi Programmer oynasidan dasturni ishga tushiramiz. Natijada displeyning 0, 1, 3, 4, va 6 segmentlari yoritiladi.
5-rasm. Boshqaruv signallari uzatilgandan keyingi holat.
Qurilmada bunday 4 ta displey mavjud bo'lib, har birini alohida boshqarish mumkin. Lekin, displeydagi segmentlar holatini o'zgartirib turish uchun yuqoridagi dastur matni juda ko'payib ketadi va jarayonni sekinlashishiga olib keladi. Bu muammoni hal qilish maqsadida quyidagi dastur matnini tavsiya qilamiz. module manna(); output s0,s1,s2,s3,s4,s5,s6,sdp; assign {s0,s1,s2,s3,s4,s5,s6,sdp}=8'b11011010; endmodule
Dastur tarkibidagi assign buyrug'iga segmentlar to'plamini berdik, qiymat sifatida esa 8'b (8 ta bit) boshqaruvchi kaliti yordamida yuqoridagi qiymatlarni uzatishimiz mumkin.
Natija yuqoridagi bilan bir xil bo'lishini kuzatishimiz mumkin. Biz ushbu usul yordamida barcha 7 segmentli displeylar segmentlari holatini tez o'zgartirishimiz va boshqarishimiz mumkin bo'ladi. Albatta taklif qilinayotgan usulda har bir segment uchun alohida o'zgaruvchi (signal) e lon qilish va ularni mos keluvchi Pinlarga ulashimiz kerak. Aks holda, uzatiluvchi signallar qaysi Pinni boshqarishi noaniq bo'lib qoladi.
MUHOKAMA
Taklif qilinayotgan usul nafaqat segmentlarni balki ixtiyoriy Pinlar guruhini boshqarish va nazorat qilish uchun ishlatilishi mumkin. Ilgari taklif qilingan usullar yordamida har bir Pinga alohida boshqaruv signallari uzatilishi ko'zda tutilgan edi. [5] Misol sifatida 16 ta kirish, 4 ta chiqish signaliga hamda 12 ta mantiqiy elementga ega bo'lgan mantiqiy qurilmani ko'radigan bo'lsak, qurilmaning 64 ta (16 ta kirish, 4 ta chiqish, 12 ta maniqiy amal, 32 ta oraliq qiymatlar uchun) Pinlaridan foydalanishimiz kerak. Demak, bir signallar guruhi uchun kamida 64 qatorli kod yozishimiz kerak bo'lardi.
Bizning usulimizda kirish pinlariga 1 ta 16 bitli, chiqish signallari uchun 1 ta 4 bitli, mantiqiy amallar uchun alohida, oraliq amallar uchun 1 ta 32 bitli assign buyrug'ini ishlatamiz.
BS = KS + CS + £Г=0 MA + OA (1) Bu erda BS-buyruqlar soni, KS-kirish signallari, CS-chiqish signallari, YJrl=0MA- mantiqiy amallar soni, OA-oraliq amallar. Demak, buyruqlar soni doim mantiqiy amallar sonidan 3 taga ko'p bo'ladi.
Buyruqlar soni qanchalik kam bo'lsa, dastur ishlash tezligini oshiradi va tahrirlash vaqtini qisqartiradi. [2]
XULOSA
Mantiqiy qurilmalarni dasturlash uchun juda ko'p dasturlash tillari mavjud bo'lib, ularning barchasi o'z ustunlik va kamchiliklariga ega. Boshqa dasturlash tillarining amaliy ahamiyatlarini inkor qilmagan holda Verilog HDL dasturlash tilini tavsiya qilamiz.
Shuning bilan birgalikda har bir Pinga alohida signal uzatish o'rniga bir necha bitli guruhlangan assign buyruqlarini qo'llash afzalligini takidlab o'tamiz.
REFERENCES
1. Akchurin, A., Yusupov, K. Verilog programming. Tutorial. - Kazan, 2016 . - 90 p.
2. Narziev, U., Rajabov, B. (2018). Controlling the capabilities of a programmable logic integrated circuit. Bulletin BDU 2/2018, 40-44.
3. Soloviev, V. Fundamentals of the Verilog digital hardware design language. Hotline - Telecom, 2014. - 206 p.