MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALAR UNIVERSITETI DASTURI INJINERING FAKULTETI 2-KURS TALABASI XOLMATOV ASILBEKNING KOMPYUTERNI TASHKILLASHTIRISH FANIDAN 6-AMALIY ISHI
TOPSHIRDI : XOLMATOV ASILBEK
QABUL QILDI : AXROROV F.U
Variant 30
Mavzu:Xotira manzili registri
Xotira manzili registri xotira blokiga o'tkazilgan manzilni boshqarish uchun ishlatiladi va buni avtobus yondashuvi (biz ushbu arxitekturada foydalanganmiz) yoki xotira uchun to'g'ridan-to'g'ri kiritish deklaratsiyasi yordamida boshqarish mumkin. Bu holda biz xotira uchun avtobus sozlamalaridan foydalanamiz, shuning uchun MAR oddiy registrga aylanadi, uning boshqaruv signali mar_load yuqori bo'lganida IR yoki shaxsiy kompyuterdan kerakli manzil qiymatiga o'z chiqishini o'rnatadi. Oddiy mikroprotsessordagi Xotira manzili registriga (MAR) manzil uchun yetarli bit kerak. Masalan, agar manzil 8 bitni talab qilsa, registrning o'lchami 8 bit kengligida bo'lishi kerak.
Xotira manzili registrida (MAR) soat va qayta o'rnatish signallari, shuningdek, kirish yo'nalishining standart mantig'i sifatida belgilangan ichki protsessor avtobusi (mar_bus) bilan bir xil interfeys mavjud, ammo faqat birinchi 8 bit ishlatiladi.
Shunday qilib, Xotira manzili registrining (MAR) kodi quyidagi ro'yxatda keltirilgan
1 'ADDR 8 ni aniqlang
2 "OP 8 ni aniqlang
3
4 modul mar (clk, nrst, mar_load, mar_bus, manzil);
5
6 kirish clk;
7 -kirish 1st;
8 kirish mar_load;
9
10 kirish [ 'OP + 'ADDR −1:0] mar_bus;
11 chiqish [ 'ADDR −1:0] manzili;
12
13 sim [ 'OP + 'ADDR −1:0] mar_bus;
14 reg [ 'ADDR −1:0] manzili;
15
16 har doim @ (posedge clk) boshlanadi
17 agar (nrst ==0) boshlanadi
18 manzil <= 0;
19 oxiri
Yana 20 ta boshlanadi
21 agar (mar_load ==1) boshlanadi
22 manzili <= mar_bus [ 'ADDR −1:0];
23 oxiri
24 oxiri
25 oxiri
26
27 endmodul
Biz buni namunaviy yo'riqnomani yuklash orqali sinab ko'rishimiz mumkin va keyin uni avtobusda ko'rinadigan qilib o'rnatishimiz mumkin. Bunga erishish uchun sinov dastgohi quyida ko'rsatilgan:
1 'OP 8 ni aniqlang
2 'ADDR 8 ni aniqlang
3
4
5 modul mar_tb ();
6 // hisoblagich signallarini e'lon qilish
7 reg clk;
8 reg nrst;
9 reg mar_load;
10
11 reg [ 'OP + 'ADDR −1:0] ma'lumotlari;
12 simli [ 'ADDR -1:0] manzili;
13
14 // Dastlabki o'zgaruvchilarni o'rnating va qayta o'rnating
15 boshlang'ich
16 $ displey (“vaqt ∖ t clk reset inc joriy ma’lumotlarni yuklash”);
17 $ monitor (” % g ∖ t % b % b % b % b % b ”,
18 $ vaqt, clk, nrst, mar_load, ma'lumotlar, manzil);
19 clk = 1; // soatni 1 ga ishga tushiring
20 birinchi = 1; // qayta o'rnatishni 1 ga o'rnating (qayta o'rnatilmagan)
21 mar_load = 0;
22 ma'lumot = 16'b0000000000001111;
23 №5 birinchi = 0; // reset = 0 : hisoblagichni qayta tiklaydi
24 №10 birinchi = 1; // 1 ga qayta tiklash: hisoblagich ishga tushishi mumkin
25 #10 mar_load = 1;
26 #10 mar_load = 0;
27 #10 ma'lumotlar = 16'bzzzzzzzzzzzzzzzz;
28 #200 $ tugatish; // Simulyatsiyani tugating
29 oxiri
30
31 // Soat generatori
32 har doim boshlanadi
33 #5 clk = ˜clk; // Har 5 vaqt oralig'ida soat
34 oxiri
35
36 //ma'lumotlarni tayinlash = datareg;
37
38 // DUTni sinov dastgohiga ulang
39 mar DUT (clk,nrst,mar_load,ma'lumotlar,manzil);
40
41 endmodul
Olingan to'lqin shakli bashorat qilingan xatti-harakatni ko'rsatadi ( 8.8-rasm ):
Do'stlaringiz bilan baham: |