domingo, 2 de septiembre de 2012

Blocks


C6Flo Blocks
C6Flo include a large set of reusable blocks that can be used to construct DSP applications. These components are grouped into the following categories:
  • System - Application frameworks, peripheral I/O, and generic interconnection
  • DSP - Signal processing algorithms and signal generation
  • App - Application-specific algorithms
  • Custom - User-expandable blocks and default category for user-created blocks
Each category is further divided into sub-categories to make the block palette more manageable.
C6Flo System Blocks
  • Framework
  • Peripheral I/O
  • Interconnect
C6Flo DSP Blocks
  • Filters
  • Imaging
  • Math
  • Signal Gen
C6Flo App Blocks
  • Audio
  • Power and Energy
  • Vision and Analytics



C6Flo DM6437 DSP Application Framework (ti.c6flo.framework.dm6437dspapp)
All C6Flo applications must include one (and only one) framework block to specify global system configuration. This block serves as the framework for any applications targeting the DM6437 DSP. Its "normal" memory segment corresponds to the DDR2 space. "Critical" memory corresponds to L2RAM. The DSP is assumed to run at 594 MHz.
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
0
--
Outputs
0
--
Parameters
This is an incomplete list of parameters most likely to be changed during system design.
Name
Type
Description
buffer_length
Int32
Default length (element count) of data buffers allocated by threads
buffer_size
Int32
Default size (in bytes) of data buffers allocated by threads
buffer_align
Int32
Default alignment (in bytes) of data buffers allocated by threads
normal_mem_ base
Int32
Base address of normal memory segment
normal_mem_ length
Int32
Size (in bytes) of normal memory segment
normal_mem_ heap_size
Int32
Size (in bytes) of heap in normal memory segment
critical_mem_ base
Int32
Base address of critical memory segment
critical_mem_ length
Int32
Size (in bytes) of critical memory segment
critical_mem_ heap_size
Int32
Size (in bytes) of heap in critical memory segment
c6flo_name
String
Name of framework in C6Flo diagram. This name is also applied to generated application source files.
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This framework is not compatible with blocks that require a C6747, C6748, or DM648 framework
  • The parameters buffer_length and buffer_size must agree with each another. If you change one of these values, be sure to change the other as well



  • System: Peripheral I/O

DM6437 EVM

Contents


C6Flo Audio Input Block (DM6437 EVM) (ti.c6flo.evmdm6437.audioin)
The DM6437 EVM audio input block reads stereo audio through the LINE IN connector on the EVM board. Audio data is sampled at 44.1 kHz.
<![if !vml]>audio in<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
0
--
Outputs
2
Int16, Float32
Parameters
Name
Type
Description
buffer_count
Int32
Number of internal buffers allocated per channel; a minimum of 2 buffers per channel is required for smooth audio
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This block requires a DM6437 framework
  • This block uses DSP/BIOS IOM drivers from PSP release 1.10.03
  • This block generates different proc functions for different datatypes
  • When Float32 is used as the datatype, audio values range from -1.0 to 1.0
  • When Int16 is used as the datatype, audio values range from -32768 to 32767
  • This block requires that all data buffers in its thread be aligned to 128 bytes; this requirement is enforced automatically


C6Flo Audio Output Block (DM6437 EVM) (ti.c6flo.evmdm6437.audioout)
The DM6437 EVM audio output block emits stereo audio through the LINE OUT connector on the EVM board. Audio data is sampled at 44.1 kHz.
<![if !vml]>audio out<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
2
Int16, Float32
Outputs
0
--
Parameters
Name
Type
Description
buffer_count
Int32
Number of internal buffers allocated per channel; a minimum of 2 buffers per channel is required for smooth audio
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This block requires a DM6437 framework
  • This block uses DSP/BIOS IOM drivers from PSP release 1.10.03
  • This block generates different proc functions for different datatypes
  • When Float32 is used as the datatype, audio values range from -1.0 to 1.0
  • When Int16 is used as the datatype, audio values range from -32768 to 32767
  • This block requires that all data buffers in its thread be aligned to 128 bytes; this requirement is enforced automatically


C6Flo Video Input Block (DM6437 EVM) (ti.c6flo.evmdm6437.videoin)
The DM6437 EVM video input block reads standard definition video through the VIDEO IN connector on the EVM board.
<![if !vml]>video in<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
0
--
Outputs
1
UInt8
Parameters
Name
Type
Description
ntsc
Int8
1: video is NTSC format
0: video is PAL format
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This block requires a DM6437 framework
  • This block uses DSP/BIOS IOM drivers from PSP release 1.10.03
  • The video data is standard YUV422 format (i.e. 2 bytes per pixel)
  • This block generates different proc functions for different datatypes
  • This block requires that all data buffers in its thread be large enough to hold 720 * 480 * 2 = 691200 bytes; this requirement is enforced automatically


C6Flo Video Output Block (DM6437 EVM) (ti.c6flo.evmdm6437.videoout)
The DM6437 EVM video output block emits standard definition video through the DAC B connector on the EVM board.
<![if !vml]>video out<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
1
UInt8
Outputs
0
--
Parameters
Name
Type
Description
ntsc
Int8
1: video is NTSC format
0: video is PAL format
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This block requires a DM6437 framework
  • This block uses DSP/BIOS IOM drivers from PSP release 1.10.03
  • The video data is standard YUV422 format (i.e. 2 bytes per pixel)
  • This block generates different proc functions for different datatypes
  • This block requires that all data buffers in its thread be large enough to hold 720 * 480 * 2 = 691200 bytes; this requirement is enforced automatically


C6Flo UART Host Block (DM6437 EVM) (ti.c6flo.evmdm6437.uarthost)
The DM6437 EVM UART host block enables host control via the UART/serial port connector on the EVM board. Placing this block in your system diagram enables host control at run time using the C6Flo UART host utility. The UART communication operates at 115.2 kbps.
<![if !vml]>host control<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
0
--
Outputs
0
--
Parameters
This block has no special parameters.
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This block requires a DM6437 framework
  • This block uses DSP/BIOS IOM drivers from PSP release 1.10.03
  • Host control functions as an independent thread in the DSP application
  • Threads with the same priority do not preempt one another


System: Interconnect

Contents

C6Flo Clip Block (ti.c6flo.misc.clip)
The clip block saturates the input signal to fall between two specified constants.
<![if !vml]>y = Cmin if x < Cmin; Cmax if x > Cmax; x else<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
1
Int16, Float32
Outputs
1
Int16, Float32
Parameters
Name
Type
Description
clip_min
Float32
Minimum allowed value
clip_max
Float32
Maximum allowed value
Host Control Arguments
Index
Type
Description
0
Float32
New minimum value
1
Float32
New maximum value
Usage Notes
  • This block is compatible with all frameworks
  • This block generates different proc functions for different datatypes

C6Flo Split Block (ti.c6flo.misc.split)
The split block creates one or more copies of an input signal.
<![if !vml]>y1 = y2 = ... = y8 = x<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
1
Any
Outputs
2-8
Any
Parameters
This block has no special parameters.
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This block is compatible with all frameworks

C6Flo Sink Block (ti.c6flo.misc.sink)
The sink block ignores and discards one or more input signals.
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
1-8
Any
Outputs
0
--
Parameters
This block has no special parameters.
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This block is compatible with all frameworks


C6Flo Multiplex Block (ti.c6flo.misc.mux)
The multiplex block selects one input signal based on the value of a selection parameter.
<![if !vml]>y = x1, x2, ..., or x8<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
2-8
Any
Outputs
1
Any
Parameters
Name
Type
Description
select
Int8
Input selection value:
0: y = x1
1: y = x2
...
Host Control Arguments
Index
Type
Description
0
Int8
New selection value
Usage Notes
  • This block is compatible with all frameworks
  • Host control is the only way to change the selected input signal at run time

C6Flo Signal Selection Block (ti.c6flo.misc.signalselect)
The signal selection block selects between two input signals based on the value of a control signal compared to some constant value, K.
<![if !vml]>y = x1 if c < K; x2 else<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
3
Int16, Float32
Outputs
1
Int16, Float32
Parameters
Name
Type
Description
K
Float32
Constant value to compare with control signal
Host Control Arguments
Index
Type
Description
0
Float32
New K value
Usage Notes
  • This block is compatible with all frameworks
  • This block generates different proc functions for different datatypes


C6Flo Data Conversion Block (ti.c6flo.misc.convert)
The data conversion block converts an input signal from one data type to another.
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
1
Int16, Float32
Outputs
1
Int16, Float32
Parameters
This block has no special parameters.
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This block is compatible with all frameworks
  • This block generates different proc functions for different datatypes
  • This block has no effect when the input and output signals are the same datatype


DSP: Filters

Contents

C64+ DSPLIB

Contents

C6Flo C64+ DSPLIB FIR Filter Block (ti.c6flo.c64pdsplib.fir)
The FIR filter block applies the specified FIR filter to an input signal.
<![if !vml]>y[n] = b0 * x[n] + b1 * x[n - 1] + ...<![endif]>

<![if !vml]>y = rxx<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
1
Int16
Outputs
1
Int16
Parameters
Name
Type
Description
nh
Int8
Number of filter taps used (max 16)
tap00
Int16
Filter tap b0
tap01
Int16
Filter tap b1
...
...
...
tap15
Int16
Filter tap b15
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This block requires a C64+ framework
  • This block uses the C64+ DSPLIB
  • This block allocates an internal data buffer that is slightly longer than a normal thread buffer
C6Flo C64+ DSPLIB Complex FIR Filter Block (ti.c6flo.c64pdsplib.fircplx)
The complex FIR filter block applies the specified complex FIR filter to an input signal.
<![if !vml]>y[n] = b0 * x[n] + b1 * x[n - 1] + ...<![endif]>

<![if !vml]>y = rxx<![endif]>
Connections
<![if !vml]>connection diagram<![endif]>

Count
Type
Inputs
1-2
Int16
Outputs
1-2
Int16
Parameters
Name
Type
Description
nh
Int8
Number of filter taps used (2-16)
tap00_re
Int16
Real portion of filter tap b0
tap00_im
Int16
Imaginary portion of filter tap b0
tap01_re
Int16
Real portion of filter tap b1
tap01_im
Int16
Imaginary portion of filter tap b1
...
...
...
tap15_re
Int16
Real portion of filter tap b15
tap15_im
Int16
Imaginary portion of filter tap b15
Host Control Arguments
This block does not accept host control messages.
Usage Notes
  • This block requires a C64+ framework
  • This block uses the C64+ DSPLIB
  • This block allocates internal data buffers that are required by the DSPLIB during computation
  • This block generates different proc functions for different input/output counts