From 85c1156549e53e00554b4c674b87722def71f8c0 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sun, 21 Mar 2021 15:38:01 +0000 Subject: [PATCH] - added missing IPF project files - improved GHDL build script git-svn-id: http://moon:8086/svn/vhdl/trunk@1432 cc03376c-175c-47c8-b038-4cd826a8556b --- Common/make/ghdl.mk | 79 +++--- .../sim/ieee_proposed/modelsim/Makefile.ghdl | 30 +++ lib/CPUs/JCpu/ghdl/Makefile | 7 +- lib/CPUs/JCpu/src/tb_cpu_embedded.vhd | 1 - lib/CPUs/JCpu/src/tb_cpu_irq.vhd | 1 - lib/CPUs/JCpu/src/tb_cpu_itest.vhd | 1 - .../syn/ise91/systest/project/systest.ipf | Bin 0 -> 4004 bytes projects/cordic/Makefile | 55 +--- projects/cordic/x.txt | 254 ------------------ projects/cordic/y.txt | 254 ------------------ projects/cordic/z.txt | 254 ------------------ .../syn/ise91/systest/project/cpu_systest.ipf | Bin 0 -> 4017 bytes .../systest/project/cpu_systest_prom.ipf | Bin 0 -> 30128 bytes .../syn/ise91/project/messe_demo.ipf | Bin 0 -> 4014 bytes .../ise101/mips_sys/project/default.ipf | Bin 0 -> 46770 bytes .../ise101/mips_sys/project/mips_sys.ipf | Bin 0 -> 46770 bytes projects/mips_sys/ise92/mips_sys/mips_sys.ipf | Bin 0 -> 46768 bytes .../vga_ctrl/syn/ise/project/vga_ctrl.ipf | Bin 0 -> 3973 bytes 18 files changed, 96 insertions(+), 840 deletions(-) create mode 100644 Common/sim/ieee_proposed/modelsim/Makefile.ghdl create mode 100644 projects/ac97_Controller/syn/ise91/systest/project/systest.ipf create mode 100644 projects/cpu/syn/ise91/systest/project/cpu_systest.ipf create mode 100644 projects/cpu/syn/ise91/systest/project/cpu_systest_prom.ipf create mode 100644 projects/messe_demo/syn/ise91/project/messe_demo.ipf create mode 100644 projects/mips_sys/ise101/mips_sys/project/default.ipf create mode 100644 projects/mips_sys/ise101/mips_sys/project/mips_sys.ipf create mode 100644 projects/mips_sys/ise92/mips_sys/mips_sys.ipf create mode 100644 projects/vga_ctrl/syn/ise/project/vga_ctrl.ipf diff --git a/Common/make/ghdl.mk b/Common/make/ghdl.mk index 50e4786..74507a6 100644 --- a/Common/make/ghdl.mk +++ b/Common/make/ghdl.mk @@ -1,59 +1,78 @@ -# NAME -# BUILD_DIR +# ------------------------------------------------- +# Global options +# ------------------------------------------------- # SRCS -# ENTITY_RUN - # WITH_VCD -# WITH_VCD ?= y +TARGET ?= default +ENTITY ?= default +WORK_DIR ?= work +WORK_LIB ?= work +LANG_STD ?= 93c +IEEE_STD ?= standard +RUN_TIME ?= 1000ns GHDL := ghdl GHDL_GCC := ghdl-gcc -SIM_FILE-$(WITH_VCD) := $(BUILD_DIR)/$(NAME).vcd -SIM_FILE-$(WITH_FST) := $(BUILD_DIR)/$(NAME).fst -SIM_FILE-$(WITH_GHW) := $(BUILD_DIR)/$(NAME).ghw +BUILD_DIR := build/$(TARGET) + +SIM_FILE-$(WITH_VCD) := $(BUILD_DIR)/$(TARGET).vcd +SIM_FILE-$(WITH_FST) := $(BUILD_DIR)/$(TARGET).fst +SIM_FILE-$(WITH_GHW) := $(BUILD_DIR)/$(TARGET).ghw GTK_OPTS-$(WITH_VCD) := --vcd=$(SIM_FILE-y) GTK_OPTS-$(WITH_FST) := --fst=$(SIM_FILE-y) GTK_OPTS-$(WITH_GHW) := --wave=$(SIM_FILE-y) -RUN_OPTS := --assert-level=error -TS := ps + +RUN_OPTS := --stop-time=$(RUN_TIME) +GHDL_OPTS := --work=$(WORK_LIB) --workdir=$(BUILD_DIR)/$(WORK_DIR) --std=$(LANG_STD) --ieee=$(IEEE_STD) all: analyze -$(BUILD_DIR): +$(BUILD_DIR)/$(WORK_DIR): mkdir -p $@ -analyze: $(BUILD_DIR) $(SRCS) - $(GHDL) -a --work=$(NAME) --workdir=$(BUILD_DIR) --time-resolution=$(TS) $(SRCS) +syntax: + $(GHDL) -s $(GHDL_OPTS) $(SRCS) + +import: + $(GHDL) -i $(GHDL_OPTS) $(SRCS) + +analyze: $(BUILD_DIR)/$(WORK_DIR) $(SRCS) + $(GHDL) -a $(GHDL_OPTS) $(SRCS) -anaborate: $(BUILD_DIR) $(SRCS) - $(GHDL_GCC) -c -o $(BUILD_DIR)/$(NAME) -Wc,O2 --work=$(NAME) --workdir=$(BUILD_DIR) $(SRCS) -e $(ENTITY_RUN) - -$(BUILD_DIR)/$(NAME) $(GTK_OPTS-y) $(RUN_OPTS) >$(BUILD_DIR)/$(NAME).log +anaborate: $(BUILD_DIR)/$(WORK_DIR) $(SRCS) + $(GHDL) -c $(GHDL_OPTS) -o $(BUILD_DIR)/$(TARGET) $(SRCS) -e $(ENTITY) +makeunit: analyze + $(GHDL) -m $(GHDL_OPTS) $(ENTITY) + +elaborate: analyze + $(GHDL) -e $(GHDL_OPTS) $(ENTITY) + run: analyze - -$(GHDL) -r --work=$(NAME) --workdir=$(BUILD_DIR) --time-resolution=$(TS) $(ENTITY_RUN) $(RUN_OPTS) + $(GHDL) -r $(GHDL_OPTS) $(ENTITY) $(RUN_OPTS) -run_wave: analyze - -$(GHDL) -r --work=$(NAME) --workdir=$(BUILD_DIR) --time-resolution=$(TS) $(ENTITY_RUN) $(GTK_OPTS-y) $(RUN_OPTS) >$(BUILD_DIR)/$(NAME).log +run_show: analyze + $(GHDL) -r $(GHDL_OPTS) $(ENTITY) $(RUN_OPTS) $(GTK_OPTS-y) >$(BUILD_DIR)/$(TARGET).log -wave: run_wave - exec gtkwave -f $(SIM_FILE-y) -a $(BUILD_DIR)/$(NAME).gtkw & - synth: analyze - $(GHDL) --synth --work=$(NAME) --workdir=$(BUILD_DIR) $(ENTITY_SYN) + $(GHDL) --synth $(GHDL_OPTS) $(ENTITY) +show: run_show + exec gtkwave -f $(SIM_FILE-y) -a $(BUILD_DIR)/$(TARGET).gtkw & + clean: - rm -f $(BUILD_DIR)/$(NAME)*.cf - rm -f $(BUILD_DIR)/$(NAME)*.vcd - rm -f $(BUILD_DIR)/$(NAME)*.fst - rm -f $(BUILD_DIR)/$(NAME)*.ghw - rm -f $(BUILD_DIR)/$(NAME)*.log - rm -f $(BUILD_DIR)/$(NAME)*.o + rm -rf $(BUILD_DIR)/$(WORK_DIR) + rm -f $(BUILD_DIR)/$(TARGET)*.vcd + rm -f $(BUILD_DIR)/$(TARGET)*.fst + rm -f $(BUILD_DIR)/$(TARGET)*.ghw + rm -f $(BUILD_DIR)/$(TARGET)*.log + rm -f $(BUILD_DIR)/$(TARGET)*.o mrproper: - rm -rf $(BUILD_DIR) + rm -rf $(WORK_DIR) diff --git a/Common/sim/ieee_proposed/modelsim/Makefile.ghdl b/Common/sim/ieee_proposed/modelsim/Makefile.ghdl new file mode 100644 index 0000000..d326414 --- /dev/null +++ b/Common/sim/ieee_proposed/modelsim/Makefile.ghdl @@ -0,0 +1,30 @@ +# ------------------------------------------------- +# Compile script for GHDL +# ------------------------------------------------- + +# ------------------------------------------------- +# Global options +# ------------------------------------------------- +LANG_STD := 93c +IEEE_STD := standard +WORK_DIR := ieee_proposed +WORK_LIB := ieee_proposed + + +# ------------------------------------------------- +# Target options +# ------------------------------------------------- +TARGET := ghdl + +SRCS := standard_additions_c.vhdl +SRCS += standard_textio_additions_c.vhdl +SRCS += env_c.vhdl +SRCS += std_logic_1164_additions.vhdl +SRCS += numeric_std_additions.vhdl +SRCS += numeric_std_unsigned_c.vhdl +SRCS += fixed_float_types_c.vhdl +SRCS += fixed_pkg_c.vhdl +SRCS += float_pkg_c.vhdl + +include ../../../make/ghdl.mk + diff --git a/lib/CPUs/JCpu/ghdl/Makefile b/lib/CPUs/JCpu/ghdl/Makefile index 39e7a3c..c1eb39b 100644 --- a/lib/CPUs/JCpu/ghdl/Makefile +++ b/lib/CPUs/JCpu/ghdl/Makefile @@ -1,4 +1,4 @@ -NAME ?= tb_cpu +TARGET ?= tb_cpu include ../src/core/jcpu_core.mk @@ -16,11 +16,10 @@ tb_mul8x8_ENTITY_RUN := tb_cpu_embedded SRCS := $(JCPU_CORE_SRCS) SRCS += ../../../PCK_FIO-2002.7/PCK_FIO_1993.vhd ../../../PCK_FIO-2002.7/PCK_FIO_1993_BODY.vhd -SRCS += $(addprefix ../src/,$($(NAME)_SRCS)) +SRCS += $(addprefix ../src/,$($(TARGET)_SRCS)) # Compile -ENTITY_RUN = $($(NAME)_ENTITY_RUN) -BUILD_DIR := build +ENTITY := $($(TARGET)_ENTITY_RUN) WITH_GHW := y include ../../../../Common/make/ghdl.mk diff --git a/lib/CPUs/JCpu/src/tb_cpu_embedded.vhd b/lib/CPUs/JCpu/src/tb_cpu_embedded.vhd index dafb553..0f1956c 100644 --- a/lib/CPUs/JCpu/src/tb_cpu_embedded.vhd +++ b/lib/CPUs/JCpu/src/tb_cpu_embedded.vhd @@ -102,7 +102,6 @@ STIMULUS: process wait for 1000*CLK_PERIOD; - assert false report "Test finished" severity error; wait; end process; diff --git a/lib/CPUs/JCpu/src/tb_cpu_irq.vhd b/lib/CPUs/JCpu/src/tb_cpu_irq.vhd index 8a19414..a181c03 100644 --- a/lib/CPUs/JCpu/src/tb_cpu_irq.vhd +++ b/lib/CPUs/JCpu/src/tb_cpu_irq.vhd @@ -160,7 +160,6 @@ STIMULUS: process wait for 300*CLK_PERIOD; end loop; - assert false report "Test finished" severity error; wait; end process; diff --git a/lib/CPUs/JCpu/src/tb_cpu_itest.vhd b/lib/CPUs/JCpu/src/tb_cpu_itest.vhd index 6c28c81..872efcd 100644 --- a/lib/CPUs/JCpu/src/tb_cpu_itest.vhd +++ b/lib/CPUs/JCpu/src/tb_cpu_itest.vhd @@ -154,7 +154,6 @@ STIMULUS: process file_close(RESULT); - assert false report "Test finished" severity failure; wait; end process; diff --git a/projects/ac97_Controller/syn/ise91/systest/project/systest.ipf b/projects/ac97_Controller/syn/ise91/systest/project/systest.ipf new file mode 100644 index 0000000000000000000000000000000000000000..0f1d2d11a2162dbe82a7cb078811faeef3a1d35e GIT binary patch literal 4004 zcmc&%PjBNy6ffeRWGO-j1QM*k{69dOI>`d*1tpF{!#0iONgJw-Qd7uc~jGM9CvaV56kfkGsy7}`89OacR$dm=XNFm^(Tg% z7h#l)ro7uBeeGa{WHP3O$vhi|w&>y0qYvpRE5a?~Sct-N{8F(;*FB^SS&`cuf-hV% z{_cVg$}5Gwalj3e%I#glp@P7KaG)B&u`u2mzHiyql0kWW0awtlb1Blvj(L&$EH4GU>qR;(Xu(myp;Si!I8m zqcj~d9XWutKnP^LJhz3C$o!`!;qro1(&uG()AhxYz#j~bEjqJIDsFN!Jl?$d%va!v z^7@K1#PBpdOH>U%z<&+zZOf(!R`D+5r06Z@nl6nmT& z11@x8nubZig=Ch7_jKmy6AqK9mIJ*SUJ{4bx1ay<{pIkI%Ksx?<7&mbuXt5BygvJR z@WiiBS17C1SLMoh8D{-0J)kVu7+Jw$fep6Gv*Sa%>;VhFiNngFJ=AF6;~C_aEk^57 znVmA61N@hlV{OJxs@Lx;z*P?5v+thX`WnDRSqxrO2CiS1YPA#l3Xr|=#gDQF z$)danl5^(88&5VyaN2}tlWH5m*!3MT((RFE=Kn@VBok^8{kVP*Ie}FL%+yd3(pADx zs39Juhr*ki;Zs0dc_h3&kZSzteCzD??@vLFD0w6t`Nruc<(i~Z#HQDBKvdg&UvT@k zzs|G=*49v7D)5X0YD@!{A>RXtvg>$0WegyLQOoip&KLGn7>2CShTmfZf@88sV~hKS zJ*7gsjbqzj$70I}3~^u`LTm9hD7#ZTutu&MGEq7Zk)Pya!oj)I z;3LBmn{b%*wLJyK%ULb2eIR^Wlr68ktptw$L2W_S+*y{5C$F~9^Bx1r#fNXNvhn2N zLoO4}mw*0r7n={1W#J?{2O8oT#STtrV%wN(ZPYNKUU1ro{Prxo_}sm7@Xasah4R`8 z-f@^6qUigIMmoJ+UDlLFUuo%sPJdgdZ%7-PRSP1|n(Q=4Unh^%A+7N>NB{cXbSILLif_bYN(b<3$dZPTAG6;i(DyzZr+4LE@P$Mc=!>BE`2_E H3}62R+lTFM literal 0 HcmV?d00001 diff --git a/projects/cordic/Makefile b/projects/cordic/Makefile index 02b059c..4b507ff 100644 --- a/projects/cordic/Makefile +++ b/projects/cordic/Makefile @@ -3,59 +3,32 @@ # ------------------------------------------------- LANG_STD := 93c IEEE_STD := standard -WORK_PATH := work -SOURCE_PATH := src -LIB_PATH := ../lib +WORK_DIR := work +WORK_LIB := work + # ------------------------------------------------- # Target options # ------------------------------------------------- TARGET := tb_cordic_top -SOURCES := src/cordic_pkg.vhd \ +SRCS := ../../lib/fixed/fixed_util_pkg.vhd +SRCS += ../../lib/PCK_FIO-2002.7/PCK_FIO_1993.vhd +SRCS += ../../lib/PCK_FIO-2002.7/PCK_FIO_1993_BODY.vhd + +SRCS += src/cordic_pkg.vhd \ src/cordic_rom.vhd \ src/cordic_stage_pre.vhd \ src/cordic_stage.vhd \ src/cordic_stage_post.vhd \ src/cordic_top.vhd \ src/tb_cordic_top.vhd + + - # ------------------------------------------------- -GHDL_OPT := --workdir=$(WORK_PATH) --std=$(LANG_STD) --ieee=$(IEEE_STD) +# Compile +ENTITY := tb_cordic_top +WITH_GHW := y -# ------------------------------------------------- -all: elaborate - -.PHONY: syntax -syntax: - ghdl -s $(GHDL_OPT) $(SOURCES) - -import: - ghdl -i $(GHDL_OPT) $(LIB_PATH)/*.vhd $(SOURCES) - -analyze: - ghdl -a $(GHDL_OPT) $(LIB_PATH)/*.vhd $(SOURCES) - -anaborate: - ghdl -c $(GHDL_OPT) $(LIB_PATH)/*.vhd $(SOURCES) -e $(TARGET) - -makeunit: analyze - ghdl -m $(GHDL_OPT) $(TARGET) - -elaborate: analyze - ghdl -e $(GHDL_OPT) $(TARGET) - -run: elaborate - ghdl -r $(GHDL_OPT) $(TARGET) --vcd=$(TARGET).vcd --assert-level=error - -show: $(TARGET).vcd - gtkwave $(TARGET).vcd $(TARGET).sav - -# ------------------------------------------------- -.PHONY: clean -clean: - rm -rf $(TARGET) - cd $(WORK_PATH); rm -rf *.o *.cf - -# ------------------------------------------------- +include ../../Common/make/ghdl.mk diff --git a/projects/cordic/x.txt b/projects/cordic/x.txt index b1382e8..e69de29 100644 --- a/projects/cordic/x.txt +++ b/projects/cordic/x.txt @@ -1,254 +0,0 @@ --1.000000e+000 --9.980267e-001 --9.921147e-001 --9.822873e-001 --9.685832e-001 --9.510565e-001 --9.297765e-001 --9.048271e-001 --8.763067e-001 --8.443279e-001 --8.090170e-001 --7.705132e-001 --7.289686e-001 --6.845471e-001 --6.374240e-001 --5.877853e-001 --5.358268e-001 --4.817537e-001 --4.257793e-001 --3.681246e-001 --3.090170e-001 --2.486899e-001 --1.873813e-001 --1.253332e-001 --6.279052e-002 --9.313226e-010 -6.279052e-002 -1.253332e-001 -1.873813e-001 -2.486899e-001 -3.090170e-001 -3.681246e-001 -4.257793e-001 -4.817537e-001 -5.358268e-001 -5.877853e-001 -6.374240e-001 -6.845471e-001 -7.289686e-001 -7.705132e-001 -8.090170e-001 -8.443279e-001 -8.763067e-001 -9.048271e-001 -9.297765e-001 -9.510565e-001 -9.685832e-001 -9.822873e-001 -9.921147e-001 -9.980267e-001 -1.000000e+000 -9.980267e-001 -9.921147e-001 -9.822873e-001 -9.685832e-001 -9.510565e-001 -9.297765e-001 -9.048271e-001 -8.763067e-001 -8.443279e-001 -8.090170e-001 -7.705132e-001 -7.289686e-001 -6.845471e-001 -6.374240e-001 -5.877853e-001 -5.358268e-001 -4.817537e-001 -4.257793e-001 -3.681246e-001 -3.090170e-001 -2.486899e-001 -1.873813e-001 -1.253332e-001 -6.279052e-002 --9.313226e-010 --6.279052e-002 --1.253332e-001 --1.873813e-001 --2.486899e-001 --3.090170e-001 --3.681246e-001 --4.257793e-001 --4.817537e-001 --5.358268e-001 --5.877853e-001 --6.374240e-001 --6.845471e-001 --7.289686e-001 --7.705132e-001 --8.090170e-001 --8.443279e-001 --8.763067e-001 --9.048271e-001 --9.297765e-001 --9.510565e-001 --9.685832e-001 --9.822873e-001 --9.921147e-001 --9.980267e-001 --1.000000e+000 --9.980267e-001 --9.921147e-001 --9.822873e-001 --9.685832e-001 --9.510565e-001 --9.297765e-001 --9.048271e-001 --8.763067e-001 --8.443279e-001 --8.090170e-001 --7.705132e-001 --7.289686e-001 --6.845471e-001 --6.374240e-001 --5.877853e-001 --5.358268e-001 --4.817537e-001 --4.257793e-001 --3.681246e-001 --3.090170e-001 --2.486899e-001 --1.873813e-001 --1.253332e-001 --6.279052e-002 --9.313226e-010 -6.279052e-002 -1.253332e-001 -1.873813e-001 -2.486899e-001 -3.090170e-001 -3.681246e-001 -4.257793e-001 -4.817537e-001 -5.358268e-001 -5.877853e-001 -6.374240e-001 -6.845471e-001 -7.289686e-001 -7.705132e-001 -8.090170e-001 -8.443279e-001 -8.763067e-001 -9.048271e-001 -9.297765e-001 -9.510565e-001 -9.685832e-001 -9.822873e-001 -9.921147e-001 -9.980267e-001 -1.000000e+000 -9.980267e-001 -9.921147e-001 -9.822873e-001 -9.685832e-001 -9.510565e-001 -9.297765e-001 -9.048271e-001 -8.763067e-001 -8.443279e-001 -8.090170e-001 -7.705132e-001 -7.289686e-001 -6.845471e-001 -6.374240e-001 -5.877853e-001 -5.358268e-001 -4.817537e-001 -4.257793e-001 -3.681246e-001 -3.090170e-001 -2.486899e-001 -1.873813e-001 -1.253332e-001 -6.279052e-002 --9.313226e-010 --6.279052e-002 --1.253332e-001 --1.873813e-001 --2.486899e-001 --3.090170e-001 --3.681246e-001 --4.257793e-001 --4.817537e-001 --5.358268e-001 --5.877853e-001 --6.374240e-001 --6.845471e-001 --7.289686e-001 --7.705132e-001 --8.090170e-001 --8.443279e-001 --8.763067e-001 --9.048271e-001 --9.297765e-001 --9.510565e-001 --9.685832e-001 --9.822873e-001 --9.921147e-001 --9.980267e-001 --1.000000e+000 --9.980267e-001 --9.921147e-001 --9.822873e-001 --9.685832e-001 --9.510565e-001 --9.297765e-001 --9.048271e-001 --8.763067e-001 --8.443279e-001 --8.090170e-001 --7.705132e-001 --7.289686e-001 --6.845471e-001 --6.374240e-001 --5.877853e-001 --5.358268e-001 --4.817537e-001 --4.257793e-001 --3.681246e-001 --3.090170e-001 --2.486899e-001 --1.873813e-001 --1.253332e-001 --6.279052e-002 --9.313226e-010 -6.279052e-002 -1.253332e-001 -1.873813e-001 -2.486899e-001 -3.090170e-001 -3.681246e-001 -4.257793e-001 -4.817537e-001 -5.358268e-001 -5.877853e-001 -6.374240e-001 -6.845471e-001 -7.289686e-001 -7.705132e-001 -8.090170e-001 -8.443279e-001 -8.763067e-001 -9.048271e-001 -9.297765e-001 -9.510565e-001 -9.685832e-001 -9.822873e-001 -9.921147e-001 -9.980267e-001 -1.000000e+000 -9.980267e-001 -9.921147e-001 -9.822873e-001 diff --git a/projects/cordic/y.txt b/projects/cordic/y.txt index 954db4b..e69de29 100644 --- a/projects/cordic/y.txt +++ b/projects/cordic/y.txt @@ -1,254 +0,0 @@ -0.000000e+000 --6.279052e-002 --1.253332e-001 --1.873813e-001 --2.486899e-001 --3.090170e-001 --3.681246e-001 --4.257793e-001 --4.817537e-001 --5.358268e-001 --5.877853e-001 --6.374240e-001 --6.845471e-001 --7.289686e-001 --7.705132e-001 --8.090170e-001 --8.443279e-001 --8.763067e-001 --9.048271e-001 --9.297765e-001 --9.510565e-001 --9.685832e-001 --9.822873e-001 --9.921147e-001 --9.980267e-001 --1.000000e+000 --9.980267e-001 --9.921147e-001 --9.822873e-001 --9.685832e-001 --9.510565e-001 --9.297765e-001 --9.048271e-001 --8.763067e-001 --8.443279e-001 --8.090170e-001 --7.705132e-001 --7.289686e-001 --6.845471e-001 --6.374240e-001 --5.877853e-001 --5.358268e-001 --4.817537e-001 --4.257793e-001 --3.681246e-001 --3.090170e-001 --2.486899e-001 --1.873813e-001 --1.253332e-001 --6.279052e-002 -0.000000e+000 -6.279052e-002 -1.253332e-001 -1.873813e-001 -2.486899e-001 -3.090170e-001 -3.681246e-001 -4.257793e-001 -4.817537e-001 -5.358268e-001 -5.877853e-001 -6.374240e-001 -6.845471e-001 -7.289686e-001 -7.705132e-001 -8.090170e-001 -8.443279e-001 -8.763067e-001 -9.048271e-001 -9.297765e-001 -9.510565e-001 -9.685832e-001 -9.822873e-001 -9.921147e-001 -9.980267e-001 -1.000000e+000 -9.980267e-001 -9.921147e-001 -9.822873e-001 -9.685832e-001 -9.510565e-001 -9.297765e-001 -9.048271e-001 -8.763067e-001 -8.443279e-001 -8.090170e-001 -7.705132e-001 -7.289686e-001 -6.845471e-001 -6.374240e-001 -5.877853e-001 -5.358268e-001 -4.817537e-001 -4.257793e-001 -3.681246e-001 -3.090170e-001 -2.486899e-001 -1.873813e-001 -1.253332e-001 -6.279052e-002 -0.000000e+000 --6.279052e-002 --1.253332e-001 --1.873813e-001 --2.486899e-001 --3.090170e-001 --3.681246e-001 --4.257793e-001 --4.817537e-001 --5.358268e-001 --5.877853e-001 --6.374240e-001 --6.845471e-001 --7.289686e-001 --7.705132e-001 --8.090170e-001 --8.443279e-001 --8.763067e-001 --9.048271e-001 --9.297765e-001 --9.510565e-001 --9.685832e-001 --9.822873e-001 --9.921147e-001 --9.980267e-001 --1.000000e+000 --9.980267e-001 --9.921147e-001 --9.822873e-001 --9.685832e-001 --9.510565e-001 --9.297765e-001 --9.048271e-001 --8.763067e-001 --8.443279e-001 --8.090170e-001 --7.705132e-001 --7.289686e-001 --6.845471e-001 --6.374240e-001 --5.877853e-001 --5.358268e-001 --4.817537e-001 --4.257793e-001 --3.681246e-001 --3.090170e-001 --2.486899e-001 --1.873813e-001 --1.253332e-001 --6.279052e-002 -0.000000e+000 -6.279052e-002 -1.253332e-001 -1.873813e-001 -2.486899e-001 -3.090170e-001 -3.681246e-001 -4.257793e-001 -4.817537e-001 -5.358268e-001 -5.877853e-001 -6.374240e-001 -6.845471e-001 -7.289686e-001 -7.705132e-001 -8.090170e-001 -8.443279e-001 -8.763067e-001 -9.048271e-001 -9.297765e-001 -9.510565e-001 -9.685832e-001 -9.822873e-001 -9.921147e-001 -9.980267e-001 -1.000000e+000 -9.980267e-001 -9.921147e-001 -9.822873e-001 -9.685832e-001 -9.510565e-001 -9.297765e-001 -9.048271e-001 -8.763067e-001 -8.443279e-001 -8.090170e-001 -7.705132e-001 -7.289686e-001 -6.845471e-001 -6.374240e-001 -5.877853e-001 -5.358268e-001 -4.817537e-001 -4.257793e-001 -3.681246e-001 -3.090170e-001 -2.486899e-001 -1.873813e-001 -1.253332e-001 -6.279052e-002 -0.000000e+000 --6.279052e-002 --1.253332e-001 --1.873813e-001 --2.486899e-001 --3.090170e-001 --3.681246e-001 --4.257793e-001 --4.817537e-001 --5.358268e-001 --5.877853e-001 --6.374240e-001 --6.845471e-001 --7.289686e-001 --7.705132e-001 --8.090170e-001 --8.443279e-001 --8.763067e-001 --9.048271e-001 --9.297765e-001 --9.510565e-001 --9.685832e-001 --9.822873e-001 --9.921147e-001 --9.980267e-001 --1.000000e+000 --9.980267e-001 --9.921147e-001 --9.822873e-001 --9.685832e-001 --9.510565e-001 --9.297765e-001 --9.048271e-001 --8.763067e-001 --8.443279e-001 --8.090170e-001 --7.705132e-001 --7.289686e-001 --6.845471e-001 --6.374240e-001 --5.877853e-001 --5.358268e-001 --4.817537e-001 --4.257793e-001 --3.681246e-001 --3.090170e-001 --2.486899e-001 --1.873813e-001 --1.253332e-001 --6.279052e-002 -0.000000e+000 -6.279052e-002 -1.253332e-001 -1.873813e-001 diff --git a/projects/cordic/z.txt b/projects/cordic/z.txt index d8f8675..e69de29 100644 --- a/projects/cordic/z.txt +++ b/projects/cordic/z.txt @@ -1,254 +0,0 @@ -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 -0.000000e+000 diff --git a/projects/cpu/syn/ise91/systest/project/cpu_systest.ipf b/projects/cpu/syn/ise91/systest/project/cpu_systest.ipf new file mode 100644 index 0000000000000000000000000000000000000000..e2e2d5116c15367ee0289f2f6fcc63238b8a0735 GIT binary patch literal 4017 zcmcgv&5q+l5FW&zWGO;OE0AEd7}$jaO#XL8=7JK(VFQzi<<3lYwULbD>C71H*m64| zgM{|N18_hH32{V%H`o(MoH)P(ATA@s6CmKg1*-fvPG@3gcVI1*t?4D+)NpLuncfe=v|ZisGY}%bhNgJVdn$FE?$oE= zRJXD`41-bSx4LAY-rgXXlxc1-&j+rpB0PHZK0RT1yrqD-EL`E2iV!{LkTxY*>TnFc zcv=6m2N;xVx!B0zra`67o^De?U_vlZbpKeG?2K-imN{KCO0k}pA5x(VqrI6ure1#{ zIhI8Y-*l!7^k%IptdIVMY=3%6j|;~A=bNoN077{sAAA-KOqB`;M(4)^AGmh-a$Y>Cu=Y7s6j2qk&0!keb8ZVCLs0BqB_X;87u&G2;V&U0S@ z66LiGXNc%&xu&S-o{#?;-aDp6W3HlMKo)$Joaw|oN({EQMSK_E6t}mRzQ*?Po{+6c zvKerpg<`a@GrlSuU;d>pfBg}7LfMS3O6j6}u@mM~<`?P0 zS*2^ZQ<@(iS|t~98k`?iGTd3oWVBH!ML7IqGeEAVbyBOk50%y`N9(Ph?p^x)7-kgw{+#>vOiKU4N*Q);LN}?>)QoHPDH&8Kt!gQ+k1u-MC(<*B90WD0}_0 zZzUIkMR^G%BN;{~QqsqehJvJ}Sh_!PJX;KP`=pinzhUlVLOrZYj^~FUu&RQY5-5T? z7MCv65SP+J;YK-law=L@b-p>Q)cLgi?&;lMo`D!qvZ`~4jlzx3e;iI;nZ2ArqSE0T zhPyxiajHJDwT1F>4l;76IrANcjR24+IkxLj#(**ywM{Q<284YDhC#XL!0*w0!8S0L zfyNRKbZbV1P6x-9&W^>l?(5>vJcOR(4N&%GmT!(7Cn!G6AB$~LyE;iv1hk#gL4Y=CA5@~4Q?bX!=mb%^BB9t9g|s9+ zgsgU(yJ+x%?uso)U;}kuhVlAxm(^DgzF$gjudJg4!2e-yLDXC>OZ$_xw-EV&4rTJg z_g!g!GWj9*$6dJ`!v0O93^R&rslMFP{JUFwe7Rzi!KqS}CXnmnltbsb|kI&SVK&|vi7p|+f zV}HRu$n8s4*Q+0W{M#oGKFX6IbLug;v8XbSE+D+HvKp!@g%#gWT`Me6k!Gt9)3t2E Wv4vIvT?NPjk3Rw4CC?X6;p@LVL-ff2 literal 0 HcmV?d00001 diff --git a/projects/cpu/syn/ise91/systest/project/cpu_systest_prom.ipf b/projects/cpu/syn/ise91/systest/project/cpu_systest_prom.ipf new file mode 100644 index 0000000000000000000000000000000000000000..8129cfbe862f1ecb912cf35b2c2b018f2bca66a4 GIT binary patch literal 30128 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 IxyAqg4c@2garIOs`s_v@K-Bn*JR~~#w z*gEeifKt=Cjdw|}tIC>IRMwh4!J8VkW!aOv@nDvt8-9j|$giO(uKj^Z9lJg8sXNil ztO&zoRQa7Y>8V#YNG4&Lo6IvoXlW0Zo_t7edU?1d9CJ~4j$dlw(XmIgF3D1hL-6@a z`kx)}L3ugXcM)*ipi=8lx2Pa^LNHKt|5O<74c=oWo6Kv)NKe?uRM>^l;nW&Zw>y?> z)1-#a?1=|@Rw)bXv%j1jPeZ-4BepMLJ~{EdpvXa35U^C>w(@3uM&sX^gZB&vKd~b;zjYYsOM2_L@j%V z&h0c}{k`JsbYvDCC~I(pyyDWK$UIsrfy;VG$Ca{kUm-1XkpA=QZ$JJ3aH4DmY5874 zI%NL6hO{~x&r9X|3TlM|_3W#s_Pzi>Q8oj$a$!&}aIR}_l&aOac>%~?|Lhydfn-r$ z0LdtYi}NVyLnuN)$x=++AKR`ahPortfJmYv6IM=7sD@q1cKy%^tneQzfgG!u7W^LF7c9dIHKus1n^P*Z zS~xa!?^JB+zApCJ2pGp(pzKUdpABt0Xi)J$#I_}!>TH55t*XO6o!0kmIzf~ngrd#2 z_N5+}r3HN-TW#FAS}`L6*v{b(ppD6cN)$E`JKhk3AWB;#6j@OSOUxi-wOv0zgO7Aa zY(V|$sYf!5*EhQ?RzY~Sl-yofM+qGNhrI<^bG0lPPuAW-&;J-uCO$mtO2(6k54oFg zZvX!6U&u*N)`b(D9N@__io{N6Ae)SiHflVfmQ!s+{&?ozhwAVD{mFOWh4ShK-it8X zMAnXFm9)EunxxA0p4`;>?cTmn+bQkrRv1K{G&!h~o<{1&X{!U>^YOk0bwTLw4Up^% zBC<1BlAS?7b_OtQeD_=|FO+sFppMD$QjOe5m6a}O!(H`i6fW2YrG53@s(roxDP)iG zD9DVu9$Z(_-UW0oq*g<9sgQ~d)s?~u5=pQM5n8Jz99Rh}<;ug4Ky>kQ`!Rg|7f!kJ A8~^|S literal 0 HcmV?d00001 diff --git a/projects/mips_sys/ise101/mips_sys/project/default.ipf b/projects/mips_sys/ise101/mips_sys/project/default.ipf new file mode 100644 index 0000000000000000000000000000000000000000..e5d517c189883aca131924f4a760ef8f414e5116 GIT binary patch literal 46770 zcmeHQ&2J+~6(6(<2upK=(;~2dg#+42>|_xOhsCkmGv4tR-R%jp8mZ-EJTrzQj$&t+ z*%K$YaNx)R1pEga5El+ykPv?WN3L9uI3QRACtmeOb#?W7uU|QvSyt1LEG6z={p!{0 zSFgT)>7L$w<<-Uw?B^zY8AX$WcY<)@dr`DAC813l8ci=&-}M*gtHIf3ad9?3;Yxqn zE`7W@JzbqK^_5C2PtWJa8>U3k7~i`+2txn9pfLutvN6Ak9(?1U&W@Z`Zc+qTp~mH!R&`sSu)G+MV*ty6#Uj@Jzn zqm*^wVB`g1XEbfh#)I)79CU_*cfB4!bwhK8R{ZsJ5)2@2?q@9oYIT8*q2!)wzG$a1 z3SP5aot8-5>rho?_689s}H#OBF)5(%x{b{q@YRqy1H4iA5F z+wY8`$uxvc9qe?5!>D`5>)wT)oCXk$h>{Atv-#1<;$fqe1e}cz0?!X4l_Ds{9APoy z7IcS`?%k;Gd*7aUEUg68Ad8nJ40okT{~dwvI| zc64vo*DW@@t0(A#{VZ9H2IJd=mocbS2i_@@f<}U1D==^tJJ*5kV>g#eg=#$vs7&E~&iwFSq7>!^#K)9lSk+G(Wn7iJ6>@HugdzZa~j#{S=h8`Az1%O3~-$-4eI#w{KxDMro5Jq9b5sEv5 zMB~Xp(Cv(w;e~=*=HPdwP`J3;LKT1|H@|@cfu|utBUFKOiH_e&10bg)GkaPObNN$_%Ad-axH)*-MENW+fm0)8dR1=OA=}17aT{CJp{5~H>!1K1YB@ko z$%R@gl80JL#S$GK@nyMHT&T4od8no9ILp~+8!Tj@nyMHT&V3igc`ru0+IkHpx`#G;{gWtr<>~-1V&)M5V zq#6iE5AgE_lUF`d%}Y`H{073&UViW~dFA#V!nR?&#lmbZ6fn5WN;vZD_;`N2fV0WK zkdnafS}BrTQh#RB5L)^q)4#MV{mYNufBRoQ2kndc$n-C*ovZ3!K(e-3tT(q7&sJsm zOG)K+e153}Zf~_7q~(+V?sN?$Ga<}NC6mGPJ1>(V%HYBmB58DSv=!V$P1&57J~-FY zW`MYHR*z|#+km>&!3xCqj!q1tY05Hq=7yi5kS+m^sU*LT**;LOQ+INja#b&-D)w55~bDlS4D z>M$|{kp~l744eadCV^q8Gmrx>lb#ZD#kt9Va~;Kox!FpkB+V+zM+RJEt4k)*+*BIM z0an}b9Av;nw&MG5T*$*Mrc#ftT$XnXxX4y~1E<1P^PKf1(8=K5Fmy6i04vG}xT%35 zl1$&kSgd&LS_&9~*Fss$xV-~7aW!-@5|D^j>tG05^>sNLbT4cVX&apk-b_>{gF|uY z3(-~_Y&9Ie@umodVt>&(8QddE@Sy(x;Tm-^l@*Izni*=$9|+GPNUH|kqK}?VhHuZd zIvIjh%U~$?Yk=i-ysK!XO0AQ@Wi?_iYE4dYFB!j$@w|3xoeamxAM@ox8mnClC3noX zTR!Gvm{{=wrjuc~xMRNE@-ZL7#LX4s`xFD@{^G<7uo+?>^D&ljC(66!V?L5ei(rVH z0j<;!X*+Wn3^u(;7_;3oVUJKs7|z0yPKIeP8)}$NhT-Bu4bjOkOckN#ve1h?%!L|| zi9<~(VK~p1PL#txu* zDMt4A&Zybp&@nGX?e7~17iWRJ>5PtuD3e#7BlA+!9>0OG?Bya={nPo?bTUDJM5g9&AJ)Z?Ibvd2N~WbmEjaZvj2msKf)cT!#{LzKa_FGNtw zlrlt3*;=0-(XvIH5{Ft{2JeWvK=r7GLEY+LhAT}T4?x8su)-U02`)tyxv@c@x&~_4 zGP&)OX#p!c)E2q7vzr>eOzs!2l&SU%HH?{d%LcMy32B_*=hnF0C8dnJPzEPX4%_M8 zuCI%_VS+BIUx+M)L9IGCi>q@)V)YRn&q`-UK$YWV00Wq1#7 zE0iHvwGM`IzXn)d$N6fZO!|o4!ZTrv=g)|}NC;&px2tEnuulYzr@kpfXoTY2QYgci z$({2dLK%jMRWD#d8HS5H=R<@t3==n3jBi2=klzCCoDUJoFqU!Z1w<%AGHDeIku%iN zCW}UCJGU3gFlKV0RzFat@JR9ao^hdu2xS=0bD>s0Q05`saq0)k#K&v4CW{QU`hha} zYXP7SU$an#ybT|^P=>LL%W6tSBORh@q0AOS8GQK{6dx5sq(ciOx=-~3W$>Pm9`Z{M z6;pWi^1KYRZWA5=X|dudAq!PgXCh8gGKH`zXMGXlx!JnOE1$IIrKtUV1L0`z)r2xt z-k|pQb9-f*{3c%JUzctEoSoX|HxQ2gO}FqXBD<*jjn&}gJWUBTzFXAk6W21j{4b=E#a@$AI0#>o&2p^^J8a@C83{IS! zbYH6ihO4+JmJubx#Nz6yZwcqXo{3wC9G*~TAO~KR9azpdeMqL=i3xeOsb-aT63tD` zkaK`r+xhvi!McU5)a+QZ%2JR4=jO&X%*_u}=FzOOv}3?Uwz?!7&Ha)oVDMzMy#j{d zGamy(bX`sXgR@%N7J}D8i6XZsZXto{i5f;bC`l}>MV3@e9hP+aVWYX_TqHm;zNaG@ZV-gW+IY3Uyg&LxOVH(Va z8um&hhKma|Z;uHT&N+hRKnY6y)21{HVY-PF)aftCg$xO zMUa$t>sKlfKKK9>FgUYV0Yembf29&hl)W&CxWn|LVsOUfT)%!)OuLb731l;lT=8Hl zU^q`2XNkleGI`^qBEj_0R~#`I*qd9=DXZ6@E%f&;Kby=qU-{=5CC z(+vmryr?^YSH{Dyld+onRD#e}+of)MV>mg1H&nrHVCqT^;>H<-9Y1@aHpv=;M7+~Z zcn52_`o5ZA&{J>rgBLGOrr^ohI4n_>5Y?ok=?KV1Q{M{$uZKCXh>$T>-4w-XVjNk? z+fv{a-WOG7G7G1(vOn`nG6T{3t4L%wc-rq*+>0Wj+9-wZ4T8?W&IYF=kZa_mO{k}TrN&{d$L_+r|gjzjB z7X6{pQ9VQ^`cdVJdWft}Gx<1J$}jmP84a566p46_Q!!Qhg^_CZlnZ$_6V zo8{4J6%*(`ng{Tr;qH_9GOnihb@CS7LfIG|K0lA^O+4CMJ!*eFKbvm8Mzn{W; zdEw&IU*xniGy+R3cVO2&|r&LvjSiIzyWHe}IRwQI*E<}jR;rzx*5m9ZF!q+pEdZzM` zUCdw8Oa(?!W{l%zDyn2X$dPHf9^~pljvvU2Lm0K|nh%5ZAeS9bE6aKUJ&0B&_`jo%ONnf_`F0KQ!Z=IIo>^d%B#yEBzrw?rl(^JUp^`UIN<7}SO z7uH+#IxhXMje3YPV?=qQUmwb1|A13SugXvQ%#|A3H9$776Z;yfsuz1G>$r~l=|6t| z{+D2jQhlf)F554LE#apNHE1>t0@(93htYN8E#%yG^2g8o^(R2AKA(io)5XOa=B&Oq zodkn$0um;WXa#V(c(c*E)w|_xOhsCkmGv4tR-R%jp8mZ-EJTrzQj$&t+ z*%K$YaNx)R1pEga5El+ykPv?WN3L9uI3QRACtmeOb#?W7uU|QvSyt1LEG6z={p!{0 zSFgT)>7L$w<<-Uw?B^zY8AX$WcY<)@dr`DAC813l8ci=&-}M*gtHIf3ad9?3;Yxqn zE`7W@JzbqK^_5C2PtWJa8>U3k7~i`+2txn9pfLutvN6Ak9(?1U&W@Z`Zc+qTp~mH!R&`sSu)G+MV*ty6#Uj@Jzn zqm*^wVB`g1XEbfh#)I)79CU_*cfB4!bwhK8R{ZsJ5)2@2?q@9oYIT8*q2!)wzG$a1 z3SP5aot8-5>rho?_689s}H#OBF)5(%x{b{q@YRqy1H4iA5F z+wY8`$uxvc9qe?5!>D`5>)wT)oCXk$h>{Atv-#1<;$fqe1e}cz0?!X4l_Ds{9APoy z7IcS`?%k;Gd*7aUEUg68Ad8nJ40okT{~dwvI| zc64vo*DW@@t0(A#{VZ9H2IJd=mocbS2i_@@f<}U1D==^tJJ*5kV>g#eg=#$vs7&E~&iwFSq7>!^#K)9lSk+G(Wn7iJ6>@HugdzZa~j#{S=h8`Az1%O3~-$-4eI#w{KxDMro5Jq9b5sEv5 zMB~Xp(Cv(w;e~=*=HPdwP`J3;LKT1|H@|@cfu|utBUFKOiH_e&10bg)GkaPObNN$_%Ad-axH)*-MENW+fm0)8dR1=OA=}17aT{CJp{5~H>!1K1YB@ko z$%R@gl80JL#S$GK@nyMHT&T4od8no9ILp~+8!Tj@nyMHT&V3igc`ru0+IkHpx`#G;{gWtr<>~-1V&)M5V zq#6iE5AgE_lUF`d%}Y`H{073&UViW~dFA#V!nR?&#lmbZ6fn5WN;vZD_;`N2fV0WK zkdnafS}BrTQh#RB5L)^q)4#MV{mYNufBRoQ2kndc$n-C*ovZ3!K(e-3tT(q7&sJsm zOG)K+e153}Zf~_7q~(+V?sN?$Ga<}NC6mGPJ1>(V%HYBmB58DSv=!V$P1&57J~-FY zW`MYHR*z|#+km>&!3xCqj!q1tY05Hq=7yi5kS+m^sU*LT**;LOQ+INja#b&-D)w55~bDlS4D z>M$|{kp~l744eadCV^q8Gmrx>lb#ZD#kt9Va~;Kox!FpkB+V+zM+RJEt4k)*+*BIM z0an}b9Av;nw&MG5T*$*Mrc#ftT$XnXxX4y~1E<1P^PKf1(8=K5Fmy6i04vG}xT%35 zl1$&kSgd&LS_&9~*Fss$xV-~7aW!-@5|D^j>tG05^>sNLbT4cVX&apk-b_>{gF|uY z3(-~_Y&9Ie@umodVt>&(8QddE@Sy(x;Tm-^l@*Izni*=$9|+GPNUH|kqK}?VhHuZd zIvIjh%U~$?Yk=i-ysK!XO0AQ@Wi?_iYE4dYFB!j$@w|3xoeamxAM@ox8mnClC3noX zTR!Gvm{{=wrjuc~xMRNE@-ZL7#LX4s`xFD@{^G<7uo+?>^D&ljC(66!V?L5ei(rVH z0j<;!X*+Wn3^u(;7_;3oVUJKs7|z0yPKIeP8)}$NhT-Bu4bjOkOckN#ve1h?%!L|| zi9<~(VK~p1PL#txu* zDMt4A&Zybp&@nGX?e7~17iWRJ>5PtuD3e#7BlA+!9>0OG?Bya={nPo?bTUDJM5g9&AJ)Z?Ibvd2N~WbmEjaZvj2msKf)cT!#{LzKa_FGNtw zlrlt3*;=0-(XvIH5{Ft{2JeWvK=r7GLEY+LhAT}T4?x8su)-U02`)tyxv@c@x&~_4 zGP&)OX#p!c)E2q7vzr>eOzs!2l&SU%HH?{d%LcMy32B_*=hnF0C8dnJPzEPX4%_M8 zuCI%_VS+BIUx+M)L9IGCi>q@)V)YRn&q`-UK$YWV00Wq1#7 zE0iHvwGM`IzXn)d$N6fZO!|o4!ZTrv=g)|}NC;&px2tEnuulYzr@kpfXoTY2QYgci z$({2dLK%jMRWD#d8HS5H=R<@t3==n3jBi2=klzCCoDUJoFqU!Z1w<%AGHDeIku%iN zCW}UCJGU3gFlKV0RzFat@JR9ao^hdu2xS=0bD>s0Q05`saq0)k#K&v4CW{QU`hha} zYXP7SU$an#ybT|^P=>LL%W6tSBORh@q0AOS8GQK{6dx5sq(ciOx=-~3W$>Pm9`Z{M z6;pWi^1KYRZWA5=X|dudAq!PgXCh8gGKH`zXMGXlx!JnOE1$IIrKtUV1L0`z)r2xt z-k|pQb9-f*{3c%JUzctEoSoX|HxQ2gO}FqXBD<*jjn&}gJWUBTzFXAk6W21j{4b=E#a@$AI0#>o&2p^^J8a@C83{IS! zbYH6ihO4+JmJubx#Nz6yZwcqXo{3wC9G*~TAO~KR9azpdeMqL=i3xeOsb-aT63tD` zkaK`r+xhvi!McU5)a+QZ%2JR4=jO&X%*_u}=FzOOv}3?Uwz?!7&Ha)oVDMzMy#j{d zGamy(bX`sXgR@%N7J}D8i6XZsZXto{i5f;bC`l}>MV3@e9hP+aVWYX_TqHm;zNaG@ZV-gW+IY3Uyg&LxOVH(Va z8um&hhKma|Z;uHT&N+hRKnY6y)21{HVY-PF)aftCg$xO zMUa$t>sKlfKKK9>FgUYV0Yembf29&hl)W&CxWn|LVsOUfT)%!)OuLb731l;lT=8Hl zU^q`2XNkleGI`^qBEj_0R~#`I*qd9=DXZ6@E%f&;Kby=qU-{=5CC z(+vmryr?^YSH{Dyld+onRD#e}+of)MV>mg1H&nrHVCqT^;>H<-9Y1@aHpv=;M7+~Z zcn52_`o5ZA&{J>rgBLGOrr^ohI4n_>5Y?ok=?KV1Q{M{$uZKCXh>$T>-4w-XVjNk? z+fv{a-WOG7G7G1(vOn`nG6T{3t4L%wc-rq*+>0Wj+9-wZ4T8?W&IYF=kZa_mO{k}TrN&{d$L_+r|gjzjB z7X6{pQ9VQ^`cdVJdWft}Gx<1J$}jmP84a566p46_Q!!Qhg^_CZlnZ$_6V zo8{4J6%*(`ng{Tr;qH_9GOnihb@CS7LfIG|K0lA^O+4CMJ!*eFKbvm8Mzn{W; zdEw&IU*xniGy+R3cVO2&|r&LvjSiIzyWHe}IRwQI*E<}jR;rzx*5m9ZF!q+pEdZzM` zUCdw8Oa(?!W{l%zDyn2X$dPHf9^~pljvvU2Lm0K|nh%5ZAeS9bE6aKUJ&0B&_`jo%ONnf_`F0KQ!Z=IIo>^d%B#yEBzrw?rl(^JUp^`UIN<7}SO z7uH+#IxhXMje3YPV?=qQUmwb1|A13SugXvQ%#|A3H9$776Z;yfsuz1G>$r~l=|6t| z{+D2jQhlf)F554LE#apNHE1>t0@(93htYN8E#%yG^2g8o^(R2AKA(io)5XOa=B&Oq zodkn$0um;WXa#V(c(c*E)wc1BdBy|WsY8mXmm*Oy;L zW<^EhGnoP!+IZf&=>TU|g6 z=c~2o?Ed1iarm7FPoF$IeQ*IcAU;{I9-J*MR?+JD>cL_a-|ZBCLOFSFGbO$!) zm3+}or4ziS_jFbw>s^bgD!u1*y{fFlX!$U9dTwu^dEUP|zxtg6WyI&r%Ceck&Pm)G zjOS-@13D`CV>(|yk$(h>_mV5)tFzawD3PN6mh`T0E9b2(FILpidh?Ksw9Dtyk{H zUZAxF%$NV(fd562;$`K6{rKtPByP4ehQGe`{>jx>x3^Zv>H%sZ&JJb$!!ECIJ~H^u*(Z#8eU^PN#NnTGIC2RqJi81?SEy?uC+GY7&EQCfj}K0iKpT$2_{{M-b_fE*UxB&$O9ZG;8D^PG2>=PIw`d%M<+Ed$ekOeOhol;JAXj0%*T+(57wqg-U zvhu=_0%zH36Nn@?7KI9cUE8y$LOK`REt}vYO~E2h0kE@`jyVb|KQYNdNw|pucL=jA z5qQj_FAQ$cj&SDhO-T9#!D1AHu&C1--G2umEC77I-73BWz~h^ZlirL%n5$wYsu&il zHx7=1&>cmyX&)x&2(N}>GKa1|c3=!H#<(c43S#jNCr&>aOz$}erM%8(gJ;r|91|wE z#v&TQ>V@kgHl-I?JYqTGz8ejOM~sAM2J`9(r|^XKX1*6<(~gM(VR23!A4Uc4FdD&h z0O^VnhR2#sV)or5(_PAkG;nz`9%60LP_`9Y;g#_N)(IQ)vcRea(NN+M$Qzr(thmA9 z)%YDTI@MIfs!l47=Z)b<^66{{<5N)%>wXDfSqV#*{XIv_)4ic)htsPOWCa&_Ws&F-%i5@r;zzJ6qSNWDvuGWtDuGXn` zH3{Kb2L)(XD*${-%GEj+uGSI0gomQ!GT$o7)jAfgM$gv4cWmbADV%UMAY;2)2b_uO zF21XEt6fb(xOV^w(5_Yh_>`2ZbuC=2OS@WfnQs;4YF!IgqZeDicWl;mQ#j#jK*n~p zF6nCGDyz3(CJDRYk(lZCCx_UIkA|{grpK`vaR%b@&Or4+%v6)vaf;wE?t9Z{20Mh2 z>H7W2#vOk-8}npYfb5*u_zj_ewjDC+M--AB(q20GsJwiCID}=xWQm1XTqt48HVfg% zvy+qgNep|Ffg&Y=|4XGvdP)45OG9w!6Hour*7Pr(fB)wnzX0uv`0(^E?VX$IUqG?8 zj#umL_}Ow({<0x*JGr<@^lj}2SvjG9J6l1?TnJOkWOizqjL zxkNw~B$8DLW6w$^tTH!0M5*Plq*cOL+f65~GWYfD#*&xH%}Zb95{Wfcjso}FW(KU* zfF-dK#=5`hL{{eJ_qQ&AF^!US49oO%f4i2+Tky@st=6q2mG5TwAV_@l$@`T>hPl9i{v<&MZk_klRzj@K|e^Og_>O(vReq zAhk?}_%%x{lM&P99aYqVJd7%&mdT`@R?B3{zcv%|4|2Xx09fHXg%i7cP#b%fuSM?i ziK|?jqy`3kRA8Mx6Kz>=(i_UPOs4e1MsN*!x>o@Bx1g5Eh*SV8UUD6YvyYdQptK9M zOh$KIA%ww$M=g`VetZnBCWJ6}*VQr^-PME;hUzbV0srsvfwP`f%H2xF>FX@|gQtVqA-<|HMk&B!vhX`i>c1}tr<-1-3y3|4Ys ztjv8qyRr18a_b4K+HN|9mAS8HH@01^a_c+R)pp-hC}XZc7r~hJ0(A__#nTOOeEce} zYi#C6Jw=xfi9sH96I83i+!bj-B|wlBC^(IsYQf7Sl%aZ|GA^Z^Rlu}9sNlvTl4RwD zBLz;yP#tDxD;9+$D=!2oaF(rEn6k4Ki#)P&Uf5CKEL+V&nF=5HKNHHBdm}l1=33{; zAbjdsF-ZIxs2G-iX(z=Xyc&whtR5AE600BC4Pu=sIlf?_jQKX3kBC9q zY6i0!t{xVHvE%2-m~AhKU=Y$0hGl8KT=xRclR=tOD0DPK&EtUFP-Xmpbwb9hAgyZ1 z4~nUv&tV!j-CB4U)cE}|ohL)rdEN755LS6y4Awsq!0H(xC#lbq(WE!3u7=%<^6Z-O zUak2yCL_>mpC?0c(&`2DJQ;$L+UIL+{v4iQB2Qj0ohL(ZQ9p-oZT=jdV4}u~mNSJE zPVDm;gffI>)X575p$y6-RWL}*0J9~8>F=Td?P>*pPf59&;XE0l!KAC1&XXayC|5I_ zCqpn*xSIJ_#S|amYCxuIvIr*1)ePs!piJ_x7~It)gzFcD4#qT+1?MdQd`imI3_=;A z!KAC1&XXayC|5I_Cqpn*xSGv8J?UXey#QovSF=7(25qA}ECzQq3E}!haa;`IY6XB# zNx7OqC_^-ubT!j?G6WapYKHS<2&M{Gvsq>VSF;w%5SCF<&2XNKnMpe-2Jtox#qy4< z49u;FqYKI)F7Hcto{YJ7+2_e1#qH0NL5cFyVvswG3uVlVsr&#T%d`pjMneJ6Zn=4W zp23w#H(jv;wBaw$ZAeq#QO0&2Gh+optDNdd@$vv#)~@m`ic8!{2n@3}dZxv0!-iaymfVEIVp)-w`=^@a+V z>Kd@Tq}r`#CI&0pZgY03t^vzWs@?ilG=r6Gw|S;yu0dC~nC7cGhV|g2yXg4SF0Wg# zX$lx~i&Ek;)S?b0Kp?Rstw6z9u)j*qBlM(2(6)+ShElWTZFa#yFfoD*_ z5KQC-o=E{ia8Vn01_cbkM2%}LX9_8tkR=!tFob2)2A)9ygEC2Z3lcNHYzbld`wbK@ zgqf7985A%C6X|Lu1q{JOxtc)%Loijinppuu@e!_OP{0sOl&cvOFesChx8SZOAzW80 z1TLmA5;$)G;8RkrW>CNo4JKX9q<|r~C|5HmUxc5-X zTX0vC5DQK^fuaf+w88aJG3g30{}xcLCiF3UCd$<3CYy}Kb++G2L5?xyXV`fbE-y76L;)nIw?mc%?F@r11`-nSj0$DDV6?@SN z7_zg{(X}(2VQ;j~j4W_AO@mU{`hLO7Ti{pmR36^IS=x)O@fW|>3VD8>&@9sW3y@3SA|NFOp^rz2lZHW(PShgZi zg5C3i&_9ZzoyFP3{A9f|T0V^Tf?T)Ko5NYd&GGy!ZcI<->qpDWvu66;EZ74}#GCfy zdRlJ~Ila(3aHHM?-WU)6os7jWyAotZIm?u zv3RFWc;D1=@qIOc*B3ALgZC~@rqGkKakxRXfv6@OO-DdBn)+@KxP4OxmJvM0s+%G> zRg5JodRt1o%=;qBOlIM9w%MP>C7yxC`zuIzH+VW2RNRX)qS`2d?|Xr>H*|wTCx6du z$&)n*k8|J+hiMqspJPEMuQJId{>a(v{DdjF#G_ID$>hg^PsLcWqCQvRW%`^f5KQSM9*yyN5G3gHP=3SRs>lS!GEm+LeULFVazH%^l;uFj6*%RIA+Z-R?Be%Sa{EBTj@;x86_oydXr z58JyfO#u4mzrFgwyO2A@=grEp*~Mt(ill5YG zF8&bj`)v+j5;0c5 z_2PKBObFy3%{_R}aPP@{kyKOuI(><5scZrdpI;>PrajtRK5F*k)#CB_DjQA|-%sJS zym0a9;v~*5La!yWVz3DQE8k%}7z9}__`!5>-W;utMa99?YXUGNRfjfv-m@^+@G^ zb~68hMk z^v0mxlr@ReO5s)XliYK~a=Qe4x>MZy|NP*iH(-fUe6SRkuNT9T@Y7hVVK?>ySo2g@ zwO5V1hJD*#_I~=up8>J>d>%ee+-gW=lk#=@ zR%5dFb^vHsMR#vCyg+^v_2Bngq1%rRz3~36#@+4Cc58Q0h793{s!`w^NL0JE-QI2i S(RBZ_usK}(`}rTl|Njf1xdBW7 literal 0 HcmV?d00001 diff --git a/projects/vga_ctrl/syn/ise/project/vga_ctrl.ipf b/projects/vga_ctrl/syn/ise/project/vga_ctrl.ipf new file mode 100644 index 0000000000000000000000000000000000000000..ffbea443aea4c6e1058fec258bd63405c08fb65d GIT binary patch literal 3973 zcmc&%PjBNy6fa@{$x?)n5J<4vn*Rs3P4j10+g?!OI5ce27*E=;+DK;NPSRQI*s`6_ z<+5La3kY#Xf*VH=0whj+1;nKXJ^=#64c@b3*O@eSO2w|FCwZRVZ|1$9-^_cX-G2Ov zw07Q80HtAc>hF+lM^_D_s4X>pRx~vo+jhnmL2%opW{`o9#Wf7gbMEQPbz0+qd1Gp2 zc^Czwt8ceRSHH7DFe%gAU|tMeTSRzl^Z~o?=kb;T=CW{2Txy1BJ4dXhs7g~{@TIHt z&o*FCUdzSK9Ily6Y3@^-Ns=#x1C0j9(r~B$9=G`TWV;ya3IB*mTQJ(6*aPNuhKgfZ z%nZ0Q_Ce1pWodcz>)HOawYCt9`_ETvcL9X*dOr9p8ki~-4vfx^2R;Y^$(^CxU_Kuu z;gHF|2CgMSAnN6@Eu=*1Kh=p47le{Lufm&QET#nhU;sAQl$%W65@vX&e)okh0EzPE ziZjgUsk>a(s2AYBhW947Sj^RI7?K5F6=yu;qr_liL&kUcEqP;O?rUrx=Y(nvlVre! zPE3=U3?L-6G`uG>N1t#QPqm!r)%Yq2e0}}NZ{J>wuTt?5@-?iK-G|CoS>WsQ_3Q8c z40(mJT7H!;&DV594Kwg8BXHc!0S^{)thZB~9v@jn7YYF!I({*R6uFQ2wLAfE>4W9OTTQ z+9Ys%tnfgh;@Gaod><%-QG0GA3BQL1l5P5t#*z=IHDOY-iDQfU$8v)P zRPOO3XeMrfvOTc^K5(3{_9O!tE0S_d`50H4S4Y$=>bv*d(94KI*%7PunI4)(8%jD> z(WEFflV%5KJEt`OZPFL$MB`(*?GMliqP1kgu;GblNty#yZ`JnD;6v)lbvV1a`hg1L z<#jBpVIX27luoa#tpvdTA-5oE;Veu0la*VD{ErT0@*_4>X@4^LAs2Dyv)_OG3)>Bp zW$wf~2U_4M!=6p5W1|>vZPfVEcFt)di`z5zs`K|~{ip8%h4RJ<=$V@>q8f*)PFkIP zL($b*S8W)*R(Dt0-YjiyRXBK_HrcC@u0d*ti&lHo5AZ4m=YrJR>0?#y$5pu>SLHrb zUsFR-eOkE1qT8FgY3VJ7Y73{-fef~OXe7E~CM2_+l$dq|L+(L9! sL>CZVSXd3!rNV-5sIC;|SV$99h?$x<5r|4zX}6zv61+