|
UPL Block
The User Programmable Logic (UPL) block enables users to develop
their own custom logic inside of CoSine. Located in the primary
data path with multiple points of simultaneous access, the UPL is
intended for functions such as FFT’s, FIR filters, data reduction,
convolution, down conversion and IQ Demodulation.
Multiple points of
high speed access to the UPL block ensure efficient data movement
while providing flexibility and reducing complexity. UPL logic has
direct control and accessibility over its local DMA engine, the QDR
II SRAM memory controller, and other associated interfaces that were
designed so that they could be easily integrated with other custom
functionality. Control, status, and interrupt paths are supported
between the UPL and other CoSine interfaces.
Fixed Timing
Constraints
Providing user’s the power of a true System-On-Chip, along with a
platform that gives them the ability to focus on their application
specific logic has been a key consideration in CoSine’s architecture
and development. Towards this end, with the exception of the UPL
block and its associated QDR controller and local DMA engine, the
CoSine bitstream is supplied with isolated clock domains and fixed
timing constraints. This strategy gives the flexibility and freedom
to program custom logic in the UPL block but not spend several weeks
balancing timing constraints and resource utilization for other
elements of the device.
The UPL has
several fixed, predefined interfaces to the rest of the CoSine
device which are defined in the VHDL wrapper file. Outside of the
UPL related blocks, the timing of the rest of the device has been
pre-established by area and location constraints for critical
portions based on the reference 1024 FFT UPL block. Extensive
floorplanning has been used to maximize overall utilization of the
Virtex-II Pro 2VP70 and ensure that timing is maintained when new
custom logic is introduced into the UPL. After integration is
complete, the user is then responsible for ensuring that the UPL
block and associated elements meet system timing requirements as
established by the CoSine user constraint file (.ucf file).
CoSine
Development Kit and MM-333D Board Station
Programming in the UPL Block requires purchasing the CoSine
Development Kit. Included in this package are the CoSine bitstream,
MM-333D Board Station, Developer’s Manual, VHDL UPL wrapper, and
Demo Program. Also included is a full suite of diagnostic C test
code that verifies correctness of FFT’d data.
In addition to
hand coded VHDL, the CoSine UPL block supports the use of MATLAB’s
Simulink and Xilinx’s System Generator.
Xilinx’s ChipScope
is supported for in-chip logic debugging. A host of other
associated features and capabilities are described in more detail in
the CoSine Development Kit.
Developer’s
Manual
The primary focus of the Developer’s Manual is
centered around descriptions of the UPL VHDL wrapper and information
required to develop VHDL in the UPL block.
It describes all
interfaces from the UPL block to the rest of the CoSine FPGA
bitstream and the QDR II SRAM memory controller. It illustrates
different UPL resource usages and implementations, such as with
regards FIFO’s and memory‑mapped accesses.
Also included are
descriptions of DMA operations that pipe data through the UPL block
and illustrations of how signals are used for data transfer.
Software interfaces are documented on how the embedded PowerPC’s can
be used to initialize, command, and control the UPL.
Demo Program
The UPL block is intended for customer application specific logic,
but to demonstrate CoSine’s capabilities and the UPL block’s
functional interfaces a demo program is provided that implements an
off-the-shelf Xilinx 1024 Radix-4 streaming FFT as an example
application.
This program
demonstrates full system capabilities, including configuration and
control by the PowerPC with DMA transfers from external interfaces.
The QDR II SRAM memory, internal Block RAMs, FIFO’s, and multiplexed
accesses are also utilized to buffer the 1024 FFT data.
UPL DMA
The UPL DMA serves a critical function because it reduces the number
of data movements in the system. Using a single DMA operation or
DMA chain to move and process the data instead of transfers to and
from additional external processor nodes, the UPL DMA utilizes a
proven interface to move data between the UPL block and its
associated QDR II SRAM. This allows developers to focus on the UPL
implementation instead of the logic required to perform the data
movements.
QDR II SRAM
Interfacing to the UPL block, CoSine includes a dedicated QDR
controller with 32MB of QDR II SRAM memory. Especially applicable
to fixed point operations, QDR offers the unique characteristic of
simultaneous read/write operations.
For many DSP
functions, available block RAM within the Virtex-II Pro 2VP70 is
sufficient. But for requirements that exceed the available internal
block RAM, the 32MB of QDR is a high speed, powerful resource for
multiply/accumulate functions and rapid parallel processing.
The memory can be
used by the UPL for FIFOs, corner‑turning memory, coefficient
storage, or other, implementation dependent uses.
An optional QDR
parity module is offered outside of the QDR controller for greater
flexibility. |