A .gitignore => .gitignore +4 -0
@@ 0,0 1,4 @@
+_impactbatch.log
+work/
+sim/
+bin/
A LICENSE => LICENSE +21 -0
@@ 0,0 1,21 @@
+MIT License
+
+Copyright (c) 2023 František Boháček
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
A Makefile => Makefile +56 -0
@@ 0,0 1,56 @@
+SIMDIR := sim
+BINDIR := bin
+SRCDIR := src
+TBDIR := testbench
+WORKDIR := work
+VHDLEX := vhd
+
+WORKFILE := $(WORKDIR)/work-obj93.cf
+
+#####################################################
+# #
+# Top level entity #
+# #
+#####################################################
+TOP_ENTITY := spi
+TESTBENCH ?= $(TOP_ENTITY)_tb # default
+
+WAVEFORM_VIEWER := gtkwave
+
+COMPILER := ghdl
+COMPILER_FLAGS := --std=08 --ieee=standard --workdir=$(WORKDIR)
+
+STOP_TIME ?= 1000ns
+RUN_FLAGS := --stop-time=$(STOP_TIME) --stats
+
+TBSOURCES := $(wildcard $(TBDIR)/*.$(VHDLEX) $(TBDIR)/**/*.$(VHDLEX))
+SOURCES := $(wildcard $(SRCDIR)/*.$(VHDLEX) $(SRCDIR)/**/*.$(VHDLEX))
+ALL_SOURCES := $(SOURCES) $(TBSOURCES)
+
+.PHONY: all clean
+
+all: $(SIMDIR)/$(TESTBENCH).ghw
+
+$(BINDIR)/%_tb.out: $(TBDIR)/%_tb.$(VHDLEX) $(WORKFILE) $(BINDIR)
+ @$(COMPILER) -m -o $@ $(COMPILER_FLAGS) $(notdir $(basename $@))
+
+$(BINDIR)/%.out: $(SRCDIR)/%.$(VHDLEX) $(WORKFILE) $(BINDIR)
+ @$(COMPILER) -m -o $@ $(COMPILER_FLAGS) $(notdir $(basename $@))
+
+$(SIMDIR)/%.ghw: $(BINDIR)/%.out
+ $< $(RUN_FLAGS) --wave=$@
+ gsettings set com.geda.gtkwave reload 1
+ gsettings set com.geda.gtkwave reload 0
+ pgrep $(WAVEFORM_VIEWER) || $(WAVEFORM_VIEWER) $@ &
+
+$(WORKFILE): $(WORKDIR) $(ALL_SOURCES)
+ @$(COMPILER) -i $(COMPILER_FLAGS) $(ALL_SOURCES)
+
+$(BINDIR) $(WORKDIR) $(SIMDIR):
+ @mkdir $@
+
+clean:
+ @$(RM) -rf $(SIMDIR) $(WORKDIR) $(BINDIR)
+ @$(MAKE) -C ax309 clean
+
+$(ALL_SOURCES):
A src/.gitkeep => src/.gitkeep +0 -0
A testbench/.gitkeep => testbench/.gitkeep +0 -0