serv/servant.core
Liam Beguin 40a9e99f77 add PolarFire Splash Kit support
Signed-off-by: Liam Beguin <liambeguin@gmail.com>
2023-12-29 22:39:11 +01:00

642 lines
17 KiB
Text

CAPI=2:
name : ::servant:1.2.1
filesets:
# Common filesets
mem_files:
files:
- sw/blinky.hex : {copyto : blinky.hex}
- sw/zephyr_hello.hex : {copyto : zephyr_hello.hex}
file_type : user
servant_tb:
files:
- bench/servant_sim.v
- bench/uart_decoder.v
- bench/servant_tb.v
file_type : verilogSource
depend : [vlog_tb_utils]
service:
files:
- servant/ice40_pll.v
- servant/service_clock_gen.v
- servant/service.v
file_type : verilogSource
depend : ["fusesoc:utils:generators"]
soc:
files:
- servant/servant_timer.v
- servant/servant_gpio.v
- servant/servant_arbiter.v
- servant/servant_mux.v
- "tool_quartus? (servant/servant_ram_quartus.sv)" : {file_type : systemVerilogSource}
- "!tool_quartus? (servant/servant_ram.v)"
- servant/servant.v
file_type : verilogSource
depend : [serv, "mdu? (mdu)"]
verilator_tb:
files:
- bench/servant_sim.v
- "vidbo? (bench/servant_tb_vidbo.cpp)" : {file_type : cppSource}
- "!vidbo? (bench/servant_tb.cpp)" : {file_type : cppSource}
file_type : verilogSource
depend : ["vidbo? (vidbo)"]
# Target-specific filesets. Alphabetically sorted
ac701:
files:
- servant/servix.v : {file_type : verilogSource}
- servant/servant_ac701.v : {file_type : verilogSource}
- data/ac701.xdc : {file_type : xdc}
alhambra : {files: [data/alhambra.pcf : {file_type : PCF}]}
arty_a7_35t:
files:
- servant/servix_clock_gen.v : {file_type : verilogSource}
- servant/servix.v : {file_type : verilogSource}
- data/arty_a7_35t.xdc : {file_type : xdc}
arty_s7_50t:
files:
- servant/servix_clock_gen.v : {file_type : verilogSource}
- servant/servix.v : {file_type : verilogSource}
- data/arty_s7_50t.xdc : {file_type : xdc}
ax309:
files:
- servant/servant_ax309_clock_gen.v : {file_type : verilogSource}
- servant/servant_ax309.v : {file_type : verilogSource}
- data/ax309.ucf : {file_type : UCF}
chameleon96:
files:
- data/chameleon96/chameleon96.sdc : {file_type : SDC}
- data/chameleon96/pinmap.tcl : {file_type: tclSource}
- data/chameleon96/HPS.sv : {file_type : systemVerilogSource}
- data/chameleon96/CV_96.v : {file_type : verilogSource}
- servant/servive_clock_gen.v : {file_type : verilogSource}
- servant/servive.v : {file_type : verilogSource}
cmod_a7_35t:
files:
- servant/servant_cmod_a7_clock_gen.v : {file_type : verilogSource}
- servant/servant_cmod_a7.v : {file_type : verilogSource}
- data/cmod_a7_35t.xdc : {file_type : xdc}
cyc1000:
files:
- data/cyc1000.sdc : {file_type : SDC}
- data/cyc1000.tcl : {file_type : tclSource}
- servant/servclone10_clock_gen.v : {file_type : verilogSource}
- servant/servclone10.v : {file_type : verilogSource}
deca:
files:
- data/deca.sdc : {file_type : SDC}
- data/deca.tcl : {file_type : tclSource}
- servant/servive_clock_gen.v : {file_type : verilogSource}
- servant/servive.v : {file_type : verilogSource}
de0_nano:
files:
- data/de0_nano.sdc : {file_type : SDC}
- data/de0_nano.tcl : {file_type : tclSource}
- servant/servive_clock_gen.v : {file_type : verilogSource}
- servant/servive.v : {file_type : verilogSource}
de10_nano:
files:
- data/de10_nano.sdc : {file_type : SDC}
- data/de10_nano.tcl : {file_type : tclSource}
- servant/servive_clock_gen.v : {file_type : verilogSource}
- servant/servive.v : {file_type : verilogSource}
ebaz4205:
files:
- servant/servix_ebaz4205_clock_gen.v : {file_type : verilogSource}
- servant/servix_ebaz4205.v : {file_type : verilogSource}
- data/ebaz4205.xdc : {file_type : xdc}
go_board:
files:
- data/go_board.pcf : {file_type : PCF}
- servant/service_go_board.v : {file_type : verilogSource}
icebreaker : {files: [data/icebreaker.pcf : {file_type : PCF}]}
icestick : {files: [data/icestick.pcf : {file_type : PCF}]}
icesugar : {files: [data/icesugar.pcf : {file_type : PCF}]}
icev_wireless : {files: [data/icev_wireless.pcf : {file_type : PCF}]}
lx9_microboard:
files:
- servant/servant_lx9_clock_gen.v : {file_type : verilogSource}
- servant/servant_lx9.v : {file_type : verilogSource}
- data/lx9_microboard.ucf : {file_type : UCF}
nexys_2:
files:
- servant/servax_clock_gen.v : {file_type : verilogSource}
- servant/servax.v : {file_type : verilogSource}
- data/nexys_2.tcl : {file_type : tclSource}
- data/nexys_2.ucf : {file_type : UCF}
nexys_a7:
files:
- servant/servix_clock_gen.v : {file_type : verilogSource}
- servant/servix.v : {file_type : verilogSource}
- data/nexys_a7.xdc : {file_type : xdc}
orangecrab:
files:
- data/orangecrab_r02.lpf : {file_type : LPF}
- servant/servant_orangecrab.v : {file_type : verilogSource}
pipistrello:
files:
- servant/servis_clock_gen.v : {file_type : verilogSource}
- servant/servis.v : {file_type : verilogSource}
- data/pipistrello.ucf : {file_type : UCF}
polarfire_splashkit:
files:
- servant/servant_pf.v : {file_type : verilogSource}
- servant/servant_pf_clock_gen.v : {file_type : verilogSource}
- data/polarfire_splashkit.pdc : {file_type : PDC}
sockit:
files:
- data/sockit.sdc : {file_type : SDC}
- data/sockit.tcl : {file_type : tclSource}
- servant/servive_clock_gen.v : {file_type : verilogSource}
- servant/servive.v : {file_type : verilogSource}
tinyfpga_bx: {files: [data/tinyfpga_bx.pcf : {file_type : PCF}]}
ulx3s:
files:
- data/ulx3s.lpf : {file_type : LPF}
- servant/ecppll.v : {file_type : verilogSource}
- servant/servant_ecp5_clock_gen.v : {file_type : verilogSource}
- servant/servant_ecp5.v : {file_type : verilogSource}
upduino2:
files:
- servant/servant_upduino2.v : {file_type : verilogSource}
- data/upduino2.pcf : {file_type : PCF}
zcu106:
files:
- servant/servus_clock_gen.v : {file_type : verilogSource}
- servant/servus.v : {file_type : verilogSource}
- data/zcu106.xdc : {file_type : xdc}
targets:
default:
filesets : [soc]
ac701:
default_tool: vivado
filesets : [mem_files, soc, ac701]
parameters : [memfile, memsize, frequency=32]
tools:
vivado: {part : xc7a200t-fbg676-2}
toplevel : servant_ac701
alhambra:
default_tool : icestorm
description: Open-hardware iCE40HX4K FPGA board
filesets : [mem_files, soc, service, alhambra]
generate: [ice40pll: {freq_in : 12, freq_out : 32}]
parameters : [memfile, memsize, PLL=ICE40_CORE]
tools:
icestorm:
nextpnr_options : [--hx8k, --package, "tq144:4k", --freq, 32]
pnr: next
toplevel : service
arty_a7_35t:
default_tool: vivado
filesets : [mem_files, soc, arty_a7_35t]
parameters : [memfile, memsize, frequency=16, "mdu? (MDU=1)", WITH_RESET]
tools:
vivado: {part : xc7a35ticsg324-1L}
toplevel : servix
arty_s7_50t:
default_tool: vivado
filesets : [mem_files, soc, arty_s7_50t]
parameters : [memfile, memsize, frequency=16, "mdu? (MDU=1)", WITH_RESET]
tools:
vivado: {part : xc7s50csga324-1}
toplevel : servix
ax309:
default_tool : ise
description : XILINX Spartan-6 XC6SLX9 FPGA Development Board
filesets : [mem_files, soc, ax309]
parameters : [memfile, memsize]
tools:
ise:
family : Spartan6
device : xc6slx9
package : ftg256
speed : -3
toplevel : servant_ax309
chameleon96:
default_tool : quartus
description : Chameleon96 (Arrow 96 CV SoC Board)
filesets : [mem_files, soc, chameleon96]
parameters : [memfile, memsize]
tools:
quartus:
family : Cyclone V
device : 5CSEBA6U19I7
board_device_index : 2
toplevel: CV_96
cmod_a7_35t:
filesets : [mem_files, soc, cmod_a7_35t]
flow: vivado
flow_options:
part : xc7a35tcpg236-1
parameters : [memfile, memsize]
toplevel : servant_cmod_a7
cyc1000:
default_tool: quartus
description: cyc1000 FPGA board
filesets : [mem_files, soc, cyc1000]
parameters : [memfile, memsize=32768]
tools:
quartus:
family : Cyclone 10 LP
device : 10CL025YU256C8G
toplevel : servclone10
de0_nano:
default_tool : quartus
filesets : [mem_files, soc, de0_nano]
parameters : [memfile, memsize]
tools:
quartus:
family : Cyclone IV E
device : EP4CE22F17C6
toplevel: servive
de10_nano:
default_tool: quartus
description: Terasic DE10 Nano Kit
filesets : [mem_files, soc, de10_nano]
parameters : [memfile, memsize=32768]
tools:
quartus:
family : Cyclone V
device : 5CSEBA6U23I7
board_device_index : 2
toplevel : servive
deca:
default_tool : quartus
description: DECA development kit by Arrow / Terasic
filesets : [mem_files, soc, deca]
parameters : [memfile, memsize]
tools:
quartus:
family : MAX 10
device : 10M50DAF484C6GES
toplevel: servive
ebaz4205:
default_tool: vivado
description: EBAZ4205 'Development' Board
filesets : [mem_files, soc, ebaz4205]
parameters : [memfile, memsize, frequency=16]
tools:
vivado: {part : xc7z010clg400-1}
toplevel : servix_ebaz4205
go_board:
default_tool : icestorm
filesets : [mem_files, soc, go_board]
tools:
icestorm:
nextpnr_options : [--hx1k, --package, vq100, --freq, 20]
pnr: next
toplevel : service_go_board
icebreaker:
default_tool : icestorm
filesets : [mem_files, soc, service, icebreaker]
generate: [ice40pll : {freq_out : 16}]
parameters : [memfile, memsize, PLL=ICE40_PAD]
tools:
icestorm:
nextpnr_options: [--up5k, --freq, 16]
pnr: next
toplevel : service
icestick:
default_tool : icestorm
filesets : [mem_files, soc, service, icestick]
generate: [ice40pll: {freq_in : 12, freq_out : 32}]
parameters : [memfile=blinky.hex, memsize=7168, PLL=ICE40_CORE]
tools:
icestorm:
nextpnr_options : [--hx1k, --package, tq144, --freq, 32]
pnr: next
toplevel : service
icesugar:
default_tool : icestorm
description : iCE40UP5K Development Board by MuseLab
filesets : [mem_files, soc, service, icesugar]
generate: [ice40pll : {freq_in : 12, freq_out : 32}]
parameters : [memfile, memsize, PLL=ICE40_PAD]
tools:
icestorm:
nextpnr_options: [--up5k, --package, sg48, --freq, 32]
pnr: next
toplevel : service
icev_wireless:
default_tool : icestorm
filesets : [mem_files, soc, service, icev_wireless]
generate: [ice40pll : {freq_out : 16}]
parameters : [memfile, memsize, PLL=ICE40_PAD]
tools:
icestorm:
nextpnr_options: [--up5k, --freq, 16]
pnr: next
toplevel : service
lint:
filesets : [soc]
flow: lint
flow_options:
tool : verilator
toplevel : servant
lx9_microboard:
default_tool: ise
description : LX9 Microboard
filesets : [mem_files, soc, lx9_microboard]
parameters : [memfile, memsize]
tools:
ise:
family : Spartan6
device : xc6slx9
package : csg324
speed : -2
toplevel : servant_lx9
nexys_2_500:
default_tool: ise
filesets : [mem_files, soc, nexys_2]
parameters : [memfile, memsize, compressed]
tools:
ise:
family : Spartan3E
device : xc3s500e
package : fg320
speed : -4
toplevel : servax
nexys_2_1200:
default_tool: ise
filesets : [mem_files, soc, nexys_2]
parameters : [memfile, memsize, compressed]
tools:
ise:
family : Spartan3E
device : xc3s1600e
package : fg320
speed : -4
toplevel : servax
nexys_a7:
filesets : [mem_files, soc, nexys_a7]
flow: vivado
flow_options:
part : xc7a100tcsg324-1
parameters : [memfile, memsize, frequency=32]
toplevel : servix
orangecrab_r0.2:
default_tool: trellis
description : OrangeCrab R0.2
filesets : [mem_files, soc, orangecrab]
parameters : [memfile, memsize]
tools:
trellis:
nextpnr_options : [--package, CSFBGA285, --25k]
toplevel: servant_orangecrab
pipistrello:
default_tool: ise
description : Saanlima pipistrello
filesets : [mem_files, soc, pipistrello]
parameters : [memfile, memsize]
tools:
ise:
family : Spartan6
device : xc6slx45
package : csg324
speed : -3
toplevel : servis
polarfire_splashkit:
default_tool: libero
description : Microsemi Polarfire Splash Kit
filesets : [mem_files, soc, polarfire_splashkit]
parameters : [memfile, memsize]
tools:
libero:
family : PolarFire
die : MPF300TS
package : FCG484
toplevel : servant_pf
sim:
default_tool: icarus
filesets : [soc, servant_tb]
parameters :
- RISCV_FORMAL
- "mdu? (MDU=1)"
- SERV_CLEAR_RAM=true
- firmware
- memsize
toplevel : servant_tb
sockit:
default_tool : quartus
description: SoCKit development kit by Arrow / Terasic
filesets : [mem_files, soc, sockit]
parameters : [memfile, memsize]
tools:
quartus:
family : CycloneV
device : 5CSXFC6D6F31C6
toplevel: servive
tinyfpga_bx:
filesets : [mem_files, soc, service, tinyfpga_bx]
flow: icestorm
flow_options:
nextpnr_options : [--lp8k, --package, cm81, --freq, '32']
generate: [ice40pll: {freq_in : 16, freq_out : 32}]
parameters : [memfile, memsize, PLL=ICE40_CORE]
toplevel : service
ulx3s_85:
default_tool: diamond
description : ULX3S 85k version
filesets : [mem_files, soc, ulx3s]
parameters : [memfile, memsize]
tools:
diamond:
part : LFE5U-85F-6BG381C
trellis:
nextpnr_options : [--package, CABGA381, --85k]
toplevel: servant_ecp5
upduino2:
default_tool : icestorm
filesets : [mem_files, soc, upduino2]
parameters : [memfile, memsize]
tools:
icestorm:
nextpnr_options: [--package, sg48, --up5k, --freq, 24]
pnr: next
toplevel : servant_upduino2
verilator_tb:
filesets : [soc, verilator_tb]
flow: sim
flow_options:
tool: verilator
verilator_options : [--trace]
parameters :
- RISCV_FORMAL
- "mdu? (MDU=1)"
- firmware
- memsize
- signature
- timeout
- trace_pc
- uart_baudrate
- vcd
- vcd_start
- compressed
- align
- with_csr=1
toplevel : servant_sim
zcu106:
default_tool: vivado
description : Zynq UltraScale+ MPSoC ZCU106 Evaluation Kit
filesets : [mem_files, soc, zcu106]
parameters : [memfile, memsize]
tools:
vivado: {part : xczu7ev-ffvc1156-2-e}
toplevel : servus
parameters:
align:
datatype : int
description : Enable/Disable the Misaligned access of instruction
paramtype : vlogparam
compressed:
datatype : int
description : Enable/Disable the Compressed extension
paramtype : vlogparam
firmware:
datatype : file
description : Preload RAM with a hex file at runtime (overrides memfile)
paramtype : plusarg
frequency:
datatype : int
description : PLL output frequency in MHz
paramtype : vlogparam
MDU:
datatype : int
description : Enables RISC-V standard M-extension
paramtype : vlogdefine
memfile:
datatype : file
description : Preload RAM with a hex file at compile-time
paramtype : vlogparam
memsize:
datatype : int
default : 8192
description : Memory size in bytes for RAM (default 8kiB)
paramtype : vlogparam
PLL:
datatype : str
description : PLL type to use for main clock generation
paramtype : vlogparam
RISCV_FORMAL:
datatype : bool
paramtype : vlogdefine
SERV_CLEAR_RAM:
datatype : bool
paramtype : vlogdefine
signature:
datatype : file
paramtype : plusarg
timeout:
datatype : int
paramtype : plusarg
trace_pc:
datatype : bool
paramtype : plusarg
uart_baudrate:
datatype : int
description : Treat q output as an UART with the specified baudrate (0 or omitted parameter disables UART decoding)
paramtype : plusarg
vcd:
datatype : bool
paramtype : plusarg
vcd_start:
datatype : int
description : Delay start of VCD dumping until the specified time
paramtype : plusarg
with_csr:
datatype : int
description : Enable/Disable CSR support
paramtype : vlogparam
WITH_RESET:
datatype : bool
default : true
description : Enable reset input (for supported targets)
paramtype : vlogdefine
generate:
ice40pll:
generator: icepll