The ATLAS Liquid Argon Calorimeters Read Out Driver (ROD) The TMS320C6414 DSP Mezzanine board Abstract : In this document, a detailed description of the ATLAS Liquid Argon Calorimeters Read Out Drivers prototype mezzanine designed around the TMS320C6414 from Texas Instrument, is given. The document is organized as follows : after an overall presentation of the board, the functionality of the main components are described. The document ends with miscellaneous points as power supply, JTAG, board technical considerations and planned cost. Author : Julie PRAST Web page : http://wwwlapp.in2p3.fr/Electronique/Experiences/ATLAS-ELEC/Rod/index.html File name : pu6414final.doc Created : June 2002. Last updated : 04/09/2002 Version : 1.2 The TMS320C6414 Processing Unit 08/03/2016 1/23 1 Table of contents 1 TABLE OF CONTENTS .............................................................................................................................. 2 2 OVERALL PRESENTATION..................................................................................................................... 3 2.1 2.2 3 INTRODUCTION ........................................................................................................................................ 3 THE TMS320C6414 MEZZANINE FINAL ARCHITECTURE .......................................................................... 3 MAIN COMPONENTS ................................................................................................................................ 4 3.1 THE INPUT FPGA ..................................................................................................................................... 4 3.1.1 Parallelisation and control ............................................................................................................. 4 3.1.2 Data organization in the internal dual port memory ...................................................................... 5 3.1.3 DSP interface .................................................................................................................................. 5 3.2 THE DSP .................................................................................................................................................. 6 3.2.1 EMIFA ............................................................................................................................................. 6 3.2.2 EMIFB ............................................................................................................................................. 6 3.2.3 Host Port Interface (HPI)................................................................................................................ 6 3.2.4 McBSP ............................................................................................................................................. 6 3.2.5 Interrupts and general purposes Pins ............................................................................................. 7 3.3 THE OUTPUT FPGA ................................................................................................................................. 7 3.3.1 The TTC interface............................................................................................................................ 7 3.3.2 The VME interface .......................................................................................................................... 8 3.4 THE OUTPUT FIFO ................................................................................................................................... 9 4 POWER SUPPLY AND JTAG .................................................................................................................. 10 4.1 4.2 5 POWER-SUPPLY ...................................................................................................................................... 10 JTAG CHAIN .......................................................................................................................................... 10 MISC ............................................................................................................................................................ 10 5.1 5.2 5.3 5.4 BOARD TECHNICAL CONSIDERATIONS ................................................................................................... 10 ESTIMATED COST ................................................................................................................................... 10 AVAILABILITY OF COMPONENTS AND TOOLS.......................................................................................... 11 COMING MILESTONES ............................................................................................................................. 11 6 REFERENCES ............................................................................................................................................ 11 7 ABBREVIATION ....................................................................................................................................... 12 8 ANNEXES.................................................................................................................................................... 13 8.1 8.2 ANNEXE 1 : ADC READ OUT INPUT EVENT FORMAT .............................................................................. 13 ANNEXE 2 : SCHEMATICS, ROUTING AND PLACEMENT........................................................................... 14 The TMS320C6414 Processing Unit 08/03/2016 2/23 2 Overall presentation 2.1 Introduction To assess the feasibility of the project, the ATLAS LAr collaboration has decided in 1999 to make a ROD (Read Out Drivers) demonstrator. The project consisted in the construction of a motherboard (developed by the University of Geneva, Switzerland), into which could be plugged up to 4 daughterboard processing units (PU), each PU treating 64 calorimeter channels (an half FEB). The architecture of the PU was based around a Digital Signal Processor (DSP). Three PU were designed, two based on an integer DSP the TMS320C6202 from Texas Instrument (developed by the CPPM-Marseille-France and Nevis-USA) and the other based on a floating point processor the ADSP21160 from Analog Devices (developed by the LAPP- Annecy- France). The techniques evolution and the arrival of a new powerful DSP opens the possibility to double the system density by handling 128 channels instead of 64 in a single DSP. That’s why in the second half of 2001, an evaluation board based around the TMS320C6414 from Texas Instrument were developed, conjointly by Nevis and LAPP teams. This DSP was finally adopted by the ROD community for the final board last June. The final design consists of 4 daughterboards per ROD module, each daughterboard equipped with two DSP, increasing the ROD density to 8 FEB per DSP, instead of two in the demonstrator. Further more, for financial reasons, the ROD system should provide staging capabilities. In the staging scenario, a daughterboard among two, will be populated on the motherboard at the beginning of the experiment, bringing to 256 the number of channels treated by a single DSP, at the expense of potential loss in performance (reduced trigger rate). This document aims to describe the final daughter board architecture. 2.2 The TMS320C6414 mezzanine final architecture Figure 1 shows the TMS320C6414 mezzanine final architecture : InFPGA config TMS320C6414 FEB1 16 EMIF B Input FPGA 64 FEB3 Apex 20k160 16 FEB4 Input FPGA 16 Apex 20k160 64 FIFO 4k*16 EMIFA McBSP2 EXT_INT HPI 16 McBSP0 16 FEB2 16 Output FPGA Acex 1k30 McBSP1 TTC interface TMS320C6414 VME interface EMIFA HPI McBSP0 McBSP1 TTC VME BCID TType FIFO EXT_INT McBSP2 EMIF B 16 16 16 4k*16 16 JTAG InFPGA config Figure 1 : TMS320C6414Mezzanine block diagram The mezzanine is a 120*85 mm board, composed of two 64 pins and one 84 pins connectors that can be plugged on the motherboard. The mezzanine is composed of two processing units (PU), able to treat each up to 128 calorimeter channels (1 FEB) in normal mode and 256 channels (2 FEB) in staging mode. Each PU is composed of an input FPGA (InFPGA), a TMS320C6414 DSP from Texas Instrument and an output FIFO. The mezzanine contains also an output FPGA (OutFPGA) used for the VME and TTC interface. Input FEB data enters the InFPGA where they are formatted and checked as needed for the DSP algorithm. When an event is ready, an interrupt is sent to the DSP which launches a DMA to read the data on the 64-bits The TMS320C6414 Processing Unit 08/03/2016 3/23 EMIFA bus. Once the DSP has finished processing an event, it writes the results in the output FIFO through the 16 bits EMIFB bus. The TTC data are received in the OutFPGA and sent to each DSP via 2 serial ports (McBSP). A serial port is for the Trigger type and the other is for the BCID and EventID. The OutFPGA allows the control of the board by VME, in particular : - DSP boot written and histograms read through the 16-bits Host Port Interface (HPI) of the DSP. - Full duplex serial port (McBSP2) with each DSP (run number written, DSP commands, status read) - InFPGA configuration written (number of samples, number of gains, mode…) and status read through a serial line. - InFPGA boot. 3 MAIN COMPONENTS 3.1 The input FPGA The InFPGA parallelizes incoming FEB data, verifies their consistency (in particular potential corruption coming from radiation effects, like SEU), and formats the data as needed for the DSP algorithm. The InFPGA is an APEX20k160EBC208-1 from Altera. The choice of this component is described in references [3]. The InFPGA has three main parts : 1. Parallelization and control of the incoming data. 2. Data organization in the dual port memory. 3. DSP interface. Figure 2 shows the InFPGA architecture in staging mode, ie when treating 2 FEBs: 16 ADC1 // 16 bits @ 80 Generation of timing signals + data and synchro check MHz M U X 16 Data organization in double port RAM (64 bits wide) INT4 64 DSP Interface CS1 ADC16 // Parallelization of 2 HFEB 64 ADC1 // 16 bits @ 80 16 Generation of timing signals + data and synchro check MHz M U X 16 Data organization in double port RAM (64 bits wide) 64 ADC16 // DSP Interface INT5 CS2 Parallelization of 2 HFEB Figure 2 : Input FPGA architecture (staging mode) 3.1.1 Parallelisation and control The InFPGA receives input data from the mother board through two 80 MHz 16-bits bus. Each 16-bits bus corresponds to one FEB (128 channels = 16 ADC). In normal mode, the InFPGA treats one FEB, whereas in staging mode, the InFPGA treats two FEBs. The format of the incoming data is described in annexe 1. The TMS320C6414 Processing Unit 08/03/2016 4/23 For each FEB, timing signals are generated internally (indication of the data type : header, RADD, data, …) For each ADC, the InFPGA detects the start of event and does the serial to parallel conversion (2 bits -> 16 bits). For each word, except the start and end of event, the parity is checked. For each data word, the gain is isolated and compared to the other gains of the same channel. Gains from 8 channels are grouped in 16 bits data words. Several checks are performed : Parity check. Start of data alignment to check half-FEB (HFEB) desynchronization. Identical gain for all samples of a given channel. Identical control words and RADD within an HFEB. Identical control words and RADD between two HFEB. When en error is detected, the InFPGA fills the event status word. This word is interpreted by the DSP in the synchronization task. If the status is different to zero, the DSP will take the appropriate decision, as asking for a FEB reset. The synchronization task is described in more details in reference [10]. The content of the event status word is described below: 31 26 25 0 Radds 24 23 bcids gain or BOF parity ctrl3 gain Table 1 : Content of the event status word. 8 7 6 5 4 3 2 1 0 radd ctrl2 ctrl1 ones bit 0 ones : The beginning of event is missing in one of the 16 groups of channels. bit 1 ctrl1 : Ctrl1 mismatch bit 2 ctrl2 : Ctrl2 mismatch bit 3 radd : RADD mismatch bit 4 gain : Gain mismatch (the gain bits are not preserved across the time samples, for some channels) bit 5 ctrl3 : CTRL3 mismatch [7..6] parity: Parity errors counts (0 = no error, 1 = 1 error, 2 = 2 errors, 3 = 3 or more errors) [23..8] gain or BOF In case of error in the gain or BOF, precise which group of channels is concerned (bit 8 = ch0) bit 24 bcids comparison between BCID of channels 0-63 versus channels 64-128 bit 25 radds comparison between RADD of channels 0-63 versus channels 64-128 3.1.2 Data organization in the internal dual port memory Data is then organized in a dual port memory as needed to optimize the DSP algorithm. The data format is presented below : 0 bits [63..48] Event status bits[47..32] Event status bits [31..16] EventID bits[15..0] BCID 1 ctrl1 ctrl2 ctrl3 Radd1 2 Radd2 Radd3 Radd4 Radd5 3 C0 Gain C0 S1 C0 S2 C0 S3 4 C0 S4 C0 S5 C1 gain C1 S1 5 C1 S2 C1 S3 C1 S4 C1 S5 6 C2 Gain C2 S1 C2 S2 C2 S3 194 C127 S2 C127 S3 C127 S4 Table 2 : Dual port memory organization C127 S5 The dual port memory of the InFPGA is configured as a dual bank memory. While the DSP is reading a complete event from one bank, a new event can be written into the other bank. Therefore, the minimal size of the InFPGA dual port memory is two events. Please refer to note [3] for more details about the dual port memory organization. 3.1.3 DSP interface When a complete FEB event is stored in the memory, the InFPGA sends an interrupt to the DSP. The DSP then launches a DMA to read the event. The reading is cadenced by the DSP clock. The frequency is configurable, The TMS320C6414 Processing Unit 08/03/2016 5/23 but it is today foreseen at 100 MHz (CPU/6). From the reading side, the internal dual port memory of the input FPGA is seen by the DSP as a FIFO, implying that the data is read in consecutive addresses. There is one interrupt and DSP chip select per FEB. 3.2 The DSP The DSP is the 600 MHz TMS320C6414GLZ, which is among the latest generation of the Texas Instrument DSP. The DSP receives FEB data on its EMIFA memory bus, TTC information on serial ports McBSP0 and McBSP1 and transmits the output data through its EMIFB memory bus. The Host Port Interface (HPI) is used to boot the DSP and read histograms. Details about the DSP code are given in the following references : Input /output management and code structure: see reference [5] Real time operating system : see reference [11] Physics code : see reference [12] Paragraphs bellow summarizes the DSP communications. 3.2.1 EMIFA The External Memory Interface A (EMIFA) is directly connected to the InFPGA. The EMIFA is a 64 bits wide bus. The EMIFA clock AECLKOUT2 is generated internally and is configured to run at CPU/6 = 100 MHz. This EMIFA is used to read input FEB data in the InFPGA. As a dual port RAM is foreseen in the InFPGA for each FEB, one interrupt and one Chip Enable (CE) are foreseen per FEB. CE R/W Connected to Purpose Mode CE0 DSP memory address 8000 0000 R InFPGA FEB 1 DP-RAM synchronous read interface. CE1 9000 0000 R InFPGA FEB 2 DP-RAM (staging) synchronous read interface. CE2 A000 0000 InFPGA Connected but not defined CE3 B000 0000 InFPGA Connected but not defined Table 3 : EMIFA memory map 3.2.2 EMIFB The External Memory Interface B (EMIFB) is directly connected to the output FIFO. The EMIFB is a 16 bits wide bus. The EMIFB clock BECLKOUT2 is generated internally and is configured to run at CPU/6 = 100 MHz. This EMIF is used to send output events to the FIFO. CE DSP memory address R/W Connected to Purpose Mode CE0 6000 0000 W Output FIFO Output FIFO write synchronous write interface CE1 6400 0000 W Output FPGA end of output DMA synchronous write interface / Connected but not defined CE2 6800 0000 CE3 6C00 0000 3.2.3 / Connected but not defined Table 4 : EMIFB memory map Host Port Interface (HPI) The HPI is a parallel port through which the VME (host processor) can directly access the CPU’s memory space. The VME has ease of access because it is the master of the interface. The host and CPU can exchange information via internal memory. For more details about the HPI, have a look on reference [6], chapter 7. On the mezzanine board, the HPI is configured as a 16-bits wide bus connected to the output FPGA. The HPI is mainly used for the DSP boot, histograms reading and debugging purposes. VMER/W connected to Purpose Mode W output fpga Boot No particular configuration R Output fpga Histograms, debug variables Table 5 : HPI description. No particular configuration Note : During DSP reset, the OutFPGA pulls down the HD5 signal to configure the HPI as a 16 bits words interface. 3.2.4 McBSP The TMS320C6414 Processing Unit 08/03/2016 6/23 The Multi channel Buffered Serial ports are Full duplex communication DSP serial ports, with independent framing and clocking for receive and transmit. The TMS320C6414 has 3 McBSP connected to the output FPGA. McBSP0 and McBSP1 are used for TTC data (DSP receives only), while McBSP2 is bi-directional and used to send commands to the DSP or to read the DSP status. R/W Connected to Purpose McBSP0 McBSP R output FPGA BCID + Event ID McBSP1 R output FPGA Trigger type transmission McBSP2 R/W outputFPGA DSP Commands write DSP status read, … Table 6 : McBSP description 3.2.5 Interrupts and general purposes Pins Table 7 summarizes the DSP General Purposes (GP) configuration pins. GP function Connected to Purpose GP0 Output GP InFPGA Input FPGA led1 blanking GP1/CLKOUT4 NC GP2/CLKOUT6 NC GP3 Output GP InFPGA Input FPGA led1 blanking GP4/EXT_INT4 interrupt InFPGA Interrupt dedicated to FEB1 DMA GP5/EXT_INT5 interrupt InFPGA Interrupt dedicated to FEB2 DMA GP6/EXT_INT6 interrupt InFPGA Not defined GP7/EXT_INT7 interrupt InFPGA Not defined GP8/CLKS2 NC GP9 Output GP Connector B PU_IRQ GP10 Output GP Connector B BUSY GP11 Input GP OutFPGA FIFO almost full GP12 OutFPGA Not defined GP13 OutFPGA Not defined GP14 OutFPGA Not defined GP15 3.3 NC Table 7 : interrupts and general purposes pins The Output FPGA The OutFPGA is an ACEX EP1k30FC256-2 from Altera. This FPGA has 2 main purposes: the TTC and VME interface. It boots from an EPC2 (eeprom) at power up. 3.3.1 The TTC interface The OutFPGA drives the TTC data coming from the motherboard TTC FPGA and going to both DSP through 2 serial ports also called McBSPs. McBSP0 is reserved for the BCID and event ID, whereas the McBSP1 is reserved for the Trigger type. The communication protocol is described in the figure bellow : 40 MHZ Clock TTCx_BCID_Frame MSB BCID 12 bits MSB TTCx_BCID_Data EVTID 32 bits TTCx_TType_Frame TType 8 bits 08/03/2016 MSB The TMS320C6414 Processing Unit MSB TTCx_TType_Data TType 8 bits 7/23 Figure 3 : TTC communication protocol The protocol for BCID corresponds to a frame having 2 phases of different length one for the BCID and the other for the EVTID each having one element. There must be at least 2 clock cycles between each frame. For the TType there is one frame with only one phase and one element. There must be at least 2 clock cycles between each frame. You can get a detailed description of the Ti6414 McBSP in the manual TMS320C6000 Peripherals reference Guide chapter 12.2 and a detailed description of the TTC FPGA in reference [8]. 3.3.2 The VME interface The OutFPGA includes the VME interface of the mezzanine board. It decodes data coming from the motherboard and generates data according to the motherboard protocol. The communication protocol between the mezzanine and the mother board is described in reference [4]. Table 8 summarizes all the OutFPGA registers that can be accessed by VME (32 bits wide). PU_add[4..0] 0 1 2 3 4 5 6 7 8 9 VMEadd +0 +4 +8 +C +10 +14 +18 +1C +20 +24 R/W R/W R R/W W W R W W R R Function control 1 register Status 1 register HPI register (DSP1) Broadcast HPI register (both DSP) serial data to McBSP2 (DSP1) Serial data from McBSP2 (DSP1) InFPGA configuration data (8 MSB) both InFPGA InFPGA configuration register (15 LSB) both InFPGA InFPGA1 status register (15 LSB) Test register 16 17 18 19 20 21 22 23 24 28 +40 +44 +48 +4C +40 +54 +58 +5C +60 +64 R/W R R/W W W R W W R R control 2 register Status 2 register HPI register (DSP2) Broadcast HPI register (both DSP) serial data to McBSP2 (DSP2) Serial data from McBSP2 (DSP2) InFPGA configuration data (8 MSB) both InFPGA InFPGA configuration register (15 LSB) both InFPGA InFPGA2 status register (15 LSB) Test register Table 8 : VME Memory Map The paragraphs bellow detail the purpose of each register. 3.3.2.1 Control register The control register is described in table 9: Bit number R/W Bit wise operator Functionality 0 R/W 0000 0001 DSP reset 1 R/W 0000 0002 FIFO reset 2 R/W 0000 0004 Input FPGA reset 3 R/W 0000 0008 HPI reset 4 R/W 0000 0010 HPI burst 5 R/W 0000 0020 6 R/W 0000 0040 Table 9 : Control Register DSP launch /Input fpga nconfig 3.3.2.2 Status register The status register is described in table 10: The TMS320C6414 Processing Unit 08/03/2016 8/23 Bit number [7:0] 8 9 10 11 12 14 15 R/W R R R R R R R R 24 25 26 27 28 29 30 31 R R R R R R R R Bit wise operator 0000 00FF 0000 0100 0000 0200 0000 0400 0000 0800 0000 1000 0000 4000 0000 8000 Functionality Number of events in the output FIFO. output FIFO empty flag output FIFO almost full flag output FIFO half full flag output FIFO Almost full flag output FIFO full flag Data from McBSP2 available Serial port buffer overwritten by new data from McBSP2. 0100 0000 0200 0000 0400 0000 0800 0000 1000 0000 2000 0000 4000 0000 8000 0000 Table 10 : Status register GP11 GP12 GP13 GP14 HPI INT HPI Ready InFPGA nstatus InFPGA confdone Note : the counter of the number of events currently in the output FIFO is increased by the DSP (dedicated Chip Select) and decreased with the output controller fifo_evt_end signal. 3.3.2.3 HPI interface The OutFPGA includes also the HPI interface, used for the boot of the DSP and for the read out of the histograms. Both DSP can be accessed in broadcast or independently through the specific registers. The way the HPI protocol is implemented in the output FPGA is described in [7]. 3.3.2.4 McBSP2 interface The OutFPGA has the possibility to exchange data with both DSP through the McBSP2 serial port. This serial port can be used to send commands to the DSP, to read the DSP status, …. 3.3.2.5 Input FPGA programming The OutFPGA allows the programming of the InFPGA from VME. The ability to re-program the InFPGA in situ without use of the byte blaster is important since there can be different versions of the InFPGA configuration code (eg. calibration code, the 32 samples code or the normal 5 samples code). The OutFPGA programs the InFPGA through the dedicated signals provided by Altera for FPGA configuration (data0, dclk, nconfig, …). The configuration is done at 5 MHz. Both InFPGA are configured at the same time. 3.3.2.6 Input FPGA configuration and status register The OutFPGA has also the possibility to dialog with each InFPGA through a home made serial protocol. This allows the configuration of the InFPGA and the access of the InFPGA status. Table 11 and 12 describe the content of these registers : 15 10 9 0 8 15 8 0xBE 3.4 7 5 Number of gains 0 Table 11 : InFPGA configuration register 7 6 0 Number of gains Table 12 : InFPGA status register 4 0 Number of samples 5 4 0 Number of samples The output FIFO The Output FIFO is an IDT72V253L7-5BC 3.3V high density super synchronous 18-bits bus FIFO. The FIFO is organized in 4 kilo words of 18 bits. The size of the FIFO is done assuming the following philosophy : We expect, in most of cases, that an entire event can be sent by the DSP. It allows the DSP to launch only one DMA and so not loose time. In seldom cases, when the event is big (raw data, ..), we accept loosing time and then slicing up the output event. Assuming 5 samples per event (most of cases), the output event size is about half of the input ie about 400*16 bits words per FEB. To store 2 events in the FIFO in staging mode, we need at least 1600 words. Due to the very small price difference between 2k and 4k depth FIFO and that they are pin compatible, the 4k FIFO is chosen for the prototype. The TMS320C6414 Processing Unit 08/03/2016 9/23 The FIFO has empty, full and programmable almost empty and almost full flags. These flags can be spied by VME through the status register . The offset value of the almost flag has been programmed to 1024 words, so that when this flag is not active, the DSP knows that there is enough place to write another event. On the final prototype, the use of the FIFO flags will allow to optimize the FIFO size for the production. The DSP can write the output events at full speed (100 MHz). 4 Power supply and JTAG 4.1 Power-supply The mezzanine board is supplied with an 3.3V unique voltage coming from the mother board and made from the VME 48V through a DC-DC regulator. The estimated power consumption is about 2.5A for the whole mezzanine. This estimation is based on previous studies performed with the TMS320C6414 evaluation board (5A measured for 4 evaluation PU based on a single TMS320C6414 running at 600MHz). The following voltages are derived from this 3.3V supply : - the 2.5 V for the input FPGA core with the regulator TPS76825Q from Texas Instrument. - the 1.8 V for the output FPGA core with the regulator TPS76818Q from Texas Instrument. - the 1.4 V for the DSP core with an adjustable regulator, the TPS54610 from Texas Instrument. - The 3.3V for the DSP input/output, which must be set up after the DSP core voltage and with specific setup requirements. 4.2 JTAG chain The JTAG chain includes in this order : DSP1, DSP2, InFPGA1, InFPGA2, EPC2, OutFPGA, FIFO1, FIFO2. The JTAG chain has 3 purposes on the board : 1. Boundary scan analyses: to verify interconnections (stuck at, short and open circuits) and identify defaults. Boundary scan is the main test foreseen to validate the electrical functionality of the mezzanine and more generally the ROD module. More details about these tools and the ROD test bench can be found in reference [9]. 2. Altera components programming : FPGAs and EPC2 configuration. 3. DSP emulation for debug purposes. For this, the chain can be shorten and only includes both DSP (the JTAG port of the DSP does not work properly if non-C64x devices are in the scan chain) The JTAG chain can be controlled either from the mother board or from the mezzanine. The JTAG connector on the mezzanine board is a 2*7 plug connector compatible with the emulator pad. This connector is foreseen on the board because it contains some pins specific for the DSP emulation that are not on the mother board interface. As it is for debug purposes, this connector should not be populated on the production version. 5 MISC 5.1 Board Technical Considerations The mezzanine is a 120*85*1.4 mm board. It is made of 10 layers, 6 signal layers and 4 power planes. The signal layers present almost the same impedance (around 50 ohm for a 0.120 mm wide net) to preserve signal integrity. The whole board is routed with through hole vias : - 0.5 mm diameter and 0.25 drill size under the DSP (0.8 mm BGA). - 0.6 mm diameter and 0.3 drill size elsewhere. Annexe 2 shows the electrical schemes, the placement description and the routing of each layer. 5.2 Estimated cost Table 13 gives the foreseen cost for the prototype board so for small quantities and today cost. It does not include manufacturer equipment ie about 800 € for the printed circuit and 1200 € for the assembler (to be paid once only). The TMS320C6414 Processing Unit 08/03/2016 10/23 Description Manufacturer Part number Quant/ board Unit cost (€) Total cost Printed circuit board production PCB assembly Total without components and without manufacturer equipment Techci Ardelec 1 1 250 150 250 150 400 Input FPGA Output FPGA DSP Altera Altera Texas Instrument EP20k160eqc208-1 EP1k30FC256-2 TMS320C6414GLZ532 2 1 2 180 35 200 360 35 400 Output FIFO EEPROM oscillator 50 MHz Zero delay buffer 64 pins connector 84 pins connector DSP voltage regulator InFPGA voltage regulator OutFPGA voltage regulator DSP PLL filter drivers passive components (resistors, capa, inductance, leds, small connectors) IDT Altera Mextal Cypress Tyco Electronics Tyco Electronics Texas instrument Texas instrument Texas instrument Texas instrument IDT72V253BC100 EPC2TC32 SWO3 CY2305SC-1 AMP120525-1 AMP120525-2 TPS54610PWP TPS76825QPWP TPS76818QPWP ACF321825 SN74LVTH125DGV 2 1 1 2 2 1 1 1 1 2 3 230 25 29 10 2,5 3,5 3,5 10 1 1 0,3 0,5 0,1 50 29 10 5 7 3,5 10 1 1 0,6 1,5 23 Vishay Fairschild SI4465DY MMBT3904 1 1 0,8 0,5 0,8 0,5 937,9 Mosfet canal P 1,8V Bipolair transistor NPN channel Total for components Table 13 : prototype Mezzanine estimated cost The estimated cost for the prototype mezzanine is about 1400 € (1000 € for components and 400 € for PCB and cabling) plus the cost of the manufacturer equipment (1200 €) divided by the number of mezzanine produced. 5.3 Availability of components and tools The components foreseen for the ROD mezzanine are recent and commercial chips. The FPGA (Altera products) should be maintained 5 years and the TMS320C6414 products, including tools, are guaranteed by Texas Instrument to be maintained and available during at least 5 years. 5.4 Coming milestones September 16-17 th : End of October : End of December : Beginning of 2003: March 2003 : Preliminary review Prototype production launch. Prototype ready to be tested. Prototype tests. Mother board tested with 4 PU. 6 REFERENCES [1] LAPP ROD web page : http://wwwlapp.in2p3.fr/Electronique/Experiences/ATLAS-ELEC/Rod/index.html [2] Daniel La Marra « Mezzanine board connectors.pdf » http://dpnc.unige.ch/LArgROD/Mezzanine Board Connectors.pdf [3] Julie PRAST : « Input FPGA in ROD PU. » July 2002. http://wwwlapp.in2p3.fr/Electronique/Experiences/ATLAS-ELEC/Rod/Document/finalS2P.pdf [4] Annie Leger “VME protocol” http://dpnc.unige.ch/LArgROD/VMEBusyFPGA.pdf [5] Nicolas Chevillot « ATLAS ROD TMS320C6414 DSP based processing Unit. TestDemo1.2. DSP Hardware and code structure. » August 2002 The TMS320C6414 Processing Unit 08/03/2016 11/23 [6] Texas Instrument “TMS320C6000 Peripherals Reference Guide” 2001 [7] Nicolas Chevillot “TMS320C6414 HPI interface” December 2001 http://wwwlapp.in2p3.fr/Electronique/Experiences/ATLAS-ELEC/Rod/Document/HPI.pdf [8] Guy Perrot “TTC FPGA” July 2002 http://wwwlapp.in2p3.fr/Electronique/Experiences/ATLAS-ELEC/Rod_ttc_fpga/TTC_FPGA.pdf [9] Guy Perrot “ROD Test Bench and integration tests” March 2002 http://wwwlapp.in2p3.fr/Electronique/Experiences/ATLAS-ELEC/Testbench/ROD_Testbench.pdf Gelu Ionescu “Busy generation, event verification, event synchronization ” September 2002 http://wwwlapp.in2p3.fr/informatique/Atlas_online/Documents/Dsp/ATL-ROD-RTX/AOS_ATLSYNC-ANA.pdf [10] Gelu Ionescu “RTX ” September 2002 http://wwwlapp.in2p3.fr/informatique/Atlas_online/Documents/Dsp/ATL-ROD-RTX/AOS_RTX-TISRS1.pdf [11] Remi Lafaye “The physics ROD 64x PU algorithm ” September 2002 http://wwwlapp.in2p3.fr/informatique/Atlas_online/Documents/Dsp/ATL-ROD-RTX/AOS_ATL-DSPPHYS.pdf [12] 7 ABBREVIATION BCID DMA DSP EMIF FEB FIFO HFEB HPI InFPGA McBSP OutFPGA RADD SEU Bunch Crossing Identifier Direct memory access Digital Signal Processor External Memory InterFace of the DSP. Front End Board First In First Out Half FEB Host port Interface of the DSP Input FPGA Multi channels Buffered Serial Port of the DSP Output FPGA Read address in the SCA (Switch Capacitors Table) Single Event Upset The TMS320C6414 Processing Unit 08/03/2016 12/23 8 ANNEXES 8.1 W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 ... ... WEVT-10 WEVT-9 ... WEVT-2 WEVT-1 WEVT B15 1 0 0 0 0 0 0 0 0 0 0 0 Annexe 1 : ADC Read out input event format B14 1 P P P P P P P P P P P B13 B12 1 1 0 0 0 0 0 0 Gain Gain Gain Gain Gain Gain Gain Gain B11 1 F B10 B9 1 1 ADCID L B B8 1 B7 1 A B6 B5 1 1 PHASE BCID B4 1 B3 1 B2 B1 1 1 EVENTN B0 1 CELLN ADC channel 1 sample 1 ADC channel 2 sample 1 ADC channel 3 sample 1 ADC channel 4 sample 1 ADC channel 5 sample 1 ADC channel 6 sample 1 ADC channel 7 sample 1 ADC channel 8 sample 1 ... ... 0 0 P P 0 0 0 P P 0 0 0 F L B A 0 0 1 0 S 0 E 0 0 Gain Gain 0 0 CELLN ADC channel 1 last sample ... ADC channel 8 last sample SCAC status 0 0 0 0 0 0 0 W1 : frame start tag W2 & W3 : event header ADCID : The ADC IDentifier. PHASE : Bits encoding the phase of the 5MHz rclk at the time of the trigger. EVENTN : Event number. BCID : Bunch Counter IDentifier. W4 WEVT-2 : Sample data W4 : first sample header also called RADD F : First sample of event, send event header, and perform gain selection algorithm (if in auto gain mode). L : Last sample of an event, send event status, and delay further samples to make room for the event header of next event. B : Backporch bit. Do not raise the gain for any channel in auto-gain mode. A : Test mode bit. CELLN : The SCA cell (capacitor) number. From W5 to W12 : first sample data Gain : - 00 test data. - 01 low gain. - 10 medium gain. - 11 high gain. ADC : ADC data WEVT-10 : last sample header From WEVT-9 to WEVT-2 : last sample data The TMS320C6414 Processing Unit 08/03/2016 13/23 1 0 WEVT-1 : event trailer B11 & B0 : forced high. S : Single bit errors in EDC (Error Detection & Correction) unit. E : Double bit errors in EDC unit. SCA Controller status : B8 : SEU in the latency’s redundant MSB’s. B7 : done_fifo overflow. B6 : free_fifo Underrun The SCA run out of free cells. Invalid cell numbers were inserted into the sequence. B5 : Sequence error : The free_fifo emitted the same cell number twice in a row. B4 : Single bit error : a cell address was found with a single bit error. This error was corrected. B3 : Double bit error. A cell address was found with two bits in error. This bit will reoccur repeatedly, since the error will not be corrected. B2 : BCID reset. The BCID counter was reset. B1 : Init. Bit set in the first event after initialisation. WEVT : frame end tag For all words except the frame start/end tag B14 : odd parity on bit 0-13, 15. Note : the parity bit is set to 0 or 1 in order to always have an odd number of ones in the 16 bits word ; that way it is impossible to have a “frame end tag” in an event. 8.2 Annexe 2 : Schematics, routing and placement The TMS320C6414 Processing Unit 08/03/2016 14/23 The TMS320C6414 Processing Unit 08/03/2016 15/23 The TMS320C6414 Processing Unit 08/03/2016 16/23 The TMS320C6414 Processing Unit 08/03/2016 17/23 The TMS320C6414 Processing Unit 08/03/2016 18/23 The TMS320C6414 Processing Unit 08/03/2016 19/23 The TMS320C6414 Processing Unit 08/03/2016 20/23 The TMS320C6414 Processing Unit 08/03/2016 21/23 The TMS320C6414 Processing Unit 08/03/2016 22/23 The TMS320C6414 Processing Unit 08/03/2016 23/23