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}
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 }
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 }