Wiener VM-USB User Manual page 54

Hide thumbs Also See for VM-USB:
Table of Contents

Advertisement

APPENDIX A: Programming and the Use of Flash Memory
The VM-USB stores the FPGA configuration files in a 1-MByte flash memory (organized as
two 512-kByte ICs). This size of the memory allows one to accommodate up to 4
configuration files of an XC3S400 FPGA, such as used in VM-USB. The individual address
spaces of the four possible configuration files are selected by the state of two bits a front-
panel rotary selector switch. This rotary switch provides, in fact, for a 3-bit (1 out of 8)
selection, with third bit being used to select one of the two possible modes of operation –
"Configuring" (C) and "Programming" (P) modes, respectively. Normally, VM-USB is
operated in the C (C1-C4 labels) mode, with the FPGA cold-booting itself upon power up
from a selected segment of the memory, identified by the digit of the label.
The design of the VM-USB allows one to reprogram any of the four segments of the flash
memory via the USB interface. The programming and reprogramming is possible only in the
Programming mode, selected by any of the P* settings (P1-P4 labels) of the rotary selector
and when the FPGA is kept in a reset mode by the boot manager CPLD, which is a default
after cold-booting in the P mode (red "Fail" LED on). While in the P mode, the manager
CPLD can be instructed, via the USB interface, to release the FPGA from reset. When
released from the reset state, the FPGA will attempt to boot itself from the selected segment
of flash memory, with a successful boot indicated by the red "Fail" LED turning off.
Subsequently, but only upon a successful boot, the CPLD can be instructed to assert again
the reset signal for the FPGA, allowing one to undertake another programming sequence.
While the VM-USB can be operated in the P mode, with the FPGA reset released, it is
recommended to switch to a respective C setting for a regular operation.
In fact, there are only two types of operations specific to P mode – programming of a 256-
byte sector of the flash memory (with automatic address increment) and toggling of the reset
status of the FPGA. Accordingly, there are two types of data buffers that must be sent to the
USB port by the host to perform the desired operation.
The sector programming buffer is 518 bytes long and contains three "sector unlock"
(AT29LV040 software protection override) data bytes and the 256 configuration file bytes in
odd bytes (counting from 0), with all even bytes being disregarded:
0
1
2
3
4
5
2*n+6
2*n+7
The FPGA "reset toggle" buffer is only two bytes long with the first byte being disregarded
and the second one being equal to 0'FF or decimal 255.
WIENER, Plein & Baus GmbH
0'**
don't care
0'AA
first "sector unlock" code
0'**
0'55
second "sector unlock" code
0'**
0'A0
third "sector unlock" code
0'**
where n = 0 - 255
byte(k)
consecutive byte of the configuration file
54
www.wiener-d.com

Advertisement

Table of Contents
loading

Related Products for Wiener VM-USB

Table of Contents