Assessment and debugging of ATMEL ATF280 Development kit and suitability for ESA IP cores Javier Galindo TEC-EDM 27/09/2011 Outline • Experience learning the ATMEL development kit. • Exposition about the work done with the HurriCANe IP core . • Exposition about the work done with the SpaceWire-b ESA Codec IP core -2- Motivation of the Study • ATF280F first In-house design experiences o In-house evaluation of ATMEL FPGA Development Kit and Tools through small designs: new Atmel FPGA user learning curve • Study the suitability of ESA IP Cores within the ATMEL ATF280 FPGA and its Tools (HurriCANe and SpaceWire Codec) o Assess the feasibility and performance of these IPs in the European FPGA technology ATF280 -3- Study Flow I 1.Review of ATMEL Architecture and General ATF280 Features – Expertise and work already done by ESA with ATMEL FPGAs 2.Review of work already done with ATF280 – Analysis of developed designs, In-house and by Industry – Tricks, bugs and problems found which are not well explained in ATMEL documentation. – At first glance, promising device -4- Study Flow II 3.Understanding of ATMEL Tool flow – Non trivial; Compilation of different applications. – Lack of “good” documentation and EXAMPLES!!! – In-house Know How; thanks to Mrs F. Decuzzi 4.Implementation of simple test designs – Start with simple designs to become familiar with tool flow – Correlate documentation with reality -5- Study Flow III 5.Implementation of ESA IP Cores – Use of HurriCANe (Data Link Layer); small and interesting IP core – Use of SpaceWire Codec; small and interesting IP core – Future; CANOpen, Space Wire, Small processor or LEON 6.Results analysis and comparison with other technologies – Validation and verification of the designs – Problem analysis and results – Comparison and conclusions -6- Outline • Experience learning the ATMEL development kit. • Exposition about the work done with the HurriCANe IP core . • Exposition about the work done with the SpaceWire-b ESA Codec IP core -7- Development Kits – Initial Prototype – – – – – – – ATF280 Silicon Revision F Compact PCI mother board EEPROM, SDRAM, SRAM memories AT17LV040 configuration memory is used instead of AT69170E. Configurable clock generator LEDs, buttons and a LCD display Serial RS232 and LVDS drivers Initial prototype – Current Development Kit – – – – – – – ATF280 Silicon Revision F Compact PCI mother board EEPROM, SRAM memories 4 x AT17LV010 configuration memory is used instead of AT69170E. Configurable clock generator and external clock inputs LEDs and buttons Serial RS232 and LVDS drivers Development Kit -8- Simple Test Designs • Test of simple designs to become familiar with the tools. – Simple combinational circuits – Up and Down Counters – Frequency Dividers – Hard Macros with dummy State Machines – Simple UART access to On-Chip RAM -9- Objectives – Behaviour of the tools with hierarchical designs – Clock resources management – HardMacro detection and mapping – LPM detection and mapping – Placing capabilities – Routing capabilities – Simulation and analysis features – Functionality of the development kit blocks – Usability of the ATF280 with ESA IP cores -10- Tech. Comparison Considerations – Synthesis Technology comparisons purpose: – Check consistency of the results obtained with the Atmel design flow and other FPGA technologies – The purpose is not to have a full benchmark – Important note; – The technologies compared belong to different technology nodes and some (Altera Cyclone 2 and Xilinx Virtex 4) are commercial • Altera Cyclone: 90 nm TSCM, commercial • Xilinx Virtex-4: 90 nm UMC, commercial • Microsemi RTAX : 150 nm, rad tolerant -11- Frequency Divider Area Frequency Divider; Technology Comparison ATMEL – ATF280 ALTERA – Cyclone II ACTEL – RTAX1000 XILINX – Virtex 4 FIGARO Report Correlation among technologies -12- Frequency Divider Timing Frequency Divider; Technology Comparison ATMEL – ATF280 ALTERA – Cyclone II ACTEL – RTAX1000 XILINX – Virtex 4 FIGARO Report ATMEL shows speed problems -13- Down Counter Notes Down Counter; Notes – Complex tool flow. Non integration of all the tools in only one software application. – Integration of IDS Figaro in Precision is not working. Old version. – Lack of “good” documentation and EXAMPLES!!! – Tricks, bugs and problems found which are not well explained in ATMEL documentation. Mesh in different documents in the users group. – Complicated tracking of signals due to renaming. – LPM mapping and HardMacros mapping is functional and desirable. – Needed more detailed explanation and status in current soft release. – Incomplete area and timing reports due to black boxes; number of Core Cells consumed by Black Box is not estimated in Synthesis – Post Synthesis simulation not fully available. Post Place and Route simulation possible but under development. -14- Frequency Divider Notes Frequency Divider; Notes – – – – – – Hierarchy Flattening Mandatory. Problems routing different clock domains in same die areas. – Using the 8 DKit LEDs with different clock domains almost impossible. – Solution not always feasible; use not registered outputs. Optimization problems. FanOut switch already working. Atmel shows clear speed problems, analysis of reasons needed. – Characterization ongoing. Repeaters? – Needed deeper study of ATMEL timing analysis, not clear results. Bugs being fixed. Not optimal placing induces not optimal routing; waste of resources regarding other technologies. RAM allocation problems; max @ width is 8 = 256 Bytes per block without glue logic. Simulation libraries? -15- ATMEL Development Kit I After the verification and validation of the simple designs the following conclusions were achieved; – Lack of good documentation for the Development Kit and Tools. – Last DK relase has only info about Prototype Kit. Improvement needed; clarify tools status and compile bugs and tricks in one single document. Efficient RadHard Hotline support. – DK absence of sample designs, only self test bit stream without documentation. – DK absence of LCD Display as in the prototype. – DK absence of AT69170E Configuration Memory – SpaceProgrammer has no native drivers for 64 bit Windows Versions, useless. IDS Figaro compatible only up to Windows Vista. -16- ATMEL Development Kit II After the verification and validation of the simple designs the following conclusions were achieved; – Speed problems of ATMEL device; still valid for small/medium designs not very fast. – Place and Route capabilities to be improved dramatically. – Simulation libraries and documentation improvement needed – Appreciable effort in enhancing the tools and supporting users shown, good way for future. -17- ATMEL Development Kit – Gone through the learning curve of using the FPGA design tools (including lab equipment); focusing the ATF280 FPGA – FPGA still valid for some “small” designs – Several days/weeks of work with ATMEL validated in only one XILINX work day. -18- Outline • Experience learning the ATMEL development kit. • Exposition about the work done with the HurriCANe IP core . • Exposition about the work done with the SpaceWire-b ESA Codec IP core -19- HurryCANe Tests – HurryCANe – ESA IP Core implementing the DATA LINK LAYER of BOSCH 2.0 A and B CAN standard. – Well spread controller – Includes an AMBA APB wrapper, not used in these test. – Lower Layer for CCPIP IP Core. Work done with it but stable version not yet released for synthesis. -20- HurryCANe Setups Two test setups used; – Single CAN Node, SCN; ESA HurryCANe IP Core Simple CAN node which sends packets when board push buttons are pressed and switch on and off LEDs depending on the received packet. – CAN-UART Bridge; Bridge with a CAN interface and a Serial UART interface. LCD to monitor traffic. Enables more extensive testing -21- Simple CAN Node, SCN Simple CAN Node to asses IP core functionality with ATMEL FPGAs. – Only Data Link Layer implemented controlled with dummy state machines. – Computer emulated CAN network to send packets to the node and monitor packet received from the node. – LEDs and push buttons to control node. – 1Mbps CAN link speed. – Internal or external PCB clock. – Synthesis performed with Precision RTL 2010a U2. – Place & route performed with Figaro IDS 9.0.3. – ATMEL Development Kit used. -22- SCN Setup 1. Physical Layer Driver for CAN Voltage levels in protoboard. 2. Used 65HVD251 from TI (CAN V levels, not RS485) Up to 1Mbp 3. Vector CANoe software package to simulate CAN network nodes and monitor traffic. 4. PCMCIA Card with optocoupled physical layer drivers. Design validated and verified ✔ -23- SCN Details – Design fits and works in ATF280 – Most complicated step; learning of Vector CANoe software package. Powerful tool but time consuming to be learnt. – Internal and external clock tested up to 20 Mhz. No need for higher speeds, max CAN speed is 1Mbps, achievable with less than 20 Mhz. – Very low design frequency due to long combinatorial paths of the IP core (Specially expensive in time for ATMEL FPGAs). – Not functional problem but detailed analysis needed. IP core works without big issues -24- SCN Problems IP core Usable with ATF280 Estrange problem with encapsulated transistor burnt after an On Off On cycle. DK not damaged but component need to be replaced. -25- CAN UART Bridge – HurryCANe – ESA IP Core implementing the DATA LINK LATER of BOSCH 2.0 A and B CAN standard interfacing OpenCores simple serial UART 96008N1. – Dummy LCD display controlled with simple state machine to monitor traffic. -26- CAN-UART Setup 1. Physical Layer Driver for CAN Voltage levels in protoboard. Equivalent to SCN including; Serial port on computer with Putty as terminal 2. Used 65HVD251 from TI (CAN V levels, not RS485) Up to 1Mbp 3. Vector CANoe software package to simulate CAN network nodes and monitor trafic. 4. PCMCIA Card with optocoupled physical layer drivers. 5. Serial port on computer with Putty as terminal. Design validated and verified ✔ -27- CAN-UART Results Area Technology Comparison ATMEL – ATF280 ALTERA – Cyclone II ACTEL – RTAX1000 XILINX – Virtex 4 FIGARO Report (FANOUT = 100) -28- CAN-UART Results Timing Technology Comparison FANOUT impact: not too large for this design ATMEL – ATF280 ALTERA – Cyclone II FANOUT = 100 FANOUT = 30 ACTEL – RTAX1000 XILINX – Virtex 4 FIGARO Report FANOUT = 30 -29- CAN-UART Results FGEN2 Technology Comparison FIGARO Report Where are the FGEN2?? (In the lpms??) PRECISION Report -30- CAN-UART Results Repeaters Delay in the nets: very high for ATF280 (for many 4 ns), characterization required. ATMEL – ATF280 XILINX – Virtex 4 -31- CAN-UART Results Design validated and verified ✔ – CAN traffic and Serial traffic monitored on LCD. – FGEN2 problem identified on Precision reports. – FanOut doesn’t change results significantly. – Technology Gap between Atmel and other technologies. – Mature expertise with Atmel tools assessed. – ESA CAN IP Core simple and useful, even with ATF280 -32- Outline • Experience learning the ATMEL development kit. • Exposition about the work done with the HurriCANe IP core . • Exposition about the work done with the SpaceWire-b ESA Codec IP core -33- SpW Codec – Implementation of UoD Space Wire Codec ESA IP – According to standard ECSS-E-ST-50-12C – High-speed serial protocol for links and networks used onboard spacecraft. – Up to 400 Mbits/sec, bi-directional and full-duplex. – Application information is sent along a SpaceWire link in discrete packets. – Control and time information can also be sent along SpaceWire links. -34- SpW Codec Info – SpaceWire CODEC is responsible for making a connection with the SpaceWire interface at the other end of a link. – Managing the flow of data across the link. – The interface transmits and receives SpaceWire characters which can be link characters (L-Char) or normal characters (N-Char). – L-Chars are characters that are used to manage the flow of data across a link (NULL & FCT). – N-Chars are the characters that are used to pass information across the link (data characters, EOP, EEP and time-codes). -35- SpW Approach – Three SpW ESA IPs available; – SpW-b; SpW alone codec. – SpW-AMBA; SpW codec with AMBA interface. – SpW-RMAP; SpW codec with Remote Memory Access Protocol (RMAP) extensions. – Planned to start with SpW RMAP IP; standard mechanism for reading from, and writing to memory in a remote SpaceWire node. – Preliminary analysis shown problems mapping RMAP memories inside FPGA. – Only 115-Kbits of user-configurable SRAM. – Limited usability of this RAM due to Figaro IDS. Glue logic routing problems – Finally first approach with SpaceWire CODEC alone and later continue with RMAP mapping memories outside FPGA. -36- SpW Codec IP – Very versatile IP core with many configuration options; – Valuable for experienced user / Confusing for newcomer – Main options are; – Pipelined to increase transmission speed or non pipelined to save area. – DDR outputs or SDR outputs depending the on required data rate and the users selected technology. – TX clock configuration options to allow an independent TX clock and default system clock therefore greatly increasing the achievable data rate and decoupling the TX logic from the system clock logic. – Internal variable data rate generation. – Configurable receive buffer size. Internal FCT credit counter operations are handled internally. – No functional example available in documentation. Only SpW RMAP Xilinx implementation sample. – Only generic wrapper available with a TX FIFO and RX memory. -37- SpW Codec Configuration – First approach with a basic configuration; Fixed 10Mbps TX rate. – Two clock domains; – System and TX clocks common clock at 10Mhz. – RX recovered clock. – No DDR outputs – Small TX and RX FIFOs; 16 words of 9bits. – Loopback of data inside FPGA – Establish a running link with Brick Tool – Tests the standard with SpW Conformance Tester – Monitoring traffic with SpW router -38- SpW Codec Simulation I – First problems with the available simulation test bench; – Verification test bench useful only with the codec itself. – Runs different codec configuration tests. – Monitors SpW traffic and internal signals of the codec. – Wrapper on top doesn’t allow configuration changes and hides internal signals. -39- SpW Codec Simulation II – Decided to simulate codec itself post Synthesis and Post P&R – P&R requires some GENERICS to be defined, problem to simulate all tests as logic synthesis removes unused logic. – Simulation only of the selected configuration. – Lack of documentation to select specific test. – Manual modification of synthesis and simulation scripts. – Not available Modelsim Post Synthesis ATMEL libraries. – Short help guide and libraries received upon request. – Manual Post Synthesis .vhd and libraries modification requried. – Same problem with Post Place and Route simulation – Some test failed due to RX clock recovery. -40- SpW Codec Hardware Setup – Basic design; Fixed 10Mbps TX rate, two domain clocks Nice surprise; The official Development Kit had the wrong SpW receptacle. Back to ATMEL prototype. -41- SpW Codec Clock Recovery I – Critical Clock Recovery; Constraint design. – SpW has timing constrains for recovery. – Microsemi (ACTEL) application note suggest manual routing. – Previous ATMEL SpW desing (V.Carlier IAS/ORSAY) routed manually. TX 20Mbps/RX120Mbps – Our design; low speed, 10 Mbps, automated routing could work -42- SpW Codec Clock Recovery II – Recovered Clock is a Derived Clock – ATMEL suit doesn’t initially allow Derived Clocks – New release while working fixed that problem. – ATMEL suit doesn’t allow STA for clock falling edges – We assume that the same engine is used for STA and Time Driven P&R – Figaro puts effort in optimizing paths with falling edges, leaving rest of design non optimized. – Really poor low performance in results, max clocks around 10 Mhz – Non Time Driven P&R gives similar results – Next step hardware validation of the design -43- SpW Codec First Results – Initial configuration was 2 SpW instances of the Codec connected in loopback mode inside the FPGA. – The link was running for a few useconds before disconnect error of the brick – The link was stablished with other hardware Working with SpW router, Conformance Tester and Link Analyzer. (Thanks to TEC-EDP) – Link Active but Nchar traffic was not loopbacked – Next step debugging with Logic Analyzer (Thanks to TEC-EDD) -44- SpW Codec Debugging I Periodic Disconnect Error -45- SpW Codec Debugging II – When mapping out signals random behavior of the design. – Random effort trying to debug the functionality of the P&R. – Some times affected even the current consumption of the board. – 210mA regular design vs 400mA in some working instances – Waiting issue answer of ATMEL Help line – Possible damage of the board discarded after manual analysis of resources used in designs that shown estrange current behavior. – Corruption of the bitstream discarded after comparison between bitstreams in DK memory and computer. – Assumption for possible timing related problems with P&R Simpler design with only one codec. -46- SpW Codec Debugging III – Less random behavior of the development kit – Ass before link established normally. – Loopback of characters. – Not fully functional – Characters not in order. – Unknown characters – Problem in TX or RX? – New design with UART – Monitor RX character and clock domain – Monitor TX and system clock domain -47- SpW Codec Debugging IV – With this last configuration RX domain validated – UART monitors RX characters, some improvements needed – Automated P&R for RX clock recovery at low speed valid – Work being done in the TX and system clock domain – UART not well connected to TX FIFO or timing problem? – New iteration in STA of the design; estrange behavior of IDS Figaro when changing Constraint for STA with a fix P&R – Re-running STA relaxing some strong constraints produces improvement in timing performance --- Correct – Re-running STA rising some strong constraints produces improvement in timing performance --- Non correct?? – Probably related to falling edge clocks. Not clear answer from ATMEL help line, still under investigation. -48- SpW Codec Results Area FIGARO Report Mentor Precision for ATMEL – ATF280 -49- SpW Codec Results Timing Mentor Precision for ATMEL – ATF280 FIGARO Report -50- CAN-UART Results Design not yet validated and verified – Further work need to be developed – ESA SpW-b IP Core powerful but complex – Lack of examples – Not easy simulation of designs, only the codec – Automated routing for low speed valid – ATMEL main problem timing; possible to synthesize SpW with ATMEL but tricky -51- ATF280 Timing Charact. A Timing Characterization is being developed Correlate simulations with real Hardware. ATMEL timing issues related to net delays? Repeaters? Last library updates doesn’t add big penalty when routing repeaters Further analysis required -52- ATF280 DK Conclusions – Non trivial tool flow, compilation of several vendor software; – self learning the software will not give the same results as experimented users could get, help needed. – Lack of application examples and some documentation. Only self test bit stream with the FPGA, need to ask for samples. – Lack of centralized document with tips and tricks for new users. – Old dated manuals and tutorials, 2002, lots of changes. – Fast and good support from ATMEL RadHard Hotline; efficient and fast solutions answers and help. -53- ATF280 DK Conclusions – Old errors and problems still reproduced. Need to be fixed. – Routing problems due to non optimal Placement, specially registered outputs and clock resources on mixed clock domains. – LPM and Macros seen as black boxes, no timing or area resources report in Synthesis step. – FGEN2 estrange behavior. – Improve Atmel timing reports and correlation with Precision and reality. – Not support for falling clock edges in STA or Timing driven P&R, STA. -54- ATF280 DK Conclusions – Strong differences between ATMEL and other technologies. – Not always comparable; XTMR overhead or other techniques avoided with RadHard by design architecture from ATMEL; – Valid comparison in terms of speed – Non equivalent comparison in terms of Area due to different radiation features. – Not suitable FPGA for “big” designs but still valid for small/medium designs. – Problem with the Development Kit, Transistors burnt with only switching on-off-on, SpW receptacles. – SpaceProgrammer without native drivers for 64 bit Windows Versions, useless. FIGARO not working under windows 7. -55- HurriCANe Conclusions – IP core easy to use and learn. – Not big requirements in terms of area and clock. – Fastest configuration, 1Mbps, running even in ATF280 – Possible upgrade in clocks? Increase of system clock speed. Nowadays worst case is ATF280, in the future ATF450? – Stable design, well documented. Lack of info about ATMEL FPGA. – Complement to higher levels of CAN stack, next ESA CCIPC IP. -56- SpW Codec Conclusions – IP core versatile and powerful. – Not easy to use and configure. – Lack of some examples of configuration. – Some status signals in the IP core could be replaced for debug. – Not big requirements in terms of area. Tricky P&R for the clock recovery. – Not yet working with ATMEL . -57- Global Conclusions Atmel on the good path. ATF280 still valid for some designs. Improvements on the tools would give more usability. More work need to be done. Atmel Users Group Forum needs to be stimulated and updated. -58- THANKS FOR YOUR TIME QUESTIONS? -59- YOUR TIME YOUR TIME Down Counter Area Down Counter; AREA Precision Vs IDS ATMEL IDS MENTOR PRECISION MENTOR Similar Results PRECISION Down Counter Timing Down Counter; TIMING Precision Vs IDS MENTOR PRECISION ATMEL IDS Not So Accurate Correlation Down Counter Macros Down Counter; AREA and TIMING VHDL Vs IDS Hard Macros VHDL VHDL HARD MACROS HARD MACROS HardMacros perform much better CAN-UART IDS Figaro Registered Outputs