Բովանդակություն:

CPE 133 Վերջնական նախագիծ տասնորդականից երկուական `5 քայլ
CPE 133 Վերջնական նախագիծ տասնորդականից երկուական `5 քայլ

Video: CPE 133 Վերջնական նախագիծ տասնորդականից երկուական `5 քայլ

Video: CPE 133 Վերջնական նախագիծ տասնորդականից երկուական `5 քայլ
Video: How to Do SDXL Training For FREE with Kohya LoRA - Kaggle - NO GPU Required - Pwns Google Colab 2024, Նոյեմբեր
Anonim
CPE 133 Վերջնական նախագիծ տասնորդականից երկուական
CPE 133 Վերջնական նախագիծ տասնորդականից երկուական

Երկուական թվերն առաջին բաներից են, որոնք գալիս են մտքիս թվային տրամաբանության մասին մտածելիս: Այնուամենայնիվ, Երկուական թվերը կարող են դժվար հասկացություն լինել դրանում նորեկների համար:

Այս նախագիծը կօգնի նրանց, ովքեր և՛ նոր են, և՛ փորձառու երկուական թվերով, որոնք տիրապետում են տասնորդական թվերի փոխակերպմանը: Խաղի ստեղծման միջոցով մենք փորձարկելու ենք օգտվողներին իրենց փոխակերպման հմտությունները: Այս խաղը կիրականացվի Basys3 Board- ի վրա և ծրագրված կլինի Verilog- ում:

Քայլ 1: Անհրաժեշտ նյութեր

Անհրաժեշտ նյութեր
Անհրաժեշտ նյութեր

Հետևյալ նյութերն անհրաժեշտ են երկուական փոխակերպման տասնորդական խաղը դարձնելու համար.

  • Xilinx Vivado Design Suite ծրագրակազմ
  • Digilent Basys3 FPGA տախտակ
  • USB միկրո USB մալուխ

Քայլ 2. LFSR- ի ստեղծում (Հետադարձ կապի գծային գրանցման գրանցում)

LFSR- ի ստեղծում (Հետադարձ կապի հերթափոխի գրանցամատյան)
LFSR- ի ստեղծում (Հետադարձ կապի հերթափոխի գրանցամատյան)
LFSR- ի ստեղծում (Հետադարձ կապի հերթափոխի գրանցամատյան)
LFSR- ի ստեղծում (Հետադարձ կապի հերթափոխի գրանցամատյան)

LFSR (Linear Feedback Shift Register) մոդուլ է, որն օգտագործվում է «պատահական» թվեր գեներացնելու համար:

LFSR- ն ամբողջովին պատահական չէ, քանի որ այն առաջացնում է կեղծ պատահական թվեր, ինչը թվերի ստեղծման գործընթաց է, որոնք հայտնվում են պատահական, բայց ոչ:

LFSR- ը հերթափոխային գրանցամատյան է, որի մուտքային բիթը իր նախորդ վիճակի գծային գործառույթն է, ինչը նշանակում է, որ LFSR- ը կշրջվի վերջավոր բազմության թվերով: Հատկապես այս խաղի համար, LFSR- ն կօգտագործի ընդամենը 8 բիթ `տասնորդական թիվը սահմանափակելու համար` մինչև 255:

Կոճակ L (btnL) օգտագործվում է LFSR- ի համարը վերականգնելու համար:

Այս LFSR մոդուլը չի ստեղծվել այս խաղի ստեղծողների կողմից: LFSR մոդուլը ստեղծվել է Կարլթոնի համալսարանի պրոֆեսոր Johnոն Նայթի կողմից: Նրա մոդուլի հղումը ներկայացված է ստորև:

www.doe.carleton.ca/~jknight/97.478/97.478_…

Քայլ 3: Յոթ հատվածի ցուցադրման կարգավորում

Յոթ հատվածի ցուցադրման կարգավորում
Յոթ հատվածի ցուցադրման կարգավորում

Յոթ հատվածից ցուցադրումը օգտագործվում է Basys3 տախտակի վրա և այլ սարքավորումների վրա `այբբենական թվեր ցուցադրելու համար:

Այս խաղում օգտագործվող Seven-Segment Display մոդուլը երկուական թիվը վերածում է տասնորդականի և ցուցադրում այն որպես տասնորդական թիվ:

Օգտագործելով նախկինում քննարկված LFSR մոդուլը, պատահական գեներացվող թիվը դուրս կգա Յոթ հատվածից բաղկացած էկրանին:

Յոթ հատվածի ցուցադրման մոդուլը չի ստեղծվել այս խաղի ստեղծողների կողմից: Յոթ հատվածից ցուցադրվող մոդուլը տրամադրել է Կալիֆոռնիայի պոլիտեխնիկական պետական համալսարանի պրոֆեսոր Josephոզեֆ Կալենես-Սլոանը: Մոդուլի PDF- ն կցված է ստորև:

Քայլ 4. Խաղի մոդուլի ստեղծում

Խաղի մոդուլի ստեղծում
Խաղի մոդուլի ստեղծում
Խաղի մոդուլի ստեղծում
Խաղի մոդուլի ստեղծում
Խաղի մոդուլի ստեղծում
Խաղի մոդուլի ստեղծում
Խաղի մոդուլի ստեղծում
Խաղի մոդուլի ստեղծում

Ստեղծել խաղի (հիմնական) մոդուլ:

Այս մոդուլը կօգտագործի LFSR մոդուլը ՝ պատահական թիվ գեներացնելու և այնուհետև այն թողարկելու համար Յոթ հատվածային ցուցադրման վրա:

Այնուհետև մոդուլը օգտագործում է միշտ բլոկ, որը վերականգնում է պատահական թիվը: Սա գործում է Button R- ի (btnR) դրական եզրին, ինչը նշանակում է, որ այն կգործի միայն այն ժամանակ, երբ սեղմված է R կոճակը:

Երկրորդ միշտ բլոկը գործում է ժամացույցի դրական եզրին (clk): Եթե կոճակը C (btnC) սեղմված է, դա կստուգի, թե արդյոք յոթ հատվածի ցուցադրման համարը նույնն է, ինչ անջատիչներից (sw): Այս բլոկը կբարձրացնի դրոշ (դրոշի գրանցամատյանը (դրոշը) դրեք 1 -ի վրա) և կփոխի messageVal հաղորդալարը ըստ այն բանի, եթե օգտվողը հաղթել կամ պարտվել է:

Երրորդ բլոկը գործում է նաև ժամացույցի դրական եզրին: Եթե դրոշը բարձրացված է, այն ssegInputVal- ը կդնի յոթ հատվածից ցուցադրվող messageVal լարին: Եթե դրոշը չբարձրացվի, այն կշարունակի դուրս բերել պատահական թիվը (randomVal):

Քայլ 5: Խաղացեք խաղը:

Խաղալով խաղը!
Խաղալով խաղը!
Խաղալով խաղը!
Խաղալով խաղը!
Խաղալով խաղը!
Խաղալով խաղը!

Հրահանգներ.

  • Օգտագործողը կտտացնի R կոճակը ՝ նոր խաղ պատրաստելու համար, կամ կփոխի համարը Յոթ հատվածից բաղկացած էկրանին:
  • Օգտվողը կթափի առաջին 8 անջատիչները վեր (1) կամ ներքև (0) ՝ մուտքագրելով ներկայացված երկուական թիվը:
  • Կոճակը C- ն կօգտագործվի ՝ օգտագործողի հաղթած կամ պարտված լինելու ստուգման համար:
  • Եթե Օգտատերը շահեց, «111» -ը կցուցադրվի Յոթ հատվածից բաղկացած էկրանին:
  • Եթե Օգտատերը կորցրել է '0' -ը կցուցադրվի Յոթ հատվածից բաղկացած էկրանին:
  • Նոր խաղ սկսելու համար ցանկացած պահի կարող եք սեղմել R կոճակը:

Խորհուրդ ենք տալիս: