| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -11,9 +11,12 @@ GHDLSYNTH ?= $(shell ($(YOSYS) -H | grep -q ghdl) || echo -m ghdl)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				YOSYS     ?= yosys
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				NEXTPNR   ?= nextpnr-ecp5
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				ECPPACK   ?= ecppack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				ECPPROG   ?= ecpprog
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				OPENOCD   ?= openocd
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				VUNITRUN  ?= python3 ./run.py
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				VERILATOR ?= verilator
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				DFUUTIL   ?= dfu-util
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				DFUSUFFIX ?= dfu-suffix
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# We need a version of GHDL built with either the LLVM or gcc backend.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# Fedora provides this, but other distros may not. Another option is to use
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -165,6 +168,7 @@ PACKAGE=CSFBGA285
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				NEXTPNR_FLAGS=--um5g-85k --freq 48
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				OPENOCD_JTAG_CONFIG=openocd/olimex-arm-usb-tiny-h.cfg
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				OPENOCD_DEVICE_CONFIG=openocd/LFE5UM5G-85F.cfg
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				ECP_FLASH_OFFSET=0x80000
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# OrangeCrab with ECP85 (v0.21)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -177,6 +181,9 @@ PACKAGE=CSFBGA285
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				NEXTPNR_FLAGS=--85k --speed 8 --freq 40
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				OPENOCD_JTAG_CONFIG=openocd/olimex-arm-usb-tiny-h.cfg
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				OPENOCD_DEVICE_CONFIG=openocd/LFE5U-85F.cfg
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				DFU_VENDOR=1209
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				DFU_PRODUCT=5af0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				ECP_FLASH_OFFSET=0x80000
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# ECP5-EVN
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -233,6 +240,21 @@ microwatt.svf: microwatt.bit
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				prog: microwatt.svf
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$(OPENOCD) -f $(OPENOCD_JTAG_CONFIG) -f $(OPENOCD_DEVICE_CONFIG) -c "transport select jtag; init; svf $<; exit"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				microwatt.dfu: microwatt.bit
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					cp $< $@.tmp
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$(DFUSUFFIX) -v $(DFU_VENDOR) -p $(DFU_PRODUCT) -a $@.tmp
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					mv $@.tmp $@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				dfuprog: microwatt.dfu
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$(DFUUTIL) -a 0 -D $<
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				ecpprog: microwatt.bit
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$(ECPPROG) -S $<
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				ecpflash: microwatt.bit
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					test -n "$(ECP_FLASH_OFFSET)" || (echo Error: No ECP_FLASH_OFFSET defined for target; exit 1)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					$(ECPPROG) -o $(ECP_FLASH_OFFSET) $<
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				tests = $(sort $(patsubst tests/%.out,%,$(wildcard tests/*.out)))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				tests_console = $(sort $(patsubst tests/%.console_out,%,$(wildcard tests/*.console_out)))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |