<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ice-online.com/index.php?action=history&amp;feed=atom&amp;title=ICE_Help_GENERAL</id>
	<title>ICE Help GENERAL - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ice-online.com/index.php?action=history&amp;feed=atom&amp;title=ICE_Help_GENERAL"/>
	<link rel="alternate" type="text/html" href="https://wiki.ice-online.com/index.php?title=ICE_Help_GENERAL&amp;action=history"/>
	<updated>2026-06-15T11:49:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://wiki.ice-online.com/index.php?title=ICE_Help_GENERAL&amp;diff=559&amp;oldid=prev</id>
		<title>ConvertBot: General (collection of concepts &amp; features)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ice-online.com/index.php?title=ICE_Help_GENERAL&amp;diff=559&amp;oldid=prev"/>
		<updated>2020-04-27T18:33:00Z</updated>

		<summary type="html">&lt;p&gt;General (collection of concepts &amp;amp; features)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;background-color: #eef9ff; border: 1px solid #999; padding: 10px;&amp;quot;&amp;gt;[[ICE_Help|&amp;amp;uarr; ''Go to the full list of ICE Help pages'']].&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
'''Summary:''' General (collection of concepts &amp;amp; features)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A brief description of the general features of the ICE family of DSP cards.&lt;br /&gt;
&lt;br /&gt;
=== PERFORMANCE - Cost/Performance benefits&amp;lt;span id=&amp;quot;PERFORMANCE&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The ICE family of Digital Signal Processing boards are designed to deliver&lt;br /&gt;
the highest performance at costs in line with Personal Computer budgets. &lt;br /&gt;
For more information about what each card can do, [[ICE_Help_CARDS|see the HELP CARDS]] entry.  &lt;br /&gt;
For current pricing, visit www.ice-online.com.&lt;br /&gt;
&lt;br /&gt;
=== SCALABILITY - Cards, Chassis, and Interconnects&amp;lt;span id=&amp;quot;SCALABILITY&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The ICE family of DSP cards are sized to fit in a PC chassis. The ICE-PIC and&lt;br /&gt;
ICE-MBT series are PCI devices.  The ICE-SLIC series are Cardbus/PC-Card devices.&lt;br /&gt;
The ICE-NIC series are external devices connected to a host via Gigabit ethernet.&lt;br /&gt;
&lt;br /&gt;
=== FLEXIBILITY - Programmable Hardware Concepts&amp;lt;span id=&amp;quot;FLEXIBILITY&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The 16-bit digital inputs are fed directly into an Field Programmable Gate &lt;br /&gt;
Array.  This part can be re-programmed to perform application specific front&lt;br /&gt;
end bit processing.  It is then fed into a SHARC or PowerPC DSP for further &lt;br /&gt;
processing before it is DMA'd into the host computer.  The DSP is programmed &lt;br /&gt;
in C or assembly.  &lt;br /&gt;
&lt;br /&gt;
Standard configurations supported by the default boot code include 1,4,8, &lt;br /&gt;
and 16 bit data packing, various acquisition triggers, and data gates. &lt;br /&gt;
&lt;br /&gt;
Non-standard configurations might include feeding 8 pairs of clock and data&lt;br /&gt;
into a 16 bit input module, or demultiplexing a serial bit stream for follow&lt;br /&gt;
on controller processing.&lt;br /&gt;
&lt;br /&gt;
The module sites include a set of master/slave pins which can be used to strap&lt;br /&gt;
two modules to begin acquisition/playback on the same clock.  The Series-3 and &lt;br /&gt;
later cards have external access to these signals to synchronize multiple cards.&lt;br /&gt;
&lt;br /&gt;
=== TIMECODE - Handling Embedded TimeCode&amp;lt;span id=&amp;quot;TIMECODE&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Digital time code embedded in the input stream is processed by library routines &lt;br /&gt;
that run on the host computer.  Double clutch timecode is handled automatically.&lt;br /&gt;
&lt;br /&gt;
When acquiring data, the timecode bit from the raw input is processed in the &lt;br /&gt;
FPGA with a defined Barker code. The timecode is tagged with the &lt;br /&gt;
sample number and the last two stored in the FPGA's memory.  Host code queries &lt;br /&gt;
the FPGA for this information and maps the timecode to a specified index in the &lt;br /&gt;
host acquisition buffer.  This allows time tagging 8 or 16 bit packed data, &lt;br /&gt;
as well as the on-board tuner output.  The delay through the tuner chips is&lt;br /&gt;
is compensated for in the host software. [[ICE_Help_ICELIB#PIC_TC|See HELP PIC_TC]].&lt;br /&gt;
&lt;br /&gt;
Digital IRIG-B input to the external trigger port is processed by the IOC FPGA&lt;br /&gt;
into a barker code and 32 bits of data much like the other digital time code &lt;br /&gt;
standards.  The accuracy is about 100uS on most GPS receivers.  The A2Dr7&lt;br /&gt;
modules have an optional 1PPS port that can be used to refine the measurement&lt;br /&gt;
to the accuracy of the 1PPS +- 10nS.&lt;br /&gt;
&lt;br /&gt;
If a computer has NTP enabled (Network Time Protocol), only the 1PPS is needed&lt;br /&gt;
to provide and accurate time stamp.&lt;br /&gt;
&lt;br /&gt;
SDDS embeds the timecode in a packet header.  This is read by the IOC and &lt;br /&gt;
handled downstream in the same way embedded serialized timecode is handled.&lt;br /&gt;
&lt;br /&gt;
The PIC5 series can also process serialized SDN timecode embedded in the SDDS&lt;br /&gt;
payload section.  To enable this, simply specify TC=SDN0 (or TC=SDN3 for some&lt;br /&gt;
tape playback scenarios).&lt;br /&gt;
&lt;br /&gt;
The PIC4 series handles this case with special setup steps.  The I/O Module&lt;br /&gt;
must use the RXSDDSDATA flag to to eat the SDDS packet headers and present the&lt;br /&gt;
PIC4 with normal 16 bit data.  This is then processed by the normal IOC=II or &lt;br /&gt;
IOC=IO FPGA load which handles the SDN timecode.  Since the default download &lt;br /&gt;
for an SDDS module is IIS or IOS, the IOC code must be specified in the card reset.&lt;br /&gt;
&lt;br /&gt;
=== OVERSAMPLING - Upsampling Techniques for Digital Tuners&amp;lt;span id=&amp;quot;OVERSAMPLING&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Digital Tuner chips typically have a fixed lower end to the decimation they&lt;br /&gt;
support.  This is usually limited by the number of filter taps it can compute &lt;br /&gt;
per output sample.  At low input clock rates, the chips multipliers are not &lt;br /&gt;
used efficiently, unnecessarily limiting the output bandwidth.  One technique&lt;br /&gt;
to use more of the chip is to resample the input at a higher rate so there are&lt;br /&gt;
more clock cycles available per output sample.  The simplest form is to insert&lt;br /&gt;
a fixed number of zeros between each input sample.  This has the affect of &lt;br /&gt;
duplicating the input spectrum N times, where N is the number of zeros &lt;br /&gt;
inserted per sample.&lt;br /&gt;
&lt;br /&gt;
To make software more generic, oversampling is applied to the tuner ports by &lt;br /&gt;
setting the oversampling rate that the tuner inputs will be seeing before the&lt;br /&gt;
tuner port is set up.  The only affect on the tuner port will be to relax the &lt;br /&gt;
minimum decimation.  The gain loss from the zero insertion is compensated for&lt;br /&gt;
in the pic_tuner library.&lt;br /&gt;
&lt;br /&gt;
The oversampling circuit can also be used to shield the tuner chips from clock&lt;br /&gt;
irregularities.  When digital inputs are switched or tape playback machines loose&lt;br /&gt;
signal, the clock presented to the ICE-PIC may contain glitches that the tuner&lt;br /&gt;
chips cannot recover from.  With an oversampling factor = 1, the input clock &lt;br /&gt;
is conditioned by the IOC gate array to keep glitches from affecting the tuners.&lt;br /&gt;
&lt;br /&gt;
An oversampling factor = 2, inserts 1 zero between each input sample.&lt;br /&gt;
&lt;br /&gt;
The input clock must be &amp;lt; 20MHz to apply the OVSR=1 conditioning.&lt;br /&gt;
The oversampled rate (inputrate*OVSR) must be &amp;lt; 40MHz on series 3 cards.&lt;br /&gt;
The oversampled rate (inputrate*OVSR) must be &amp;lt;= 100MHz on series 4 cards.&lt;br /&gt;
&lt;br /&gt;
=== RESAMPLING - Resampling Techniques for Digital Tuners&amp;lt;span id=&amp;quot;RESAMPLING&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The GrayChip 4016 tuner chips have an optional digital resampler that can be&lt;br /&gt;
applied after the Tune-Filter-Decimate stages.  This can be used to create&lt;br /&gt;
baud synchronous sample rates for demodulators or 8000Hz for VGC extraction.  &lt;br /&gt;
The filters from the GrayChip web site are available as Midas files in the &lt;br /&gt;
DAT directory of the ice tree.  The GC4016 user guide has a detailed &lt;br /&gt;
discussion on the resampler algorithm.  &lt;br /&gt;
&lt;br /&gt;
In short, the tuner output is oversampled by inserting NDELAY-1 zeros between&lt;br /&gt;
each tuner output sample.  The resampling ratio is used to determine which of the &lt;br /&gt;
NDELAY fractional sample points to use for each resampler output and runs an NTAP &lt;br /&gt;
filter on that point.  The filters in the ice dat directory are actually NDELAY*NTAP&lt;br /&gt;
point symmetric filters.  We call it an NTAP filter because only NTAP of the points&lt;br /&gt;
need to be computed since only one in NDELAY taps have non-zero data values.  &lt;br /&gt;
The phase jitter introduced by this technique reduces the SNR to about 40dB.&lt;br /&gt;
&lt;br /&gt;
The pic_loadfile(), NDELAY=n flag, RESAMP flag and pic_setKey(KEY_RATIO) function &lt;br /&gt;
are used to setup the resampler.  The resampler ratio is defined as desired output&lt;br /&gt;
sample rate divided by the tuner output sample rate.&lt;br /&gt;
&lt;br /&gt;
The NDELAY=n defaults to 32.  If you are not using a filter built for NDELAY=32,&lt;br /&gt;
the flag must be added to the config string when loading the filter.  The filter&lt;br /&gt;
file names from graychip use the naming convention,  res_&amp;lt;NTAP&amp;gt;x&amp;lt;NDELAY&amp;gt;_&amp;lt;WIDTH&amp;gt;.&lt;br /&gt;
For example, the file res_15x32_80 is a 15 tap 80% filter with 32x oversampling.&lt;br /&gt;
&lt;br /&gt;
The PIC5 tuner has a 10 tap resampler inserted between the CFIR and PFIR filters&lt;br /&gt;
with an NDELAY=2048.  The CFIR and PFIR filters should be chosen to achieve optimal &lt;br /&gt;
results.  The CFIR is a decimate by 2 filter at 4 times the output rate so a 25% filter&lt;br /&gt;
should be selected (the default is dfir_25).  This presents a twice oversampled &lt;br /&gt;
complex waveform to the resampler section.  The resampler increment is a 28 bit&lt;br /&gt;
counter with an automatic M over N circuit to preserve exact timing for most ratios.&lt;br /&gt;
The accumulator register is reset every M samples to remove binary rounding errors.&lt;br /&gt;
The M output samples for each N input samples actually used is displayed if the &lt;br /&gt;
VERBOSE=2 flag is present.  M and N are 16 bit integers. The output is then sent &lt;br /&gt;
through the decimate by 2 PFIR filter for final output conditioning.  &lt;br /&gt;
&lt;br /&gt;
Note that if the real output mode is used with decimation=1, the output will be &lt;br /&gt;
frequency shifted up by (Fso - Fsi)/4, where Fsi is the input frequency to the resampler&lt;br /&gt;
and Fso is the output Frequency.  This offset can be removed by tuning off of Fsi/4 &lt;br /&gt;
by this amount.&lt;br /&gt;
&lt;br /&gt;
The maximum output bandwidth of the PIC5 tuner is 64MHz.  To preserve the whole &lt;br /&gt;
band use decimation=1 with the AOVSR (auto-oversampling) flag.  The tuner allows&lt;br /&gt;
the center frequency to be adjusted for the new output rate.  To disable the &lt;br /&gt;
M over N circuit, user the NORESMON flag.&lt;br /&gt;
&lt;br /&gt;
=== BOT - Bank Of Tuners on Processor Modules&amp;lt;span id=&amp;quot;BOT&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
There are 32 individual tuner channels on the DTDM/V6M/K8M processor modules.&lt;br /&gt;
In normal mode, each channel has independent decimation, frequency, start/stop &lt;br /&gt;
control, and DMA buffers.&lt;br /&gt;
&lt;br /&gt;
A Tuner Bank is a block of tuners that share a DMA channel for efficiently&lt;br /&gt;
handling a number of similarly configured channels.  They must have the same &lt;br /&gt;
decimation and are required to start/stop together.  TunerBank=1 uses the 16&lt;br /&gt;
tuners on the Module=1 side, TunerBank=2 uses the 16 on other. TunerBank=3&lt;br /&gt;
uses the 32 tuners from both sides all being fed from Module=1 and returned &lt;br /&gt;
in a single DMA buffer.&lt;br /&gt;
&lt;br /&gt;
Tuner Banks are selected by specifying PORT=TBANKn instead of PORT=TUNERn.&lt;br /&gt;
The DTDM/DTDMX Modules support up to 32 channels tunable anywhere in the spectrum.&lt;br /&gt;
By default, the pic_ioport call will implement as many channels as are available&lt;br /&gt;
on the named port.  To use less channels, set KEY_CHNS=n before the call to &lt;br /&gt;
pic_ioport() or add the CHNS=n flag to the config string, or use the /NCHN=n &lt;br /&gt;
switch on SOURCEPIC.  &lt;br /&gt;
&lt;br /&gt;
To control individual channels from SOURCEPIC, set the CHAN key, before setting&lt;br /&gt;
FREQ or GAIN.  If CHAN is set to zero, the setting applies to all channels in&lt;br /&gt;
the bank.&lt;br /&gt;
&lt;br /&gt;
If channels are contiguous in the spectrum, using /DFREQ=dfreq with SOURCEPIC&lt;br /&gt;
will set up the tuners equally spaced by dfreq Hertz starting at the &amp;lt;freq&amp;gt;&lt;br /&gt;
parameter.  Setting the FREQ in this mode, moves the whole block.  You cannot &lt;br /&gt;
tune individual channels.  In this mode, the Fast Tuner Transform algorithm can &lt;br /&gt;
be applied to increase the number of usable channels to 256 with FTT=2, or 4096 &lt;br /&gt;
with FTT=3.  See the FTT discussion for more details.&lt;br /&gt;
&lt;br /&gt;
The frame or packet size for the output DMA buffer, KEY_PKTLEN, and the channel &lt;br /&gt;
spacing, KEY_DFREQ, must be set ahead of the pic_ioport() call.&lt;br /&gt;
&lt;br /&gt;
The output DMA buffer will contain KEY_PKTLEN bytes of data from channel 1, followed&lt;br /&gt;
by channel 2, ... up to channel N, then start over at channel 1.&lt;br /&gt;
&lt;br /&gt;
For more details, see the help on the FTT flag.&lt;br /&gt;
For more details, [[ICE_Help_FLAGS#FTTM|see the help on the FTTM flag]].&lt;br /&gt;
&lt;br /&gt;
=== FTT - Fast Tuner Transform Concept of Operation&amp;lt;span id=&amp;quot;FTT&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The DTDM/DTDMX Modules have 64Mby of DRAM and a fast memory crossbar that allows&lt;br /&gt;
multiple reuse of the 8 graychips.  The FTT is a multipass algorithm similar to&lt;br /&gt;
a radix-16 FFT pass.  A first Bank of 16 tuners selects 1-16 blocks of the input &lt;br /&gt;
spectrum and streams them to circular buffers in memory.  The second bank of 16 &lt;br /&gt;
tuners then selects 1-16 blocks from each of these streams (much faster than &lt;br /&gt;
real-time) and streams them back to memory.  This is practical for 2 to 3 passes.  &lt;br /&gt;
&lt;br /&gt;
The FTT algorithm is enabled by adding the FTTM=2 or FTTM=3 flag in the device&lt;br /&gt;
configuration stream and accessing a Tuner Bank.  By default, the pic_ioport call &lt;br /&gt;
will implement as many channels as possible given the port, decimation, channel &lt;br /&gt;
spacing, and number of FTT passes (specified by FFTM=N).  To use less channels, &lt;br /&gt;
set KEY_CHNS=n before the call to pic_ioport().  &lt;br /&gt;
&lt;br /&gt;
For more details, [[ICE_Help_FLAGS#FTTM|see the help on the FTTM flag]].&lt;br /&gt;
&lt;br /&gt;
=== DMA - DMA Concepts and Channel Allocation&amp;lt;span id=&amp;quot;DMA&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
High speed data transfer is via the PCI controller's DMA engine which is given&lt;br /&gt;
maximum hardware-level priority since the card has minimal buffer memory.  The&lt;br /&gt;
host computer typically allocates a circular buffer in memory to hold 1-2&lt;br /&gt;
seconds of data (to cover host application software latencies).  The SHARC/PPC&lt;br /&gt;
then processes DMA requests from 1 to 80 of it's input/output ports.&lt;br /&gt;
All 80 DMA channels can be owned/controlled by different processes.&lt;br /&gt;
&lt;br /&gt;
Acquisition/Playback can occur through the following device ports:&lt;br /&gt;
&lt;br /&gt;
 SERIAL1-2   : serial ports (PIC2 only)&lt;br /&gt;
 LINK1-6     : link ports (PIC2 only)&lt;br /&gt;
 TUNER1-32   : tuner channels&lt;br /&gt;
 MODULE1-2   : I/O Modules&lt;br /&gt;
 INTERNAL1-8 : internal algorithms&lt;br /&gt;
 EXTERNAL1-8 : internal algorithms (extended memory on PIC4/MBT4)&lt;br /&gt;
&lt;br /&gt;
The port is usually specified in the hardware configured device alias. &lt;br /&gt;
[[ICE_Help_ICELIB#PIC_OPEN|See HELP PIC_OPEN]] for details, HWCONFIG.KEY in the DAT area for examples.&lt;br /&gt;
&lt;br /&gt;
There are 8 hardware DMA channels on the SHARC that are shared between the &lt;br /&gt;
ports.  This means that up to 8 hardware acquisitions/playbacks can be &lt;br /&gt;
occurring simultaneously on a single ICE card.  There are also internal&lt;br /&gt;
algorithms executing on the SHARC that may also produce or consume DMA&lt;br /&gt;
data buffers.&lt;br /&gt;
&lt;br /&gt;
The FPGA on the 5 series cards allow each DMA channel to have its own port &lt;br /&gt;
so there are no resource conflicts.  The PPC is a controller only.  Its DMA&lt;br /&gt;
resources are not used to handle data.&lt;br /&gt;
&lt;br /&gt;
A serial port is tied to its DMA channel.  A link port can be associated with&lt;br /&gt;
any DMA channel supporting a link buffer.  The DMA channel will be determined &lt;br /&gt;
automatically from the port name.  &lt;br /&gt;
&lt;br /&gt;
The user is responsible for managing any sharing of the serial port, &lt;br /&gt;
tuner/serial port, link port, and module/link port DMA resources.  &lt;br /&gt;
&lt;br /&gt;
The DMA Channel mappings for ICE-PIC2 are:&lt;br /&gt;
 Chan 1	Serial Port 1 Receive			SERIAL1/TUNER1&lt;br /&gt;
 Chan 2	Serial Port 2 Receive  or Link Buf 1	SERIAL2/TUNER2/LINK1&lt;br /&gt;
 Chan 3	Serial Port 1 Transmit			SERIAL1&lt;br /&gt;
 Chan 4	Serial Port 2 Transmit or Link Buf 2	SERIAL2/LINK2&lt;br /&gt;
 Chan 5	Link Buffer 3 				LINK3/MODULE1&lt;br /&gt;
 Chan 6	Link Buffer 4 				LINK4/MODULE2&lt;br /&gt;
 Chan 7	Link Buffer 5           		LINK5/MODULE1HS&lt;br /&gt;
 Chan 8	Link Buffer 6            		LINK6/MODULE2HS&lt;br /&gt;
&lt;br /&gt;
The DMA Channel mappings for ICE-PIC3 are:&lt;br /&gt;
 Chan 2	Link Buffer 1				TUNER-A&lt;br /&gt;
 Chan 4	Link Buffer 2				TUNER-B&lt;br /&gt;
 Chan 5	Link Buffer 3 				MODULE1HS&lt;br /&gt;
 Chan 6	Link Buffer 4 				MODULE2HS&lt;br /&gt;
 Chan 7	Link Buffer 5 				MODULE1&lt;br /&gt;
 Chan 8	Link Buffer 6 				MODULE2&lt;br /&gt;
&lt;br /&gt;
The DMA Channel mappings for ICE-MBT2 and ICE-MBT3 are:&lt;br /&gt;
 Chan 2	Link Buffer 1				TUNER-A&lt;br /&gt;
 Chan 4	Link Buffer 2				TUNER-B&lt;br /&gt;
 Chan 5	Link Buffer 3 				TUNER-C/MODULE1HS&lt;br /&gt;
 Chan 6	Link Buffer 4 				TUNER-D/MODULE2HS&lt;br /&gt;
 Chan 7	Link Buffer 5 				TUNER-E/MODULE1&lt;br /&gt;
 Chan 8	Link Buffer 6 				TUNER-F/MODULE2&lt;br /&gt;
&lt;br /&gt;
Each tuner chip uses one of the sharc link ports for acquiring the tuner &lt;br /&gt;
outputs.  The four channels in each tuner chip must have the same decimation. &lt;br /&gt;
Tuner channels are allocated such that odd and even channel numbers are fed &lt;br /&gt;
by modules 1 and 2 respectively.  See the allocation chart below:&lt;br /&gt;
&lt;br /&gt;
 TUNER-A	Channels 1,3,5,7	Link Port 1 &lt;br /&gt;
 TUNER-B	Channels 2,4,6,8	Link Port 2 &lt;br /&gt;
 TUNER-C	Channels 9,11,13,15	Link Port 3 &lt;br /&gt;
 TUNER-D	Channels 10,12,14,16	Link Port 4 &lt;br /&gt;
 TUNER-E	Channels 17,19,21,23	Link Port 5 &lt;br /&gt;
 TUNER-F	Channels 18,20,22,24	Link Port 6 &lt;br /&gt;
&lt;br /&gt;
The ICE-MBT3 can also collect wide-signals bypassing the tuner chips.  Since &lt;br /&gt;
the wideband paths and the tuners share the link ports, resource contention &lt;br /&gt;
occurs.  If the wideband transfer is &amp;lt; 38Mby/sec, only link ports 5 or 6 are &lt;br /&gt;
used.  If the wideband transfer is &amp;gt;= 38 Mby/sec, Module 1 will take link &lt;br /&gt;
ports 5 and 3, and Module 2 will take link ports 6 and 4.  This means that &lt;br /&gt;
tuners C through F may be unusable while processing wideband simultaneously.  &lt;br /&gt;
&lt;br /&gt;
The DMA Channel mappings for ICE-PIC4T and ICE-MBT4 are:&lt;br /&gt;
 Chan 5	Link Buffer 1 				MODULE1&lt;br /&gt;
 Chan 6	Link Buffer 2 				MODULE2&lt;br /&gt;
 Chan 7	Link Buffer 3 				MODULE1HS&lt;br /&gt;
 Chan 8	Link Buffer 4 				MODULE2HS&lt;br /&gt;
 Chan 9	Link Buffer 5				TUNER-N odd&lt;br /&gt;
 Chan 10	Link Buffer 6				TUNER-N even&lt;br /&gt;
&lt;br /&gt;
There is no link port sharing between tuners and modules on the series 4 cards.&lt;br /&gt;
All odd tuners are multiplexed through DMA channel 9 and all even channels through &lt;br /&gt;
DMA channel 10.  The data is demultiplexed by the SHARC into separate host buffers.&lt;br /&gt;
&lt;br /&gt;
The DMA Channel mappings for ICE-PIC5+ Input/Output are:&lt;br /&gt;
 Chan 1        MODULE1&lt;br /&gt;
 Chan 2        MODULE2&lt;br /&gt;
 Chan 3        CORE1 / TUNER1&lt;br /&gt;
 Chan 4        CORE2 / TUNER2&lt;br /&gt;
 Chan 5        CORE11&lt;br /&gt;
 Chan 6        CORE12&lt;br /&gt;
 Chan 7        CORE21&lt;br /&gt;
 Chan 8        CORE22&lt;br /&gt;
 Chan 9        MCORE11 / TBANK11 / TUNER1-31&lt;br /&gt;
 Chan 10       MCORE12 / TBANK12 / TUNER2-32&lt;br /&gt;
 Chan 11       MCORE21 / TBANK21 / TUNER33-63&lt;br /&gt;
 Chan 12       MCORE22 / TBANK22 / TUNER34-64&lt;br /&gt;
&lt;br /&gt;
Access to the ICEMBT ports is made transparent via software such that the &lt;br /&gt;
PICDRIVER and SOURCEPIC primitives may access a port on an ICE-MBT just as &lt;br /&gt;
they would a port on an ICE-PIC. &lt;br /&gt;
&lt;br /&gt;
=== CHAINING - DMA Chaining Concepts&amp;lt;span id=&amp;quot;CHAINING&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
When a DMA completes (dma-&amp;gt;todo goes to 0), the controller checks the dma-&amp;gt;chain field.&lt;br /&gt;
If non-zero, the DMA structure's chain related fields are replaced by the values in&lt;br /&gt;
the DMACHAIN structure pointed to by dma-&amp;gt;chain.  The new DMA will then be processed &lt;br /&gt;
without interrupting the input/output stream.  &lt;br /&gt;
&lt;br /&gt;
The DMACHAIN structure has the following fields:&lt;br /&gt;
 &lt;br /&gt;
 haddr	- the HOST buffer physical address in words&lt;br /&gt;
 hsize	- the HOST buffer physical size in words&lt;br /&gt;
 todo	- the number of buffers to process, &lt;br /&gt;
 or DMA_ONESHOT,DMA_CONTINUOUS,DMA_SPIN&lt;br /&gt;
 chain	- pointer to the next DMACHAIN structure&lt;br /&gt;
&lt;br /&gt;
The chain field for the last element in the chain must be zero.  &lt;br /&gt;
Users should use the pic_dmachain() routine to populate the chaining registers.&lt;br /&gt;
Note that dmafunc(p,dmac,DMA_STATUS) offset values are referenced to the initial buffer start.&lt;br /&gt;
&lt;br /&gt;
=== SHARCMEM - SHARC/PPC Memory Allocation&amp;lt;span id=&amp;quot;SHARCMEM&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The controller chip on series 2 and 3 cards, has two 128kBy blocks of &lt;br /&gt;
internal memory.  The lower half is used for the sequencer logic and user programs.  &lt;br /&gt;
The upper block contains the circular buffers for DMA channels.  &lt;br /&gt;
The DMA block is divided as follows:&lt;br /&gt;
&lt;br /&gt;
 word addr range	usage&lt;br /&gt;
&lt;br /&gt;
 0x28000-29FFF		Module-1&lt;br /&gt;
 0x2A000-2BFFF		Module-2&lt;br /&gt;
 0x28000-2BFFF		Module-1 VHS&lt;br /&gt;
 0x2C000-2FFFF		Module-2 VHS&lt;br /&gt;
&lt;br /&gt;
 0x2C000-2CFFF		Tuner-A		(MBT2/MBT3)&lt;br /&gt;
 0x2D000-2DFFF		Tuner-B		(MBT2/MBT3)&lt;br /&gt;
 0x2E000-2EFFF		Tuner-C		(MBT2/MBT3)&lt;br /&gt;
 0x2F000-2FFFF		Tuner-D		(MBT2/MBT3)&lt;br /&gt;
 0x28000-28FFF		Tuner-E		(MBT2/MBT3)&lt;br /&gt;
 0x2A000-2AFFF		Tuner-F		(MBT2/MBT3)&lt;br /&gt;
&lt;br /&gt;
 0x2E000-2EFFF		Tuner-1		(PIC2/PIC3)&lt;br /&gt;
 0x2F000-2FFFF		Tuner-2		(PIC2/PIC3)&lt;br /&gt;
&lt;br /&gt;
 0x28000-28FFF		Internal-1&lt;br /&gt;
 0x29000-29FFF		Internal-2&lt;br /&gt;
 0x2A000-2AFFF		Internal-3&lt;br /&gt;
 0x2B000-2BFFF		Internal-4&lt;br /&gt;
 0x2C000-2CFFF		Internal-5&lt;br /&gt;
 0x2D000-2DFFF		Internal-6&lt;br /&gt;
 0x2E000-2EFFF		Internal-7&lt;br /&gt;
 0x2F000-2FFFF		Internal-8&lt;br /&gt;
&lt;br /&gt;
The SHARC controller chip on series 4 cards, has two 256kBy blocks of internal &lt;br /&gt;
memory.  The lower half is used for the sequencer logic and user programs.  &lt;br /&gt;
The upper block contains the circular buffers for DMA channels.  &lt;br /&gt;
The DMA block is divided as follows:&lt;br /&gt;
&lt;br /&gt;
 word addr range	usage&lt;br /&gt;
&lt;br /&gt;
 0x48000-49FFF		Module-1&lt;br /&gt;
 0x4A000-4BFFF		Module-2&lt;br /&gt;
 0x48000-4BFFF		Module-1 VHS&lt;br /&gt;
 0x4C000-4FFFF		Module-2 VHS&lt;br /&gt;
&lt;br /&gt;
 0x4C000-4DFFF		Tuner-A		(PIC4/MBT4)&lt;br /&gt;
 0x4E000-4FFFF		Tuner-B		(PIC4/MBT4)&lt;br /&gt;
&lt;br /&gt;
 0x48000-48FFF		Internal-1&lt;br /&gt;
 0x49000-49FFF		Internal-2&lt;br /&gt;
 0x4A000-4AFFF		Internal-3&lt;br /&gt;
 0x4B000-4BFFF		Internal-4&lt;br /&gt;
 0x4C000-4CFFF		Internal-5&lt;br /&gt;
 0x4D000-4DFFF		Internal-6&lt;br /&gt;
 0x4E000-4EFFF		Internal-7&lt;br /&gt;
 0x4F000-4FFFF		Internal-8&lt;br /&gt;
&lt;br /&gt;
 0x50000-51FFF		External-1 or ITDEC Channel-1	&lt;br /&gt;
 0x52000-53FFF		External-2 or ITDEC Channel-2	&lt;br /&gt;
 0x54000-55FFF		External-3    ...&lt;br /&gt;
 0x56000-57FFF		External-4&lt;br /&gt;
 0x58000-59FFF		External-5&lt;br /&gt;
 0x5A000-5BFFF		External-6&lt;br /&gt;
 0x5C000-5DFFF		External-7&lt;br /&gt;
 0x5E000-5FFFF		External-8&lt;br /&gt;
&lt;br /&gt;
Note that some of the memory buffers overlap and cannot be used simultaneously.&lt;br /&gt;
Currently no internal checks are made to notify users of overlap.&lt;br /&gt;
&lt;br /&gt;
=== MIDASDSM - Connecting to an STL Digital Switch Matrix&amp;lt;span id=&amp;quot;MIDASDSM&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The MIDAS suite of hardware usually consists of a Digital Switch Matrix &lt;br /&gt;
from Signal Technologies Laboratories.  The 16+clock bit digital signals are &lt;br /&gt;
brought in/out of the switch matrix on a 36 strand twisted pair ribbon cable.  &lt;br /&gt;
These cables connect to a switch &amp;quot;transition panel&amp;quot; usually at the back of the &lt;br /&gt;
equipment rack.  The SMS or SDN cables attach to the opposite side of the &lt;br /&gt;
transition panel. &lt;br /&gt;
&lt;br /&gt;
A transition panel will also exist near the ICEPIC's computer.  This panel &lt;br /&gt;
has a 40 pin interface and is available through ICE or STL.  High density &lt;br /&gt;
ribbon cables that attach the ICEPIC to the panel are available through ICE.&lt;br /&gt;
&lt;br /&gt;
A diagram of the connectors is posted on the www.ice-online.com website.&lt;br /&gt;
&lt;br /&gt;
=== CLOCKING - Clock sources and selection&amp;lt;span id=&amp;quot;CLOCKING&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Most IO Modules provide their own clock, either derived from the data or &lt;br /&gt;
from an external source.  &lt;br /&gt;
&lt;br /&gt;
The two IO Module sites on ICE cards can operate independently or from a &lt;br /&gt;
global muxed clock.  The global clock is necessary when:&lt;br /&gt;
&lt;br /&gt;
# Multiplexing data from the A and B ports &lt;br /&gt;
# VeryHighSpeed mode when the resources from both ports are bridged&lt;br /&gt;
# Synchronizing sampling clocks to both modules&lt;br /&gt;
# Driving a module without its own clock source (i.e. D2E,D2T)&lt;br /&gt;
&lt;br /&gt;
The IOC code _II is for 2 independent input modules, each with their own clock.&lt;br /&gt;
The IOC code _IIX is for 2 inputs with a global muxed clock.&lt;br /&gt;
The IOC code _IO or _OI is for 1 input and 1 output.  The input gets its &lt;br /&gt;
 clock from the module, the output from the global muxed clock.&lt;br /&gt;
The IOC code _OO is for 2 outputs with a global muxed clock.&lt;br /&gt;
&lt;br /&gt;
To set the source for the global muxed clock, add the MUXCLK=s flag to the&lt;br /&gt;
card configuration string handed to the pic_open() call.&lt;br /&gt;
&lt;br /&gt;
There 7 possible sources for the muxed clock signal:&lt;br /&gt;
 &lt;br /&gt;
 s=N No MUXCLK&lt;br /&gt;
 s=I Internal clock = 40MHz/N where (N=1,1024)&lt;br /&gt;
 s=X External clock SMB on series 3/4 card edge&lt;br /&gt;
 s=A Module A input clock (or s=1)&lt;br /&gt;
 s=B Module B input clock (or s=2)&lt;br /&gt;
 s=C Alternate Crystal CCLK on series 3/4 cards&lt;br /&gt;
 s=D Alternate Crystal CCLK/N where (N=1,16)&lt;br /&gt;
 s=P Programmable Clock on series 4 cards (.1 to 105 MHz)&lt;br /&gt;
 s=PX Programmable Clock using the external reference (PREFX)&lt;br /&gt;
&lt;br /&gt;
When using the global clock, the CLKI flag can be used to invert the clock.&lt;br /&gt;
The DEGLITCH flag will run the A and B sources through a deglitching circuit.&lt;br /&gt;
&lt;br /&gt;
=== PLATFORMS - Notes on specific platforms&amp;lt;span id=&amp;quot;PLATFORMS&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Compaq ES40 Server PCI slot configuration&lt;br /&gt;
&lt;br /&gt;
 TOP	BUS0	SLOT7	5V/64b/33MHz&lt;br /&gt;
 	BUS0	SLOT8	5V/64b/33MHz&lt;br /&gt;
 	BUS0	SLOT9	5V/64b/33MHz&lt;br /&gt;
 	BUS0	SLOT10	5V/64b/33MHz&lt;br /&gt;
 	BUS1	SLOT1	5V/64b/33MHz&lt;br /&gt;
 	BUS1	SLOT2	5V/64b/33MHz&lt;br /&gt;
 	BUS1	SLOT3	5V/64b/33MHz&lt;br /&gt;
 	BUS1	SLOT4	5V/64b/33MHz&lt;br /&gt;
 	BUS1	SLOT5	5V/64b/33MHz&lt;br /&gt;
 BOT 	BUS1	SLOT6	5V/64b/33MHz&lt;br /&gt;
&lt;br /&gt;
Compaq ES45 Server PCI slot configuration&lt;br /&gt;
&lt;br /&gt;
 TOP	HOSE2	SLOT7	3V/64b/66MHz&lt;br /&gt;
 	HOSE2	SLOT8	3V/64b/66MHz&lt;br /&gt;
 	HOSE0	SLOT4	5V/64b/33MHz&lt;br /&gt;
 	HOSE3	SLOT10	3V/64b/66MHz&lt;br /&gt;
 	HOSE3	SLOT9	3V/64b/66MHz&lt;br /&gt;
 	HOSE0	SLOT3	5V/64b/33MHz&lt;br /&gt;
 	HOSE1	SLOT6	3V/64b/66MHz&lt;br /&gt;
 	HOSE1	SLOT5	3V/64b/66MHz&lt;br /&gt;
 	HOSE0	SLOT2	5V/64b/33MHz&lt;br /&gt;
 BOT	HOSE0	SLOT1	5V/64b/33MHz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
[[Category:ICE_Help]]&lt;/div&gt;</summary>
		<author><name>ConvertBot</name></author>
		
	</entry>
</feed>