write_content_to_memory (::quartus::insystem_memory_edit)
The following table displays information for the write_content_to_memory Tcl command:
Tcl Package and Version |
Belongs to ::quartus::insystem_memory_edit 1.0 |
|||
Syntax | write_content_to_memory [-h | -help] [-long_help] -content <content string> [-content_in_hex] -instance_index <instance index> -start_address <starting address> [-timeout <timeout> ] -word_count <word count> | |||
Arguments | -h | -help | Short help | ||
-long_help | Long help with examples and possible return values | |||
-content <content string> | A string that represents all word values concatenated together in order in either binary or hexadecimal format | |||
-content_in_hex | The memory content string is represented in hexadecimal format | |||
-instance_index <instance index> | Index of the editable memory instance to modify | |||
-start_address <starting address> | The lowest memory address to be modified | |||
-timeout <timeout> | amount of time in milliseconds allocated before write times out. Defaults to 10 seconds | |||
-word_count <word count> | The number of contiguous memory words to be modified | |||
Description |
Writes the data represented in the bit stream into the specified editable memory instance starting from the specified address. It returns the number of successful writes. The bit stream should be ordered by word from high address to low address, contiguously without gaps or delimiters. If the starting address is ADDR, and word count is N, the order is <word @ ADDR + N - 1> ... <word @ ADDR + 1><word @ ADDR> In each word, the MSB is on the left, LSB is on the right. The bit stream can be in either binary or hexadecimal. For example, if the word width is 8, and two words, 1 and 128, are written to address 0 and 1 respectively, the bitstream should be "1000000000000001" in binary or "8001" in hexadecimal. The TCL command is write_content_to_memory -instance_index 0 -start_address 0 -word_count 2 -content "1000000000000001" or write_content_to_memory -instance_index 0 -start_address 0 -word_count 2 -content "8001" -content_in_hex |
|||
Example Usage |
# Instance 0 is configured as {0 1024 8 RW ROM/RAM mem0} # Initiate a editing sequence begin_memory_edit -hardware_name "USB-Blaster \[USB-0\]" -device_name "@1: EP1S25/_HARDCOPY_FPGA_PROTOTYPE (0x020030DD)" # Write memory content using binary string write_content_to_memory -instance_index 0 -start_address 575 -word_count 2 -content "0000001011011100" -timeout 30000 # Read back memory content in binary string written puts [read_content_from_memory -instance_index 0 -start_address 575 -word_count 2 ] # Write memory content using hexadecimal string write_content_to_memory -instance_index 0 -start_address 575 -word_count 2 -content "E2F1" -content_in_hex # Read back memory content in hexadecimal string written puts [read_content_from_memory -instance_index 0 -start_address 575 -word_count 2 -content_in_hex] # End the editing sequence end_memory_edit |
|||
Return Value | Code Name | Code | String Return | |
TCL_OK | 0 | INFO: Operation successful | ||
TCL_ERROR | 1 | ERROR: Data specified in the string does not match the number of bits to update the memory of the specified number of words. | ||
TCL_ERROR | 1 | ERROR: A memory edit sequence has not been started. | ||
TCL_ERROR | 1 | ERROR: The specified word count and the starting address exceeds the specified memory buffer size. | ||
TCL_ERROR | 1 | ERROR: The specified editable memory instance index is invalid. | ||
TCL_ERROR | 1 | ERROR: The specified editable memory instance index is invalid. | ||
TCL_ERROR | 1 | ERROR: JTAG communication error is detected. It can be caused by the hardware failure or poor signal integrity in the JTAG chain. | ||
TCL_ERROR | 1 | ERROR: The device is locked by another application. |