Gast
#298419
wie kann ich mit vhdl am besten serielle daten in ein fpga register einlesen? die daten sollen nach einem freigabesignal mit einem bestimmten takt eingelesen werden.
|
Anzeige
|
serielle daten in ein schieberegister einlesen
Gast
#298419
wie kann ich mit vhdl am besten serielle daten in ein fpga register einlesen? die daten sollen nach einem freigabesignal mit einem bestimmten takt eingelesen werden.
Gast
#298420
shiftregister <= shiftregister(breite-2 downto 0) & dateneingang; So dann hole ich jetzt mal den Thread hier aus der Versenkung: Daniel R. wrote:
Wie funktioniert diese Anweisung von der Logik her? Also was hier mit dem Signal geschieht ist mir klar und das er funktioniert hab ich auch schon getestet, aber ich kann mir nicht Vorstellen wie der "Ablauf" ist -wie das Signal durch den Block läuft, vorallem wie sich der "Zähler eins weiter stellt-. Vom Verständnis her müsste der Code doch ähnlich funktionieren wie folgendes:
Gruß Mark
Gast
#1062314
> aber ich kann mir nicht Vorstellen wie der "Ablauf" ist > -wie das Signal durch den Block läuft, vorallem wie sich der "Zähler > eins weiter stellt-. Da gibt es keinen Zähler. Der Code beschreibt eine Kette von Registern, und bei der Taktflanke holt sich jedes den Wert vom Nachbarn mit der Nummer eins kleiner. Weil das alles gleichzeitig passiert geht auch kein Wert verloren. > Vom Verständnis her müsste der Code doch ähnlich funktionieren wie > folgendes: Ja, das macht genau das selbe und ist nur in lang ausgeschrieben. Und syntaktisch nicht ganz einwandfrei ;) Daniels eine Codezeile ist natürlich nicht vollständig: Die muss in einen getakteten Prozess. Dann ist sie nichts anderes als deine vier Zeilen q()... in einer zusammengefasst. Morin wrote: > Da gibt es keinen Zähler. Der Code beschreibt eine Kette von Registern, > und bei der Taktflanke holt sich jedes den Wert vom Nachbarn mit der > Nummer eins kleiner. Weil das alles gleichzeitig passiert geht auch kein > Wert verloren. Ja ok das ist ja wenigstens schon ein wenig einsichtlicher. Aber warum soll die breite dann breite -2 sein ? > Ja, das macht genau das selbe und ist nur in lang ausgeschrieben. Und > syntaktisch nicht ganz einwandfrei ;) Ging ja nur ums Prinzip O:-)
Gast
#1063479
Ja ok das ist ja wenigstens schon ein wenig einsichtlicher. Aber warum soll die breite dann breite -2 sein ? breite ist zb. bei einem 8-Bit register 7 (ergibt Bit 7,6,5,4,3,2,1,0), also 8-Bit. Nun willst ja etwas an dein Register ranhängen, aber hinterher müssen es immer noch 8 Bit sein. Deshalb shiftregister <= shiftregister(breite-2 downto 0) & dateneingang; oder auch shiftregister <= shiftregister(breite-1 downto 1) & dateneingang; den Unterschied müsstest du selbst erkennen. Tip: LSB, MSB Volker Wobei
recht sinnfrei ist, denn das könnte ich auch so schreiben:
Evtl. war sowas gemeint:
Damit hat "shiftregister" dann auch wieder seinen Namen verdient ;-)
Gast
#1063564
@Lothar, klar hab ich das so gemeint, danke! hab mal wieder zu schnell gepostet. Volker Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|