Gast
#948817
Hallo, ich möchte gern unter Quartus meinen Ram Inhalt initialisieren, dafür bietet die Software mir die möglichkeit, ein HEX File anzugeben. Nun habe ich leider Probleme bei der Erstellung eben dieser Datei. Mein bisheriges vorgehen: -Quartus projekt erstellen, Ram mit 256 Worten a 16 Bit erstellen und einbinden -ein binary erstellen, welches 512 byte enthält. -Konvertieren dieser datei mit bin2hex (unter windows) -dateipfad im Ram angeben und kompilieren. Dabei kamen folgende Warnings bei raus: Warning: Byte addressed memory initialization file "...256Words.hex" was read in the word-addressed format Warning: Memory depth value (256) in design file differs from memory depth value (496) in Memory Initialization File -- truncated remaining initial content value to fit RAM Warning: Width of data items in ...Count256Words.hex is greater than the memory width. Wrapping data items to subsequent addresses. Found 16 warnings, reporting 10 Warning: Data at line (1,2,3,4,5,6,7,8,9,10) of memory initialization file "...Count256Words.hex" is too wide to fit in one memory word. Wrapping data to subsequent addresses. Zusammengefasst: ich habe ein hexfile, in dem Bytes Adressiert werden, möcht aber eines haben, in dem Words (á 2 Byte) adressiert werden, zumindest interpretiere ich die Warnings so. Die fehlerhafte Initialisierung des rams äußert sich wie Folgt bei mir: die Adressbereiche von xxx10000-xxx11111 werden mit 0x0000 initialisiert bzw nicht initialisiert, davor und dahinter geht werden die Werte aus dem binary genommen. Wenn ich also ein binary nehme, indem ich 16 bit werte hochzähle, dann sollte ja unter jeder Speicheradresse die Speicheradresse hinterlegt sein. Beim AUslesen erhalte ich jedoch: speicheradresse -> wert 0x0f -> 0x000f 0x10 -> 0x0000 [...] 0x1f -> 0x0000 0x20 -> 0x0010 ... Hat jemand für mich einen guten Tip, wie ich korrekte Hex files erstellen kann? Ich hänge mein Hexfile noch einmal mit an. Vielen Dank, Martin