예제 #1
0
    def __init__(self, rootdir):
        Toolchain.__init__(self, rootdir)
        self.files = []
        self.edam = None
        self.backend = None

        self.resources_map = {
            'LUT': (
                'LUT',
                'SB_LUT4',
            ),
            'DFF': (
                'DFF',
                'SB_DFF',
                'SB_DFFE',
                'SB_DFFESR',
                'SB_DFFESS',
                'SB_DFFN',
                'SB_DFFSR',
                'SB_DFFSS',
            ),
            'CARRY': (
                'CARRY',
                'SB_CARRY',
            ),
            'IOB': ('IOB', ),
            'PLL': ('PLL', ),
            'BRAM': ('BRAM', ),
        }
예제 #2
0
 def __init__(self, rootdir):
     Toolchain.__init__(self, rootdir)
     self.toolchain = 'vivado'
     self.synthtool = 'vivado'
     self.synthoptions = []
     self.files = []
     self.edam = None
     self.backend = None
예제 #3
0
    def __init__(self, rootdir):
        Toolchain.__init__(self, rootdir)
        self.toolchain = 'vpr-fasm2bels'
        self.files = []
        self.fasm2bels = True

        self.dbroot = subprocess.check_output(
            'prjxray-config', shell=True).decode('utf-8').strip()

        capnp_schema_dir = subprocess.check_output(
            'capnp-schemas-dir', shell=True).decode('utf-8').strip()

        self.files.append({'name': capnp_schema_dir, 'file_type': 'capnp'})

        assert self.dbroot
예제 #4
0
    def __init__(self, rootdir):
        Toolchain.__init__(self, rootdir)
        self.toolchain = 'nextpnr-xilinx-fasm2bels'
        self.files = []
        self.fasm2bels = True

        self.dbroot = subprocess.check_output(
            'bash -c ". ./env.sh nextpnr && prjxray-config"', shell=True
        ).decode('utf-8').strip()

        capnp_schema_dir = subprocess.check_output(
            'bash -c ". ./env.sh nextpnr && capnp-schemas-dir"', shell=True
        ).decode('utf-8').strip()

        self.files.append({'name': capnp_schema_dir, 'file_type': 'capnp'})

        assert self.dbroot
예제 #5
0
    def __init__(self, rootdir):
        Toolchain.__init__(self, rootdir)
        self.arch = None
        self.vendor = None
        self.chipdb = None
        self.chip = None
        self.env_script = None
        self.builddir = "."
        self.dbroot = None
        self.files = list()
        self.yosys_synth_opts = list()
        self.yosys_additional_commands = list()
        self.schema_dir = None
        self.device_file = None
        self.fasm2bels = False
        self.tool_options = dict()

        self.nextpnr_log = "nextpnr.log"
예제 #6
0
    def __init__(self, rootdir):
        Toolchain.__init__(self, rootdir)
        self.toolchain = 'vivado'
        self.synthtool = 'vivado'
        self.synthoptions = []
        self.files = []
        self.edam = None
        self.backend = None

        self.resources_map = dict(families=dict())
        self.resources_map["families"]["xc7"] = {
            'LUT': (
                'LUT1',
                'LUT2',
                'LUT3',
                'LUT4',
                'LUT5',
                'LUT6',
            ),
            'DFF': (
                'FDRE',
                'FDSE',
                'FDPE',
                "FDCE",
            ),
            'CARRY': ('CARRY4', ),
            'IOB': (
                'IBUF',
                'OBUF',
                'OBUFT',
                'IOBUF',
                'OBUFTDS',
                'OBUFDS',
                ('IOBUF', 2),
                ('IOBUFDS', 2),
            ),
            'PLL': ('MMCME2_ADV', 'PLLE2_ADV'),
            'BRAM': (
                'RAMB18E1',
                ('RAMB36E1', 2),
            ),
            'DSP': ('DSP48E1', ),
        }
예제 #7
0
    def __init__(self, rootdir):
        Toolchain.__init__(self, rootdir)
        self.toolchain = 'vpr'
        self.builddir = '.'
        self.files = []
        self.fasm2bels = False
        self.dbroot = None

        self.resources_map = dict(families=dict())
        self.resources_map["families"]["xc7"] = {
            'LUT': ('$lut', 'lut'),
            'DFF': ('FDRE', 'FDSE', 'FDPE', 'FDCE', 'FDRE_ZINI', 'FDSE_ZINI',
                    'FDPE_ZINI', 'FDCE_ZINI'),
            'CARRY': ('CARRY4_VPR', ),
            'IOB': (
                'IBUF_VPR',
                'OBUFT_VPR',
                'OBUFTDS_M_VPR',
                ('IOBUFDS_M_VPR', 2),
                ('IOBUF_VPR', 2),
            ),
            'PLL': (
                'PLLE2_ADV_VPR',
                'MMCME2_ADV_VPR',
                'PLLE2_ADV',
                'MMCME2_ADV',
            ),
            'BRAM': (
                'RAMB18E1_Y0',
                'RAMB18E1_Y1',
                'RAMB18E1_VPR',
                ('RAMB36E1', 2),
                ('RAMB36E1_PRIM', 2),
            ),
            'DSP': (),
        }
예제 #8
0
 def __init__(self, rootdir):
     Toolchain.__init__(self, rootdir)
     self.files = []
     self.edam = None
     self.backend = None
예제 #9
0
 def __init__(self):
     Toolchain.__init__(self)
     self.radiantdir = Radiant.RADIANTDIR_DEFAULT
예제 #10
0
 def __init__(self, rootdir):
     Toolchain.__init__(self, rootdir)
     self.toolchain = 'nextpnr-xilinx'
     self.files = []
     self.fasm2bels = False
     self.dbroot = None
예제 #11
0
 def __init__(self, rootdir):
     Toolchain.__init__(self, rootdir)
     self.toolchain = 'vpr'
     self.files = []
     self.fasm2bels = False
     self.dbroot = None
예제 #12
0
 def __init__(self):
     Toolchain.__init__(self)
     self.icecubedir = self.ICECUBEDIR_DEFAULT