DST ASIC (Deep Space Transponder ASIC) for BepiColombo Template reference : 100181703F-EN Microelectronics Presentation Days 2010 ESTEC - March 30, 2010 David J. Fiore Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC Presentation Overview Page 2 DST ASIC Project Overview Overall and specific technical goals SOC design strategies DST ASIC Architecture Overview DST ASIC general information DST ASIC block diagram LEON2-FT Implementation LEON2-FT Peripheral Implementation FPGA Prototyping Project Experiences Achievements main problems found lessons learnt Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC Overall Technical Goals Page 3 The DST ASIC represents the signal processing core of the new generation Deep Space Transponder equipment whose first application will be in the frame of the BepiColombo program. Operative threshold: down to -150 dBm Fully configurable telecomm. and telemetry (multistandard) Doppler shift up to 1 MHz Frequency band (up/down): S, X, Ka Accurate ranging (standard and regenerative): better than 1 m Coherent and non-coherent operation Output power: up to +12 dBm BepiColombo Deep Space Transponder (EM) The design includes all the functions needed for carrier recovery and data demodulation on the receiver side, and advanced design schemes needed to support several modulation formats in order to improve the space-to-earth link performance, on the transmitter side. The foreseen integration of the LEON2FT Microprocessor (ESA IP) within the DTS ASIC, allows a full programmability and control of the TTC modem in the context of the most advanced space applications and recently issued standards. The Leon2FT Microprocessor (ESA IP) implements a 32-bit processor conforming to the IEEE-1754 (SPARC V8) architecture. Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC Specific Technical Goals Page 4 The DST ASIC includes a complete set of digital processing functions to cover all TT&C standard (FM, PM, spread-spectrum, deep-space). Gated clocks (7) for each DSP function (AHB Slaves) are used to reduce power consumption in the different configurations) Demodulated Telecommand DST ASIC Carrier Demodulator Processor SpreadSpectrum Receiver From ADC Baseband Processor LEON2 RT Command Demodulator Carrier Modulator Processor TLM Stream’s Spread-Spectrum Ranging Processor Standard Receiver (PM/FM) Ancillary Functions Standard Ranging Processor MUX DDS Modulator To DAC’s Operational Mode (Standard/Spread-spectrum) Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC SOC Design Strategies Page 5 Keep as much of the ESA LEON2 IP package “as is” (try to utilize the same blocks and same configurations - change as little as possible!). This is very useful when using the supplied overall testbenches and for debugging in general. (there is a “default” LEON platform to compare results against.) Blocks that utilize the same clock frequency as the LEON2/AMBA, will be implemented as APB slaves. Blocks that utilize clock frequencies different than the LEON2/AMBA, will be implemented as AHB slaves. Utilize the wait states to hold the transaction until re-synchronization is complete. This re-synchronization is completely decoupled from the AMBA bus and does not involve any handshaking – it is completely managed by a circuit using the same clock frequency as the LEON configured with pre-determined number of wait states. Design a standard AHB AMBA wrapper to be utilized by all designers. This creates a uniform and more manageable design and eliminates the designer from dealing with the AMBA bus. Certain parameters (such as wait states and number of sub-slaves are hard-configurable) This wrapper divides each AHB slave into 1 to 4 “sub-slaves” to help in organizing design and manage AHB slaves with different functions and different designers. These “sub-slaves” are transparent to the AHB bus. Certain rules were created for each designer to follow in order to keep overall uniformity and facilitate the overall design flow. LEON / AMBA clock frequency is 25.6MHz. Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC General information Page 6 • ATMEL MH1-332E Gate Array • MQFPT 352 Ceramic Quad Flat Package 0.35 CMOS Gate Complexity: 1.64 million typical routable gates 273 used I/O pins 78 Power Pins • Operating Conditions • Temperature range for die (°C):-55, +145 Radiations (dose) : 200 Krads Power supplies (V%) : 3.3V 10% (Core) 3.3V 10% (I/O) Max frequency :76.8 MHz Estimated power : 5.0 W at 3.3V , load 20 pF and system clock frequency of 76.8 MHz • • • • No internal RAM available in this technology SEU hardened registers for critical blocks Scan chain implemented yielding 95% fault coverage Present status: Sign-off in April 2010 Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC SOC configuration PROM Legend RS232 ESA IP TAS-I ESA IP Master Page 7 Other IP external ASIC APB IF APB used here only for configurataion. APB IF I/O (FPGA) SRAM APB used here only for configurataion. LEON2FT Serial Debug Interface UART of AHB (Debug Support Unit) I-cache D-cache Memory Controller (with EDAC) AHB-Interface AHB-Interface AHB-Interface AHB-Interface AHB integer unit DSU APB IF AHB Arbiter/ decoder gateclk3 gateclk4 AHB-Interface AHB-Interface AHB-Interface AHB/AHP DSP DSP Bridge slv#3 slv#4 … gateclk9 clk12MHz AHB-Interface AHB-Interface DSP 1553 Slv #10 slv #9 APB-Interface APB-Interface APB-Interface APB-Interface APB-Interface APB-Interface APB-Interface APB-Interface APB-Interface UART #1 Timers/ Watchdog GPIO (16bit) Interrupt#1 cntrl Housekeeping MLDS LSSB PLL Peregrine SIPO/PISO APB-Interface APB-Interface UART #2 RS232 Wr Protect APB-Interface APB-Interface APB-Interface APB-Interface AHB Status Interrupt #2 cntrl Scratch Pad (rad-hard) CAN Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC LEON2-FT implementation Page 8 LEON2-FT implementation: • LEON2-FT version: the newest version of VHDL - LEON2-FT v1.0.9.16.2. • LEON2-FT Cache (both data and instruction) : 1 set, direct mapped. Implemented as a synchronous (register-based) memory and protected by 2 parity bits. This creates a 1 kbyte cache memory organized as 256x34 and a Tag memory organized as: 32x32. • LEON2-FT Register File : 8 windows. Implemented as a synchronous (registerbased) 3-port Regfile protected by 7-bit EDAC. Note that this block has been modified from the original implementation choices. • Multiplier, divider (radix2) and MAC Memory Controller implementation: • Memory Controller : 8 / 16 bit external bus capability • • Note: BepiColombo project uses 8-bit memory Memory Controller : 7-bit EDAC external protection (8-bit mode only) • Note: BepiColombo project disables this feature Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC LEON2-Ft platform main changes Page 9 • • • Reduced external 32-bit data bus to 16-bits and also various RAM/PROM control due to pinout limitations. Implemented the LEON Register File with a “new” synchronous (registerbased) 3-port Regfile to adapt to our non-RAM ASIC. This was not part of the original LEON package. This reduces write banks from 2 to 1 bank and can read 2 different locations simultaneously. (in the original RAM versions, 2 RAM identical write banks are implemented) Not implemented in the DST ASIC: • • • • TMR clocks and registers. FPU Co-processor SDRAM interface Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC AHB Slave Wrapper Conceptual block diagram Page 10 Other Clock Domain Configuration Generics • # sub-slaves (1 to 4) • # of total 32-bit words • # write wait states • # read wait states • pulse width of Chip-select • # slave ID information Add # sub-slaves (1 to 4) CS sub-slv0 Re-synced Chip-Select Re-sync pulse Chip Select (3-stage) Ahbsi. Green AMBA Clock domain AHB Interface (including Frozen Address .hready Wait (already Counter) .hresp scaled down) “n” multicycle Path Ahbsi.data amba_rd_en Top 2 bits Add Chip CS sub-slv1 Select Sub-slave Add Decoder (and delay) CS sub-slv2 Sub Slave en 0 “n” multicycle Path Sub Slave en 1 2 multicycle Path Sub Slave en 2 Ahbso .data CS sub-slv3 Reg en en Data Sync-up Re-synced Data 2 multicycle Path Sub Slave 3 Top 2 Add bits en Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC fault-tolerance approach Page 11 • • • • • External PROM: • Program runs in PROM only. PROM is rad-hard and SEU-immune. External RAM: • RAM is rad-hard, but not SEU-immune. It is used only for non-critical data which is periodically scrubbed. EDAC will not be used for Bepi Colombo mission. Internal Scratchpad is rad-hard. It is used for critical data. Internal Cache is not rad-hard (too many gates) but does have a 2-bit parity protection. Internal Register-file is not rad-hard (too many gates) but does have a 7-bit EDAC protection. Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST FPGA: Bread Board implementation Page 12 • • • • The entire DST ASIC (using the same ASIC VHDL code) has been successfully implemented in an Altera StratixII EP2S180 device. Gaisler GRMON debugger used as general debugger and also to download software into the “PROM”. All tests performed using real software - C code (DST FPGA is in real operational mode). This is the same software used in simulation. Supplied LEON2 and peripheral validation software was run successfully on the FPGA. NOTE: simulations, ASIC synthesis and lab verifications (both FPGA and ASIC) all use the same LEON2 configuration. The only exception is the target technology. Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC Achievements Page 13 A complete system has been included all in a single chip : from a microprocessor, various DSP functions, standard BUS interfaces (MIL-STD-1553, LSSB, MLDS16, CAN) and many other general purpose serial and parallel interfaces. Thus a ready, flexible, configurable and multi-standard platform has been obtained, which is the core for our on-board TT&C equipment for several mission profiles (Deep Space, Near Earth or Secure Communications). Gated clocks : we achieved our goal for the different clock domains and thus can reduce power consumption in the different configurations. Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC overall problems encountered Page 14 General problems with the place and routing in MH1RT: Silicon Ensemble Router (previously called tangate) “failed” (aborted after several days run) due to the high congestion without giving much indication to the cause. Area density before P&R failing was around 55% : • • • • • The only recoverable information from the P&R tool was a map of the area where the most severe congestion problems were found This area was in the LEON2 placed gates region. No solution found with timing driven Router tool First-Encounter Typical area usage (Atmel source) for MH1RT technology is 70%. Solutions to resolve the problem: • • • • • Optimization of certain code Removal of certain blocks (some moved to software) Added AHB slave data register to create multi-cycle paths for AMBA writes More refined script files (multi-cycle paths etc.) AMBA / LEON clock frequency reduced from 38.4MHz to 25.6MHz reduction After above gate reduction (to 52%), we had success (using only Silicon Ensemble) but we still had timing problems with 76.8MHz. More than 1 week required for every new run of the P&R tool • No incremental layout possible even if only minor parts of the ASIC changed Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space Problems encountered in implementing the LEON2-FT Page 15 1. LEON2-FT Manual : There were numerous errors and discrepancies in the manual which took time to understand. Certain sections were not very clear or hard to understand. This required simulation and code analysis for a better understanding. 2. The provided validation C code (used to validate the LEON2 and peripheral): • Certain (very minor) changes to the provided validation C code caused errors in the cache-controller test when using a non-standard cache set-size (1 set). 3. RTL / Gate simulation mismatches : ‘X’s in gate level simulation (which propagate) due to non-reset control registers (that are truly don’t care). Different results for each synthesis. • TASI has resolved this problem utilizing the already existing internal SCAN chain to initialize all control registers in the LEON environment • This “SCAN pre-initilization” is run at the beginning of each testbench and thus far TASI has not encountered any problems. • WARNING: Utilizing the above SCAN pre-initialization introduces the risk that it could hide true initialization problems. 4. Cache : trying to implement the cache as a latch-based memory caused difficulty in routing / timing. Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space Problems encountered with Modelsim when implementing the LEON2-FT Page 16 Modelsim code coverage“bugs”: 1. Incorrect simulation: while performing code coverage, modelsim simulation produced erroneous results – there was a wrongly evaluated combinatorial expression in a variable assignment inside a combinatorial process within the Memory Controller. • Solution: use a different version of modelsim, but be careful because this problem has come and gone as versions evolve. For now, the version that doesn’t seem to have problems is 6.5c 2. Modelsim code coverage ignores recursive constant assignments in the target / device / config packages (the “passing” of constants from a lower level package to a higher level package) – thus resulting in a much lower code coverage. • Solution (Only a “patch” for now): by hand (or script) modify the upper level constants package (config.vhd). Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC lessons learnt (1 of 2) Page 17 It is very difficult to understand if there will be routing problems with Technology MH1RT (especially in high fan-out, intensive bus routing designs). If there is space, implementing more Cache would be very useful. For the cache, it is better to chose an ASIC that has RAM (or one that has enough available space to implement the cache in registers) 8-bit data bus can be a “bottleneck”, and even more so with EDAC enabled. Always perform a flush enabling the cache. Be careful when using PIO[1:0] to configure data-bus width during a non-power-on reset. Depending on the reset width, there may not be enough time for the pull-up /down resisters to reach their value. Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space DST ASIC lessons learnt (2 of 2) Page 18 Some other observations… The modular AMBA bus is a very efficient/organized way to design SOC platforms. It was also very easy to add and remove slaves from the bus in the beginning design stages or for certain verifications. Designing a standard AHB wrapper helped in the debug and created a well ordered and uniform design. It also helped when creating script files. If possible, keeping the top level (including I/O pins) and the “mcore” basic structure as much the same as possible to the original design helps in general debug and especially when using the provided validation C code to validate the LEON2 and peripheral. Record types are very useful in organizing the design and also aid in debug. With today’s faster memories, the Memory Controller PROM wait states could be changed to increments of 1. (presently 0, 2, 4 etc.) Thales Alenia Space Italia SpA All rights reserved, 2010, Thales Alenia Space