ich möchte in meiner Testbench mir gern einen String zusammenbauen und diesen anschließend mit einem Report Statement ausgeben. Leider stehe ich gerade auf dem Schlauch, wie ich das am Besten anstelle. So schon mal nicht ;-)
Aktuell nutze ich Questsasim mit VHDL2008, wobei das ein VHDL-typisches Problem ist und m.E. simulatorunabhängig.
In der Zeile 7 würde der Simulator melden, dass der Range nicht passt (links 1024, rechts 1024 + 7 oder 8 (also die Länge von "World ").
Ich hab schon überlegt, ob mir eine line weiterhilft, da kann ich ja mittels write werte anhängen, allerdings weiß ich nicht, wie ich eine line in einen String konvertieren kann, damit er mittels Report ausgegeben werden kann.
integer'image() funktioniert auch, wobei ich mir mit VHDL2008 die to_string() Funktion angewöhnt habe.
P.S. in meinem Beispiel fehlt am Ende das report statement:
Aber warum nicht einfach so:
report("Hello " & "World" & to_string(c_MyValue)) severity note;
In meinem Test sammle ich zu verschiedenen Zeitpunkten Informationen, die im report statement als eine Zeile ausgegeben werden sollen. Zum Zeitpunkt des Reset Statements weiß ich aber nicht mehr, wie viele und welche Informationen im Laufe des Testcases gesammelt habe. Daher der Wunsch, eine report Zeile stückweise zusammensetzen zu können.
Simuliert wunderprächtigst. Der String ist eben fest 1024 Zeichen lang. Wenn man da hinten was anhängen will, dann muss man den String schieben und vorne was weglassen.
Simuliert wunderprächtigst. Der String ist eben fest 1024 Zeichen lang.
Wenn man da hinten was anhängen will, dann muss man den String schieben
und vorne was weglassen.
Na ja. Wir haben das Jahr 2023, ganze Zeitschriftenartikel, Diplomarbeiten und Abiturprüfungen werden von AIs geschrieben, aber unsereins soll Buchstaben abzählen wie vor 100 Jahren?
Ich würde - wenn ich so was machen wollte - wenigstens so was: https://github.com/kevinpt/vhdl-extras verwenden. Dort gibt es eine (soweit das in VHDL eben geht) VHDL-Implementierung des unbounded strings Pakets "Ada.Strings.Unbounded".
Auch nicht unbedingt Raketentechnik, aber das bringt uns wenigstens auf den Stand der Siebziger.
Wenn du schon feste Strings hast wie hier das "Hello " dann kannst du beim Tippen mitzählen. Oder den String als Konstante ablegen. Oder beim Report den noch undefinierten String mit einem & an den konstanten String ranhängen. Ich finde es macht wenig Sinn da einen langen String mit 1024 Zeichen haben zu wollen. Wo ist der Mehrwert? Ich würde immer dort wo Informationen anfallen die ich haben will diese sofort reporten. Im Terminal sind das dann viele Zeilen, aber das kann man ja schön formatieren.
Wenn man viel Kommunizieren muss, sind mir die viel lieber
als die, die einen Satz qualsam und langvoll mit dutzenden
"Aeeeh" fuellen muessen, weil deren (imbaziles) Gehirn beim
Sprechen nicht mit dem Denken nachkommt.
Und den lateinischen Wortstamm vom "konkatinieren" kannst du
dabei auch gleich nachschlagen.
Es ist mitnichten Denglisch.
Einem String wird dabei eigentlich zu viel der Ehre zuteil.
Die beiden Teile werden ja nur "zusammengepappt".
Im Gegensatz zu einer Liste die danach u.U. Vorwaerts- und
Rueckwaertsverkettung kennt.
Eine eigene Frage?
Dieser Thread ist über 3 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.