Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
İkili Nömrələr rəqəmsal məntiq haqqında düşünərkən ağla gələn ilk şeylərdən biridir. Bununla birlikdə, İkili Nömrələr yeni başlayanlar üçün çətin bir anlayış ola bilər.
Bu layihə həm yeni, həm də ikili ədədlərlə təcrübəli olanlara ondalık ədədləri çevirməyə kömək edəcək. Bir oyun yaratmaqla istifadəçiləri dönüşüm bacarıqlarını sınayacağıq. Bu oyun bir Basys3 lövhəsində icra ediləcək və Verilogda proqramlaşdırılacaq.
Addım 1: Lazım olan materiallar
Bu Ondalıkdan İkili Dönüştürmə Oyunu etmək üçün aşağıdakı materiallar lazımdır:
- Xilinx Vivado Design Suite Proqramı
- Digilent Basys3 FPGA lövhəsi
- USB -dən Mikro USB Kabelinə
Addım 2: LFSR -nin qurulması (Lineer Feedback Shift Register)
LFSR (Linear Feedback Shift Register), "təsadüfi" ədədlər yaratmaq üçün istifadə olunan bir moduldur.
Bir LFSR təsadüfi deyil, təsadüfi görünən, lakin olmayan ədədlərin əmələ gəlməsi prosesidir.
LFSR, giriş biti əvvəlki vəziyyətinin xətti bir funksiyası olan bir keçid qeydidir, yəni LFSR sonlu çoxluqlardan keçəcəkdir. Xüsusilə bu oyun üçün, LFSR yarada biləcəyi ondalık sayını 255 ilə məhdudlaşdırmaq üçün yalnız 8 bit istifadə edəcək.
Düymə L (btnL) LFSR -də nömrəni sıfırlamaq üçün istifadə olunur.
Bu LFSR modulu bu oyunu hazırlayanlar tərəfindən yaradılmamışdır. LFSR modulu Carleton Universitetinin professoru John Knight tərəfindən yaradılmışdır. Onun modulu üçün link aşağıda verilmişdir.
www.doe.carleton.ca/~jknight/97.478/97.478_…
Addım 3: Yeddi Segment Ekranının Qurulması
Alfasayısal simvolları göstərmək üçün Basys3 lövhəsində və bir çox digər cihazda yeddi seqmentli ekran istifadə olunur.
Bu oyunda istifadə olunan Yeddi Segmentli Ekran modulu ikili sayını ondalık rəqəmə çevirir və ondalık rəqəm olaraq göstərir.
Daha əvvəl müzakirə olunan LFSR modulundan istifadə edərək, Yeddi Segment Ekranına təsadüfi olaraq yaradılan bir rəqəm çıxarılacaq.
Yeddi Segment Ekran Modulu bu oyunu hazırlayanlar tərəfindən yaradılmamışdır. Yeddi Segment Ekran Modulu Kaliforniya Politexnik Dövlət Universitetinin professoru Joseph Callenes-Sloan tərəfindən təmin edilmişdir. Modul üçün pdf aşağıda əlavə edilmişdir.
Addım 4: Oyun Modulunun Yaradılması
Oyun (əsas) modulu yaradın.
Bu modul təsadüfi bir ədəd yaratmaq üçün LFSR modulundan istifadə edəcək və sonra onu Yeddi Segment Ekranına çıxaracaq.
Modul sonra təsadüfi sayını sıfırlayan daima bir blokdan istifadə edir. Bu, Button R -nin (btnR) müsbət kənarında işləyir, yəni yalnız R düyməsinə basıldıqda işləyəcək.
İkinci blok həmişə saatın müsbət kənarında işləyir (clk). Düyməsinə C (btnC) basıldığı təqdirdə, Yeddi Segment Ekranındakı nömrələrin açarların (sw) giriş nömrəsi ilə eyni olub olmadığını yoxlayacaq. Bu blok bir bayraq qaldıracaq (bayraq qeydini (bayrağı) 1 olaraq təyin edəcək) və istifadəçinin qazandığı və ya itirdiyinə görə messageVal telini dəyişəcək.
Üçüncü həmişə blok da saatın müsbət kənarında işləyir. Bayraq qaldırılsa, ssegInputVal-ı Yeddi Segment Ekranındakı mesajVal telinə təyin edəcək. Bayraq qaldırılmasa, təsadüfi ədəd çıxarmağa davam edəcək (randomVal).
Addım 5: Oyun oynayın
Təlimatlar:
- İstifadəçi yeni bir oyun etmək və ya Yeddi Segment Ekrandakı nömrəni dəyişdirmək üçün R düyməsini basacaq.
- İstifadəçi ikili nömrəni daxil etmək üçün ilk 8 açarı yuxarı (1) və ya aşağı (0) çevirəcək.
- İstifadəçinin qazandığını və ya itirdiyini yoxlamaq üçün C düyməsindən istifadə olunacaq.
- İstifadəçi '111' qazanırsa, Yeddi Segment Ekranda göstəriləcək.
- İstifadəçi '0' itirsə, Yeddi Segment Ekranda görünəcək.
- Yeni bir oyuna başlamaq üçün R düyməsinə istənilən vaxt basıla bilər.