Gast
#3963117
Hallo zusammen, ich habe gerade eine Denkblockade und hoffe sie mit Eurer Hilfe lösen zu können. Ich bekomme Daten auf 16bit in einem bestimmten Adressraum gesendet. Dazu habe ich einen WR_VALID Puls. Diesen Daten haben immer auf der Startadresse ein Statuspaket, auf den folgenden 0 bis 63 Adressen Datenpakete und dann noch ein weiteres Statuspaket. Im ersten Statuspaket ist eine Information enthalten, wieviele Datenwörter gesendet werden, also auch auf welcher Adresse das letzte Statuspaket liegt. Die Daten kommen in der korrekten Reihenfolge, also Status1 - Daten- Stauts2. Nun muss ich eine Art "received vector" füllen, also welche Adresse bzw. welche Daten ich schon erhalten habe. Der Vektor hat also 1+64+1 Bit, damit auch die maximal mögliche Anzahl an Datenpaketen erfasst werden kann. Leider habe ich noch keine Möglichkeit gefunden, und genau da liegt meine Denkblockade, diese Vektorbits abhängig von einem Signal zu setzen. Signale dürfen nicht als Index eines anderen Vektors verwendet werden. Es sind nur konstante integer als RANGE zugelassen. Sonst hätte ich wohl sowas gemacht (Syntax vielleicht nicht 100% korrekt, geht ja eh nicht!):
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
Wenn die s_data_length immer konstant wäre, könnte ich eine case Anweisung mit 66 Zeilen schreiben und wäre fertig, nur leider ist es nicht konstant. Hat jemand eine Idee, wie ich das Problem lösen könnte? Vielen Dank! Ralf :)