Copyright PrismTech 2009 Proprietary information subject to non-disclosure
1
Copyright PrismTech 2008 Proprietary information subject to non-disclosure
1
Copyright PrismTech 2008 Proprietary information subject to non-disclosure
1
Spectra IP Core ORB Live WebcastA High-Performance, Low-latency, Common Data Protocol solution for FPGA-GPP or FPGA-DSP Component Integration
February 17, 2011 – Andrew Foster, Spectra Product Manager
Copyright PrismTech 2011
Agenda
1. Objectives
2. SCA device model and MHAL
3. CORBA Everywhere
4. Spectra IP Core1. Architecture
2. IDL to VHDL mapping
3. Design flow & example
5. ICO v2 Key Features
6. ICO v2 Availability
7. ICO v2 Roadmap
8. ICO v2 Performance and footprint
9. Case study
10. Summary
2
FPGAGPPSCA
WaveformComponent
(B)
SCAWaveform
Component(A)
Pluggable Transport
ORB
Objectives
‣ To seamlessly integrate waveform logic running on the FPGA… while still maintaining SCA compatibility
SCAWaveform
Component(C)
3
SCA Processor Coverage
“..waveforms shall use the MHAL Communications Service for all data and control flowing between software components residing in different Computational Elements where at least one CE does not support CORBA…”
Reference: Joint Tactical Radio System (JTRS) Standard Modem Hardware Abstraction Layer Application Program Interface (API) Version: 2.11.1, 02 May 2007
PrismTech interpretation….CORBA Everywhere would be optimal, if this were available……
This is about to change – next revision the “SCA Next” will formally adopt a CORBA profile for DSPs and work ongoing for a lightweight CORBA profile for FPGAs
4
Current SCA Device Model
RTOS
FPGA GPP & DSP Processors
POSIXMHAL MHAL
Waveform
Core FrameworkCORBA
MHAL
Transport
Transport
DSP GPP
MHAL approach provides a degree of portability, however, the format and content of messages sent MHAL approach provides a degree of portability, however, the format and content of messages sent to the MHAL components is not standardised and must be written by each waveform developerto the MHAL components is not standardised and must be written by each waveform developer
5
SCA/FPGA Connectivity – MHAL
‣ MHAL has been adopted and standardized by the JTRS program to move data to and from modem hardware
‣ MHAL interfaces are used for command, control and data messages‣ Offers an alternative to CORBA when dealing with processor and
bus technologies with no off the shelf CORBA support
‣ Issues:‣ Interface between components is defined as a simple
stream
‣ The “on the wire” definition of the protocol is left to each developer
‣ Interface semantics are captured in the protocol messages that travel over the stream
‣ In order to isolate an assembly waveform component from the MHAL message oriented interface an “adaptor” or proxy” is often used
Payload
Length
Logical DestinationIU
Standard MHAL Message
Structure
6
1st Generation SCA/FPGA Connectivity – MHAL
‣ Attempts to implement MHAL have resulted in added complexity for the radio developer and increased overall system latency
‣ Using MHAL/proxy/adaptor approach requires a double call hop for both outgoing and return messages – 4 calls instead of optimal two
FPGAGPP
Pluggable Transport
ORB
SCAWaveform
Component(B)
SCAWaveform
Component(A)
Proxy SCAWaveform
Component(C)
MH
AL
Proprietary
Transport
Proprietary
Transport
MH
AL
Waveform Logic
Client outgoing CORBA to proxy call 1 Outgoing Proxy MHAL to FPGA call 2
FPGA MHAL return call 3Proxy to Client return call 4
7
Other Attempts
‣ Other attempts to implement this have only moved the problem internal to the FPGA. The result is still non-SCA compliant components in the FPGA and a likely increase in added transport overhead
‣ Still requires a double call hop for both outgoing and return messages – 4 calls instead of optimal two
GPPSCA
WaveformComponen
(B)t
SCAWaveform
Component(A)
Pluggable Transport
ORB
FPGA
Pluggable TransportGIOP
ORB
Embedded Processor
Proxy SCAWaveform
Component(C)
MH
AL
Proprietary
Transport
Proprietary
Transport
MH
AL
Waveform Logic
Client outgoing CORBA to proxy call 1 Outgoing Proxy MHAL to FPGA call 2
FPGA MHAL to Proxy return call 3Proxy to Client return CORBA call 4
8
What if…
FPGAGPP
SCAWaveform
Component
SCAWaveform
Component
Pluggable Transport
SCAWaveform
Component
Pluggable Transport GIOP
ORB
‣ Using an ORB, SCA compliance is maintained and overhead is reduced
‣ Now only requires single direct call for both outgoing and return messages – 2 calls instead of previous 4
ORB
Outgoing Client to FPGA CORBA call 1
FPGA to client CORBA return call 2
9
Proposed Problem Solution
StandardizedStandardized CORBA interfaces across signal processing chainCORBA interfaces across signal processing chain
RTOS
FPGA GPP & DSP Processors
POSIX
Waveform
Core Framework
CORBA
HAL
DSP GPP
GIOP Message Bus
10
2nd Generation SCA/FPGA Connectivity – CORBA Everywhere
By leveraging CORBA a By leveraging CORBA a standards-based,standards-based, high-performance, low-footprint, fully-interoperable high-performance, low-footprint, fully-interoperable COTS middleware solution that can be deployed across multiple processor types, including COTS middleware solution that can be deployed across multiple processor types, including GPP, DSP, & FPGA environmentsGPP, DSP, & FPGA environments
Spectra e*ORBC & C++
Spectra e*ORBC
Spectra ICOVHDL
GIOP EverywhereGIOP Everywhere
Extensible Transport FrameworkExtensible Transport Framework
11
Waveform Component
Waveform Component
Waveform Component
GPP DSP FPGA
Spectra SCACF
Benefits of CORBA Everywhere
Once all SDR processors (GPP, DSP and FPGA) are CORBA enabled, a number of potential benefits can be realized:
Reduce overall system complexity and improve time-to-market for new waveform applications and also legacy waveform porting
Support waveform component location transparency making it much easier to re-locate waveform components across processors
Eliminate the need for proprietary communication protocols reducing complexity and improving waveform portability
Remove the need to use adaptor patterns in combination MHAL, therefore reducing communication latency and improving throughput
12
Spectra IP Core ORB (ICO)
ICO Architecture 14
Transport
FIFORx
Bridge
Arbitration
Servant Servant Client
Arbitration
TxBridge
FPGA
ICO
GPIO
GIOPMessage
GIOPMessage
External Interface
Meta DataROM
Meta DataROM
IDL to VHDL Mapping
Direct mapping of CORBA primitive types to VHDL
The mapping requires that a bus-based architecture is used
The bus must support the concept of data and addressing
The mapping defines a protocol called Bus Interoperability Protocol (BIOP)
GIOP can be converted to BIOP and vice-versa
15
Bus Interoperability Protocol - BIOP
Bus-based communication mechanism
The protocol is designed to support requests and replies between hardware entities
Data exchanged in the form of messages
Three message types – Request, One-way Request and Reply
Messages consist of a header, and optionally message data
Request/reply data is placed on the bus with an address offset from the target entity's base address
The offset is a constant generated according to the IDL-VHDL language mapping
Operation parameter and reply data passed in GIOP CDR encoding order
16
Design Flow 17
CREATE IDL FILE
COMPILE IDL
FILL IN “USER” LOGIC
ADD TRANSPORT
TEST
DEPLOY
Example IDL
module AnalogDigital{ interface DAC { void send_data(in unsigned longval); }; interface ADC { long read_data (); };};
18
Example servant –DAC Interface
case AddressOffset(adr_i(AddressBusLow'range)) is when ADC_read_data_request => v.request_id := unsigned(dat_i); when ADC_read_data_replyaddr => v.reply_addr := dat_i(AddressBusHigh'range); when ADC_read_data_request_end => case r.reply is when normal => v.state := ADC_read_data_reply_state; when others => v.state := request_state; end case; when DAC_send_data_request => v.request_id := unsigned(dat_i); when DAC_send_data_replyaddr => v.reply_addr := dat_i(AddressBusHigh'range); when DAC_send_data_val => -- Modify the following line as needed.
null; when DAC_send_data_request_end => case r.reply is when normal => v.state := DAC_send_data_reply_state; when others => v.state := request_state; end case; when others => null; end case;
19
Example servant – ADC Interface
when ADC_read_data_return_state => v.address := mkaddr(r.reply_addr, ADC_read_data_return); if bus_grant = '1' then v.state := ADC_read_data_reply_end_state; -- Modify the following line as needed. v.data := (others => '0'); v.we := '1'; else null; end if;
end process;
20
ICO v2 Key Features
ICO v2.0 provides support for the following key features:
Supports GIOP version 1.0 protocol
Processes incoming CORBA requests One way operations
Two way operations
Support for CORBA clients and serversClients can be internal to the FPGA written in VHDL or external to FPGA(e.g., on a GPP or DSP) implemented by a conventional software application
Servants implemented on FPGA in VHDL
No arbitrary restriction on the number of clients and servers that can be supported on the FPGA
21
ICO v2 Key Features
IDL compiler supportSupports IDL to VHDL language mapping and will auto generate:
Servants
Clients
Combined servant/clients
Top level entityInput and output buses
Arbitration
Supports main IDL keywordsImport, Module, Interface, Forward, Constant, Attribute
Supports subset IDL data types required by SDR applicationsSimple data types - Char, Octet, Short, Unsigned Short, Long, Unsigned Long, String
Complex data types- Struct, Sequence
Supports CORBA directional parameter types- Void, Return, In, Out, InOut
CORBA exceptions support - User exceptions - System exceptions
22
ICO v2 Key Features
Pluggable and open transport interface allows user-defined custom transports to be plugged into ICO
Written in pure VHDL and completely portable across FPGA devices
23
Availability
FPGA Model Board Tool Chain
Altera Stratix II Altera Eval Modelsim ALTERA 6.5b + Quartus II v9.1
Altera Stratix III Altera Eval Modelsim ALTERA 6.5b + Quartus II v9.1
Altera Stratix IV Altera Eval Modelsim ALTERA 6.5b + Quartus II v9.1
Altera Cyclone II Altera Eval Modelsim ALTERA 6.5b + Quartus II v9.1
Altera Cycone III Altera Eval Modelsim ALTERA 6.5b + Quartus II v9.1
Xilinx Spartan 6 Monsoon Modelsim Xilinx Edition III + ISE 12
Xilinx Virtex Pro IV Pro 4600 Modelsim Xilinx Edition III + ISE 12
24
= available now
= planned
The following table shows current and planned availability of ICO v2
Additional device support may be added based on customer demand
ICO v2 Roadmap
ICO v2.0 official GA targeted for end of February 2011
ICO v2.1 will add support for the additional features and capabilities:Full Two way outgoing CORBA requests (e.g., to support client requests from FPGA-GPP)
Additional IDL data types:Object (to support dynamic endpoints and passing of object references)
Arrays
64-bit values (long long)
Any (of basic types)Primitive values
Strings
Sequence of primitive values
Unions
ICO v2.1 targeted for release in spring 2011
Spectra CX v3.3 will support graphical modelling and code generation for DSP and FPGA components – target release date early summer 2011
25
Spectra SDR/SCA Tools and Middleware
Spectra e*ORBSpectra e*ORB
Spectra Core FrameworkSpectra Core Framework
SCA InfrastructureSCA InfrastructureSCA InfrastructureSCA Infrastructure
Radio Application (waveform)
Radio Application (waveform)
Host Development Tools Target Radio Platform
RTOS RTOS
GPP/DSPGPP/DSP
BSPBSPASPASP
Spectra ICOSpectra ICO
FPGAFPGA
Spectra CX:Model-BasedDevelopment Tool
Spectra CX:Model-BasedDevelopment Tool
Eclipse WorkbenchEclipse Workbench
UML 2UML 2
Windows / Linux / UnixWindows / Linux / Unix
End-to-End: Model, Generate, Validate, Deploy
Generate
26
ICO v2 Performance 27
Request Type Octet Sequence Size
ICO v1Stratix II Time (µS)
ICO v2 Stratix II Time (µS)
ICO v1 Stratix III Time (µS)
ICO v2 Stratix III Time (µS)
ICO v1 Stratix IV Time (µS)
ICO v2 Stratix IV Time (µS)
ICO v1 Cyclone III Time (µS)
ICO v2 Cyclone III Time (µS)
IN 512 4.1154 1.2993 2.6714 0.7503 3.4656 0.915 7.1478 1.8666IN 1024 6.7488 2.2081 4.3808 1.2751 5.6832 1.555 11.7216 3.1722IN 2048 12.8706 4.0257 8.3546 2.3247 10.8384 2.835 22.3542 5.7834IN 4096 24.5442 7.6609 15.9322 4.4239 20.6688 5.395 42.6294 11.0058IN 8192 47.8914 14.9313 31.0874 8.6223 40.3296 10.515 83.1798 21.4506IN 16384 94.5858 29.4721 61.3978 17.0191 79.6512 20.755 164.2806 42.3402IN 32768 187.9746 58.5537 122.0186 33.8127 158.2944 41.235 326.4822 84.1194
ICO v2 Footprint 28
ICO v1Stratix II
ICO v2 Stratix II
ICO v1 Stratix III
ICO v2 Stratix III
ICO v1 Stratix IV
ICO v2 Stratix IV
Logic UtilizationCombinational ALUTs 2422 1812 2609 1812 2393 1812
Dedicated logic registers 2176 1531 2289 1531 2201 1531Total Registers 2176 1531 2289 1531 2201 1531Total pins 22 137 22 137 22 137Total virtual pins 0 0 0 0 0 0DSP block 9-bit elements 0 0 0 0 0 0Total PLLs 0 0 0 0 0 0Total DLLs 0 0 0 0 0 0
ICO v1Cyclone III
ICO v2 Cyclone III
Total Logic Elements 4925 3429 Total Combinational Functions 3576 2639 Dedicated logic registers 2457 1532 Total Registers 2457 1532 Total pins 22 137 Total virtual pins 0 0 DSP block 9-bit elements 0 0 Embedded Multiplier 9-bit elements 0 0
interface Performance{ typedef sequence<octet> OctetSeq;
void setLength (in long seqLength); void testOctetSeqIn (in OctetSeq inSeq); void testOctetSeqOut (out OctetSeq outSeq); void testOctetSeqInout (inout OctetSeq inoutSeq); OctetSeq testOctetSeqRet ();
void shutdown ();};
Case Study – Euler Project
Euler - European Software Defined Radio for Wireless In Joint Security Operations
Major European project that will focus on SDR technologies for emergency and security operations
PrismTech are developing a base station to support the Euler Wimax derived waveform
CORBA everywhere is being deployed across signal processing chain on base station – ICO is providing a CORBA interface between the modem and XCVR hardware
29
IP D
EV
ICE
GPP OE
SCA PHY Component
DSP OE
DIGITAL BASE-BAND
GPP DSP
XCVR
FPGA
SCA MAC Component
e*ORB C++
e*ORB C
ICO
=CORBA Communications
FRONT-END
30Summary: ICO Benefits
Supports direct access to SCA components running on H/W
Supports vision of SCA architectural consistency across all aspects of the SDR
Eliminates the need for complex hardware abstraction layer protocols improving application portability
CORBA message processing is executed directly in H/W100s x faster than in S/W
Eliminates the need for S/W proxies/adapters on GPPsReduces overhead, latency & Increases throughput
ICO v2 GA availability before the end of February 2011 – offers greatly improved performance and flexibility over v1 product
Thank you for Participating 31
For additional information on PrismTech’s Spectra products and services:
E-mail:[email protected]
Website:www.prismtech.com/spectra
Today’s Presenter:
Andrew Foster, Spectra Product Manager
Email: [email protected]
Spectra IP Core ORB is available for evaluation right now, please contact your PrismTech account manager for more details
32
Thank You