Example #1
0
    def __init__(self, name='Fpga', description='Fpga Container', **kwargs):

        super().__init__(name=name, description=description, **kwargs)

        #############
        # Add devices
        #############
        self.add(axi.AxiVersion(offset=0x00000000, ))

        self.add(ssi.SsiPrbsTx(offset=0x00040000, ))

        self.add(ssi.SsiPrbsRx(offset=0x00050000, ))

        self.add(rssi.RssiCore(offset=0x00070000, ))

        self.add(udp.UdpEngine(
            offset=0x00078000,
            numSrv=2,
            expand=False,
        ))

        self.add(
            ethPhy.TenGigEthReg(
                offset=0x80000000,
                writeEn=True,
                expand=True,
            ))
Example #2
0
    def __init__(self,
                 name='UdpGrp',
                 description='Container for UdpGrp',
                 **kwargs):
        super().__init__(name=name, description=description, **kwargs)

        for i in range(6):
            self.add(
                smurf.UdpConfig(
                    name=f'UdpConfig[{i}]',
                    offset=i * 0x10000 + 0x0000,
                    expand=False,
                ))

        for i in range(6):
            self.add(
                udp.UdpEngine(
                    name=f'UdpEngine[{i}]',
                    offset=i * 0x10000 + 0x1000,
                    numClt=2,
                    expand=False,
                ))

        for i in range(6):
            self.add(
                rssi.RssiCore(
                    name=f'RssiClient[{i}]',
                    offset=i * 0x10000 + 0x2000,
                    expand=False,
                ))
Example #3
0
    def __init__(self, name='Fpga', description='Fpga Container', **kwargs):

        super().__init__(name=name, description=description, **kwargs)

        #############
        # Add devices
        #############

        self.add(rssi.RssiCore(offset=0xA4010000,
                               # expand = False,
                               ))

        self.add(ssi.SsiPrbsTx(offset=0xA4020000,
                               # expand = False,
                               ))

        self.add(ssi.SsiPrbsRx(offset=0xA4030000,
                               # expand = False,
                               ))
Example #4
0
    def __init__(self,
                 name='Fpga',
                 fpgaType='',
                 commType='',
                 description='Fpga Container',
                 **kwargs):

        super().__init__(name=name, description=description, **kwargs)

        #############
        # Add devices
        #############
        self.add(axi.AxiVersion(
            offset=0x00000000,
            expand=False,
        ))

        if (fpgaType == '7series'):
            self.add(xil.Xadc(
                offset=0x00010000,
                expand=False,
            ))

        if (fpgaType == 'ultrascale'):
            self.add(xil.AxiSysMonUltraScale(
                offset=0x00020000,
                expand=False,
            ))

        self.add(
            MbSharedMem(
                name='MbSharedMem',
                offset=0x00030000,
                size=0x10000,
                expand=False,
            ))

        self.add(ssi.SsiPrbsTx(
            offset=0x00040000,
            expand=False,
        ))

        self.add(ssi.SsiPrbsRx(
            offset=0x00050000,
            expand=False,
        ))

        if (commType == 'eth'):
            self.add(rssi.RssiCore(
                offset=0x00070000,
                expand=False,
            ))

        self.add(
            axi.AxiStreamMonitoring(
                name='AxisMon',
                offset=0x00080000,
                numberLanes=2,
                expand=False,
            ))

        self.add(
            MbSharedMem(
                name='TestEmptyMem',
                offset=0x80000000,
                size=0x80000000,
                expand=False,
            ))
Example #5
0
    def __init__(self,
                 name="SysReg",
                 description="AmcCarrierCore",
                 rssiNotInterlaved=True,
                 rssiInterlaved=False,
                 enableBsa=True,
                 enableMps=True,
                 expand=False,
                 **kwargs):
        super().__init__(name=name,
                         description=description,
                         expand=expand,
                         **kwargs)

        ##############################
        # Variables
        ##############################
        self.add(axi.AxiVersion(
            offset=0x00000000,
            expand=False,
        ))

        self.add(xilinx.AxiSysMonUltraScale(
            offset=0x02000000,
            expand=False,
        ))

        self.add(IIC(
            offset=0x03000000,
            expand=False,
        ))

        self.add(DevBoardTiming(
            offset=0x04000000,
            expand=False,
        ))

        self.add(LocReg(
            offset=0x07000000,
            expand=False,
        ))

        self.add(
            AmcCarrierBsa(
                offset=0x08000000,
                enableBsa=enableBsa,
                expand=False,
            ))

        self.add(
            udp.UdpEngineClient(
                name="BpUdpCltApp",
                offset=0x09000000,
                description=
                "Backplane UDP Client for Application ASYNC Messaging",
                expand=False,
            ))

        self.add(
            udp.UdpEngineServer(
                name="SwUdpSrv",
                offset=0x09000800,
                description="Backplane UDP Server: Xilinx XVC",
                expand=False,
            ))

        self.add(
            udp.UdpEngineServer(
                name="BpUdpSrvXvc",
                offset=0x09000808,
                description=
                "Backplane UDP Server: FSBL Legacy SRPv0 register access",
                expand=False,
            ))

        self.add(
            rssi.RssiCore(
                name="SwRssiServer",
                offset=0x09010000,
                description="Interleaved RSSI server",
                expand=False,
            ))

        self.add(AxiFanController(
            name="FanController",
            offset=0x0A000000,
        ))
Example #6
0
    def __init__(self,
                 name="AmcCarrierCore",
                 description="AmcCarrierCore",
                 enablePwrI2C=False,
                 enableBsa=True,
                 enableMps=True,
                 numWaveformBuffers=4,
                 enableTpgMini=True,
                 expand=False,
                 **kwargs):
        super().__init__(name=name,
                         description=description,
                         expand=expand,
                         **kwargs)

        ##############################
        # Variables
        ##############################
        self.add(axi.AxiVersion(offset=0x00000000, expand=False))

        self.add(xilinx.AxiSysMonUltraScale(offset=0x01000000, expand=False))

        self.add(
            micron.AxiMicronN25Q(
                name="MicronN25Q",
                offset=0x2000000,
                addrMode=True,
                expand=False,
                hidden=True,
            ))

        self.add(
            microchip.AxiSy56040(offset=0x03000000,
                                 expand=False,
                                 description="\n\
                Timing Crossbar:  https://confluence.slac.stanford.edu/x/m4H7D   \n\
                -----------------------------------------------------------------\n\
                OutputConfig[0] = 0x0: Connects RTM_TIMING_OUT0 to RTM_TIMING_IN0\n\
                OutputConfig[0] = 0x1: Connects RTM_TIMING_OUT0 to FPGA_TIMING_IN\n\
                OutputConfig[0] = 0x2: Connects RTM_TIMING_OUT0 to BP_TIMING_IN\n\
                OutputConfig[0] = 0x3: Connects RTM_TIMING_OUT0 to RTM_TIMING_IN1\n\
                -----------------------------------------------------------------\n\
                OutputConfig[1] = 0x0: Connects FPGA_TIMING_OUT to RTM_TIMING_IN0\n\
                OutputConfig[1] = 0x1: Connects FPGA_TIMING_OUT to FPGA_TIMING_IN\n\
                OutputConfig[1] = 0x2: Connects FPGA_TIMING_OUT to BP_TIMING_IN\n\
                OutputConfig[1] = 0x3: Connects FPGA_TIMING_OUT to RTM_TIMING_IN1 \n\
                -----------------------------------------------------------------\n\
                OutputConfig[2] = 0x0: Connects Backplane DIST0 to RTM_TIMING_IN0\n\
                OutputConfig[2] = 0x1: Connects Backplane DIST0 to FPGA_TIMING_IN\n\
                OutputConfig[2] = 0x2: Connects Backplane DIST0 to BP_TIMING_IN\n\
                OutputConfig[2] = 0x3: Connects Backplane DIST0 to RTM_TIMING_IN1\n\
                -----------------------------------------------------------------\n\
                OutputConfig[3] = 0x0: Connects Backplane DIST1 to RTM_TIMING_IN0\n\
                OutputConfig[3] = 0x1: Connects Backplane DIST1 to FPGA_TIMING_IN\n\
                OutputConfig[3] = 0x2: Connects Backplane DIST1 to BP_TIMING_IN\n\
                OutputConfig[3] = 0x3: Connects Backplane DIST1 to RTM_TIMING_IN1\n\
                -----------------------------------------------------------------\n"
                                 ))

        # self.add(ti.AxiCdcm6208(
        # offset       =  0x05000000,
        # enabled      =  False,
        # hidden       =  True,
        # expand       =  False,
        # ))

        self.add(amcc.AmcCarrierBsi(
            offset=0x07000000,
            expand=False,
        ))

        self.add(
            amcc.AmcCarrierTiming(
                offset=0x08000000,
                expand=False,
                enableTpgMini=enableTpgMini,
            ))

        self.add(
            amcc.AmcCarrierBsa(
                offset=0x09000000,
                enableBsa=enableBsa,
                numWaveformBuffers=numWaveformBuffers,
                expand=False,
            ))

        self.add(
            udp.UdpEngineClient(
                name="BpUdpCltApp",
                offset=0x0A000000,
                description=
                "Backplane UDP Client for Application ASYNC Messaging",
                expand=False,
            ))

        self.add(
            udp.UdpEngineServer(
                name="BpUdpSrvXvc",
                offset=0x0A000800,
                description="Backplane UDP Server: Xilinx XVC",
                expand=False,
            ))

        self.add(
            udp.UdpEngineServer(
                name="BpUdpSrvFsbl",
                offset=0x0A000808,
                description=
                "Backplane UDP Server: FSBL Legacy SRPv0 register access",
                expand=False,
            ))

        self.add(
            udp.UdpEngineServer(
                name="BpUdpSrvRssi[0]",
                offset=0x0A000810,
                description=
                "Backplane UDP Server: Legacy Non-interleaved RSSI for Register access and ASYNC messages",
                expand=False,
            ))

        self.add(
            udp.UdpEngineServer(
                name="BpUdpSrvRssi[1]",
                offset=0x0A000818,
                description=
                "Backplane UDP Server: Legacy Non-interleaved RSSI for bulk data transfer",
                expand=False,
            ))

        self.add(
            udp.UdpEngineServer(
                name="BpUdpSrvRssi[2]",
                offset=0x0A000830,
                description="Backplane UDP Server: Interleaved RSSI",
                expand=False,
            ))

        self.add(
            udp.UdpEngineServer(
                name="BpUdpSrvApp",
                offset=0x0A000820,
                description=
                "Backplane UDP Server for Application ASYNC Messaging",
                expand=False,
            ))

        self.add(
            udp.UdpEngineServer(
                name="BpUdpSrvTiming",
                offset=0x0A000828,
                description="Backplane UDP Server for Timing ASYNC Messaging",
                expand=False,
            ))

        for i in range(2):
            self.add(
                rssi.RssiCore(
                    name=f'SwRssiServer[{i}]',
                    offset=0x0A010000 + (i * 0x1000),
                    description="SwRssiServer Server: %i" % (i),
                    expand=False,
                ))

        self.add(
            rssi.RssiCore(
                name="SwRssiServer[2]",
                offset=0x0A020000,
                description="SwRssiServer Server",
                expand=False,
            ))

        if (enableMps):
            self.add(mps.AppMps(offset=0x0C000000, expand=False))

        if (enablePwrI2C):
            self.add(intel.EM22xx(offset=0x0D000000, expand=False))
Example #7
0
    def __init__( self,
        name        = 'Fpga',
        fpgaType    = '',
        commType    = '',
        description = 'Fpga Container',
        **kwargs):

        super().__init__(name=name,description=description, **kwargs)

        self.add(axi.AxiVersion(
            offset = 0x00000000,
            expand = True,
        ))

        if(fpgaType=='7series'):

            self.add(xil.Xadc(
                offset = 0x00010000,
                expand = False,
            ))

        if(fpgaType=='ultrascale'):

            self.add(xil.AxiSysMonUltraScale(
                offset = 0x00020000,
                expand = False,
            ))

        # self.add(MbSharedMem(
            # name   = 'MbSharedMem',
            # offset = 0x00030000,
            # size   = 0x10000,
            # expand = False,
        # ))

        self.add(ssi.SsiPrbsTx(
            offset = 0x00040000,
            expand = False,
        ))

        self.add(ssi.SsiPrbsRx(
            offset = 0x00050000,
            expand = False,
        ))

        if ( commType == 'eth' ):

            self.add(rssi.RssiCore(
                offset = 0x00070000,
                expand = False,
            ))

            # self.add(udp.UdpEngine(
                # offset = 0x00078000,
                # numSrv = 1,
                # expand = False,
            # ))

        self.add(axi.AxiStreamMonAxiL(
            name        = 'AxisMon',
            offset      = 0x00080000,
            numberLanes = 2,
            expand      = False,
        ))