VHDL öğrenme projesi


16

EE öğrencisiyim ve [en azından basit] programları parmaklarımdan daha fazla dilde yazabiliyorum. VHDL öğrenmeye yeni başladım ve dili ve ilgili araçları gerçekten tanımak için iyi bir projenin ne olacağını merak ediyordum? Biriyle gelmekte zorlanıyorum çünkü bu benim için gerçekten farklı bir programlama tarzı.

Toplayıcılar gibi basit şeyler yaptım, ancak daha uzun vadeli (yani bir ay kadar) bir proje arıyorum.

Uygun olması durumunda, Xilinx Webpack ve bir Digilent Spartan3 kartım var.

Yanıtlar:


7

"Merhaba dünya" FPGA projem PWM ve seri akış girişli bir LED dizi denetleyicisiydi. Nihai sonuç güzeldi ( http://lbw.axe-man.org/led1.wmv ), ancak VHDL parçalarının nasıl tanımlandığını görmek için bir kısmını Altera Quartus Şematik Editörü ile yaptığımı itiraf ediyorum.


bu harika bir fikir; 16x16 kontrolsüz bir matris aldım ve bir kontrolör harika olurdu. temiz video!
jeremy

Güzel video! Ve bu şematik editör kullanılacak.
Monica

10

Programlamaya ilgi duyduğunuzdan basit bir mikroişlemci oluşturabilirsiniz.


Şiddetle tavsiye edilir. Sen şeylerin sadece FPGA ve VHDL tarafında öğrenmeye sonunda, aynı zamanda geliştirme araçları yolunda gerekenden işlemciler iş, bir işlemci, vb desteklemek için nasıl
Chris Stratton


4

Bir FPGA'da temel bir synthisizer oluşturmak için Rekonstrukt projesinde Hans ile hardhack'te çalışmaktan zevk aldım . LED projeleri de iyi ancak FPGA'yı bir stereoya bağlamak gibi bir şey yok. Bir LED projesinde olduğu gibi sıfırdan inşa edilmiyor, çünkü proje ileri doğru destekleyen açık çekirdekli bir işlemciye dayanıyor. Yani başlangıçta FPGA'yı proje ile nasıl yükleyeceğinizi öğreniyorsunuz, o zaman FORTH'daki zarflarla oynayabilirsiniz. Ancak FPGA içleri hakkında daha fazla bilgi edinmeye başladığınız yer, daha sonra VHDL'ye kazmayı gerektiren işlevsellik eklemek istediğiniz zamandır.


2

Yapmaktan zevk aldığım bir proje Milton Bradley Simon Game'i FPGA üzerine uygulamaktı.

Üniversitemde, EDA sınıfımız bahsettiğiniz aynı tahtayı kullanıyor. Uygulanan projelerden bazıları:

  • Görüntü işleme: medyan filtre, histogram germe, kenar algılama
  • Şifreleme: AES, çeşitli karma algoritmalar, vb.
  • İletişim: Ethernet, USB, I2C, vb.
  • Oyunlar: Pong, uzay istilacıları, vb.

Bu size bazı fikirler verebilir.

Opencores.org fikrini ikinci olarak kendi mikroişlemcinizi uygulayacağım. Bir Xilinx FPGA'nız olduğundan, mikroblaze veya pikopla ile bir şeyler yapmaya da bakabilirsiniz.

Düzenleme: biçimlendirme.


1

Bir süre önce xilinx virtex çekirdeği için vhdl kodu yazdım. bir çalar saat uygulamasıydı. Yaptığım şey bu:

  • Vhdl manuel aracılığıyla çok şey okuyun - şimdi üzerinde revize etmek gerekir ama ben oldukça basit ve kullanımı kolay hdl buldum :-)
  • Bit akışını elde etmek için xilinx suite (derleyici, synthesizer) kullanıldı
  • Jtag kullanarak bit akışlarını yükledi

Durulanmış, Tekrarlanan 1-3. Bit akımı üretiminin Xilinx'in IDE'sine çok fazla entegre olduğunu belirtmek isterim. HDL'de uygulamak için net bir mantık kümesine sahip olmanız yeterlidir; geri kalan her şey IDE tarafından yapılır.


1

Sayısal Kontrollü Osilatör eğlenceli olurdu. Arduino uyumlu kartımla yeni bir tasarım yaptım (bkz. Http://tinyurl.com/ydmz2su ) ama bu bir FPGA için mükemmel olurdu.

İşte birkaç tasarım referansı.

Snell, John 1988 "Bilgisayar Müziğinin Temelleri" Gerçek Zamanlı 256 Düşük Bozulma Sinüs Dalgası Üretecek Bir Dijital Osilatör Tasarımı ". Cambridge, Kitle: MIT Press

Moore, F. Richard 1988 "Sinüzoidal Dijital Osilatörler İçin Masa Arama Gürültüsü" Bilgisayar Müziğinin Temelleri. Cambridge, Kitle: MIT Press


0

Yaptığım şey biraz CPU yapmak. Tüm temelleri kapsamak için güzel ve yuvarlak bir yol.

VHDL'deki büyük bir projenin tüm temellerini kapsayacak ve VHDL tasarımındaki tüm temel konulara (saatler, girişler, çıkışlar, mantık, otobüsler ve sıralı tasarım en belirgin şekilde) ve birçok temel elektronik ve bilgisayara maruz kalacaksınız. yazmaç, veri işlemleri, bellek ve bilgisayar aritmetiği gibi tasarım ve mimarlık kavramları.

Sadece toplama ve çıkarma ile başlayabilir ve daha sonra öğrenirken daha fazla işlevsellik ekleyebilir, tamamen işlevsel (basit de olsa ... veya "retro" olarak adlandırmayı tercih ettiğim) bir bilgisayara kadar çalışabilirsiniz. En azından bu benim planım.

Artı, kendi özel tasarlanmış bir çip üzerinde sadece düz serin :) 16 bit Raspberry Pi gibi: P

Diğer yaygın FPGA projeleri:

-Müzik sentezleyici

-DSP efekt üreteci

-MIDI denetleyici / kesici

Bitcoin madencisi

-Video oyun konsolu emülatörleri

-Özel Arduino kalkanları

Paralel işlemciler (geleneksel bilgisayarların iyi olmadığı bazı matematik problemleri için çok yararlıdır)

-Robotik / kontrol sistemleri

-Veri toplama (op amperlerle nasıl çalışacağınızı biliyorsanız FPGA'lar için adil birkaç osiloskop tasarımları)

VHDL tek başına korkunç bir şekilde karmaşık değildir. Hatırlanması gereken en önemli şey, bir mikrodenetleyici için bir program yazmadan, fiziksel bir elektronik dijital devre tasarladığınızdır. Simülasyonunuz satır satır çalışacak bir program değil, bu yüzden C ile yüzeysel benzerliğin sizi aldatmasına izin vermeyin, VHDL çok farklı bir paradigma.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.