Пример #1
0
    def get_doc(cls, api_ver):
        if api_ver == 0:
            yosys_help = Yosys.get_doc(api_ver)
            icestorm_help = {
                    'members' : [
                        {'name' : 'pnr',
                         'type' : 'String',
                         'desc' : 'Select Place & Route tool. Legal values are *arachne* for Arachne-PNR, *next* for nextpnr or *none* to only perform synthesis. Default is next'}],
                    'lists' : [
                        {'name' : 'arachne_pnr_options',
                         'type' : 'String',
                         'desc' : 'Additional options for Arachnhe PNR'},
                        {'name' : 'nextpnr_options',
                         'type' : 'String',
                         'desc' : 'Additional options for nextpnr'},
                        {'name' : 'yosys_synth_options',
                         'type' : 'String',
                         'desc' : 'Additional options for the synth_ice40 command'},
                        ]}

            combined_members = icestorm_help['members']
            combined_lists = icestorm_help['lists']
            yosys_members = yosys_help['members']
            yosys_lists = yosys_help['lists']

            combined_members.extend(m for m in yosys_members if m['name'] not in [i['name'] for i in combined_members])
            combined_lists.extend(l for l in yosys_lists if l['name'] not in [i['name'] for i in combined_lists])

            return {'description' : "Open source toolchain for Lattice iCE40 FPGAs. Uses yosys for synthesis and arachne-pnr or nextpnr for Place & Route",
                    'members' : combined_members,
                    'lists' : combined_lists}
Пример #2
0
    def get_doc(cls, api_ver):
        if api_ver == 0:
            yosys_help = Yosys.get_doc(api_ver)
            apicula_help = {
                'members': [
                    {
                        'name':
                        'device',
                        'type':
                        'String',
                        'desc':
                        'Required device option for nextpnr-gowin and gowin_pack command (e.g. GW1N-LV1QN48C6/I5)'
                    },
                ],
                'lists': [
                    {
                        'name': 'nextpnr_options',
                        'type': 'String',
                        'desc': 'Additional options for nextpnr'
                    },
                    {
                        'name': 'yosys_synth_options',
                        'type': 'String',
                        'desc':
                        'Additional options for the synth_gowin command'
                    },
                ]
            }

            combined_members = apicula_help['members']
            combined_lists = apicula_help['lists']
            yosys_members = yosys_help['members']
            yosys_lists = yosys_help['lists']

            combined_members.extend(
                m for m in yosys_members
                if m['name'] not in [i['name'] for i in combined_members])
            combined_lists.extend(
                l for l in yosys_lists
                if l['name'] not in [i['name'] for i in combined_lists])

            return {
                'description':
                "Open source toolchain for Gowin FPGAs. Uses yosys for synthesis and nextpnr for Place & Route",
                'members': combined_members,
                'lists': combined_lists
            }
Пример #3
0
    def get_doc(cls, api_ver):
        if api_ver == 0:
            yosys_help = Yosys.get_doc(api_ver)
            trellis_help = {
                'lists': [
                    {
                        'name': 'nextpnr_options',
                        'type': 'String',
                        'desc': 'Additional options for nextpnr'
                    },
                    {
                        'name': 'yosys_synth_options',
                        'type': 'String',
                        'desc': 'Additional options for the synth_ecp5 command'
                    },
                ]
            }

            combined_members = []
            combined_lists = trellis_help['lists']
            yosys_members = yosys_help['members']
            yosys_lists = yosys_help['lists']

            combined_members.extend(
                m for m in yosys_members
                if m['name'] not in [i['name'] for i in combined_members])
            combined_lists.extend(
                l for l in yosys_lists
                if l['name'] not in [i['name'] for i in combined_lists])

            return {
                'description':
                "Project Trellis enables a fully open-source flow for ECP5 FPGAs using Yosys for Verilog synthesis and nextpnr for place and route",
                'members': combined_members,
                'lists': combined_lists
            }