aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedrich Beckmann <friedrich.beckmann@hs-augsburg.de>2024-03-06 22:45:14 +0100
committerFriedrich Beckmann <friedrich.beckmann@hs-augsburg.de>2024-03-06 22:45:14 +0100
commit8cc31c74129ee8599480ff9fe8462a96ffbfe6bc (patch)
treed5092ef066f7c42201bd86503446464e5e533304
first commit with top_simple synthesis
-rw-r--r--.gitignore15
-rw-r--r--ReadMe.md35
-rw-r--r--pnr/makefile81
-rw-r--r--pnr/top_simple/makefile8
-rw-r--r--pnr/top_simple/top_simple_pins.tcl22
-rw-r--r--scripts/create_quartus_project_settings.tcl84
-rw-r--r--scripts/de1_pin_assignments_minimumio.csv283
-rw-r--r--scripts/de1_pin_assignments_minimumio.tcl282
-rw-r--r--scripts/quartus_project_flow.tcl84
-rw-r--r--scripts/quartus_project_settings.tcl86
-rw-r--r--src/top_simple.vhd36
-rw-r--r--vhdl_ls.toml5
12 files changed, 1021 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7a27875
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,15 @@
+# Ignore files for git
+
+# Emacs backup files
+*~
+*.bak
+.emacs-vhdl-cache*
+
+# ModelSim working library
+work
+
+# Quartus internal database
+db
+incremental_db
+
+
diff --git a/ReadMe.md b/ReadMe.md
new file mode 100644
index 0000000..1d0e9cf
--- /dev/null
+++ b/ReadMe.md
@@ -0,0 +1,35 @@
+# Digitaltechnik Labor
+
+Im Labor Digitaltechnik werden digitale Schaltungen entwickelt und getestet.
+In diesem Repository sind VHDL Dateien und die Setupdaten für die Simulation
+und die Schaltungssynthese für ein Altera DE1 FPGA Board.
+
+## UART Schnittstelle
+
+Das Ziel ist die Entwicklung einer UART Schnittstelle mit der Daten zwischen
+dem FPGA Board und einem Rechner ausgetauscht werden können. Auf dem Weg werden
+
+* Kombinatorische Schaltungen
+* Schieberegister
+* Zähler
+* Automaten
+
+vorgestellt. Aus diesen Komponenten wird dann die UART aufgebaut.
+
+## Entwurfsmethodik
+
+Die Schaltungen werden in der Hardwarebeschreibungssprache VHDL
+beschrieben.
+
+## Entwicklungswerkzeuge
+
+Für die Realiserung von Prototypen kommen programmierbare Logikbausteine in Form von FPGAs (engl. Field Programmable Gate Arrays) der Fa. Intel (früher: Altera) zum Einsatz. Die dazu notwendigen CAE-Werkzeuge sind im wesentlichen:
+
+* Editor: VSCodium
+* Simulation von VHDL-Modellen: GHDL/GtkWave
+* Synthese: Quartus (Fa. Intel)
+* Hardware: DE1 Prototypeboard (Fa. Terasic)
+
+## Messtechnik
+
+Für die Messung von zeitlichen Signalverläufen an dem FPGA gibt es Oszilloskope.
diff --git a/pnr/makefile b/pnr/makefile
new file mode 100644
index 0000000..7d2752a
--- /dev/null
+++ b/pnr/makefile
@@ -0,0 +1,81 @@
+# Makefile for Quartus Synthesis
+# Be quiet
+#.SILENT:
+
+LOG_FILE = quartus.log
+FAMILY = "Cyclone II"
+DEVICE = EP2C20F484C7
+PROGFILEEXT = sof
+
+ECHO_TARGET := echo "$$@" >> $(LOG_FILE) 2>&1
+TIME_STAMP := echo "$$@ $$(date --iso=seconds)" >> $(LOG_FILE) 2>&1
+
+help:
+ @echo '"make" does intentionally nothing. Type:'
+ @echo ' "make qproject" to create quartus project only'
+ @echo ' "make compile" to synthesize the design'
+ @echo ' "make prog" to configure programmable device'
+ @echo ' "make warnings to list all warnings'
+ @echo ' "make quartus" to start quartus graphical user interface'
+ @echo ' "make clean" to remove all generated files'
+
+qproject: $(PROJECT).qpf
+
+$(PROJECT).qpf: $(SOURCE_FILES)
+ @echo "Processing ..."
+ @echo "---- $@" >> $(LOG_FILE) 2>&1
+ @$(TIME_STAMP)
+ @# assign VHDL design files
+ @rm -rf quartus_vhdl_source_files.tcl
+ @(for source_file in $(SOURCE_FILES); \
+ do \
+ echo set_global_assignment -name VHDL_FILE $$source_file >> quartus_vhdl_source_files.tcl; \
+ done)
+ @# create a default timing constraint file assuming CLOCK_50
+ @echo "create_clock -period 20.000 -name CLOCK_50 CLOCK_50" > $(PROJECT).sdc
+ @# just create a quartus project
+ @quartus_sh -t ../../scripts/create_quartus_project_settings.tcl \
+ -projectname $(PROJECT) -family $(FAMILY) -device $(DEVICE) >> $(LOG_FILE) 2>&1
+
+compile: $(PROJECT).qpf flowsummary.log
+ @echo "---- $@" >> $(LOG_FILE) 2>&1
+ @$(TIME_STAMP)
+
+flowsummary.log: $(SOURCE_FILES)
+ @echo "---- $@" >> $(LOG_FILE) 2>&1
+ @$(TIME_STAMP)
+ @(quartus_sh -t ../../scripts/quartus_project_flow.tcl \
+ -projectname $(PROJECT) -process compile >> $(LOG_FILE) 2>&1 \
+ || (grep "Error (" $(LOG_FILE) && false))
+ @grep "warnings" $(LOG_FILE)
+ @echo
+ @echo "To display all warnings use: make warnings"
+ @echo
+
+prog: $(PROJECT).qpf flowsummary.log
+ @echo "---- $@" >> $(LOG_FILE) 2>&1
+ @$(TIME_STAMP)
+ @quartus_pgm -c USB-Blaster --mode jtag --operation="p;$(PROJECT).$(PROGFILEEXT)" \
+ >> $(LOG_FILE) 2>&1
+
+quartus: $(PROJECT).qpf
+ @echo "---- $@" >> $(LOG_FILE) 2>&1
+ @$(TIME_STAMP)
+ @quartus $(PROJECT).qpf &
+
+warnings: $(LOG_FILE)
+ @echo "---- $@" >> $(LOG_FILE) 2>&1
+ @$(TIME_STAMP)
+ @grep "Warning (" $(LOG_FILE)
+
+rtlview: $(PROJECT).qpf
+ @echo "---- $@" >> $(LOG_FILE) 2>&1
+ @$(TIME_STAMP)
+ @#(quartus_sh -t ../../scripts/quartus_project_flow.tcl -projectname \
+ $(PROJECT) -process compile >> $(LOG_FILE) 2>&1 || (grep "Error (" $(LOG_FILE) && false))
+ @quartus_map --read_settings_files=on --write_settings_files=off \
+ $(PROJECT) -c $(PROJECT) --analysis_and_elaboration >> $(LOG_FILE) 2>&1
+ @quartus $(PROJECT).qpf &
+
+clean:
+ @rm -rf *.rpt *.chg *.log quartus_vhdl_source_files.tcl *.htm *.eqn *.pin *.sof *.pof db incremental_db *.qpf *.qsf *.summary $(PROJECT).* *.sdc
diff --git a/pnr/top_simple/makefile b/pnr/top_simple/makefile
new file mode 100644
index 0000000..a75ec68
--- /dev/null
+++ b/pnr/top_simple/makefile
@@ -0,0 +1,8 @@
+
+PROJECT = top_simple
+
+# List all files for the project
+SOURCE_FILES = \
+../../src/top_simple.vhd
+
+include ../makefile
diff --git a/pnr/top_simple/top_simple_pins.tcl b/pnr/top_simple/top_simple_pins.tcl
new file mode 100644
index 0000000..98d3cbe
--- /dev/null
+++ b/pnr/top_simple/top_simple_pins.tcl
@@ -0,0 +1,22 @@
+# assign pin locations to a quartus project
+
+set_location_assignment PIN_L22 -to SW[0]
+set_location_assignment PIN_L21 -to SW[1]
+set_location_assignment PIN_M22 -to SW[2]
+set_location_assignment PIN_V12 -to SW[3]
+set_location_assignment PIN_W12 -to SW[4]
+set_location_assignment PIN_U12 -to SW[5]
+set_location_assignment PIN_U11 -to SW[6]
+set_location_assignment PIN_M2 -to SW[7]
+set_location_assignment PIN_M1 -to SW[8]
+set_location_assignment PIN_L2 -to SW[9]
+set_location_assignment PIN_R20 -to LEDR[0]
+set_location_assignment PIN_R19 -to LEDR[1]
+set_location_assignment PIN_U19 -to LEDR[2]
+set_location_assignment PIN_Y19 -to LEDR[3]
+set_location_assignment PIN_T18 -to LEDR[4]
+set_location_assignment PIN_V19 -to LEDR[5]
+set_location_assignment PIN_Y18 -to LEDR[6]
+set_location_assignment PIN_U18 -to LEDR[7]
+set_location_assignment PIN_R18 -to LEDR[8]
+set_location_assignment PIN_R17 -to LEDR[9] \ No newline at end of file
diff --git a/scripts/create_quartus_project_settings.tcl b/scripts/create_quartus_project_settings.tcl
new file mode 100644
index 0000000..ab55593
--- /dev/null
+++ b/scripts/create_quartus_project_settings.tcl
@@ -0,0 +1,84 @@
+## ----------------------------------------------------------------------------
+## Script : create_quartus_project_settings.tcl
+## ----------------------------------------------------------------------------
+## Author : Johann Faerber, F. Beckmann
+## Company : University of Applied Sciences Augsburg
+## ----------------------------------------------------------------------------
+## Description: create a quartus project with default settings for device,
+## unused pins, ...
+## expects project name as command line parameter
+## e.g.
+## quartus_sh -t create_quartus_project_settings.tcl -projectname de1_mux2to1
+## -family "Cyclone II" -device EP2C20F484C7
+## ----------------------------------------------------------------------------
+## Revisions : see end of file
+## ----------------------------------------------------------------------------
+
+package require cmdline
+# Load Quartus II Tcl Project package
+package require ::quartus::project
+
+# ----------------------------------------------------------------------------
+# Declare command line parameters
+# ----------------------------------------------------------------------------
+set parameters {
+ {projectname.arg "" "Project Name"}
+ {family.arg "" "FPGA Family"}
+ {device.arg "" "FPGA Device"}
+}
+array set arg [::cmdline::getoptions argv $parameters]
+
+# ----------------------------------------------------------------------------
+# Verify required paramters
+# ----------------------------------------------------------------------------
+set requiredParameters {projectname family device}
+foreach parameter $requiredParameters {
+ if {$arg($parameter) == ""} {
+ puts stderr "Missing required parameter: -$parameter"
+ exit 1
+ }
+}
+
+
+ # ----------------------------------------------------------------------------
+ # Create project
+ # ----------------------------------------------------------------------------
+ project_new $arg(projectname) -overwrite
+
+ # ----------------------------------------------------------------------------
+ # Assign family, device, and top-level file
+ # ----------------------------------------------------------------------------
+ set_global_assignment -name FAMILY $arg(family)
+ set_global_assignment -name DEVICE $arg(device)
+
+ # ----------------------------------------------------------------------------
+ # Default settings
+ # ----------------------------------------------------------------------------
+ set_global_assignment -name USE_CONFIGURATION_DEVICE ON
+ set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED"
+ set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008
+
+ # ----------------------------------------------------------------------------
+ # Design files
+ # ----------------------------------------------------------------------------
+ #set_global_assignment -name VHDL_FILE ../src/e_cntdnmodm.vhd
+ #set_global_assignment -name VHDL_FILE ../src/a_cntdnmodm_rtl.vhd
+ source quartus_vhdl_source_files.tcl
+
+ # ----------------------------------------------------------------------------
+ # Pin Assignments
+ # ----------------------------------------------------------------------------
+ # set_location_assignment PIN_L1 -to CLOCK_50
+ source $arg(projectname)_pins.tcl
+
+ # ----------------------------------------------------------------------------
+ # Close project
+ # ----------------------------------------------------------------------------
+ project_close
+
+
+## ----------------------------------------------------------------------------
+## Revisions:
+## ----------
+## $Id:$
+## ----------------------------------------------------------------------------
diff --git a/scripts/de1_pin_assignments_minimumio.csv b/scripts/de1_pin_assignments_minimumio.csv
new file mode 100644
index 0000000..04a5003
--- /dev/null
+++ b/scripts/de1_pin_assignments_minimumio.csv
@@ -0,0 +1,283 @@
+To,Location
+CLOCK_27[0],PIN_D12
+CLOCK_27[1],PIN_E12
+CLOCK_24[0],PIN_B12
+CLOCK_24[1],PIN_A12
+CLOCK_50,PIN_L1
+EXT_CLOCK,PIN_M21
+KEY[0],PIN_R22
+KEY[1],PIN_R21
+KEY[2],PIN_T22
+KEY[3],PIN_T21
+SW[0],PIN_L22
+SW[1],PIN_L21
+SW[2],PIN_M22
+SW[3],PIN_V12
+SW[4],PIN_W12
+SW[5],PIN_U12
+SW[6],PIN_U11
+SW[7],PIN_M2
+SW[8],PIN_M1
+SW[9],PIN_L2
+LEDR[0],PIN_R20
+LEDR[1],PIN_R19
+LEDR[2],PIN_U19
+LEDR[3],PIN_Y19
+LEDR[4],PIN_T18
+LEDR[5],PIN_V19
+LEDR[6],PIN_Y18
+LEDR[7],PIN_U18
+LEDR[8],PIN_R18
+LEDR[9],PIN_R17
+LEDG[0],PIN_U22
+LEDG[1],PIN_U21
+LEDG[2],PIN_V22
+LEDG[3],PIN_V21
+LEDG[4],PIN_W22
+LEDG[5],PIN_W21
+LEDG[6],PIN_Y22
+LEDG[7],PIN_Y21
+HEX0[0],PIN_J2
+HEX0[1],PIN_J1
+HEX0[2],PIN_H2
+HEX0[3],PIN_H1
+HEX0[4],PIN_F2
+HEX0[5],PIN_F1
+HEX0[6],PIN_E2
+HEX1[0],PIN_E1
+HEX1[1],PIN_H6
+HEX1[2],PIN_H5
+HEX1[3],PIN_H4
+HEX1[4],PIN_G3
+HEX1[5],PIN_D2
+HEX1[6],PIN_D1
+HEX2[0],PIN_G5
+HEX2[1],PIN_G6
+HEX2[2],PIN_C2
+HEX2[3],PIN_C1
+HEX2[4],PIN_E3
+HEX2[5],PIN_E4
+HEX2[6],PIN_D3
+HEX3[0],PIN_F4
+HEX3[1],PIN_D5
+HEX3[2],PIN_D6
+HEX3[3],PIN_J4
+HEX3[4],PIN_L8
+HEX3[5],PIN_F3
+HEX3[6],PIN_D4
+GPI_0[0],PIN_A13
+GPI_0[1],PIN_B13
+GPI_0[2],PIN_A14
+GPI_0[3],PIN_B14
+GPI_0[4],PIN_A15
+GPI_0[5],PIN_B15
+GPI_0[6],PIN_A16
+GPI_0[7],PIN_B16
+GPI_0[8],PIN_A17
+GPI_0[9],PIN_B17
+GPI_0[10],PIN_A18
+GPI_0[11],PIN_B18
+GPI_0[12],PIN_A19
+GPI_0[13],PIN_B19
+GPI_0[14],PIN_A20
+GPI_0[15],PIN_B20
+GPI_0[16],PIN_C21
+GPI_0[17],PIN_C22
+GPI_0[18],PIN_D21
+GPI_0[19],PIN_D22
+GPI_0[20],PIN_E21
+GPI_0[21],PIN_E22
+GPI_0[22],PIN_F21
+GPI_0[23],PIN_F22
+GPI_0[24],PIN_G21
+GPI_0[25],PIN_G22
+GPI_0[26],PIN_J21
+GPI_0[27],PIN_J22
+GPI_0[28],PIN_K21
+GPI_0[29],PIN_K22
+GPI_0[30],PIN_J19
+GPI_0[31],PIN_J20
+GPI_0[32],PIN_J18
+GPI_0[33],PIN_K20
+GPI_0[34],PIN_L19
+GPI_0[35],PIN_L18
+GPI_1[0],PIN_H12
+GPI_1[1],PIN_H13
+GPI_1[2],PIN_H14
+GPI_1[3],PIN_G15
+GPI_1[4],PIN_E14
+GPI_1[5],PIN_E15
+GPI_1[6],PIN_F15
+GPI_1[7],PIN_G16
+GPI_1[8],PIN_F12
+GPI_1[9],PIN_F13
+GPI_1[10],PIN_C14
+GPI_1[11],PIN_D14
+GPI_1[12],PIN_D15
+GPI_1[13],PIN_D16
+GPI_1[14],PIN_C17
+GPI_1[15],PIN_C18
+GPI_1[16],PIN_C19
+GPI_1[17],PIN_C20
+GPI_1[18],PIN_D19
+GPI_1[19],PIN_D20
+GPI_1[20],PIN_E20
+GPI_1[21],PIN_F20
+GPI_1[22],PIN_E19
+GPI_1[23],PIN_E18
+GPI_1[24],PIN_G20
+GPI_1[25],PIN_G18
+GPI_1[26],PIN_G17
+GPI_1[27],PIN_H17
+GPI_1[28],PIN_J15
+GPI_1[29],PIN_H18
+GPI_1[30],PIN_N22
+GPI_1[31],PIN_N21
+GPI_1[32],PIN_P15
+GPI_1[33],PIN_N15
+GPI_1[34],PIN_P17
+GPI_1[35],PIN_P18
+GPO_0[0],PIN_A13
+GPO_0[1],PIN_B13
+GPO_0[2],PIN_A14
+GPO_0[3],PIN_B14
+GPO_0[4],PIN_A15
+GPO_0[5],PIN_B15
+GPO_0[6],PIN_A16
+GPO_0[7],PIN_B16
+GPO_0[8],PIN_A17
+GPO_0[9],PIN_B17
+GPO_0[10],PIN_A18
+GPO_0[11],PIN_B18
+GPO_0[12],PIN_A19
+GPO_0[13],PIN_B19
+GPO_0[14],PIN_A20
+GPO_0[15],PIN_B20
+GPO_0[16],PIN_C21
+GPO_0[17],PIN_C22
+GPO_0[18],PIN_D21
+GPO_0[19],PIN_D22
+GPO_0[20],PIN_E21
+GPO_0[21],PIN_E22
+GPO_0[22],PIN_F21
+GPO_0[23],PIN_F22
+GPO_0[24],PIN_G21
+GPO_0[25],PIN_G22
+GPO_0[26],PIN_J21
+GPO_0[27],PIN_J22
+GPO_0[28],PIN_K21
+GPO_0[29],PIN_K22
+GPO_0[30],PIN_J19
+GPO_0[31],PIN_J20
+GPO_0[32],PIN_J18
+GPO_0[33],PIN_K20
+GPO_0[34],PIN_L19
+GPO_0[35],PIN_L18
+GPO_1[0],PIN_H12
+GPO_1[1],PIN_H13
+GPO_1[2],PIN_H14
+GPO_1[3],PIN_G15
+GPO_1[4],PIN_E14
+GPO_1[5],PIN_E15
+GPO_1[6],PIN_F15
+GPO_1[7],PIN_G16
+GPO_1[8],PIN_F12
+GPO_1[9],PIN_F13
+GPO_1[10],PIN_C14
+GPO_1[11],PIN_D14
+GPO_1[12],PIN_D15
+GPO_1[13],PIN_D16
+GPO_1[14],PIN_C17
+GPO_1[15],PIN_C18
+GPO_1[16],PIN_C19
+GPO_1[17],PIN_C20
+GPO_1[18],PIN_D19
+GPO_1[19],PIN_D20
+GPO_1[20],PIN_E20
+GPO_1[21],PIN_F20
+GPO_1[22],PIN_E19
+GPO_1[23],PIN_E18
+GPO_1[24],PIN_G20
+GPO_1[25],PIN_G18
+GPO_1[26],PIN_G17
+GPO_1[27],PIN_H17
+GPO_1[28],PIN_J15
+GPO_1[29],PIN_H18
+GPO_1[30],PIN_N22
+GPO_1[31],PIN_N21
+GPO_1[32],PIN_P15
+GPO_1[33],PIN_N15
+GPO_1[34],PIN_P17
+GPO_1[35],PIN_P18
+GPIO_0[0],PIN_A13
+GPIO_0[1],PIN_B13
+GPIO_0[2],PIN_A14
+GPIO_0[3],PIN_B14
+GPIO_0[4],PIN_A15
+GPIO_0[5],PIN_B15
+GPIO_0[6],PIN_A16
+GPIO_0[7],PIN_B16
+GPIO_0[8],PIN_A17
+GPIO_0[9],PIN_B17
+GPIO_0[10],PIN_A18
+GPIO_0[11],PIN_B18
+GPIO_0[12],PIN_A19
+GPIO_0[13],PIN_B19
+GPIO_0[14],PIN_A20
+GPIO_0[15],PIN_B20
+GPIO_0[16],PIN_C21
+GPIO_0[17],PIN_C22
+GPIO_0[18],PIN_D21
+GPIO_0[19],PIN_D22
+GPIO_0[20],PIN_E21
+GPIO_0[21],PIN_E22
+GPIO_0[22],PIN_F21
+GPIO_0[23],PIN_F22
+GPIO_0[24],PIN_G21
+GPIO_0[25],PIN_G22
+GPIO_0[26],PIN_J21
+GPIO_0[27],PIN_J22
+GPIO_0[28],PIN_K21
+GPIO_0[29],PIN_K22
+GPIO_0[30],PIN_J19
+GPIO_0[31],PIN_J20
+GPIO_0[32],PIN_J18
+GPIO_0[33],PIN_K20
+GPIO_0[34],PIN_L19
+GPIO_0[35],PIN_L18
+GPIO_1[0],PIN_H12
+GPIO_1[1],PIN_H13
+GPIO_1[2],PIN_H14
+GPIO_1[3],PIN_G15
+GPIO_1[4],PIN_E14
+GPIO_1[5],PIN_E15
+GPIO_1[6],PIN_F15
+GPIO_1[7],PIN_G16
+GPIO_1[8],PIN_F12
+GPIO_1[9],PIN_F13
+GPIO_1[10],PIN_C14
+GPIO_1[11],PIN_D14
+GPIO_1[12],PIN_D15
+GPIO_1[13],PIN_D16
+GPIO_1[14],PIN_C17
+GPIO_1[15],PIN_C18
+GPIO_1[16],PIN_C19
+GPIO_1[17],PIN_C20
+GPIO_1[18],PIN_D19
+GPIO_1[19],PIN_D20
+GPIO_1[20],PIN_E20
+GPIO_1[21],PIN_F20
+GPIO_1[22],PIN_E19
+GPIO_1[23],PIN_E18
+GPIO_1[24],PIN_G20
+GPIO_1[25],PIN_G18
+GPIO_1[26],PIN_G17
+GPIO_1[27],PIN_H17
+GPIO_1[28],PIN_J15
+GPIO_1[29],PIN_H18
+GPIO_1[30],PIN_N22
+GPIO_1[31],PIN_N21
+GPIO_1[32],PIN_P15
+GPIO_1[33],PIN_N15
+GPIO_1[34],PIN_P17
+GPIO_1[35],PIN_P18
diff --git a/scripts/de1_pin_assignments_minimumio.tcl b/scripts/de1_pin_assignments_minimumio.tcl
new file mode 100644
index 0000000..5a40a60
--- /dev/null
+++ b/scripts/de1_pin_assignments_minimumio.tcl
@@ -0,0 +1,282 @@
+set_location_assignment PIN_D12 -to CLOCK_27[0]
+set_location_assignment PIN_E12 -to CLOCK_27[1]
+set_location_assignment PIN_B12 -to CLOCK_24[0]
+set_location_assignment PIN_A12 -to CLOCK_24[1]
+set_location_assignment PIN_L1 -to CLOCK_50
+set_location_assignment PIN_M21 -to EXT_CLOCK
+set_location_assignment PIN_R22 -to KEY[0]
+set_location_assignment PIN_R21 -to KEY[1]
+set_location_assignment PIN_T22 -to KEY[2]
+set_location_assignment PIN_T21 -to KEY[3]
+set_location_assignment PIN_L22 -to SW[0]
+set_location_assignment PIN_L21 -to SW[1]
+set_location_assignment PIN_M22 -to SW[2]
+set_location_assignment PIN_V12 -to SW[3]
+set_location_assignment PIN_W12 -to SW[4]
+set_location_assignment PIN_U12 -to SW[5]
+set_location_assignment PIN_U11 -to SW[6]
+set_location_assignment PIN_M2 -to SW[7]
+set_location_assignment PIN_M1 -to SW[8]
+set_location_assignment PIN_L2 -to SW[9]
+set_location_assignment PIN_R20 -to LEDR[0]
+set_location_assignment PIN_R19 -to LEDR[1]
+set_location_assignment PIN_U19 -to LEDR[2]
+set_location_assignment PIN_Y19 -to LEDR[3]
+set_location_assignment PIN_T18 -to LEDR[4]
+set_location_assignment PIN_V19 -to LEDR[5]
+set_location_assignment PIN_Y18 -to LEDR[6]
+set_location_assignment PIN_U18 -to LEDR[7]
+set_location_assignment PIN_R18 -to LEDR[8]
+set_location_assignment PIN_R17 -to LEDR[9]
+set_location_assignment PIN_U22 -to LEDG[0]
+set_location_assignment PIN_U21 -to LEDG[1]
+set_location_assignment PIN_V22 -to LEDG[2]
+set_location_assignment PIN_V21 -to LEDG[3]
+set_location_assignment PIN_W22 -to LEDG[4]
+set_location_assignment PIN_W21 -to LEDG[5]
+set_location_assignment PIN_Y22 -to LEDG[6]
+set_location_assignment PIN_Y21 -to LEDG[7]
+set_location_assignment PIN_J2 -to HEX0[0]
+set_location_assignment PIN_J1 -to HEX0[1]
+set_location_assignment PIN_H2 -to HEX0[2]
+set_location_assignment PIN_H1 -to HEX0[3]
+set_location_assignment PIN_F2 -to HEX0[4]
+set_location_assignment PIN_F1 -to HEX0[5]
+set_location_assignment PIN_E2 -to HEX0[6]
+set_location_assignment PIN_E1 -to HEX1[0]
+set_location_assignment PIN_H6 -to HEX1[1]
+set_location_assignment PIN_H5 -to HEX1[2]
+set_location_assignment PIN_H4 -to HEX1[3]
+set_location_assignment PIN_G3 -to HEX1[4]
+set_location_assignment PIN_D2 -to HEX1[5]
+set_location_assignment PIN_D1 -to HEX1[6]
+set_location_assignment PIN_G5 -to HEX2[0]
+set_location_assignment PIN_G6 -to HEX2[1]
+set_location_assignment PIN_C2 -to HEX2[2]
+set_location_assignment PIN_C1 -to HEX2[3]
+set_location_assignment PIN_E3 -to HEX2[4]
+set_location_assignment PIN_E4 -to HEX2[5]
+set_location_assignment PIN_D3 -to HEX2[6]
+set_location_assignment PIN_F4 -to HEX3[0]
+set_location_assignment PIN_D5 -to HEX3[1]
+set_location_assignment PIN_D6 -to HEX3[2]
+set_location_assignment PIN_J4 -to HEX3[3]
+set_location_assignment PIN_L8 -to HEX3[4]
+set_location_assignment PIN_F3 -to HEX3[5]
+set_location_assignment PIN_D4 -to HEX3[6]
+set_location_assignment PIN_A13 -to GPI_0[0]
+set_location_assignment PIN_B13 -to GPI_0[1]
+set_location_assignment PIN_A14 -to GPI_0[2]
+set_location_assignment PIN_B14 -to GPI_0[3]
+set_location_assignment PIN_A15 -to GPI_0[4]
+set_location_assignment PIN_B15 -to GPI_0[5]
+set_location_assignment PIN_A16 -to GPI_0[6]
+set_location_assignment PIN_B16 -to GPI_0[7]
+set_location_assignment PIN_A17 -to GPI_0[8]
+set_location_assignment PIN_B17 -to GPI_0[9]
+set_location_assignment PIN_A18 -to GPI_0[10]
+set_location_assignment PIN_B18 -to GPI_0[11]
+set_location_assignment PIN_A19 -to GPI_0[12]
+set_location_assignment PIN_B19 -to GPI_0[13]
+set_location_assignment PIN_A20 -to GPI_0[14]
+set_location_assignment PIN_B20 -to GPI_0[15]
+set_location_assignment PIN_C21 -to GPI_0[16]
+set_location_assignment PIN_C22 -to GPI_0[17]
+set_location_assignment PIN_D21 -to GPI_0[18]
+set_location_assignment PIN_D22 -to GPI_0[19]
+set_location_assignment PIN_E21 -to GPI_0[20]
+set_location_assignment PIN_E22 -to GPI_0[21]
+set_location_assignment PIN_F21 -to GPI_0[22]
+set_location_assignment PIN_F22 -to GPI_0[23]
+set_location_assignment PIN_G21 -to GPI_0[24]
+set_location_assignment PIN_G22 -to GPI_0[25]
+set_location_assignment PIN_J21 -to GPI_0[26]
+set_location_assignment PIN_J22 -to GPI_0[27]
+set_location_assignment PIN_K21 -to GPI_0[28]
+set_location_assignment PIN_K22 -to GPI_0[29]
+set_location_assignment PIN_J19 -to GPI_0[30]
+set_location_assignment PIN_J20 -to GPI_0[31]
+set_location_assignment PIN_J18 -to GPI_0[32]
+set_location_assignment PIN_K20 -to GPI_0[33]
+set_location_assignment PIN_L19 -to GPI_0[34]
+set_location_assignment PIN_L18 -to GPI_0[35]
+set_location_assignment PIN_H12 -to GPI_1[0]
+set_location_assignment PIN_H13 -to GPI_1[1]
+set_location_assignment PIN_H14 -to GPI_1[2]
+set_location_assignment PIN_G15 -to GPI_1[3]
+set_location_assignment PIN_E14 -to GPI_1[4]
+set_location_assignment PIN_E15 -to GPI_1[5]
+set_location_assignment PIN_F15 -to GPI_1[6]
+set_location_assignment PIN_G16 -to GPI_1[7]
+set_location_assignment PIN_F12 -to GPI_1[8]
+set_location_assignment PIN_F13 -to GPI_1[9]
+set_location_assignment PIN_C14 -to GPI_1[10]
+set_location_assignment PIN_D14 -to GPI_1[11]
+set_location_assignment PIN_D15 -to GPI_1[12]
+set_location_assignment PIN_D16 -to GPI_1[13]
+set_location_assignment PIN_C17 -to GPI_1[14]
+set_location_assignment PIN_C18 -to GPI_1[15]
+set_location_assignment PIN_C19 -to GPI_1[16]
+set_location_assignment PIN_C20 -to GPI_1[17]
+set_location_assignment PIN_D19 -to GPI_1[18]
+set_location_assignment PIN_D20 -to GPI_1[19]
+set_location_assignment PIN_E20 -to GPI_1[20]
+set_location_assignment PIN_F20 -to GPI_1[21]
+set_location_assignment PIN_E19 -to GPI_1[22]
+set_location_assignment PIN_E18 -to GPI_1[23]
+set_location_assignment PIN_G20 -to GPI_1[24]
+set_location_assignment PIN_G18 -to GPI_1[25]
+set_location_assignment PIN_G17 -to GPI_1[26]
+set_location_assignment PIN_H17 -to GPI_1[27]
+set_location_assignment PIN_J15 -to GPI_1[28]
+set_location_assignment PIN_H18 -to GPI_1[29]
+set_location_assignment PIN_N22 -to GPI_1[30]
+set_location_assignment PIN_N21 -to GPI_1[31]
+set_location_assignment PIN_P15 -to GPI_1[32]
+set_location_assignment PIN_N15 -to GPI_1[33]
+set_location_assignment PIN_P17 -to GPI_1[34]
+set_location_assignment PIN_P18 -to GPI_1[35]
+set_location_assignment PIN_A13 -to GPO_0[0]
+set_location_assignment PIN_B13 -to GPO_0[1]
+set_location_assignment PIN_A14 -to GPO_0[2]
+set_location_assignment PIN_B14 -to GPO_0[3]
+set_location_assignment PIN_A15 -to GPO_0[4]
+set_location_assignment PIN_B15 -to GPO_0[5]
+set_location_assignment PIN_A16 -to GPO_0[6]
+set_location_assignment PIN_B16 -to GPO_0[7]
+set_location_assignment PIN_A17 -to GPO_0[8]
+set_location_assignment PIN_B17 -to GPO_0[9]
+set_location_assignment PIN_A18 -to GPO_0[10]
+set_location_assignment PIN_B18 -to GPO_0[11]
+set_location_assignment PIN_A19 -to GPO_0[12]
+set_location_assignment PIN_B19 -to GPO_0[13]
+set_location_assignment PIN_A20 -to GPO_0[14]
+set_location_assignment PIN_B20 -to GPO_0[15]
+set_location_assignment PIN_C21 -to GPO_0[16]
+set_location_assignment PIN_C22 -to GPO_0[17]
+set_location_assignment PIN_D21 -to GPO_0[18]
+set_location_assignment PIN_D22 -to GPO_0[19]
+set_location_assignment PIN_E21 -to GPO_0[20]
+set_location_assignment PIN_E22 -to GPO_0[21]
+set_location_assignment PIN_F21 -to GPO_0[22]
+set_location_assignment PIN_F22 -to GPO_0[23]
+set_location_assignment PIN_G21 -to GPO_0[24]
+set_location_assignment PIN_G22 -to GPO_0[25]
+set_location_assignment PIN_J21 -to GPO_0[26]
+set_location_assignment PIN_J22 -to GPO_0[27]
+set_location_assignment PIN_K21 -to GPO_0[28]
+set_location_assignment PIN_K22 -to GPO_0[29]
+set_location_assignment PIN_J19 -to GPO_0[30]
+set_location_assignment PIN_J20 -to GPO_0[31]
+set_location_assignment PIN_J18 -to GPO_0[32]
+set_location_assignment PIN_K20 -to GPO_0[33]
+set_location_assignment PIN_L19 -to GPO_0[34]
+set_location_assignment PIN_L18 -to GPO_0[35]
+set_location_assignment PIN_H12 -to GPO_1[0]
+set_location_assignment PIN_H13 -to GPO_1[1]
+set_location_assignment PIN_H14 -to GPO_1[2]
+set_location_assignment PIN_G15 -to GPO_1[3]
+set_location_assignment PIN_E14 -to GPO_1[4]
+set_location_assignment PIN_E15 -to GPO_1[5]
+set_location_assignment PIN_F15 -to GPO_1[6]
+set_location_assignment PIN_G16 -to GPO_1[7]
+set_location_assignment PIN_F12 -to GPO_1[8]
+set_location_assignment PIN_F13 -to GPO_1[9]
+set_location_assignment PIN_C14 -to GPO_1[10]
+set_location_assignment PIN_D14 -to GPO_1[11]
+set_location_assignment PIN_D15 -to GPO_1[12]
+set_location_assignment PIN_D16 -to GPO_1[13]
+set_location_assignment PIN_C17 -to GPO_1[14]
+set_location_assignment PIN_C18 -to GPO_1[15]
+set_location_assignment PIN_C19 -to GPO_1[16]
+set_location_assignment PIN_C20 -to GPO_1[17]
+set_location_assignment PIN_D19 -to GPO_1[18]
+set_location_assignment PIN_D20 -to GPO_1[19]
+set_location_assignment PIN_E20 -to GPO_1[20]
+set_location_assignment PIN_F20 -to GPO_1[21]
+set_location_assignment PIN_E19 -to GPO_1[22]
+set_location_assignment PIN_E18 -to GPO_1[23]
+set_location_assignment PIN_G20 -to GPO_1[24]
+set_location_assignment PIN_G18 -to GPO_1[25]
+set_location_assignment PIN_G17 -to GPO_1[26]
+set_location_assignment PIN_H17 -to GPO_1[27]
+set_location_assignment PIN_J15 -to GPO_1[28]
+set_location_assignment PIN_H18 -to GPO_1[29]
+set_location_assignment PIN_N22 -to GPO_1[30]
+set_location_assignment PIN_N21 -to GPO_1[31]
+set_location_assignment PIN_P15 -to GPO_1[32]
+set_location_assignment PIN_N15 -to GPO_1[33]
+set_location_assignment PIN_P17 -to GPO_1[34]
+set_location_assignment PIN_P18 -to GPO_1[35]
+set_location_assignment PIN_A13 -to GPIO_0[0]
+set_location_assignment PIN_B13 -to GPIO_0[1]
+set_location_assignment PIN_A14 -to GPIO_0[2]
+set_location_assignment PIN_B14 -to GPIO_0[3]
+set_location_assignment PIN_A15 -to GPIO_0[4]
+set_location_assignment PIN_B15 -to GPIO_0[5]
+set_location_assignment PIN_A16 -to GPIO_0[6]
+set_location_assignment PIN_B16 -to GPIO_0[7]
+set_location_assignment PIN_A17 -to GPIO_0[8]
+set_location_assignment PIN_B17 -to GPIO_0[9]
+set_location_assignment PIN_A18 -to GPIO_0[10]
+set_location_assignment PIN_B18 -to GPIO_0[11]
+set_location_assignment PIN_A19 -to GPIO_0[12]
+set_location_assignment PIN_B19 -to GPIO_0[13]
+set_location_assignment PIN_A20 -to GPIO_0[14]
+set_location_assignment PIN_B20 -to GPIO_0[15]
+set_location_assignment PIN_C21 -to GPIO_0[16]
+set_location_assignment PIN_C22 -to GPIO_0[17]
+set_location_assignment PIN_D21 -to GPIO_0[18]
+set_location_assignment PIN_D22 -to GPIO_0[19]
+set_location_assignment PIN_E21 -to GPIO_0[20]
+set_location_assignment PIN_E22 -to GPIO_0[21]
+set_location_assignment PIN_F21 -to GPIO_0[22]
+set_location_assignment PIN_F22 -to GPIO_0[23]
+set_location_assignment PIN_G21 -to GPIO_0[24]
+set_location_assignment PIN_G22 -to GPIO_0[25]
+set_location_assignment PIN_J21 -to GPIO_0[26]
+set_location_assignment PIN_J22 -to GPIO_0[27]
+set_location_assignment PIN_K21 -to GPIO_0[28]
+set_location_assignment PIN_K22 -to GPIO_0[29]
+set_location_assignment PIN_J19 -to GPIO_0[30]
+set_location_assignment PIN_J20 -to GPIO_0[31]
+set_location_assignment PIN_J18 -to GPIO_0[32]
+set_location_assignment PIN_K20 -to GPIO_0[33]
+set_location_assignment PIN_L19 -to GPIO_0[34]
+set_location_assignment PIN_L18 -to GPIO_0[35]
+set_location_assignment PIN_H12 -to GPIO_1[0]
+set_location_assignment PIN_H13 -to GPIO_1[1]
+set_location_assignment PIN_H14 -to GPIO_1[2]
+set_location_assignment PIN_G15 -to GPIO_1[3]
+set_location_assignment PIN_E14 -to GPIO_1[4]
+set_location_assignment PIN_E15 -to GPIO_1[5]
+set_location_assignment PIN_F15 -to GPIO_1[6]
+set_location_assignment PIN_G16 -to GPIO_1[7]
+set_location_assignment PIN_F12 -to GPIO_1[8]
+set_location_assignment PIN_F13 -to GPIO_1[9]
+set_location_assignment PIN_C14 -to GPIO_1[10]
+set_location_assignment PIN_D14 -to GPIO_1[11]
+set_location_assignment PIN_D15 -to GPIO_1[12]
+set_location_assignment PIN_D16 -to GPIO_1[13]
+set_location_assignment PIN_C17 -to GPIO_1[14]
+set_location_assignment PIN_C18 -to GPIO_1[15]
+set_location_assignment PIN_C19 -to GPIO_1[16]
+set_location_assignment PIN_C20 -to GPIO_1[17]
+set_location_assignment PIN_D19 -to GPIO_1[18]
+set_location_assignment PIN_D20 -to GPIO_1[19]
+set_location_assignment PIN_E20 -to GPIO_1[20]
+set_location_assignment PIN_F20 -to GPIO_1[21]
+set_location_assignment PIN_E19 -to GPIO_1[22]
+set_location_assignment PIN_E18 -to GPIO_1[23]
+set_location_assignment PIN_G20 -to GPIO_1[24]
+set_location_assignment PIN_G18 -to GPIO_1[25]
+set_location_assignment PIN_G17 -to GPIO_1[26]
+set_location_assignment PIN_H17 -to GPIO_1[27]
+set_location_assignment PIN_J15 -to GPIO_1[28]
+set_location_assignment PIN_H18 -to GPIO_1[29]
+set_location_assignment PIN_N22 -to GPIO_1[30]
+set_location_assignment PIN_N21 -to GPIO_1[31]
+set_location_assignment PIN_P15 -to GPIO_1[32]
+set_location_assignment PIN_N15 -to GPIO_1[33]
+set_location_assignment PIN_P17 -to GPIO_1[34]
+set_location_assignment PIN_P18 -to GPIO_1[35] \ No newline at end of file
diff --git a/scripts/quartus_project_flow.tcl b/scripts/quartus_project_flow.tcl
new file mode 100644
index 0000000..2894685
--- /dev/null
+++ b/scripts/quartus_project_flow.tcl
@@ -0,0 +1,84 @@
+## ----------------------------------------------------------------------------
+## Script : quartus_project_flow.tcl
+## ----------------------------------------------------------------------------
+## Author : Johann Faerber, F. Beckmann
+## Company : University of Applied Sciences Augsburg
+## ----------------------------------------------------------------------------
+## Description: executes process steps in a quartus project
+## depending on the parameter process
+## expects project name as command line parameter
+## e.g.
+## quartus_sh -t quartus_project_flow.tcl -projectname de1_mux2to1
+## -process compile
+## ----------------------------------------------------------------------------
+## Revisions : see end of file
+## ----------------------------------------------------------------------------
+
+package require cmdline
+# Load Quartus II Tcl Project package
+package require ::quartus::project
+
+# ----------------------------------------------------------------------------
+# Declare command line parameters
+# ----------------------------------------------------------------------------
+set parameters {
+ {projectname.arg "" "Project Name"}
+ {process.arg "" "Process Step"}
+}
+array set arg [::cmdline::getoptions argv $parameters]
+
+# ----------------------------------------------------------------------------
+# Verify required paramters
+# ----------------------------------------------------------------------------
+set requiredParameters {projectname process}
+foreach parameter $requiredParameters {
+ if {$arg($parameter) == ""} {
+ puts stderr "Missing required parameter: -$parameter"
+ exit 1
+ }
+}
+
+# ----------------------------------------------------------------------------
+# Check, if project exists
+# ----------------------------------------------------------------------------
+if { ![project_exists $arg(projectname)] } {
+ post_message -type error "Project $arg(projectname) does not exist"
+ exit
+}
+ # ----------------------------------------------------------------------------
+ # Open project
+ # ----------------------------------------------------------------------------
+ project_open $arg(projectname)
+
+ # ----------------------------------------------------------------------------
+ # Run specified design flow by parameter -process
+ # ----------------------------------------------------------------------------
+ load_package flow
+
+ if { $arg(process) == "compile" } {
+ execute_flow -compile
+ } elseif { $arg(process) == "analysis_and_elaboration" } {
+ execute_flow -analysis_and_elaboration
+ } else {
+ post_message -type error "Process step $arg(process) not allowed !"
+ exit
+ }
+
+ # ----------------------------------------------------------------------------
+ # Write Reports
+ # ----------------------------------------------------------------------------
+ load_package report
+ load_report $arg(projectname)
+ write_report_panel -file flowsummary.log "Flow Summary"
+
+ # ----------------------------------------------------------------------------
+ # Close project
+ # ----------------------------------------------------------------------------
+ project_close
+
+
+## ----------------------------------------------------------------------------
+## Revisions:
+## ----------
+## $Id:$
+## ----------------------------------------------------------------------------
diff --git a/scripts/quartus_project_settings.tcl b/scripts/quartus_project_settings.tcl
new file mode 100644
index 0000000..94aff07
--- /dev/null
+++ b/scripts/quartus_project_settings.tcl
@@ -0,0 +1,86 @@
+## ----------------------------------------------------------------------------
+## Script : quartus_project_settings.tcl
+## ----------------------------------------------------------------------------
+## Author : Johann Faerber, F. Beckmann
+## Company : University of Applied Sciences Augsburg
+## ----------------------------------------------------------------------------
+## Description: create a quartus project with default settings for device,
+## unused pins, ...
+## expects project name as command line parameter
+## e.g.
+## quartus_sh -t quartus_project_settings.tcl -projectname de1_mux2to1
+## -family
+## ----------------------------------------------------------------------------
+## Revisions : see end of file
+## ----------------------------------------------------------------------------
+
+package require cmdline
+# Load Quartus II Tcl Project package
+package require ::quartus::project
+
+set parameters {
+ {projectname.arg "" "Project Name"}
+ {family.arg "" "FPGA Family"}
+ {device.arg "" "FPGA Device"}
+}
+array set arg [::cmdline::getoptions argv $parameters]
+
+# Verify required paramters
+set requiredParameters {projectname family device}
+foreach parameter $requiredParameters {
+ if {$arg($parameter) == ""} {
+ puts stderr "Missing required parameter: -$parameter"
+ exit 1
+ }
+}
+
+
+
+ # Create project
+ project_new $arg(projectname) -overwrite
+
+ # ----------------------------------------------------------------------------
+ # Assign family, device, and top-level file
+ set_global_assignment -name FAMILY $arg(family)
+ set_global_assignment -name DEVICE $arg(device)
+
+ # ----------------------------------------------------------------------------
+ # Default settings
+ set_global_assignment -name USE_CONFIGURATION_DEVICE ON
+ set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED"
+ set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008
+
+ # ----------------------------------------------------------------------------
+ # Design files
+ #set_global_assignment -name VHDL_FILE ../src/e_cntdnmodm.vhd
+ #set_global_assignment -name VHDL_FILE ../src/a_cntdnmodm_rtl.vhd
+ source quartus_vhdl_source_files.tcl
+
+ # ----------------------------------------------------------------------------
+ # Pin Assignments
+ # ----------------------------------------------------------------------------
+ # set_location_assignment PIN_L1 -to CLOCK_50
+ source $arg(projectname)_pins.tcl
+
+ # -----------------------
+ # Run the synthesis
+ # -----------------------
+ load_package flow
+
+ execute_flow -compile
+
+ # Write Reports
+ load_package report
+ load_report $arg(projectname)
+ write_report_panel -file flowsummary.log "Flow Summary"
+
+ # ----------------------------------------------------------------------------
+ # Close project
+ project_close
+
+
+## ----------------------------------------------------------------------------
+## Revisions:
+## ----------
+## $Id:$
+## ----------------------------------------------------------------------------
diff --git a/src/top_simple.vhd b/src/top_simple.vhd
new file mode 100644
index 0000000..808bb47
--- /dev/null
+++ b/src/top_simple.vhd
@@ -0,0 +1,36 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+-- The inputs of this module are the ten switches SW
+-- The outputs are connected to the red LEDs LEDR on the board
+entity top_simple is
+port ( SW : in std_ulogic_vector(9 downto 0);
+ LEDR : out std_ulogic_vector(9 downto 0));
+end entity top_simple;
+
+architecture rtl of top_simple is
+begin
+-- Signal Assignment - The LEDR outputs are set to the
+-- value of the switch inputs. Switch the switches and see
+-- the LEDs go on and off.
+LEDR <= SW;
+
+-- Access one array element
+-- LEDR(5) <= SW(0);
+
+-- Constant for one element
+-- LEDR(0) <= '0';
+
+-- Constant for an array of 4 elements
+-- LEDR(3 downto 0) <= "1111";
+
+-- Access a 5 Bit subarray
+-- LEDR(4 downto 0) <= SW(9 downto 5);
+
+-- A simple boolean AND operator equation
+-- LEDR(0) <= SW(0) and SW(1);
+
+-- AND function via conditional signal assignment
+-- LEDR(0) <= '1' when SW(1 downto 0) = "00" else '0';
+
+end architecture rtl; \ No newline at end of file
diff --git a/vhdl_ls.toml b/vhdl_ls.toml
new file mode 100644
index 0000000..d4f78c7
--- /dev/null
+++ b/vhdl_ls.toml
@@ -0,0 +1,5 @@
+[libraries]
+
+top_simple.files = [
+ 'src/top_simple.vhd'
+ ] \ No newline at end of file