ICECORE

From ICE Enterprises
Jump to navigation Jump to search

file to file generic CORE library Midas wrapper

<in>     Input file (complex)
<out>    Output file (complex)
<func>   CORE library name (Case sensitive)
<P0..N>  Parameter key=value pairs

This command wraps any ICE-CORE library that can be called with a single input stream,
single output stream, and a generic list of parameters. The CORE library must be in the
$ICEROOT/core/<name> file.

The generic list of parameters will be called on the CORE library functions in the order
listed on the command line.  They can then be called during operation as real-time controls.

When run with /CORE=I for the ICE implementation of the core, the core must have been previously 
loaded onto the card by performing a reset on the card with the proper flags. For example: 

   PIC RESET PIC1AUTO /flags=PMFPGA=U

If the alias PIC1AUTO has two V6M processor modules, then this loads the file icev6m_hhu onto both
of them.  See the help on the PMFPGA flags for more info on load signatures.  

Then to run the "User" core control software on the core would look like:

  ICECORE/core=I infile outfile "User" P1=3 D:P8=.123 L:P9=10

The "User" core controller has a generic parameter set using the names P0 to P31. Each parameter
is the next 4 bytes in the register map starting at the base system register.  By default, parameters
are 4byte integers and the name must be preceded by an D: to be a double precision float.  It is up
to the underlying core library to validate each parameter.

Each parameter gets a widget (X-Midas) or setKey (Nextmidas) for real-time control.  

This primitive can be used in conjunction with a SOURCEPIC/SINKPIC command, where the dataflow
is handled by the SOURCE/SINKPIC and the ICECORE is simply for controlling the core's parameters.
Use /CORE=ICEX to invoke this mode. Call ICECORE after the SOURCE/SINKPIC call and leave the input
and output file parameters blank.  See the /TESTCORE branch in the SNAPPER macro for an example.

The ICECORE library defaults to using port CORE11 on card PIC1AUTO, or /COREDEV=PIC1AUTO:11.  

The creation of the auto alias is handled by the ICE AUTO command under NeXtMidas.  

To override the card name, use the /COREDEV=alias switch. 
To override the core port number, use the /COREDEV=alias:portnum switch.

Switches:
  /CORE=J|C|V|I   Type of core to run Java, Cpu, Verilog, or ICE
  /COREDEV=alias:port Device alias and core port to use if /CORE=V|I|G
  /IFMT=n         Override Input file format (SI,CI,SB,CB)
  /OFMT=n         Override Output file format (SI,CI,SB,CB)
  /DUMP=1|2|3     Readback parameter values at 1=open 2=close or 3=both