
27
The PicoBlaze data address space is only 256 bytes. If you look at the processor documents from Xilinx
you’ll find this called I/O rather than data. In our case the data space connects to 1K bytes of internal block
RAM using three additional banking bits implemented as register. Access to the entire 1K of RAM as well
as 8 registers is accomplished with some stunt logic. Registers normally appear at addresses 0xf8 through
0xff regardless of the state of the three banking bits. When register access is enabled, writes are
shadowed in the block RAM at 0x6f8 through 0x6ff regardless of the state of the three banking bits.
Register access can be disabled by reading or writing location 0xf7 and re-enabled by reading or writing
locations 0 through 0xf6. In this manner a program can sequentially access the entire RAM by temporarily
disabling register access. A special bit, bit 0 of register 0xff toggles each time any read is performed. This
allows a simple test of the current state of the register access enable by reading location 0xff twice and
comparing the two values.
The high 256 bytes, from 0x700 through 0x7ff, are dual-ported with the I2C slave unit. This provides a
simple interface for introducing commands via USB.
“Fget8” Speed-up logic
Because the PicoBlaze runs relatively slow, there is a small sequencer to speed up FPGA configuration
and flash data read. This is kicked off by a write to register 0xfe with bit 6 set. The sequencer runs the
flash clock for 8 cycles, and if the fpga CCLK was high, copies the flash DOUT output to the FPGA
configuration DIN input cycling the FPGA CCLK 8 cycles as well. The PicoBlaze is responsible for making
sure the flash is in the appropriate state when this sequencer is started. Generally it only speeds up the
inner loop of FPGA configuration and flash data read, but this is where the largest time is spent. Using the
algorithm from previous PicoBlaze designs (Video Combiners) and bit wiggling, the best data rate for FPGA
download would be about 1.5 MHz for CCLK. With the “Fget8” speed-up logic the rate should be about 9
MHz. This allows even large FPGA’s to be loaded in under 2 seconds.
PicoBlaze Memory Map
Address Description
000 - 1FF
Camera state storage. Sensor registers shadow locations in 000 - 0FF
200 - 3FF
Header storage. Loaded from flash page 00 at power-up.
400 - 6F7
Working memory for host commands.
6F8 - 6FF
Register shadow memory for readback of otherwise write-only bits.
700 - 7FF
I
2
C shared area.
PicoBlaze Register Map
All of the following registers can only be accessed when the register access enable signal is set. This is
accomplished by making any access to locations 00 through 0xf6. Any access to location 0xf7 clears the
register access enable signal. Accesses within the 0xf8 through 0xff register area do not affect the state of
the register access enable signal.
0xF8
Baud Rate Period, low 8 bits and Frame Count.
0xF9
Baud Rate Period, high 8 bits and Fget8 data.
The Baud rate is derived by dividing the pixel clock frequency by the number entered here. In the
MV13, the pixel clock runs at 66.667 MHz and the default setting for 9600 baud would be 6944.
The last value written to the Baud Rate high 8-bits register can be read back from scratchpad
location 0x2f9 when register access is disabled. When register access is enabled, reading 0xF9
returns the byte of flash data from the “Fget8” sequencer. Reading 0xF8 returns the frame count in
four successive reads. Frame count is latched whenever address 0x00 is read.
0xFA Sensor
Control.
Bits are:
7
Read-only “Y” pending. Indicates that a CC2 event has occurred and the PicoBlaze should
forward it to the Data FPGA as a “Y” command.
6
Read-only “Z” pending. Indicates that a CC3 event has occurred and the PicoBlaze should
forward it to the Data FPGA as a “Z” command.
5
Reserved.
Содержание FastCamera13
Страница 1: ...FASTCAMERA SERIES FASTCAMERA13 USER S MANUAL FVM 50013...
Страница 32: ...32...