www.mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA Lab: modulierbarer Signalgenerator, Universalzähler,.


Autor: Werner C. (arvuser)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Ich habe mich nun einige Zeit mit dem FPGA-Board aus dem c´t-Lab sowie 
mit VHDL (und LabView) beschäftigt. Dabei ist bisher ein kleines 
Signallabor inklusive LabView-Frontend entstanden:

- Frequenz-/Periodenmesser
- 4-kanaliger modulierbarer DDS-Signalgenerator
- Pulsgenerator mit getrennt einstellbaren Puls- und Pausendauern

Alle Komponenten sind in VHDL implementiert. Dabei ist auch eine neue 
adressierbare SPI-Schnittstelle entstanden.

Die detaillierte Beschreibung gibt es als Wiki-Artikel mit dem Titel 
FPGA Lab, der Quellcode steht im SVN-Repository.

Neben diesem Thread hier gibt es auch einen im c´t-Lab-Forum 
(http://thoralt.ehecht.com/phpbb/viewtopic.php?f=25&t=393).

Kritik und Anregungen bitte in einem dieser beiden Threads.

Autor: Werner C. (arvuser)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ich habe nun eine Klassenbibliothek für .NET veröffentlicht, mit der man 
das c´t-Lab und das FPGA-Lab steuern kann.

Eine detaillierte Beschreibung und die Verweise zum Quellcode kann man 
hier einsehen:

http://www.mikrocontroller.net/articles/Ct_Lab_Cli...

Autor: Werner C. (arvuser)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe jetzt die FPGA-Karte und mein altes Projekt wieder reaktiviert, 
alles funktioniert noch. Die .NET-Bibliothek habe ich auf Mono (eine 
.NET-Umgebung unter Linux) übertragen. Auch das hat nach ein paar 
Änderungen geklappt.

Ich nutze nun Ubuntu 16.04 und MonoDevelop. Die ganzen Unit-Tests habe 
ich etwas modernisiert (sie basieren nun auf SpecsFor). Ich plane 
weiters, das Projekt auf GitHub zu übertragen und endlich auch eine GUI 
zu bauen (mit Gtk#). Zeitlich will ich mich nicht festlegen, ich wollte 
nur bekannt geben, dass das Projekt wieder erwacht.

Die Domain des c´t-Lab-Forum hat sich geändert, der o.g. Link lautet 
daher nun:
http://www.thoralt.de/phpbb/viewtopic.php?f=25&t=393

: Bearbeitet durch User
Autor: Werner C. (arvuser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nun zu diesem Projekt neue Wikiseiten angelegt:
https://www.mikrocontroller.net/articles/CtLab_Library
https://www.mikrocontroller.net/articles/CtLab_FPGA_SigLab

Der Quellcode steht nun auf GitHub:
https://github.com/JosiCoder/CtLab/

Mit der Bedienoberfläche habe ich schon angefangen, bis ich da was 
veröffentliche, wird es aber noch etwas dauern.

: Bearbeitet durch User
Autor: Weltbester FPGA-Pongo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast Zeit bis zum 23.12.! Danach gilt es nicht mehr :-)

Autor: Weltbester FPGA-Pongo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, hab mir die Sourcen angesehen: Ohne Dir zu nahetreten zu wollen, 
folgender Kommentar:

- Zuviele Module für so wenig Funktion

- Bei der Phase wird abgesägt, statt interpoliert ?

- Ich finde es verdächtig, dass Du 50Mhz UND 100MHz brauchst. Eigentlich 
reicht einer.

Autor: Werner C. (arvuser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nehme an, Du sprichst hier über die VHDL-Module. Ja, ich weiß, da 
habe ich nicht wirklich viel Erfahrung. Ich wollte mir z.B. offenhalten, 
die SPI-Schnittstelle in anderen Projekten wiederverwenden zu können. 
Vielleicht habe ich es mit der Modularisierung tatsächlich übertrieben.

Ich habe aber z.B. sehr darauf geachtet, Taktdomänen sauber zu trennen 
und externe Signale ordentlich einzusynchronisieren. Ob mir das gelungen 
ist?

Wie meinst Du das mit der abgesägten Phase? Ja es stimmt, interpoliert 
habe ich da nichts. Ich habe zumindest versucht, die vier 
Sinusviertelperioden auch wirklich symmetrisch zueinander hinzubekommen, 
wie hier angeregt: 
https://www.mikrocontroller.net/articles/Digitale_...

Zum Takt: Die FPGA-Karte hat einen externen 50-MHz-Takt, den ich intern 
auf 100 MHz hochsetze. Habe ich da was übersehen?

Weltbester FPGA-Pongo schrieb im Beitrag #4814414:
> So, hab mir die Sourcen angesehen: Ohne Dir zu nahetreten zu wollen,
> folgender Kommentar:
>
> - Zuviele Module für so wenig Funktion
>
> - Bei der Phase wird abgesägt, statt interpoliert ?
>
> - Ich finde es verdächtig, dass Du 50Mhz UND 100MHz brauchst. Eigentlich
> reicht einer.

: Bearbeitet durch User
Autor: Werner C. (arvuser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, ich weiß, was Du mit den beiden Takten meinst: In Main.vhd
reiche ich tatsächlich beide an diverse Komponenten durch (aber je 
Komponente immer nur einen der beiden). Das ist schon so lange her, dass 
ich das gemacht habe. Es könnte doch sein, dass ich bei 100 MHz nicht in 
allen Komponenten die Timings einhalten konnte. Und einen Takt herunter 
zu teilen, dass soll man ja doch gerade nicht machen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.