108 lines
2.9 KiB
Makefile
108 lines
2.9 KiB
Makefile
|
PCF_PATH ?= constraints
|
||
|
|
||
|
|
||
|
ifeq ($(BOARD),Fomu)
|
||
|
|
||
|
$(info Setting constraints and implementation args for BOARD Fomu)
|
||
|
|
||
|
# Different Fomu hardware revisions are wired differently and thus
|
||
|
# require different configurations for yosys and nextpnr.
|
||
|
# Configuration is performed by setting the environment variable FOMU_REV accordingly.
|
||
|
|
||
|
FOMU_REV ?= pvt
|
||
|
|
||
|
ifeq ($(FOMU_REV),evt1)
|
||
|
YOSYSFLAGS ?= -D EVT=1 -D EVT1=1 -D HAVE_PMOD=1
|
||
|
PNRFLAGS ?= --up5k --package sg48
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)-evt2.pcf
|
||
|
else ifeq ($(FOMU_REV),evt2)
|
||
|
YOSYSFLAGS ?= -D EVT=1 -D EVT2=1 -D HAVE_PMOD=1
|
||
|
PNRFLAGS ?= --up5k --package sg48
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)-$(FOMU_REV).pcf
|
||
|
else ifeq ($(FOMU_REV),evt3)
|
||
|
YOSYSFLAGS ?= -D EVT=1 -D EVT3=1 -D HAVE_PMOD=1
|
||
|
PNRFLAGS ?= --up5k --package sg48
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)-$(FOMU_REV).pcf
|
||
|
else ifeq ($(FOMU_REV),hacker)
|
||
|
YOSYSFLAGS ?= -D HACKER=1
|
||
|
PNRFLAGS ?= --up5k --package uwg30
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)-$(FOMU_REV).pcf
|
||
|
else ifeq ($(FOMU_REV),pvt)
|
||
|
YOSYSFLAGS ?= -D PVT=1
|
||
|
PNRFLAGS ?= --up5k --package uwg30
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)-$(FOMU_REV).pcf
|
||
|
else
|
||
|
$(error Unrecognized FOMU_REV value. must be "evt1", "evt2", "evt3", "pvt", or "hacker")
|
||
|
endif
|
||
|
|
||
|
IMPL := neorv32_Fomu_$(FOMU_REV)_$(ID)
|
||
|
|
||
|
endif
|
||
|
|
||
|
|
||
|
ifeq ($(BOARD),iCESugar)
|
||
|
$(info Setting constraints and implementation args for BOARD iCESugar)
|
||
|
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).pcf
|
||
|
PNRFLAGS ?= --up5k --package sg48 --ignore-loops --timing-allow-fail
|
||
|
IMPL ?= neorv32_$(BOARD)_$(ID)
|
||
|
|
||
|
endif
|
||
|
|
||
|
|
||
|
ifeq ($(BOARD),UPduino)
|
||
|
$(info Setting constraints and implementation args for BOARD UPduino)
|
||
|
|
||
|
UPduino_REV ?= v3
|
||
|
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD)_v3.pcf
|
||
|
PNRFLAGS ?= --up5k --package sg48 --ignore-loops --timing-allow-fail
|
||
|
IMPL ?= neorv32_$(BOARD)_$(UPduino_REV)_$(ID)
|
||
|
|
||
|
endif
|
||
|
|
||
|
ifeq ($(BOARD),iCEBreaker)
|
||
|
$(info Setting constraints and implementation args for BOARD iCEBreaker)
|
||
|
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).pcf
|
||
|
PNRFLAGS ?= --up5k --package sg48 --ignore-loops --timing-allow-fail
|
||
|
IMPL ?= neorv32_$(BOARD)_$(ID)
|
||
|
|
||
|
endif
|
||
|
|
||
|
|
||
|
|
||
|
ifeq ($(BOARD),OrangeCrab)
|
||
|
$(info Setting constraints and implementation args for BOARD OrangeCrab)
|
||
|
|
||
|
DEVICE_SERIES = ecp5
|
||
|
|
||
|
OrangeCrab_REV ?= r02-25F
|
||
|
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).lpf
|
||
|
PNRFLAGS ?= --25k --package CSFBGA285 --ignore-loops --timing-allow-fail
|
||
|
IMPL ?= neorv32_$(BOARD)_$(OrangeCrab_REV)_$(ID)
|
||
|
|
||
|
endif
|
||
|
|
||
|
ifeq ($(BOARD),AlhambraII)
|
||
|
$(info Setting constraints and implementation args for BOARD AlhambraII)
|
||
|
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).pcf
|
||
|
PNRFLAGS ?= --hx8k --package tq144:4k --ignore-loops --timing-allow-fail
|
||
|
IMPL ?= neorv32_$(BOARD)_$(ID)
|
||
|
|
||
|
endif
|
||
|
|
||
|
|
||
|
ifeq ($(BOARD),ULX3S)
|
||
|
$(info Setting constraints and implementation args for BOARD ULX3S)
|
||
|
|
||
|
DEVICE_SERIES = ecp5
|
||
|
|
||
|
CONSTRAINTS ?= $(PCF_PATH)/$(BOARD).lpf
|
||
|
PNRFLAGS ?= --85k --freq 25 --package CABGA381 --ignore-loops --timing-allow-fail
|
||
|
IMPL ?= neorv32_$(BOARD)_$(ID)
|
||
|
|
||
|
endif
|