Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

srec_vmem(5) [debian man page]

srec_vmem(5)							File Formats Manual						      srec_vmem(5)

NAME
srec_vmem - vmem file format DESCRIPTION
This format is the Verilog VMEM format. This is a hex format suitable for loading into Verilog simulations using the $readmemh call. The text file to be read shall contain only the following: White space (spaces, new lines, tabs, and form-feeds) Comments (both types of C++ comment are allowed) Hexadecimal numbers White space and/or comments shall be used to separate the numbers. In the following discussion, the term "address" refers to an index into the array that models the memory. As the file is read, each number encountered is assigned to a successive word element of the memory. Addressing is controlled both by specifying start and/or finish addresses in the system task invocation and by specifying addresses in the data file. When addresses appear in the data file, the format is an "at" character (@) followed by a hexadecimal number as follows: @hh...h Both uppercase and lowercase digits are allowed in the number. No white space is allowed between the @ and the number. As many address specifications as needed within the data file can be used. When the system task encounters an address specification, it loads subsequent data starting at that memory address. Commentary There is no checksum in this format, which can generate false positives when guessing file formats on input. There is no indication of the word size in the file, since it is dependent on the word type of the Verilog memory it is being read into. SRecord will guess the word size based on the number of digits it sees in the numbers, but this is only a guess. SRecord will also assume that the numbers are to be loaded big-endian; that is, most significant byte (first byte seen) into the lowest address covered by the word. You can use the -byte-swap filter to change the byte order; it takes an optional width of bytes to swap within. Size Multiplier In general, binary data will expand in sized by approximately 2.9 times (32-bit), 3.1 times (16-bit) or 3.6 times (8-bit) when represented with this format. EXAMPLE
Here is an example Verilog VMEM file. It contains the data "Hello, World[rq] to be loaded at address 0x1000. @00000400 48656C6C 6F2C2057 6F726C64 0AFFFFFF REFERENCE
IEEE P1364-2005/D2, Standard for Verilog Hardware Description Language (Draft), section 17.2.8 "Loading memory data from a file", p. 295. Copyright (C) 2003 IEEE http://www.boyd.com/1364/ http://www.boyd.com/1364/1364-2005-d2.pdf.gz COPYRIGHT
srec_cat version 1.58 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Peter Miller The srec_cat program comes with ABSOLUTELY NO WARRANTY; for details use the 'srec_cat -VERSion License' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the 'srec_cat -VERSion License' command. AUTHOR
Peter Miller E-Mail: pmiller@opensource.org.au //* WWW: http://miller.emu.id.au/pmiller/ Reference Manual SRecord srec_vmem(5)

Check Out this Related Man Page

srec_stewie(5)							File Formats Manual						    srec_stewie(5)

NAME
srec_stewie - Stewie's binary file format DESCRIPTION
If you have a URL for documentation of this format, please let me know. Any resemblance to the Motorola S-Record is superficial, and extends only to the data records. The header records and termination records are completely different. None of the other Motorola S-Records record type are available. The Records All records start with an ASCII capital S character, value 0x53, followed by a type specifier byte. All records consist of binary bytes. The Header Record Each file starts with a fixed four byte header record. +-----+------+------+------+ |0x53 | 0x30 | 0x30 | 0x33 | +-----+------+------+------+ The Data Records Each data record consists of 5 fields. These are the type field, length field, address field, data field, and the checksum. The lines always start with a capital S character. +-----+------+---------------+---------+------+----------+ |0x53 | Type | Record Length | Address | Data | Checksum | +-----+------+---------------+---------+------+----------+ Type The type field is a one byte field that specifies whether the record has a two-byte address field (0x31), a three-byte address field (0x32) or a four-byte address field (0x33). The address is big-endian. Record Length The record length field is a one byte field that specifies the number of bytes in the record following this byte. Address This is a 2-, 3- or 4-byte address that specifies where the data in the record is to be loaded into memory. Data The data field contains the executable code, memory-loadable data or descriptive information to be transferred. Checksum The checksum is a one byte field that represents the least significant byte of the one's complement of the sum of the values repre- sented by the bytes making up the record's length, address, and data fields. The Termination Record Each file ends with a fixed two byte termination record. +-----+------+ |0x53 | 0x38 | +-----+------+ Size Multiplier In general, binary data will expand in sized by approximately 1.2 times when represented with this format. EXAMPLE
Here is an hex-dump example file. It contains the data "Hello, World[rq] to be loaded at address 0. 0000: 53 30 30 33 53 31 10 00 00 48 65 6C 6C 6F 2C 20 S003S1...Hello, 0010: 57 6F 72 6C 64 0A 9D 53 38 World..S8 COPYRIGHT
srec_cat version 1.58 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Peter Miller The srec_cat program comes with ABSOLUTELY NO WARRANTY; for details use the 'srec_cat -VERSion License' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the 'srec_cat -VERSion License' command. AUTHOR
Peter Miller E-Mail: pmiller@opensource.org.au //* WWW: http://miller.emu.id.au/pmiller/ Reference Manual SRecord srec_stewie(5)
Man Page