13.07.2015 Views

ModuleWare Reference Guide - Hornad

ModuleWare Reference Guide - Hornad

ModuleWare Reference Guide - Hornad

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Memory PartsROM (rom)NoteIf the HEX file addresses a large ROM, the ROM table constructed in the HDL code willbe very large. You are advised to unset the Perform Checks option in the Checks tab ofthe Main Settings dialog box before generating HDL for a ROM component. If thisoption is set, the parser checks every line in the code (which may reach 500,000 lines)and HDL generation may be very slow.The actual record is a string of characters. For example::100000002e15a0e3000081e502d7a0e300a0a0e345For clarity, the following line shows the fields separated by spaces with alternate fields in bold::10 0000 00 2e15a0e3000081e502d7a0e300a0a0e3 45• In the example above, the "10" gives the length of data in the record. The data lengthfield indicates that it is #h10 bytes which is equivalent to 128 bits of data. Each byte istransferred to an entry in the ROM table referenced with a CASE statement. The HEXfile may contain records of different data lengths.• The "0000" is the starting address of the data in the record. The enumerated parameterendian_mode (LittleEndian, BigEndian) effects the way data within the ROM table issaved. In BigEndian mode, the most significant bit of the data is written first then theleast significant bit of the data whereas in LittleEndian mode, the least significant bit iswritten first.• The “00” is the type of record (“00” = data).• The "2e15a0e3000081e502d7a0e300a0a0e3" field contains the content of the record.For this example, if LittleEndian is used, the first data byte “e3” will be addressed inlocation 0. The last byte “2e” will be addressed in location 15. If BigEndian is used, thefirst data byte “2e” will be addressed in location 0 and the last byte “e3” will beaddressed in location 15.• The "45" represents the checksum field.ExampleThe data field 2e15a0e3000081e502d7a0e300a0a0e3 is converted to the following VHDLCASE statement when LittleEndian mode is set:CASE mw_I0addr_i ISWHEN 0 => mw_I0rom_table(0) mw_I0rom_table(1) mw_I0rom_table(2) mw_I0rom_table(15) mw_I0rom_table(n) ‘X’);END CASE;<strong>ModuleWare</strong> <strong>Reference</strong> Manual, Library Version 1.9 217September 18, 2008

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!