Yangi boshlanuvchilar uchun qo'llanma Logisimga xush kelibsiz!


Download 1.38 Mb.
bet20/82
Sana16.04.2023
Hajmi1.38 Mb.
#1359783
1   ...   16   17   18   19   20   21   22   23   ...   82
Bog'liq
Logisim

Jadval yorlig'i
Jadval yorlig'i joriy jurnalni grafik tarzda ko'rsatadi.

Jadvalda tanlovdagi har bir komponent uchun ustun mavjud. Jadvaldagi har bir satr qiymatlar hisoblangandan keyin simulyatsiya suratini ko'rsatadi. Ikki nusxadagi satrlar jurnalga qo'shilmaydi. E'tibor bering, faqat oxirgi 400 qator ko'rsatiladi. Ba'zi satrlarda bo'sh yozuvlar bo'lishi mumkin, agar tegishli komponent qator baholanayotganda tanlovda bo'lmasa.
Ko'rsatilgan jadval faqat ko'rish uchundir; interaktiv emas.
Fayl yorlig'i
Fayl yorlig'i jurnal joylashtiriladigan faylni tanlash imkonini beradi.

Yuqorida - fayl hozirda yozib olinayotganligi ko'rsatkichi va uni yoqish yoki o'chirish tugmasi. (Quyidagi fayl tanlanmaguncha uni yoqa olmaysiz.) Tugma pauza qilish va faylga qayta yozishni boshlash imkonini beradi. Loyiha oynasida boshqa simulyatsiya ko'rinishiga o'tsangiz, faylga kirish avtomatik ravishda to'xtaydi; agar siz asl simulyatsiyaga qaytsangiz va jurnalga yozishni davom ettirmoqchi bo'lsangiz, yuqoridagi tugma yordamida uni qo'lda qayta yoqishingiz kerak bo'ladi.
O'rtada - jurnal qaysi faylga yozilayotganligi ko'rsatkichi. Uni o'zgartirish uchun Tanlash... tugmasidan foydalaning. Faylni tanlagandan so'ng, ro'yxatga olish avtomatik ravishda boshlanadi. Agar siz mavjud faylni tanlasangiz, Logisim sizdan faylni qayta yozishni yoki oxiriga yangi yozuvlarni qo'shishni xohlaysizmi, deb so'raydi.
Pastki qismida siz qaysi elementlar tanlanganligini ko'rsatadigan faylga sarlavha qatori qo'shilishi kerakligini nazorat qilishingiz mumkin. Sarlavha satrlari qo'shilsa, har safar tanlov o'zgartirilganda faylga yangi sarlavha qatori joylashtiriladi.
Fayl formati
Yozuvlar Jadval yorlig'ida ko'rinadiganga o'xshash yorliq bilan ajratilgan faylga joylashtiriladi. (Farqi shundaki, har qanday sarlavha satri quyi sxemalarda topilgan komponentlarga toʻliq yoʻlni oʻz ichiga oladi.) Faylni qayta ishlash uchun Python/Perl skripti yoki boshqa dasturga oʻtkazishingiz uchun format ataylab soddalashtirilgan. elektron stol.
Logisim ishlayotgan vaqtda skript faylni qayta ishlayotgan bo'lishi mumkinligi sababli, Logisim har 500 msda diskka yangi yozuvlarni o'chiradi. Logisim simulyatsiya paytida faylni vaqti-vaqti bilan yopishi va keyin qayta ochishi mumkinligini unutmang; Xususan, agar yangi yozuvlar qo'shmasdan bir necha soniya o'tgan bo'lsa.
Buyruqlar satridan tekshirish
Bo'limlar:
Kutubxonani almashtirish;
Boshqa skanerlash imkoniyatlari;
Bir nechta fayllarni skanerlang.
Logisim buyruq satridan sxemalarni bajarish uchun asosiy yordamni o'z ichiga oladi. Bu sxemalarni skriptlar bilan tasdiqlash va o'qituvchilarga talabalar ishini avtomatlashtirilgan tekshirishda yordam berish uchun amalga oshiriladi.
Keling, buyruq satridan sxemani qanday bajarishdan boshlaylik. Ushbu misolning maqsadlari uchun biz quyida ko'rsatilgan sxemani adder-test.circ nomli faylga saqladik deb hisoblaymiz. U pastki sxema sifatida 2-bitli qo'shimchadan foydalanadi va hisoblagich yordamida barcha mumkin bo'lgan 16 kirish kombinatsiyasi orqali ishlaydi.

Ushbu sxemani qurganimizdan so'ng, biz Logisim-ni buyruq qatoridan ishga tushiramiz, loyiha fayl nomi va -tty variantini jadval argumenti bilan uzatamiz.
java -jar logisim-filename.jar adder-test.circ -tty jadvali
Hech qanday oyna ochmasdan, Logisim sxemani yuklaydi va uni bajarishni boshlaydi, soat generatorlarini iloji boricha tezroq ishga tushiradi, har bir otishni o'rganish o'rtasida hisob-kitob qiladi. Har bir hisob-kitob tugallangandan so'ng, Logisim chiqish pinlaridagi qiymatlarni o'qiydi; agar ulardan birortasi oldingi hisob-kitobdan beri o'zgargan bo'lsa, unda barcha qiymatlar yorliqlar bilan ajratilgan holda ko'rsatiladi. Agar maxsus so'z bilan belgilangan chiqish pin bo'lsa stop, unda hech qanday qiymat chiqmaydi, lekin hisob-kitob tugallangandan so'ng u 1 ga aylanishi bilan Logisim simulyatsiyani tugatadi.
Bizning misolimizda Logisim quyidagi jadvalni chiqaradi. Ikki bitli qo'shimchaning a va b kirishlariga mos keladigan ikkita chiqish pinimiz borligi sababli, bu chiqishlar birinchi ikkita ustun sifatida kiritilgan. Va ikki bitli qo'shimchaning chiqishiga mos keladigan yana bir chiqish pin bor, shuning uchun u uchinchi ustunda. Ustunlar diagrammadagi yuqoridan pastgacha bo'lgan tartibda mos keladigan tartibda chapdan o'ngga o'tadi.
00 00 000
01 00 001
10 00 010
11 00 011
00 01 001
01 01 010
10 01 011
11 01 100
00 10 010
01 10 011
10 10 100
11 10 101
00 11 011
01 11 100
10 11 101
11 11 110
Kutubxonani almashtirish
Aytaylik, bizda bir xil ishni bajarishi kerak bo'lgan ikkita Logisim sxemasi bor. O'qituvchi sifatida siz talabalar ishiga ega bo'lishingiz mumkin: sizda yechimning bitta fayli va ularning ishlarini o'z ichiga olgan bir nechta talaba fayllari mavjud. Misol uchun, vazifa ikki bitli qo'shimchani yaratish edi.
Tasavvur qilamanki, bizda adder-master.circ va adder-query.circ nomli ikkita fayl bor. Har bir faylda 2-bitli qo'shuvchi deb nomlangan sxema mavjud (sinov qilinadigan sxema aynan bir xil nomga ega bo'lishi muhim), bu sxemalar shunday ko'rinadi.

Ko'rib turganingizdek, mos yozuvlar sxemasi Logisimning o'rnatilgan qo'shimchasidan foydalanadi, sinovdan o'tayotgan sxemada ikkita kichik sxema, yarim qo'shimcha va to'liq qo'shimchalar (ular o'z navbatida oddiy mantiqiy eshiklardan qurilgan) ishlatiladi. Bizning misolimiz uchun, tekshirilayotgan sxema ahmoqona xatoga yo'l qo'ydi: yarim to'ldiruvchining tashish biti to'liq qo'shimchaga ulanmagan.
Biz tekshirish sxemamizni alohida faylda saqlaymiz. Keyin adder-master.circ ni Logisim kutubxonasi sifatida yuklaymiz (Loyiha > Kutubxonani yuklash > Logisim kutubxonasi…) va u yerdan 2-bitli qo‘shimchani quyi sxema sifatida qo‘shamiz. Ideal yechim uchun kerakli natijani olish uchun biz ushbu sxemani to'g'ridan-to'g'ri bajarishimiz mumkin.
java -jar logisim-filename.jar adder-test.circ -tty jadvali
Lekin biz sxemani adder-master.circ o'rniga yuklangan kutubxona sifatida adder-query.circ dan foydalanib bajarmoqchimiz. Oddiy yondashuv Logisimni ochish va ushbu kutubxonani yuklashdir; yoki siz shunchaki adder-master.circ faylini o'chirishingiz va uning o'rniga adder-query.circ nomini adder-master.circ ga o'zgartirishingiz mumkin. Ammo Logisim o'z ichiga qulay -sub opsiyasini o'z ichiga oladi, u o'sha seans davomida bir faylni vaqtincha boshqasiga almashtiradi - diskda hech qanday o'zgarishsiz.
java -jar logisim-filename.jar adder-test.circ -tty jadvali -sub adder-master.circ adder-query.circ
Siz ko'rgan chiqish quyida ko'rsatilgan; Bu, albatta, oldingi bo'limda ko'rganimizdan farq qiladi, chunki noto'g'ri adder-query.circ hozirda bajarilmoqda.
00 00 0E0
01 00 0E1
10 00 EE0
11 00 EE1
00 01 0E1
01 01 0E0
10 01 EE1
11 01 EE0
00 10 EE0
01 10 EE1
10 10 1E0
11 10 1E1
00 11 EE1
01 11 EE0
10 11 1E1
11 11 1E0
Boshqa tekshirish imkoniyatlari
Buyruqlar qatorini bajarish bilan bog'liq bir nechta qo'shimcha imkoniyatlar mavjud.
Buyruqlar qatori opsiyasi - load
Keyinchalik murakkab sxema sxemada biror narsaga ega bo'lishi uchun dastur bilan yuklanishi kerak bo'lgan RAM komponentini o'z ichiga olishi mumkin. Simulyatsiyadan oldin sxemada RAM komponentiga yuklanadigan xotira tasvir faylini buyruq satrida belgilashingiz mumkin. (GUI yuklanganda bu ishlamaydi - bu faqat buyruq satrida bajarilishi kerak.)
java -jar logisim-filename.jar cpu.circ -tty jadvali -mem-image.txt faylini yuklash
Variantlarning tartibi muhim emas (jadval argumenti darhol -tty dan keyin, xotira tasviri fayl nomi esa -load dan keyin darhol kelishi kerak bundan mustasno). Xotira tasvir fayli Logisim xotira tasviri formatida bo'lishi kerak.
Logisim operativ xotirani rekursiv tarzda qidiradi, shuning uchun u RAM pastki sxemaga o'rnatilgan bo'lsa ham ishlaydi. Biroq, turli xil operativ xotira komponentlarini farqlashning hech qanday usuli yo'q: Logisim o'zi topgan har bir RAMga bir xil faylni yuklashga harakat qiladi.
-tty varianti uchun argumentlar
Hozirgacha bizning misollarimizda chiqish qiymatlari jadvali ko'rsatilishi kerakligini ko'rsatish uchun har doim -tty jadvalidan foydalanganmiz. Vergul bilan ajratilgan bir yoki bir nechta argumentlarni sanab, xatti-harakatni boshqacha sozlashingiz mumkin. Misol uchun, siz -tty jadvali, to'xtash, tezlik yozishingiz mumkin va dastur quyida tavsiflangan barcha uchta xatti-harakatni amalga oshiradi. (Ularning ro'yxatdagi tartibi muhim emas.)
to'xtash
Simulyatsiya tugagach, simulyatsiya nima uchun tugaganligini tushuntiruvchi bir qatorli xabar ko'rsatiladi. Xato holatlari - aniqlangan qo'zg'alish kabi - baribir ko'rsatiladi.
tezlik
Agar tezlikni -tty bilan birgalikda ishlatsangiz, Logisim simulyatsiya tugagandan so'ng sxema qanchalik tez simulyatsiya qilinganligi haqidagi ma'lumotlarni ko'rsatadi, masalan:
714 Gts (712 millisekundda 509 tsikl)
E'tibor bering, simulyatsiya paytida ma'lumotni ko'rsatish uni juda sekinlashtiradi. Bir taqqoslashda, xuddi shu sxema va tasvir faqat tezlik opsiyasi bilan 714 Gts da, stol varianti bilan 490 Gts da ishladi.
statistika
Loyihaning asosiy yuqori darajadagi sxemasi tomonidan ishlatiladigan komponentlar statistikasini o'z ichiga olgan yorliq bilan ajratilgan jadvalni ko'rsatadi. Jadval to'rtta ustunni o'z ichiga oladi:

  • Noyob: ierarxiyadagi har bir kichik sxema faqat bir marta sanaladi, deb faraz qilgan holda, komponentning sxema ierarxiyasida sodir bo'lish soni.

  • Rekursiv: komponentning sxema ierarxiyasida necha marta sodir bo'lishi, har bir kichik sxema ierarxiyada qancha marta sodir bo'lsa, shuncha marta hisoblanadi.

  • Komponent: Komponentning nomi.

  • Kutubxona: Komponent olingan kutubxona nomi.

Noyob va Rekursiv o'rtasidagi farq Loyiha menyusi bo'limida tushuntirilgan. Agar fayl yuklangan Logisim kutubxonasi sxemalaridan foydalansa, bu komponentlar qora qutilar hisoblanadi: kutubxona sxemalari tarkibi noyob va rekursiv hisoblanganlar soniga kiritilmaydi.
(Ushbu xususiyat talabalarni Logisim kutubxonalarining bir qismidan foydalangan holda loyihalarni yaratishga undaydigan o'qituvchilar uchun foydali bo'lishi mumkin.)
Bir nechta fayllarni tekshirish
Sinf xonasida sizda ekvivalentlikni tekshirish uchun ko'plab fayllar bo'ladi va siz har bir talabaning yechimi uchun chiqishni o'qishni xohlamaysiz.
Taqqoslashni sxemaga kiritish
Bir yondashuv - to'g'ridan-to'g'ri taqqoslashni amalga oshiradigan tekshirish sxemasini yaratish. Bunday holda, biz yechim bilan sxemani o'z ichiga olgan tekshirish faylida qo'shimcha sxema yaratamiz. Biz sinov sxemamiz bo'ylab adder-master.circ dan kichik sxemani ham, qaror qabul qilish sxemasidan ham kichik sxemani o'z ichiga olamiz. Biz ularni shunday birlashtiramizki, ikkita pastki sxemalar izchil qiymatlarni chiqargan ekan, faqat bitta chiqish, ya'ni 1 bo'ladi.

Endi biz tekshirgan har bir faylni almashtirib, Logisim-ni ishga tushirishimiz mumkin. Har bir to'g'ri yechim uchun chiqish faqat 1 dan iborat bo'ladi.
Qayta yo'naltirish va qobiq skriptlaridan foydalanish
Buyruqlar qatoridan foydalanish qulay bo'lsa, ushbu vazifa uchun o'z skriptingizni yaratishingiz mumkin. Bu erda har bir sxemaning chiqishini faylga saqlash uchun qayta yo'naltirish (> operator) dan foydalanamiz. Misol uchun, mos yozuvlar sxemasi va tekshirilayotgan sxemaning chiqishini olish uchun quyidagi ikkita buyruqni kiritishimiz mumkin.
java -jar logisim-filename.jar adder-test.circ -tty table > output-master.txt
java -jar logisim-filename.jar adder-test.circ -tty table -sub adder-master.circ adder-query.circ > output-query.txt
Endi biz ikki xil fayl yaratdik. Ikki faylni shu maqsadda yozilgan dastur bilan solishtirishimiz mumkin. Linux yoki MacOS X da siz cmp yoki diff buyruq qatori yordam dasturlaridan foydalanishingiz mumkin. Windows ostida siz WinMerge-dan foydalanishingiz mumkin.
Tekshiriladigan bir nechta fayllarni qayta ishlash uchun siz fayllarni birma-bir takrorlash va ularni solishtirish uchun oddiy qobiq skript dasturini yozishingiz mumkin. Linux ostida bash-da buni qanday qilardim:
RUN_TEST="java -jar logisim-filename.jar adder-test.circ -tty table"
${RUN_TEST} > output-master.txt
for QUERY_FILE in adder-query*.circ
do
if ${RUN_TEST} -sub adder-master.circ ${QUERY_FILE} | cmp -s output-master.txt
then
echo "${QUERY_FILE} OK"
else
echo "${QUERY_FILE} different"
fi
done

Download 1.38 Mb.

Do'stlaringiz bilan baham:
1   ...   16   17   18   19   20   21   22   23   ...   82




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling