Beispiel #1
0
    def __init__(self,
                 numchannels,
                 accumulation_length,
                 bandwidth,
                 input_bitwidth,
                 fft_out_bitwidth,
                 antennas=1):
        self.maxdesigns = 1
        self.blocks = {}
        self.totalblocks = 0

        #add the platform array
        self.platforms = {}

        # add platforms: cost, inputbw, outputbw, resources
        self.platforms['ROACH'] = Platform.createRoach('dollars')
        self.platforms['GTX580'] = Platform.createGTX580Server('dollars')
        #self.platforms['IBOB'] = Platform('IBOB',2000,10,1,['resources'])

        # add the ADC
        adc_bw = bandwidth * input_bitwidth
        self.blocks['ADC'] = CBlock(
            'ADC', CBlock.getADCModel(self.platforms, bandwidth,
                                      input_bitwidth), -1, 0, 0, 'PFB', 0,
            adc_bw, antennas)
        self.totalblocks += antennas

        # add the PFB
        pfb_bw = bandwidth * 32
        self.blocks['PFB'] = CBlock(
            'PFB',
            CBlock.getPFBModel(self.platforms, bandwidth, input_bitwidth,
                               numchannels), 'ADC', 0, pfb_bw, 'FFT', 0,
            adc_bw, antennas)
        self.totalblocks += antennas

        # add the FFT
        fft_out_bandwidth = bandwidth * fft_out_bitwidth
        self.blocks['FFT'] = CBlock(
            'FFT', CBlock.getFFTModel(self.platforms, bandwidth, numchannels),
            'PFB', 0, pfb_bw, 'VAcc', 0, fft_out_bandwidth, antennas)
        self.totalblocks += antennas

        #add the Vacc
        self.blocks['VAcc'] = CBlock(
            'VAcc',
            CBlock.getVAccModel(self.platforms, bandwidth, fft_out_bitwidth,
                                accumulation_length), 'FFT', 0,
            fft_out_bandwidth, -1, 0, 0, antennas)
        self.totalblocks += antennas