Help: ICE_CORES
This file contains a brief description of the current interface for user
FPGA cores within the ICE FPGA architecture. An ICE Core is an FPGA module
with a set of function registers, two dataflow ports, and a test output port.
The verilog implementation signature looks like this:
module #(PORT,IBW,OBW) userengine
(sclk,srst, scs,saddr, swr,swrbus, srd,srdbus, sack,
ioclk, istat,iena,isel,ibus, ostat,oena,osel,obus, test);
or
module #(PORT,IBW,OBW) mcengine
(sclk,srst, scs,saddr, swr,swrbus, srd,srdbus, sack,
ioclk, istat,iena,isel,ibus, ostat,oena,osel,obus, test);
The MultiCore engines are used to handle channelized functions.
They can contain 1-16 single channel cores using a common input stream.
or 1-16 single channel cores combined into a common output stream.
Noramlly, the mcengine.v in the ICE tree is used to call N userengines.
If you have access to the ICE FPGA development tree, the example files are
$ICEROOT/code/soc/user/userengine.v and $ICEROOT/code/soc/user/User.jv .
The userengine.v code is an example of a basic core. The control interface
consists of eight 32 bit standard registers and eight user defined registers
that can be manipulated with standard configuration flags. For example:
flags = "ICEPIC,...,CORE=(DEC=3,USER1=0x80,USER2=123)
or
ICECORE/core=I ifile ofile "HOC" DEC=3 USER1=0x80 USER2=123
or
ICECORE/core=I ifile ofile "HOC" /cfg={DEC=3,USER1=0x80,USER2=123}
where "HOC" is a generic control wrapper for a Hardware-Only-Core. These cores
can call any other verilog callable modules including VHDL, NGC, or DCP cores.
The User.jv code is an example of a JVCC core. The control interfase consists
of auto-generated C code that is called using the ICECORE primitive or dynamically
linked into the ICE library at runtime with flags. For example:
flags = "ICEPIC,...,CORE=(NAME=AWG,MOD=QPSK,BAUD=1e6,FEC=TCM23)
or
ICECORE/core=I ifile ofile "AWG" MOD=QPSK BAUD=1e6 FEC=TCM23
In the Midas environment, the ICECORE primitive generates run-time controls
for each of its parameters where the flags implementation does not.
INSTALLATION - Installing the ICE tree for Core development
SPICE - Signal Processing Integrated Coding Environment development GUI
SETUP - Setting up a basic core for use in a dataflow
NAMING - Core naming rules
ADDRESSING - Register addressing rules
ROUTING - data routing rules
DMA - DMA Crossbar functionality
TRACER - Embedded FPGA debug trace mechanism