TwoBit schrieb:
> Was uns dann nur schwer gefallen ist, also auch von der Denkweise her,
> wie wir Prozeduren wie CAN_REG_READ oder CAN_REG_WRITE wiederverwendbar
> machen können.
Vergiss "procedure" und "function" in diesem Projekt. Oder andersrum:
die einzige Prozedur, die du hier verwendest ist rising_edge().
Wiederverwendung von Hardware erfolgt über Komponenten. Aber es kann
eben schon mal nicht mehrere Komponenten mit einer Funktionalität eines
"Lese_Register" geben. Sondern es gibt nur 1 Hardware, die auf dieses
Register zugreifen kann. Und diese 1 Hardware muss nacheinander mit
passenden Werten gefüttert werden.
Un alles, was in ein FPGA einen zeitlichen Ablauf hat ("nacheinander")
braucht eine FSM. Die tut im einen Takt irgendwas, und evtl. im nächsten
Takt was Anderes (kleine Anmerkung: schon ein simpler Zähler ist eine
FSM).
TwoBit schrieb:
> Also wir haben tatsächlich mal mit einfachen Sachen angefangen
Welches Niveau?
> und uns einige Tutorials vorher angeschaut.
"Anschauen" hilft da wenig. Fehler muss man selber machen... ;-)
> Allerdings mit einer RS232
> Schnittstelle haben wir uns vorher nicht auseinander gesetzt.
Bei so einer seriellen Schnittstelle wäre genau sowas mit der
Weiterverwendung der empfangenen Daten auch aufgetreten. Nur nicht ganz
so geballt...
Mein Vorschlag: beschreibt erst mal 1 Zugriff auf 1 Byte. Wenn der
klappt (in Simulation und Realität), dann überlegt eine Schaltung, die
die Werte für diesen Zugriff ändern könnte. Und diese Schaltung
beschreibt ihr dann mit VHDL.
Seht euch mal den Beitrag "Re: EA DOG-M initialisieren"
an. Die Komponente LCD_CTRL entpricht hier etwa eurem Verilog CAN
Controller. Und dieser LCD Controller wird als Komponente im Toplevel
top_LCD instantiiert und bon dort aus auch aus "angesprochen"...