İçindekiler:

FPGA Cyclone IV DueProLogic - Basmalı Düğme ve LED: 5 Adım
FPGA Cyclone IV DueProLogic - Basmalı Düğme ve LED: 5 Adım

Video: FPGA Cyclone IV DueProLogic - Basmalı Düğme ve LED: 5 Adım

Video: FPGA Cyclone IV DueProLogic - Basmalı Düğme ve LED: 5 Adım
Video: FPGA Cyclone IV DueProLogic - Push button & LED (Tutorial & code) 2024, Aralık
Anonim
FPGA Cyclone IV DueProLogic - Basmalı Düğme ve LED
FPGA Cyclone IV DueProLogic - Basmalı Düğme ve LED

Bu derste, harici LED devresini kontrol etmek için FPGA kullanacağız. Aşağıdaki görevleri uygulayacağız

(A) LED'i kontrol etmek için FPGA Cyclone IV DuePrologic üzerindeki basma düğmelerini kullanın.

(B) Flaş LED'i periyodik olarak açılır ve kapanır

Video demosu

Laboratuvar menüsü:

Adım 1: Elektronik Devre Oluşturun

Adım 2: Pin Planlayıcıyı Kontrol Edin ve Verilog Kodunu Düzenleyin

Pin Planlayıcı'yı kontrol edin ve Verilog Kodunu Düzenle
Pin Planlayıcı'yı kontrol edin ve Verilog Kodunu Düzenle

3. Adım: Verilog Kodunu Düzenleyin

Verilog Kodunu Düzenle
Verilog Kodunu Düzenle

FPGA DueProLogic satın aldığınızda, bir DVD alacaksınız. "Projects_HDL"yi açtıktan sonra orijinal kod dosyasını görmelisiniz.

Vurgulanan kodu ekleyin. G/Ç bağlantı noktalarını kaydeder ve bağlantı noktalarına numara atar.

çıkış kablosu [7:0] XIO_1, //XIO -- D2-D9

çıkış kablosu [5:0] XIO_2, //XIO -- D10-D12

çıkış kablosu [5:0] XIO_3, //XIO -- D22-D29

giriş kablosu [5:0] XIO_4, //XIO -- D30-D37

giriş kablosu [5:0] XIO_5, //XIO -- D38-D45

çıkış kablosu [4:0] XIO_6_OUT, //XIO -- D46-D53

giriş kablosu [31:5] XIO_6, //XIO -- D46-D53

çıkış kablosu [2:0] XIO_7, //XIO -- D69, D70, D71, D74, D75, D76

giriş kablosu UBA, //Push Buton Anahtarları

giriş kablosu UBB //Push Buton Anahtarları

XIO_1[3] ata = start_stop_cntrl;

atama XIO_2[1] = start_blinky; //LED flaş LED'i açık ve kapalı

XIO_2[2] = 1'b1 ata; // çıkış YÜKSEK

XIO_2[3] = ~UBA ata; //A düğmesine basın

XIO_2[4] ata = UBB; //B düğmesine basın

ata c_enable = XIO_5[2];

LEDExt = XIO_5[5] ata;

O zaman bir gecikme zamanlayıcı ayarlamalıyız. Orijinal zamanlayıcı kodunu yorumlayın ve yeni bir zamanlayıcı işlevi yazın

//-----------------------------------------------

// LED Yanıp sönen başlangıç

//-----------------------------------------------

/*

her zaman @(posedge CLK_66 veya negedge RST)

başlamak

eğer(!RST)

start_blinky <= 1'b0;

Başka

başlamak

if(control_register[7:4] > 0)

start_blinky <= 1'b1;

Başka

start_blinky <= 1'b0;

son

son

*/

reg [31:0] örn;

ilk başlangıç

eski <= 32'b0;

start_blinky <= 1'b0;

son

her zaman @(posedge CLK_66)

başlamak

eski <= eski + 1'b1;

if(ex > 100000000) //flaş açık/kapalı ~1.6 saniye, saat 66MHz

başlamak

start_blinky <= !start_blinky;

eski <= 32'b0;

son

son

//-----------------------------------------------

// LED Gecikme Zamanlayıcı Sayacı

//-----------------------------------------------

/*

her zaman @(posedge CLK_66 veya negedge RST)

başlamak

eğer(!RST)

led_delay_counter <= TIMER_LOW_LIMIT;

Başka

başlamak

if(durum[SELECT_MODE])

led_delay_counter <= timer_value;

else if(durum[WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

son

son*/

Adım 4: Verilog Kodunu Derleyin

Verilog Kodunu Derleyin
Verilog Kodunu Derleyin
Verilog Kodunu Derleyin
Verilog Kodunu Derleyin

Quartus'ta "Derlemeyi Başlat" a basın, hiçbir hata mesajı oluşturulmamalıdır.

Birden fazla pin hakkında hata mesajı alıyorsanız. Atamalar -> Cihaz -> Cihaz ve Pin Seçenekleri -> Çift Amaçlı Pinler -> seçeneğine gidin ve uygun pinin değerini "Normal G/Ç olarak kullan" olarak değiştirin.

Derlemeden sonra doğrudan pof çıktı dosyasını almalısınız. Yazılımınız güncel değilse sadece sof file alabilirsiniz. Bu olduğunda, Quartus -> "programlama dosyalarını dönüştür"de "Dosya"ya tıklayın. Kırmızı kutularla işaretlenmiş ayarları değiştirin.

Adım 5: Hadi Deneyelim

Sonuçta, çalışması gerekir !!! Sarı LED her zaman açıktır. Kırmızı LED yanıp sönüyor. B düğmesine basarsanız mavi LED söner. A düğmesine basarsanız yeşil LED yanar

Önerilen: