İçindekiler:

CPE 133 Nihai Proje Ondalık Sayıdan İkiliye: 5 Adım
CPE 133 Nihai Proje Ondalık Sayıdan İkiliye: 5 Adım

Video: CPE 133 Nihai Proje Ondalık Sayıdan İkiliye: 5 Adım

Video: CPE 133 Nihai Proje Ondalık Sayıdan İkiliye: 5 Adım
Video: CPE 100 - Scribbler Robot - Pac Man 2024, Kasım
Anonim
CPE 133 Nihai Proje Ondalık Sayıdan İkiliye
CPE 133 Nihai Proje Ondalık Sayıdan İkiliye

İkili Sayılar, dijital mantık denince akla gelen ilk şeylerden biridir. Bununla birlikte, İkili Sayılar, yeni olanlar için zor bir kavram olabilir.

Bu proje, ikili sayılar konusunda hem yeni hem de deneyimli olanlara ondalık sayıları dönüştürme konusunda yardımcı olacaktır. Bir oyun yaratarak, kullanıcıları dönüşüm becerileri konusunda test edeceğiz. Bu oyun bir Basys3 Board üzerinde yürütülecek ve Verilog'da programlanacaktır.

Adım 1: Gerekli Malzemeler

İhtiyac duyulan malzemeler
İhtiyac duyulan malzemeler

Bu Ondalıktan İkiliye Çevirme Oyununu yapmak için aşağıdaki Malzemeler gereklidir:

  • Xilinx Vivado Tasarım Paketi Yazılımı
  • Digilent Basys3 FPGA Kartı
  • USB'den Mikro USB Kablosuna

Adım 2: LFSR'yi Ayarlama (Doğrusal Geri Besleme Kaydırma Kaydı)

LFSR'yi Ayarlama (Doğrusal Geri Besleme Kaydırma Kaydı)
LFSR'yi Ayarlama (Doğrusal Geri Besleme Kaydırma Kaydı)
LFSR'yi Ayarlama (Doğrusal Geri Besleme Kaydırma Kaydı)
LFSR'yi Ayarlama (Doğrusal Geri Besleme Kaydırma Kaydı)

Bir LFSR (Linear Feedback Shift Register), "rastgele" sayılar üretmek için kullanılan bir modüldür.

Bir LFSR, rastgele görünen ancak olmayan sayıları üretme süreci olan sözde rastgele sayılar ürettiği için tamamen rastgele değildir.

Bir LFSR, giriş biti önceki durumunun doğrusal bir fonksiyonu olan bir kaydırma yazmacıdır; bu, LFSR'nin sonlu bir dizi sayı arasında döngü yapacağı anlamına gelir. Özellikle bu oyun için, LFSR üretebileceği ondalık sayıyı 255 ile sınırlamak için yalnızca 8 bit kullanacaktır.

L Düğmesi (btnL), LFSR'deki numarayı sıfırlamak için kullanılır.

Bu LFSR modülü, bu oyunun yapımcıları tarafından oluşturulmamıştır. LFSR modülü, Carleton Üniversitesi Profesörü John Knight tarafından oluşturulmuştur. Modülünün bağlantısı aşağıda yer almaktadır.

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

Adım 3: Yedi Segment Ekranını Ayarlama

Yedi Segment Ekranını Ayarlama
Yedi Segment Ekranını Ayarlama

Alfanümerik karakterleri görüntülemek için Basys3 Board'da ve diğer birçok donanımda Yedi Bölmeli Ekran kullanılır.

Bu oyunda kullanılan Yedi Bölmeli Ekran modülü, ikili bir sayıyı ondalık sayıya çevirir ve ondalık sayı olarak görüntüler.

Daha önce tartışılan LFSR modülünü kullanarak, Yedi Bölümlü Ekrana rastgele oluşturulmuş bir sayı çıktısı alınacaktır.

Yedi Segment Ekran modülü, bu oyunun yapımcıları tarafından oluşturulmamıştır. Yedi Segment Ekran modülü, California Politeknik Eyalet Üniversitesi Profesörü Joseph Callenes-Sloan tarafından sağlandı. Modülün pdf dosyası aşağıda eklenmiştir.

Adım 4: Oyun Modülünü Oluşturma

Oyun Modülünü Oluşturma
Oyun Modülünü Oluşturma
Oyun Modülünü Oluşturma
Oyun Modülünü Oluşturma
Oyun Modülünü Oluşturma
Oyun Modülünü Oluşturma
Oyun Modülünü Oluşturma
Oyun Modülünü Oluşturma

Oyun (ana) Modülü oluşturun.

Bu modül, rastgele bir sayı üretmek için LFSR modülünü kullanacak ve ardından bunu Yedi Bölümlü Ekrana çıkaracaktır.

Modül daha sonra rastgele sayıyı sıfırlayan bir her zaman bloğu kullanır. Bu, Düğme R'nin (btnR) pozitif kenarında çalışır; bu, yalnızca Düğme R'ye basıldığında çalışacağı anlamına gelir.

İkinci her zaman blok, saatin pozitif kenarında çalışır (clk). C Düğmesine (btnC) basılırsa, bu Yedi Bölümlü Ekrandaki sayının anahtarlardan (sw) gelen giriş numarasıyla aynı olup olmadığını kontrol edecektir. Bu blok bir bayrak kaldıracak (bayrak kaydını (bayrağı) 1'e ayarlayın) ve kullanıcının kazanmasına veya kaybetmesine göre messageVal kablosunu değiştirecektir.

Üçüncü her zaman blok, saatin pozitif kenarında da çalışır. Bayrak kaldırılırsa, ssegInputVal öğesini Yedi Segment Ekranda messageVal kablosuna ayarlayacaktır. Bayrak kaldırılmazsa, rastgele sayıyı (randomVal) çıkarmaya devam edecektir.

Adım 5: Oyunu Oynamak

Oyun oynamak!
Oyun oynamak!
Oyun oynamak!
Oyun oynamak!
Oyun oynamak!
Oyun oynamak!

Talimatlar:

  • Kullanıcı yeni bir oyun yapmak veya Yedi Segment Ekrandaki numarayı değiştirmek için R Düğmesine basacaktır.
  • Kullanıcı, ikili sayıyı temsil etmek için ilk 8 anahtarı yukarı (1) veya aşağı (0) çevirecektir.
  • Kullanıcının kazanıp kazanmadığını kontrol etmek için C düğmesi kullanılacaktır.
  • Kullanıcı kazanırsa, Yedi Segment Ekranda '111' görüntülenecektir.
  • Kullanıcı kaybederse, Yedi Segment Ekranda '0' görüntülenecektir.
  • Yeni bir oyuna başlamak için R Düğmesine her an basılabilir.

Önerilen: