FPGA development changes
parent
75101c19c2
commit
4ca0c309a3
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
190
Makefile
190
Makefile
|
@ -1,11 +1,12 @@
|
|||
VERSION_MAJ = 1
|
||||
VERSION_MIN = 454
|
||||
|
||||
REPO_NAME = Beagle_SDR_GPS
|
||||
DEBIAN_VER = 8.11
|
||||
|
||||
# Caution: software update mechanism depends on format of first two lines in this file
|
||||
|
||||
REPO_NAME = Beagle_SDR_GPS
|
||||
REPO = https://github.com/jks-prv/$(REPO_NAME).git
|
||||
DEBIAN_VER = 8.11
|
||||
|
||||
#
|
||||
# Makefile for KiwiSDR project
|
||||
#
|
||||
|
@ -154,7 +155,7 @@ endif
|
|||
PKGS =
|
||||
PKGS_O3 = pkgs/mongoose pkgs/jsmn pkgs/sha256 pkgs/TNT_JAMA
|
||||
|
||||
# Each (internal) extension can have an optional Makefile:
|
||||
# Each extension can have an optional Makefile:
|
||||
# The extension can opt-out of being included via EXT_SKIP (e.g. BBAI only, not Debian 7 etc.)
|
||||
# EXT_SUBDIRS define any sub-dirs within the extension.
|
||||
# EXT_DEFINES set any additional defines for the extension.
|
||||
|
@ -165,7 +166,6 @@ EXT_SUBDIRS =
|
|||
EXT_DEFINES =
|
||||
LIBS_DEP =
|
||||
LIBS =
|
||||
-include $(wildcard extensions/*/Makefile)
|
||||
|
||||
PVT_EXT_DIR = ../extensions
|
||||
PVT_EXT_DIRS = $(sort $(dir $(wildcard $(PVT_EXT_DIR)/*/extensions/*/)))
|
||||
|
@ -174,7 +174,9 @@ INT_EXT_DIRS1 = $(sort $(dir $(wildcard extensions/*/)))
|
|||
EXT_SKIP1 = $(addsuffix /,$(addprefix extensions/,$(EXT_SKIP)))
|
||||
INT_EXT_DIRS = $(subst $(EXT_SKIP1),,$(INT_EXT_DIRS1))
|
||||
|
||||
# extension-specific makefiles and makefile for the extension init generator
|
||||
EXT_DIRS = $(INT_EXT_DIRS) $(PVT_EXT_DIRS)
|
||||
-include $(wildcard $(addsuffix Makefile,$(EXT_DIRS)))
|
||||
|
||||
PVT_EXTS = $(subst $(PVT_EXT_DIR)/,,$(wildcard $(PVT_EXT_DIR)/*))
|
||||
INT_EXTS = $(subst /,,$(subst extensions/,,$(wildcard $(INT_EXT_DIRS))))
|
||||
|
@ -201,7 +203,7 @@ else
|
|||
endif
|
||||
|
||||
VPATH = $(DIRS) $(DIRS_O3) $(EXT_SUBDIRS_KEEP)
|
||||
I = -I$(GEN_DIR) $(addprefix -I,$(DIRS)) $(addprefix -I,$(DIRS_O3)) $(addprefix -I,$(EXT_SUBDIRS_KEEP)) -I/usr/local/include
|
||||
I += -I$(GEN_DIR) $(addprefix -I,$(DIRS)) $(addprefix -I,$(DIRS_O3)) $(addprefix -I,$(EXT_SUBDIRS_KEEP)) -I/usr/local/include
|
||||
H = $(wildcard $(addsuffix /*.h,$(DIRS))) $(wildcard $(addsuffix /*.h,$(DIRS_O3)))
|
||||
CPP_F = $(wildcard $(addsuffix /*.cpp,$(DIRS)))
|
||||
CPP_F_O3 = $(wildcard $(addsuffix /*.cpp,$(DIRS_O3)))
|
||||
|
@ -333,7 +335,7 @@ endif
|
|||
|
||||
#SRC_DEPS = Makefile
|
||||
SRC_DEPS =
|
||||
BIN_DEPS = KiwiSDR.rx4.wf4.bit KiwiSDR.rx8.wf2.bit KiwiSDR.rx3.wf3.bit KiwiSDR.rx14.wf0.bit
|
||||
BIN_DEPS = KiwiSDR.rx4.wf4.bit KiwiSDR.rx8.wf2.bit KiwiSDR.rx3.wf3.bit KiwiSDR.rx14.wf0.bit KiwiSDR.other.bit
|
||||
#BIN_DEPS =
|
||||
DEVEL_DEPS = $(OBJ_DIR_DEFAULT)/web_devel.o $(KEEP_DIR)/edata_always.o $(KEEP_DIR)/edata_always2.o
|
||||
EMBED_DEPS = $(OBJ_DIR_DEFAULT)/web_embed.o $(OBJ_DIR)/edata_embed.o $(KEEP_DIR)/edata_always.o $(KEEP_DIR)/edata_always2.o
|
||||
|
@ -341,10 +343,11 @@ EXTS_DEPS = $(OBJ_DIR)/ext_init.o
|
|||
|
||||
# these MUST be run by single-threaded make before use of -j in sub makes
|
||||
GEN_ASM = $(GEN_DIR)/kiwi.gen.h verilog/kiwi.gen.vh
|
||||
GEN_OTHER_ASM = $(GEN_DIR)/other.gen.h verilog/other.gen.vh
|
||||
OUT_ASM = $(GEN_DIR)/kiwi.aout
|
||||
GEN_VERILOG = $(addprefix verilog/rx/,cic_rx1_12k.vh cic_rx1_20k.vh cic_rx2_12k.vh cic_rx2_20k.vh cic_rx3_12k.vh cic_rx3_20k.vh cic_wf1.vh cic_wf2.vh)
|
||||
GEN_NOIP2 = $(GEN_DIR)/noip2
|
||||
SUB_MAKE_DEPS = $(KEYRING) $(CMD_DEPS) $(LIBS_DEP) $(GEN_ASM) $(OUT_ASM) $(GEN_VERILOG) $(GEN_NOIP2)
|
||||
SUB_MAKE_DEPS = $(KEYRING) $(CMD_DEPS) $(LIBS_DEP) $(GEN_ASM) $(GEN_OTHER_ASM) $(OUT_ASM) $(GEN_VERILOG) $(GEN_NOIP2)
|
||||
|
||||
|
||||
################################
|
||||
|
@ -440,20 +443,13 @@ pru/pru_realtime.bin: pas pru/pru_realtime.p pru/pru_realtime.h pru/pru_realtime
|
|||
(cd pru; ../pas -V3 -b -L -l -D_PASM_ -D$(SETUP) pru_realtime.p)
|
||||
|
||||
|
||||
################################
|
||||
# Verilog generator
|
||||
################################
|
||||
$(GEN_VERILOG): $(GEN_DIR)/kiwi.gen.h verilog/rx/cic_gen.c
|
||||
ifeq ($(DEBIAN_DEVSYS),$(DEVSYS))
|
||||
(cd verilog/rx; make)
|
||||
endif
|
||||
|
||||
|
||||
################################
|
||||
# FPGA embedded CPU
|
||||
################################
|
||||
$(GEN_ASM): kiwi.config $(wildcard e_cpu/asm/*)
|
||||
(cd e_cpu; make)
|
||||
$(GEN_OTHER_ASM): other.config $(wildcard e_cpu/asm/*)
|
||||
(cd e_cpu; make gen_other)
|
||||
$(OUT_ASM): $(wildcard e_cpu/*.asm)
|
||||
(cd e_cpu; make no_gen)
|
||||
|
||||
|
@ -626,6 +622,7 @@ c_ext_clang_conv_vars:
|
|||
@echo BIN_DEPS = $(BIN_DEPS)
|
||||
@echo SUB_MAKE_DEPS = $(SUB_MAKE_DEPS)
|
||||
@echo GEN_ASM = $(GEN_ASM)
|
||||
@echo GEN_OTHER_ASM = $(GEN_OTHER_ASM)
|
||||
@echo
|
||||
@echo FILES_EMBED = $(FILES_EMBED)
|
||||
@echo FILES_EXT = $(FILES_EXT)
|
||||
|
@ -672,9 +669,6 @@ build_log blog:
|
|||
# general build rules
|
||||
################################
|
||||
|
||||
# extension init generator and extension-specific makefiles
|
||||
-include extensions/Makefile
|
||||
|
||||
CSRC = $(notdir $(CFILES))
|
||||
OBJECTS1 = $(CSRC:%.c=$(OBJ_DIR)/%.o)
|
||||
OBJECTS = $(OBJECTS1:%.cpp=$(OBJ_DIR)/%.o)
|
||||
|
@ -705,6 +699,42 @@ C_CTR_DONE = 9999
|
|||
c_ctr_reset:
|
||||
@echo 1 >$(COMP_CTR)
|
||||
|
||||
ifeq ($(DEBIAN_DEVSYS),$(DEBIAN))
|
||||
|
||||
# FIXME: isn't there a better way to do this in GNU make?
|
||||
|
||||
EXISTS_RX4_WF4 = $(shell test -f KiwiSDR.rx4.wf4.bit && echo true)
|
||||
ifeq ($(EXISTS_RX4_WF4),true)
|
||||
else
|
||||
KiwiSDR.rx4.wf4.bit:
|
||||
endif
|
||||
|
||||
EXISTS_RX8_WF2 = $(shell test -f KiwiSDR.rx8.wf2.bit && echo true)
|
||||
ifeq ($(EXISTS_RX8_WF2),true)
|
||||
else
|
||||
KiwiSDR.rx8.wf2.bit:
|
||||
endif
|
||||
|
||||
EXISTS_RX3_WF3 = $(shell test -f KiwiSDR.rx3.wf3.bit && echo true)
|
||||
ifeq ($(EXISTS_RX3_WF3),true)
|
||||
else
|
||||
KiwiSDR.rx3.wf3.bit:
|
||||
endif
|
||||
|
||||
EXISTS_RX14_WF0 = $(shell test -f KiwiSDR.rx14.wf0.bit && echo true)
|
||||
ifeq ($(EXISTS_RX14_WF0),true)
|
||||
else
|
||||
KiwiSDR.rx14.wf0.bit:
|
||||
endif
|
||||
|
||||
EXISTS_OTHER = $(shell test -f KiwiSDR.other.bit && echo true)
|
||||
ifeq ($(EXISTS_OTHER),true)
|
||||
else
|
||||
KiwiSDR.other.bit:
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# IMPORTANT
|
||||
#
|
||||
|
@ -889,26 +919,6 @@ endif
|
|||
endif
|
||||
endif
|
||||
|
||||
V_DIR = ~/shared/shared
|
||||
|
||||
ifeq ($(XC),) ## do not copy bit streams from $(V_DIR) when cross-compiling
|
||||
ifeq ($(DEBIAN_DEVSYS),$(DEVSYS))
|
||||
|
||||
KiwiSDR.rx4.wf4.bit: $(V_DIR)/KiwiSDR.rx4.wf4.bit
|
||||
rsync -av $(V_DIR)/KiwiSDR.rx4.wf4.bit .
|
||||
|
||||
KiwiSDR.rx8.wf2.bit: $(V_DIR)/KiwiSDR.rx8.wf2.bit
|
||||
rsync -av $(V_DIR)/KiwiSDR.rx8.wf2.bit .
|
||||
|
||||
KiwiSDR.rx3.wf3.bit: $(V_DIR)/KiwiSDR.rx3.wf3.bit
|
||||
rsync -av $(V_DIR)/KiwiSDR.rx3.wf3.bit .
|
||||
|
||||
KiwiSDR.rx14.wf0.bit: $(V_DIR)/KiwiSDR.rx14.wf0.bit
|
||||
rsync -av $(V_DIR)/KiwiSDR.rx14.wf0.bit .
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
DEV = kiwi
|
||||
CAPE = cape-bone-$(DEV)-00A0
|
||||
SPI = cape-bone-$(DEV)-S-00A0
|
||||
|
@ -978,14 +988,29 @@ ifeq ($(DEBIAN_DEVSYS),$(DEVSYS))
|
|||
else
|
||||
@echo $(C_CTR_INSTALL) >$(COMP_CTR)
|
||||
# don't strip symbol table while we're debugging daemon crashes
|
||||
# install -D -s -o root -g root $(BUILD_DIR)/kiwid.bin /usr/local/bin/kiwid
|
||||
# install -D -o root -g root $(BUILD_DIR)/kiwid.bin /usr/local/bin/kiwid
|
||||
install -D -o root -g root $(BUILD_DIR)/kiwid.bin /usr/local/bin/kiwid
|
||||
install -D -o root -g root $(GEN_DIR)/kiwi.aout /usr/local/bin/kiwid.aout
|
||||
# install -D -o root -g root $(GEN_DIR)/kiwi_realtime.bin /usr/local/bin/kiwid_realtime.bin
|
||||
#
|
||||
ifeq ($(EXISTS_RX4_WF4),true)
|
||||
install -D -o root -g root KiwiSDR.rx4.wf4.bit /usr/local/bin/KiwiSDR.rx4.wf4.bit
|
||||
endif
|
||||
#
|
||||
ifeq ($(EXISTS_RX8_WF2),true)
|
||||
install -D -o root -g root KiwiSDR.rx8.wf2.bit /usr/local/bin/KiwiSDR.rx8.wf2.bit
|
||||
endif
|
||||
#
|
||||
ifeq ($(EXISTS_RX3_WF3),true)
|
||||
install -D -o root -g root KiwiSDR.rx3.wf3.bit /usr/local/bin/KiwiSDR.rx3.wf3.bit
|
||||
endif
|
||||
#
|
||||
ifeq ($(EXISTS_RX14_WF0),true)
|
||||
install -D -o root -g root KiwiSDR.rx14.wf0.bit /usr/local/bin/KiwiSDR.rx14.wf0.bit
|
||||
endif
|
||||
#
|
||||
ifeq ($(EXISTS_OTHER),true)
|
||||
install -D -o root -g root KiwiSDR.other.bit /usr/local/bin/KiwiSDR.other.bit
|
||||
endif
|
||||
#
|
||||
install -o root -g root unix_env/kiwid /etc/init.d
|
||||
install -o root -g root -m 0644 unix_env/kiwid.service /etc/systemd/system
|
||||
|
@ -1187,7 +1212,7 @@ endif
|
|||
@echo BeagleBone EEPROM:
|
||||
-hexdump -C /sys/bus/i2c/devices/0-0050/eeprom
|
||||
|
||||
REPO = https://github.com/jks-prv/$(REPO_NAME).git
|
||||
ifeq ($(DEBIAN_DEVSYS),$(DEVSYS))
|
||||
|
||||
# selectively transfer files to the target so everything isn't compiled each time
|
||||
EXCLUDE_RSYNC = ".DS_Store" ".git" "/obj" "/obj_O3" "/obj_keep" "*.dSYM" "*.bin" "*.aout" "e_cpu/a" "*.aout.h" "kiwi.gen.h" \
|
||||
|
@ -1202,12 +1227,20 @@ endif
|
|||
|
||||
rsync_su:
|
||||
sudo $(RSYNC) $(RSYNC_ARGS)
|
||||
rsync_bit:
|
||||
rsync -av $(V_DIR)/KiwiSDR.rx4.wf4.bit $(V_DIR)/KiwiSDR.rx8.wf2.bit $(V_DIR)/KiwiSDR.rx3.wf3.bit $(V_DIR)/KiwiSDR.rx14.wf0.bit .
|
||||
sudo $(RSYNC) $(RSYNC_ARGS)
|
||||
|
||||
endif
|
||||
|
||||
|
||||
################################
|
||||
# Verilog
|
||||
################################
|
||||
ifeq ($(DEBIAN_DEVSYS),$(DEVSYS))
|
||||
|
||||
V_DIR = ~/shared/shared
|
||||
|
||||
$(GEN_VERILOG): $(GEN_DIR)/kiwi.gen.h verilog/rx/cic_gen.c
|
||||
(cd verilog/rx; make)
|
||||
|
||||
# generate the files needed to build the Verilog code
|
||||
verilog: $(GEN_VERILOG)
|
||||
@echo verilog/ directory should now contain all necessary generated files:
|
||||
|
@ -1215,15 +1248,69 @@ verilog: $(GEN_VERILOG)
|
|||
|
||||
# command to "copy verilog" from KiwiSDR distribution to the Vivado build location
|
||||
# designed to complement the "make cv2" command run on the Vivado build machine
|
||||
EXCLUDE_CV = ".DS_Store" "rx/cic_gen" "rx/*.dSYM"
|
||||
EXCLUDE_CV = ".DS_Store" "rx/cic_gen" "rx/*.dSYM" "*(original)*"
|
||||
ifeq ($(V_PROJ),)
|
||||
V_PROJ = KiwiSDR
|
||||
endif
|
||||
cv: $(GEN_VERILOG)
|
||||
rsync -av --delete $(addprefix --exclude , $(EXCLUDE_CV)) verilog/ $(V_DIR)/KiwiSDR
|
||||
rsync -av --delete $(addprefix --exclude , $(EXCLUDE_CV)) verilog.Vivado.2014.4.ip/ $(V_DIR)/KiwiSDR.Vivado.2014.4.ip
|
||||
rsync -av --delete $(addprefix --exclude , $(EXCLUDE_CV)) verilog.Vivado.2017.4.ip/ $(V_DIR)/KiwiSDR.Vivado.2017.4.ip
|
||||
rsync -av --delete $(addprefix --exclude , $(EXCLUDE_CV)) verilog/ $(V_DIR)/$(V_PROJ)
|
||||
rsync -av --delete $(addprefix --exclude , $(EXCLUDE_CV)) verilog.Vivado.2017.4.ip/ $(V_DIR)/$(V_PROJ).Vivado.2017.4.ip
|
||||
|
||||
cv2:
|
||||
@echo "you probably want to use \"make cv\" here"
|
||||
|
||||
sum:
|
||||
sum *.bit
|
||||
|
||||
ifeq ($(XC),) ## do not copy bit streams from $(V_DIR) when cross-compiling
|
||||
|
||||
# FIXME: isn't there a better way to do this in GNU make?
|
||||
|
||||
EXISTS_V_DIR_RX4_WF4 = $(shell test -f $(V_DIR)/KiwiSDR.rx4.wf4.bit && echo true)
|
||||
ifeq ($(EXISTS_V_DIR_RX4_WF4),true)
|
||||
KiwiSDR.rx4.wf4.bit: $(V_DIR)/KiwiSDR.rx4.wf4.bit
|
||||
rsync -av $(V_DIR)/KiwiSDR.rx4.wf4.bit .
|
||||
else
|
||||
KiwiSDR.rx4.wf4.bit:
|
||||
endif
|
||||
|
||||
EXISTS_V_DIR_RX8_WF2 = $(shell test -f $(V_DIR)/KiwiSDR.rx8.wf2.bit && echo true)
|
||||
ifeq ($(EXISTS_V_DIR_RX8_WF2),true)
|
||||
KiwiSDR.rx8.wf2.bit: $(V_DIR)/KiwiSDR.rx8.wf2.bit
|
||||
rsync -av $(V_DIR)/KiwiSDR.rx8.wf2.bit .
|
||||
else
|
||||
KiwiSDR.rx8.wf2.bit:
|
||||
endif
|
||||
|
||||
EXISTS_V_DIR_RX3_WF3 = $(shell test -f $(V_DIR)/KiwiSDR.rx3.wf3.bit && echo true)
|
||||
ifeq ($(EXISTS_V_DIR_RX3_WF3),true)
|
||||
KiwiSDR.rx3.wf3.bit: $(V_DIR)/KiwiSDR.rx3.wf3.bit
|
||||
rsync -av $(V_DIR)/KiwiSDR.rx3.wf3.bit .
|
||||
else
|
||||
KiwiSDR.rx3.wf3.bit:
|
||||
endif
|
||||
|
||||
EXISTS_V_DIR_RX14_WF0 = $(shell test -f $(V_DIR)/KiwiSDR.rx14.wf0.bit && echo true)
|
||||
ifeq ($(EXISTS_V_DIR_RX14_WF0),true)
|
||||
KiwiSDR.rx14.wf0.bit: $(V_DIR)/KiwiSDR.rx14.wf0.bit
|
||||
rsync -av $(V_DIR)/KiwiSDR.rx14.wf0.bit .
|
||||
else
|
||||
KiwiSDR.rx14.wf0.bit:
|
||||
endif
|
||||
|
||||
EXISTS_V_DIR_OTHER = $(shell test -f $(V_DIR)/KiwiSDR.other.bit && echo true)
|
||||
ifeq ($(EXISTS_V_DIR_OTHER),true)
|
||||
KiwiSDR.other.bit: $(V_DIR)/KiwiSDR.other.bit
|
||||
rsync -av $(V_DIR)/KiwiSDR.other.bit .
|
||||
else
|
||||
KiwiSDR.other.bit:
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
rsync_bit: $(BIN_DEPS)
|
||||
sudo $(RSYNC) $(RSYNC_ARGS)
|
||||
|
||||
endif
|
||||
|
||||
|
||||
|
@ -1285,6 +1372,9 @@ gitdiff_context:
|
|||
gitdiff_brief:
|
||||
colordiff -br --brief --exclude=.DS_Store --exclude=.git $(GITAPP)/$(REPO_NAME) . || true
|
||||
|
||||
gitdiff2:
|
||||
colordiff -br --exclude=.DS_Store --exclude=.git "--exclude=*.min.*" ../../../sdr/KiwiSDR/$(REPO_NAME) . || true
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(DEBIAN_DEVSYS),$(DEBIAN))
|
||||
|
|
|
@ -13,6 +13,9 @@ ASM = $(TOOLS_DIR)/asm
|
|||
all: $(ASM)
|
||||
$(ASM) -o $(GEN_DIR)
|
||||
|
||||
gen_other: $(ASM)
|
||||
$(ASM) -o $(GEN_DIR) -g
|
||||
|
||||
$(TOOLS_DIR):
|
||||
@mkdir -p $(TOOLS_DIR)
|
||||
|
||||
|
@ -38,5 +41,9 @@ binary: $(ASM)
|
|||
stat: $(ASM)
|
||||
$(ASM) -n -s -o $(GEN_DIR)
|
||||
|
||||
gdb: $(ASM)
|
||||
@echo "gdb: r -o ../../build/gen"
|
||||
gdb $(ASM)
|
||||
|
||||
clean:
|
||||
-rm -rf $(TOOLS_DIR)/asm* $(GEN_DIR)
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#include "asm.h"
|
||||
|
||||
int show_bin, gen=1, write_coe;
|
||||
int show_bin, gen=1, only_gen_other=0, write_coe;
|
||||
|
||||
#define LBUF 1024
|
||||
char linebuf[LBUF];
|
||||
|
@ -156,6 +156,7 @@ init_code_t init_code[] = {
|
|||
#define FN_PREFIX "kiwi"
|
||||
|
||||
char ifiles_list[NIFILES_LIST][32];
|
||||
char *last_file;
|
||||
|
||||
#define NIFILES_NEST 3
|
||||
char ifiles[NIFILES_NEST][32];
|
||||
|
@ -174,18 +175,11 @@ int main(int argc, char *argv[])
|
|||
int i, val;
|
||||
|
||||
char *odir = (char *) ".";
|
||||
|
||||
char *ifs = (char *) FN_PREFIX ".asm"; // source input
|
||||
// *bfs // loaded into FPGA via SPI
|
||||
|
||||
char *ofs; // included by simulator
|
||||
// *hfs // included by .cpp / .c
|
||||
cfs = (char *) "../verilog/" FN_PREFIX ".cfg.vh"; // included by verilog
|
||||
vfs = (char *) "../verilog/" FN_PREFIX ".gen.vh"; // included by verilog
|
||||
efs = (char *) "../verilog/" FN_PREFIX ".coe"; // .coe file to init BRAMs (optional during FPGA development)
|
||||
char *ofs;
|
||||
|
||||
int ifn, ifl;
|
||||
FILE *ifp[NIFILES_NEST], *ofp, *cfp, *hfp, *vfp, *efp;
|
||||
FILE *ifp[NIFILES_NEST], *ofp, *efp;
|
||||
|
||||
int bfd;
|
||||
char *lp = linebuf, *cp, *scp, *np, *sp;
|
||||
|
@ -196,21 +190,24 @@ int main(int argc, char *argv[])
|
|||
strs_t *st;
|
||||
int compare_code=0, stats=0;
|
||||
char tsbuf[256];
|
||||
bool test = false;
|
||||
|
||||
for (i=1; i < argc; i++)
|
||||
if (argv[i][0] == '-') switch (argv[i][1]) {
|
||||
case 't': ifs = (char *) "test.asm"; ofs = (char *) "test.aout.h"; bfs = (char *) "test.aout"; break;
|
||||
case 'c': compare_code=1; printf("compare mode\n"); break;
|
||||
case 'd': debug=1; gen=0; break;
|
||||
case 'b': show_bin=1; gen=0; break;
|
||||
case 'n': gen=0; break;
|
||||
case 's': stats=1; break;
|
||||
case 'o': i++; odir = argv[i]; break;
|
||||
}
|
||||
if (argv[i][0] == '-') switch (argv[i][1]) {
|
||||
case 't': ifs = (char *) "test.asm"; ofs = (char *) "test.aout.h"; bfs = (char *) "test.aout"; break;
|
||||
case 'c': compare_code=1; printf("compare mode\n"); break;
|
||||
case 'd': debug=1; gen=0; break;
|
||||
case 'b': show_bin=1; gen=0; break;
|
||||
case 'g': only_gen_other=1; break;
|
||||
case 'n': gen=0; break;
|
||||
case 's': stats=1; break;
|
||||
case 'o': i++; odir = argv[i]; break;
|
||||
}
|
||||
|
||||
asprintf(&bfs, "%s/%s.aout", odir, FN_PREFIX);
|
||||
asprintf(&ofs, "%s/ecode.aout.h", odir);
|
||||
asprintf(&hfs, "%s/%s.gen.h", odir, FN_PREFIX);
|
||||
if (!test) {
|
||||
asprintf(&bfs, "%s/%s.aout", odir, FN_PREFIX); // loaded into FPGA via SPI
|
||||
asprintf(&ofs, "%s/ecode.aout.h", odir); // included by simulator
|
||||
}
|
||||
|
||||
ifn = ifl = 0; fn = ifs;
|
||||
strcpy(ifiles[ifn], ifs);
|
||||
|
@ -220,27 +217,8 @@ int main(int argc, char *argv[])
|
|||
if ((bfd = open(bfs, O_WRONLY | O_CREAT | O_TRUNC, 0666)) < 0) sys_panic("open bfs");
|
||||
printf("assembling %s to: %s, %s\n", ifs, bfs, ofs);
|
||||
|
||||
if (gen) {
|
||||
if ((hfp = fopen(hfs, "w")) == NULL) sys_panic("fopen hfs");
|
||||
printf("generating include file: %s\n", hfs);
|
||||
|
||||
// skip writing Verilog cfg file if on read-only filesystem (e.g. NFS mounted read-only)
|
||||
cfp = fopen(cfs, "w");
|
||||
if (cfp == NULL && errno != EROFS) sys_panic("fopen cfs");
|
||||
if (cfp) printf("generating include file: %s\n", cfs);
|
||||
|
||||
// skip writing Verilog gen file if on read-only filesystem (e.g. NFS mounted read-only)
|
||||
vfp = fopen(vfs, "w");
|
||||
if (vfp == NULL && errno != EROFS) sys_panic("fopen vfs");
|
||||
if (vfp) printf("generating include file: %s\n", vfs);
|
||||
|
||||
const char *warn = "// this file auto-generated by the embedded processor assembler -- edits likely to be overwritten\n\n";
|
||||
fprintf(hfp, "%s", warn);
|
||||
fprintf(hfp, "%s", "#ifndef _KIWI_GEN_H_\n#define _KIWI_GEN_H_\n\n// from assembler DEF directives:\n\n");
|
||||
if (vfp) fprintf(vfp, "%s`ifndef _KIWI_GEN_VH_\n`define _KIWI_GEN_VH_\n\n// from assembler DEF directives:\n\n", warn);
|
||||
}
|
||||
|
||||
if (write_coe) {
|
||||
efs = (char *) "../verilog/" FN_PREFIX ".coe"; // .coe file to init BRAMs (optional during FPGA development)
|
||||
if ((efp = fopen(efs, "w")) == NULL) sys_panic("fopen efs");
|
||||
fprintf(efp, "; DEPTH = 2048\n; WIDTH = 16\nmemory_initialization_radix=16;\nmemory_initialization_vector=");
|
||||
}
|
||||
|
@ -260,7 +238,13 @@ int main(int argc, char *argv[])
|
|||
fn = ifiles[ifn]; strcpy(fn, tsbuf); strcpy(ifiles_list[ifl], tsbuf);
|
||||
printf("#include file: %s\n", fn);
|
||||
if ((ifp[ifn] = fopen(fn, "r")) == NULL) sys_panic("fopen include file");
|
||||
continue;
|
||||
|
||||
if (str_ends_with(fn, ".config")) {
|
||||
tp->ttype = TT_FILE;
|
||||
tp->str = ifiles_list[ifl];
|
||||
tp++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
while (*cp) {
|
||||
|
@ -468,6 +452,11 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
// process new DEF
|
||||
if (tp->ttype == TT_FILE) {
|
||||
last_file = tp->str;
|
||||
tp++; continue;
|
||||
}
|
||||
|
||||
if (tp->ttype == TT_PRE && tp->num == PP_DEF) {
|
||||
pp->flags = tp->flags;
|
||||
tp++; syntax(tp->ttype == TT_SYM, "expected DEF name");
|
||||
|
@ -478,8 +467,8 @@ int main(int argc, char *argv[])
|
|||
pp->flags |= TF_FIELD;
|
||||
}
|
||||
tp = expr(tp, &ep1, &val, 1);
|
||||
pp->str = t->str; pp->ptype = PT_DEF;
|
||||
if (debug) printf("DEF \"%s\" %d\n", pp->str, val);
|
||||
pp->str = t->str; pp->ptype = PT_DEF; sscanf(last_file, "%*[^a-z]%[a-z]", pp->config_prefix);
|
||||
if (debug) printf("DEF \"%s\" %d (from file %s <%s>)\n", pp->str, val, last_file, pp->config_prefix);
|
||||
tp++; // remove extra \n
|
||||
pp->val = val;
|
||||
pp++; continue;
|
||||
|
@ -752,37 +741,115 @@ int main(int argc, char *argv[])
|
|||
|
||||
|
||||
// generate header files
|
||||
if (gen) {
|
||||
for (p=preproc; p->str; p++) {
|
||||
if (p->ptype == PT_DEF) {
|
||||
if ((p->flags & TF_CFG_H) && cfp) {
|
||||
fprintf(cfp, "parameter RX_CFG = %d;\n", p->val);
|
||||
if (p->val < 14)
|
||||
fprintf(cfp, "`define USE_WF\n");
|
||||
}
|
||||
if (p->flags & TF_DOT_H) {
|
||||
fprintf(hfp, "%s#define %s // DEFh 0x%x\n", p->val? "":"//", p->str, p->val);
|
||||
fprintf(hfp, "#define VAL_%s %d\n", p->str, p->val);
|
||||
if (vfp) fprintf(vfp, "%s`define %s // DEFh 0x%x\n", p->val? "":"//", p->str, p->val);
|
||||
}
|
||||
if (p->flags & TF_DOT_VP) {
|
||||
fprintf(hfp, "#define %s %d // DEFp 0x%x\n", p->str, p->val, p->val);
|
||||
if (vfp) {
|
||||
if (p->flags & TF_FIELD)
|
||||
fprintf(vfp, "\tparameter %s = %d\'d%d; // DEFp 0x%x\n", p->str, p->width, p->val, p->val);
|
||||
else
|
||||
fprintf(vfp, "\tparameter %s = %d; // DEFp 0x%x\n", p->str, p->val, p->val);
|
||||
fprintf(vfp, "%s`define DEF_%s\n", p->val? "":"//", p->str);
|
||||
}
|
||||
}
|
||||
if (p->flags & TF_DOT_VB) {
|
||||
fprintf(hfp, "#define %s %d // DEFb 0x%x\n", p->str, p->val, p->val);
|
||||
// determine bit position number
|
||||
if (p->val) for (i=0; ((1<<i) & p->val)==0; i++) ; else i=0;
|
||||
if (vfp) fprintf(vfp, "\tparameter %s = %d; // DEFb: bit number for value: 0x%x\n", p->str, i, p->val);
|
||||
}
|
||||
}
|
||||
FILE *cfp = NULL, *hfp = NULL, *vfp = NULL;
|
||||
char *vfs_last = (char *) "";
|
||||
char *hfs_last = (char *) "";
|
||||
char *last_prefix = NULL;
|
||||
|
||||
if (gen || only_gen_other) {
|
||||
if (!only_gen_other) {
|
||||
// skip writing Verilog cfg file if on read-only filesystem (e.g. NFS mounted read-only)
|
||||
cfs = (char *) "../verilog/" FN_PREFIX ".cfg.vh"; // included by verilog
|
||||
cfp = fopen(cfs, "w");
|
||||
if (cfp == NULL && errno != EROFS) sys_panic("fopen cfs");
|
||||
if (cfp) printf("generating include file: %s\n", cfs);
|
||||
}
|
||||
|
||||
for (p = preproc; p->str; p++) {
|
||||
if (p->ptype != PT_DEF) continue;
|
||||
if (debug) printf("PT_DEF %s def file %s\n", p->str, p->config_prefix);
|
||||
if (only_gen_other && strcmp(p->config_prefix, "other") != 0) continue;
|
||||
|
||||
if ((p->flags & TF_CFG_H) && cfp) {
|
||||
fprintf(cfp, "parameter RX_CFG = %d;\n", p->val);
|
||||
if (p->val > 0 && p->val < 14)
|
||||
fprintf(cfp, "`define USE_WF\n");
|
||||
}
|
||||
|
||||
if (!last_prefix || strcmp(last_prefix, p->config_prefix) != 0) {
|
||||
last_prefix = p->config_prefix;
|
||||
if (debug) printf("PT_DEF new config prefix: %s\n", p->config_prefix);
|
||||
|
||||
if (hfp) {
|
||||
fprintf(hfp, "\n#endif\n");
|
||||
fclose(hfp);
|
||||
hfp = NULL;
|
||||
}
|
||||
|
||||
if (vfp) {
|
||||
fprintf(vfp, "\n`endif\n");
|
||||
fclose(vfp);
|
||||
vfp = NULL;
|
||||
}
|
||||
|
||||
asprintf(&hfs, "%s/%s.gen.h", odir, p->config_prefix); // included by .cpp / .c
|
||||
if ((hfp = fopen(hfs, "w")) == NULL) sys_panic("fopen hfs");
|
||||
// odir should never be NFS mounted (hence potentially read-only)
|
||||
printf("generating include file: %s\n", hfs);
|
||||
|
||||
// skip writing Verilog gen file if on read-only filesystem (e.g. NFS mounted read-only)
|
||||
asprintf(&vfs, "../verilog/%s.gen.vh", p->config_prefix); // included by verilog
|
||||
vfp = fopen(vfs, "w");
|
||||
if (vfp == NULL && errno != EROFS) sys_panic("fopen vfs");
|
||||
if (vfp) printf("generating include file: %s\n", vfs);
|
||||
|
||||
const char *warn = "// this file auto-generated by the e_cpu assembler -- edits will be overwritten\n\n";
|
||||
fprintf(hfp, "%s#ifndef _GEN_%s_H_\n#define _GEN_%s_H_\n\n// from assembler DEF directives:\n\n",
|
||||
warn, p->config_prefix, p->config_prefix);
|
||||
if (vfp) fprintf(vfp, "%s`ifndef _GEN_%s_VH_\n`define _GEN_%s_VH_\n\n// from assembler DEF directives:\n\n",
|
||||
warn, p->config_prefix, p->config_prefix);
|
||||
}
|
||||
|
||||
if (p->flags & TF_DOT_H) {
|
||||
fprintf(hfp, "%s#define %s // DEFh 0x%x\n", p->val? "":"//", p->str, p->val);
|
||||
fprintf(hfp, "#define VAL_%s %d\n", p->str, p->val);
|
||||
if (vfp) fprintf(vfp, "%s`define %s // DEFh 0x%x\n", p->val? "":"//", p->str, p->val);
|
||||
}
|
||||
if (p->flags & TF_DOT_VP) {
|
||||
fprintf(hfp, "#define %s %d // DEFp 0x%x\n", p->str, p->val, p->val);
|
||||
if (vfp) {
|
||||
if (p->flags & TF_FIELD)
|
||||
fprintf(vfp, "\tparameter %s = %d\'d%d; // DEFp 0x%x\n", p->str, p->width, p->val, p->val);
|
||||
else
|
||||
fprintf(vfp, "\tparameter %s = %d; // DEFp 0x%x\n", p->str, p->val, p->val);
|
||||
fprintf(vfp, "%s`define DEF_%s\n", p->val? "":"//", p->str);
|
||||
}
|
||||
}
|
||||
if (p->flags & TF_DOT_VB) {
|
||||
fprintf(hfp, "#define %s %d // DEFb 0x%x\n", p->str, p->val, p->val);
|
||||
// determine bit position number
|
||||
if (p->val) for (i=0; ((1<<i) & p->val)==0; i++) ; else i=0;
|
||||
if (vfp) fprintf(vfp, "\tparameter %s = %d; // DEFb: bit number for value: 0x%x\n", p->str, i, p->val);
|
||||
}
|
||||
}
|
||||
|
||||
if (cfp) {
|
||||
fclose(cfp);
|
||||
cfp = NULL;
|
||||
}
|
||||
|
||||
fprintf(hfp, "\n#endif\n");
|
||||
fclose(hfp);
|
||||
hfp = NULL;
|
||||
|
||||
if (vfp) {
|
||||
fprintf(vfp, "\n`endif\n");
|
||||
fclose(vfp);
|
||||
vfp = NULL;
|
||||
}
|
||||
} else {
|
||||
if (debug) {
|
||||
for (p=preproc; p->str; p++) {
|
||||
if (p->ptype != PT_DEF) continue;
|
||||
char s[64];
|
||||
s[0] = '\0';
|
||||
if (p->flags & TF_CFG_H) strcat(s, "RX_CFG,");
|
||||
if (p->flags & TF_DOT_H) strcat(s, "DEFh,");
|
||||
if (p->flags & TF_DOT_VP) strcat(s, "DEFp,");
|
||||
if (p->flags & TF_DOT_VB) strcat(s, "DEFb,");
|
||||
printf("=> PT_DEF %s [%s] def file %s\n", p->str, s, p->config_prefix);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -818,10 +885,18 @@ int main(int argc, char *argv[])
|
|||
t = tp+1;
|
||||
if (t->ttype == TT_NUM) {
|
||||
val = t->num, operand_type=1;
|
||||
}
|
||||
// FIXME: doesn't catch missing label value (i.e. pointer to code that is undefined)
|
||||
if ((t->ttype == TT_SYM) && ((st = string_find(t->str)) && (st->flags & SF_DEFINED))) {
|
||||
val = st->val, operand_type=2;
|
||||
} else
|
||||
if (t->ttype == TT_SYM) {
|
||||
st = string_find(t->str);
|
||||
if (st) {
|
||||
if (st->flags & SF_DEFINED) {
|
||||
val = st->val, operand_type=2;
|
||||
} else {
|
||||
syntax(0, "symbol not defined: %s", t->str);
|
||||
}
|
||||
} else {
|
||||
syntax(0, "symbol not found: %s", t->str);
|
||||
}
|
||||
}
|
||||
if (debug || show_bin) printf("%04x u%d ", a, tp->num*8);
|
||||
if ((debug || show_bin) && operand_type==2) printf("%s ", st->str);
|
||||
|
@ -1024,17 +1099,6 @@ int main(int argc, char *argv[])
|
|||
fclose(ofp);
|
||||
close(bfd);
|
||||
|
||||
if (gen) {
|
||||
fprintf(hfp, "\n#endif\n");
|
||||
fclose(hfp);
|
||||
if (cfp) fclose(cfp);
|
||||
if (vfp) {
|
||||
fprintf(vfp, "\n`endif\n");
|
||||
fclose(vfp);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (write_coe) {
|
||||
fprintf(efp, ";\n");
|
||||
fclose(efp);
|
||||
|
|
|
@ -39,7 +39,7 @@ int num_strings();
|
|||
// tokens
|
||||
|
||||
typedef enum {
|
||||
TT_EOL=0, TT_LABEL, TT_SYM, TT_NUM, TT_OPC, TT_PRE, TT_OPR, TT_DATA, TT_STRUCT, TT_ITER, TT_DEF
|
||||
TT_EOL=0, TT_LABEL, TT_SYM, TT_NUM, TT_OPC, TT_PRE, TT_OPR, TT_DATA, TT_STRUCT, TT_ITER, TT_DEF, TT_FILE
|
||||
} token_type_e;
|
||||
|
||||
#define TF_RET 0x0001
|
||||
|
@ -125,6 +125,7 @@ typedef struct {
|
|||
// DEF
|
||||
int val, width;
|
||||
int flags;
|
||||
char config_prefix[16];
|
||||
|
||||
// STRUCT
|
||||
int size;
|
||||
|
@ -160,4 +161,6 @@ void syntax(int cond, const char *fmt, ...);
|
|||
void _assert(int cond, const char *str, const char *file, int line);
|
||||
void errmsg(const char *str, tokens_t *t = NULL);
|
||||
|
||||
char *str_ends_with(char *s, const char *cs);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -91,6 +91,16 @@ void _assert(int cond, const char *str, const char *file, int line)
|
|||
}
|
||||
|
||||
|
||||
// strings
|
||||
|
||||
char *str_ends_with(char *s, const char *cs)
|
||||
{
|
||||
int slen = strlen(cs);
|
||||
char *sp = s + strlen(s) - slen;
|
||||
return (strncmp(sp, cs, slen) == 0)? sp : NULL;
|
||||
}
|
||||
|
||||
|
||||
// string pool
|
||||
|
||||
#define NSTRS 8192
|
||||
|
@ -161,6 +171,7 @@ void token_dump(tokens_t *tp)
|
|||
case TT_DATA: printf("U%d ", tp->num*8); break;
|
||||
case TT_STRUCT: printf("{%s} ", tp->str); break;
|
||||
case TT_ITER: printf("<iter> "); break;
|
||||
case TT_FILE: printf("file:%s ", tp->str); break;
|
||||
default: printf("UNK ttype??? "); break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
; Copyright (c) 2014-2016 John Seamons, ZL/KF6VO
|
||||
|
||||
#include ../kiwi.config
|
||||
#include ../other.config
|
||||
|
||||
MACRO FreezeTOS
|
||||
wrEvt2 FREEZE_TOS
|
||||
|
@ -464,6 +465,12 @@ Commands:
|
|||
#endif
|
||||
|
||||
|
||||
#if USE_OTHER
|
||||
#include other.cmds.asm
|
||||
OTHER_CMDS
|
||||
#endif
|
||||
|
||||
|
||||
; ============================================================================
|
||||
; pseudo instructions
|
||||
; ============================================================================
|
||||
|
@ -670,7 +677,16 @@ rdBit16z:
|
|||
ENDR
|
||||
ret
|
||||
|
||||
// increment a u16 memory location
|
||||
// rdBit2 a 16-bit word
|
||||
rdBit2_16:
|
||||
push 0
|
||||
rdBit2_16z:
|
||||
REPEAT 16
|
||||
rdBit2
|
||||
ENDR
|
||||
ret
|
||||
|
||||
// increment a u16 memory location and keep value on stack
|
||||
incr16: ; addr
|
||||
dup ; addr addr
|
||||
fetch16 ; addr data
|
||||
|
@ -680,6 +696,17 @@ incr16: ; addr
|
|||
store16 ; data+1 addr
|
||||
drop.r ; data+1
|
||||
|
||||
// decrement a u16 memory location and keep value on stack
|
||||
decr16: ; addr
|
||||
dup ; addr addr
|
||||
fetch16 ; addr data
|
||||
push 1 ; addr data 1
|
||||
sub ; addr data-1
|
||||
dup ; addr data-1 data-1
|
||||
rot ; data-1 data-1 addr
|
||||
store16 ; data-1 addr
|
||||
drop.r ; data-1
|
||||
|
||||
|
||||
; ============================================================================
|
||||
; support
|
||||
|
@ -761,6 +788,15 @@ CmdGetCPUCtr:
|
|||
#endif
|
||||
|
||||
|
||||
; ============================================================================
|
||||
; OTHER
|
||||
; ============================================================================
|
||||
|
||||
#if USE_OTHER
|
||||
#include other.asm
|
||||
#endif
|
||||
|
||||
|
||||
; ============================================================================
|
||||
|
||||
// at end to check if firmware-assisted load of code worked
|
||||
|
|
|
@ -1,722 +0,0 @@
|
|||
|
||||
; ============================================================================
|
||||
; Homemade GPS Receiver
|
||||
; Copyright (C) 2013 Andrew Holme
|
||||
;
|
||||
; This program is free software: you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
; the Free Software Foundation, either version 3 of the License, or
|
||||
; (at your option) any later version.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
;
|
||||
; http://www.holmea.demon.co.uk/GPS/Main.htm
|
||||
; ============================================================================
|
||||
|
||||
; Copyright (c) 2014-2016 John Seamons, ZL/KF6VO
|
||||
|
||||
|
||||
; ============================================================================
|
||||
; GPS
|
||||
; ============================================================================
|
||||
|
||||
// UploadClock requires ch_NAV_MS and ch_NAV_BITS to be sequential
|
||||
|
||||
STRUCT GPS_CHAN
|
||||
u16 ch_NAV_MS 1 ; Milliseconds 0 ... 19
|
||||
u16 ch_NAV_BITS 1 ; Bit count
|
||||
u16 ch_NAV_GLITCH 1 ; Glitch count
|
||||
u16 ch_NAV_PREV 1 ; Last data bit = ip[15]
|
||||
u16 ch_NAV_BUF MAX_NAV_BITS / 16 ; NAV data buffer
|
||||
u64 ch_CG_FREQ 1 ; Loop integrator
|
||||
u64 ch_LO_FREQ 1 ; Loop integrator
|
||||
u32 ch_IQ 2 * 3 ; Last IQP, IQE, IQL
|
||||
u16 ch_CG_GAIN 2 ; KI, KP (stored as KP-KI)
|
||||
u16 ch_LO_GAIN 2 ; KI, KP (stored as KP-KI)
|
||||
u16 ch_unlocked 1
|
||||
u16 ch_E1B_mode 1
|
||||
u16 ch_LO_polarity 1
|
||||
ENDS
|
||||
|
||||
GPS_channels: REPEAT GPS_CHANS
|
||||
GPS_CHAN
|
||||
ENDR
|
||||
|
||||
GetGPSchanPtr: ; chan#
|
||||
push sizeof GPS_CHAN ; chan# sizeof
|
||||
mult ; offset
|
||||
push GPS_channels ; baseaddr
|
||||
add.r ; baseaddr + offset
|
||||
|
||||
; ============================================================================
|
||||
; e64 = ext64(LO:ip*qp or CG:pe-pl)
|
||||
; ki = ch_CG/LO_gain[0]
|
||||
; eki64 = e64 << ki
|
||||
; newF64 = *curF64 + eki64
|
||||
; *curF64 = newF64
|
||||
; kp_m_ki = ch_CG/LO_gain[1] // stored as kp-ki to simplify code
|
||||
; ekp64 = eki64 << kp_m_ki // i.e. e64 << kp, assumes kp >= ki
|
||||
; nco64 = newF64 + ekp64
|
||||
; nco32 = nco64 >> 32 // use most significant 32-bits
|
||||
;
|
||||
; effectively:
|
||||
; newF = curF + (err << ki)
|
||||
; curF = newF
|
||||
; nco = (newF + (err << kp)) >> 32
|
||||
|
||||
MACRO CloseLoop freq gain nco
|
||||
; errH L, i.e. pe-pl for C/A CG loop, ip*qp for LO loop
|
||||
r ; errH L this 1
|
||||
addi gain ; errH L &gain[0] 1
|
||||
fetch16 ; errH L ki 1
|
||||
shl64_n ; err<<ki:H L ki+8
|
||||
dup64 ; err<<ki:H L H L 2
|
||||
r ; err<<ki:H L H L this 1
|
||||
addi freq ; err<<ki:H L H L &freq 1
|
||||
fetch64 ; err<<ki:H L H L curFH L 19
|
||||
add64 ; err<<ki:H L newFH L 7
|
||||
dup64 ; err<<ki:H L newFH L H L 2
|
||||
r ; err<<ki:H L newFH L H L this 1
|
||||
addi freq ; err<<ki:H L newFH L H L &freq 1
|
||||
store64 ; err<<ki:H L newFH L &freq 17
|
||||
pop ; err<<ki:H L newFH L 1
|
||||
swap64 ; newFH L err<<ki:H L 6
|
||||
r ; newFH L err<<ki:H L this 1
|
||||
addi gain + 2 ; newFH L err<<ki:H L &gain[1] 1
|
||||
fetch16 ; newFH L err<<ki:H L kp-ki 1
|
||||
shl64_n ; newFH L err<<kp:H L kp-ki+8
|
||||
add64 ; nco64H L 7
|
||||
pop ; nco32 1
|
||||
wrReg nco ; 1
|
||||
ENDM ; TOTAL = kp + 98
|
||||
|
||||
; ============================================================================
|
||||
|
||||
#if GPS_INTEG_BITS 16
|
||||
// get 16-bit I/Q data
|
||||
GetCount: push 0 ; 0 20
|
||||
rdBit ; [15]
|
||||
GetCount2:
|
||||
REPEAT 15
|
||||
rdBit ;
|
||||
ENDR
|
||||
ret ; [15:0]
|
||||
|
||||
GetPower: call GetCount ; i 48
|
||||
dup
|
||||
mult ; i^2
|
||||
call GetCount ; i^2 q
|
||||
dup
|
||||
mult ; i^2 q^2
|
||||
add.r ; p
|
||||
#endif
|
||||
|
||||
#if GPS_INTEG_BITS 18
|
||||
// get 18-bit I/Q data
|
||||
GetCount: push 0 ; 0
|
||||
rdBit ; [17]
|
||||
GetCount2:
|
||||
REPEAT 17
|
||||
rdBit ;
|
||||
ENDR
|
||||
ret ; [17:0]
|
||||
|
||||
GetPower: call GetCount ; i[17:0]
|
||||
dup ; i[17:0] i[17:0]
|
||||
mult18 ; i^2:H L
|
||||
call GetCount ; i^2:H L q[17:0]
|
||||
dup ; i^2:H L q[17:0] q[17:0]
|
||||
mult18 ; i^2:H L q^2:H L
|
||||
add64 ; pH L
|
||||
ret ; pH L
|
||||
#endif
|
||||
|
||||
#if GPS_INTEG_BITS 20
|
||||
// get 20-bit I/Q data
|
||||
GetCount: push 0 ; 0
|
||||
rdBit ; [19]
|
||||
GetCount2:
|
||||
REPEAT 19
|
||||
rdBit ;
|
||||
ENDR
|
||||
ret ; [19:0]
|
||||
|
||||
GetPower: call GetCount ; i[19:0]
|
||||
dup ; i[19:0] i[19:0]
|
||||
mult18 ; i^2:H L
|
||||
call GetCount ; i^2:H L q[19:0]
|
||||
dup ; i^2:H L q[19:0] q[19:0]
|
||||
mult18 ; i^2:H L q^2:H L
|
||||
add64 ; pH L
|
||||
ret ; pH L
|
||||
#endif
|
||||
|
||||
; ============================================================================
|
||||
|
||||
MACRO GPS_sext_32
|
||||
#if GPS_INTEG_BITS 16
|
||||
sext16_32
|
||||
#endif
|
||||
#if GPS_INTEG_BITS 18
|
||||
sext18_32
|
||||
#endif
|
||||
#if GPS_INTEG_BITS 20
|
||||
sext20_32
|
||||
#endif
|
||||
ENDM
|
||||
|
||||
GPS_Method: ; this ch#
|
||||
#if USE_LOGGER
|
||||
swap ; ch# this
|
||||
over ; ch# this ch#
|
||||
wrReg SET_CHAN ; ch# this
|
||||
to_r ; ch#
|
||||
push iq_ch ; ch# &iq_ch
|
||||
fetch16 ; ch# iq_ch
|
||||
sub ; (ch# == iq_ch)?
|
||||
brNZ g_method_reg ; log only iq_ch channel
|
||||
|
||||
rdReg GET_CHAN_IQ ; 0
|
||||
rdBit ; Inav keep msb of I as nav data
|
||||
dup ; Inav ip[MSB]
|
||||
|
||||
call GetCount2 ; Inav ip
|
||||
dup ; Inav ip ip
|
||||
GPS_sext_32 ; Inav ip ip
|
||||
swap16
|
||||
wrEvt PUT_LOG ; save ip[31:16]
|
||||
swap16
|
||||
wrEvt PUT_LOG ; save ip[15:0]
|
||||
pop
|
||||
|
||||
call GetCount ; Inav ip qp
|
||||
dup ; Inav ip qp qp
|
||||
GPS_sext_32 ; Inav ip ip qp
|
||||
swap16
|
||||
wrEvt PUT_LOG ; save qp[31:16]
|
||||
swap16
|
||||
wrEvt PUT_LOG ; save qp[15:0]
|
||||
pop
|
||||
|
||||
br g_continue ; Inav ip qp
|
||||
#endif
|
||||
wrReg SET_CHAN ; this
|
||||
to_r ;
|
||||
|
||||
g_method_reg:
|
||||
rdReg GET_CHAN_IQ ; 0
|
||||
rdBit ; Inav keep msb of I as nav data
|
||||
dup ; Inav bit
|
||||
call GetCount2 ; Inav ip
|
||||
call GetCount ; Inav ip qp
|
||||
|
||||
g_continue:
|
||||
// save last prompt I/Q values
|
||||
dup64 ; Inav ip qp ip qp
|
||||
swap ; Inav ip ip qp ip
|
||||
GPS_sext_32 ; Inav ip ip qp ip
|
||||
r ; Inav ip qp qp ip this
|
||||
addi ch_IQ ; Inav ip qp qp ip &i
|
||||
store32 ; Inav ip qp qp &i
|
||||
addi 4 ; Inav ip qp qp &q
|
||||
swap ; Inav ip qp &q qp
|
||||
GPS_sext_32 ; Inav ip ip &q qp
|
||||
swap ; Inav ip qp qp &q
|
||||
store32 ; Inav ip qp &q
|
||||
drop ; Inav ip qp
|
||||
|
||||
|
||||
// for C/A and E1B
|
||||
// close the LO loop based on error term ip*qp
|
||||
|
||||
dup64 ; Inav ip qp ip qp
|
||||
#if GPS_INTEG_BITS 16
|
||||
mult ; Inav ip qp ip*qp
|
||||
conv32_64 ; Inav ip qp ip*qp:H ip*qp:L
|
||||
#else
|
||||
mult18 ; Inav ip qp ip*qp:H L
|
||||
#endif
|
||||
CloseLoop ch_LO_FREQ ch_LO_GAIN SET_LO_NCO
|
||||
|
||||
#if GPS_INTEG_BITS 16
|
||||
// NB: does not currently save pe and pl in channel data
|
||||
dup ; Inav ip qp qp
|
||||
mult ; Inav ip qp^2
|
||||
swap ; Inav qp^2 ip
|
||||
dup ; Inav qp^2 ip ip
|
||||
mult ; Inav qp^2 ip^2
|
||||
add ; Inav pp
|
||||
call GetPower ; Inav pp pe
|
||||
dup64 ; Inav pp pe pp pe
|
||||
sub ; Inav pp pe pp-pe
|
||||
sgn32_16 ; Inav pp pe (pp-pe)<0[15]
|
||||
rot ; Inav pe (pp-pe)<0 pp
|
||||
call GetPower ; Inav pe (pp-pe)<0 pp pl
|
||||
swap ; Inav pe (pp-pe)<0 pl pp
|
||||
over ; Inav pe (pp-pe)<0 pl pp pl
|
||||
sub ; Inav pe (pp-pe)<0 pl pp-pl
|
||||
sgn32_16 ; Inav pe (pp-pe)<0 pl (pp-pl)<0[15]
|
||||
rot ; Inav pe pl (pp-pl)<0 (pp-pe)<0
|
||||
or ; Inav pe pl unlocked:15
|
||||
r ; Inav pe pl unlocked this
|
||||
addi ch_unlocked ; Inav pe pl unlocked &ch_unlocked
|
||||
store16 ; Inav pe pl &ch_unlocked
|
||||
pop ; Inav pe pl
|
||||
sub ; Inav pe-pl
|
||||
conv32_64 ; Inav pe-pl:H L
|
||||
#else
|
||||
|
||||
// compute prompt power (pp)
|
||||
dup ; Inav ip qp qp
|
||||
mult18 ; Inav ip qp^2:H L
|
||||
rot ; Inav qp^2:H L ip
|
||||
dup ; Inav qp^2:H L ip ip
|
||||
mult18 ; Inav qp^2:H L ip^:2H L
|
||||
add64 ; Inav ppH L
|
||||
|
||||
|
||||
// for C/A and E1B begin with computing early-minus-late-power (EMLP)
|
||||
// i.e. pe-pl, (ie*ie+qe*qe) - (il*il+ql*ql)
|
||||
|
||||
// get power early (pe) and save
|
||||
call GetPower ; Inav ppH L peH L
|
||||
dup64 ; Inav ppH L peH L peH L
|
||||
r ; Inav ppH L peH L peH L this
|
||||
addi ch_IQ + 8 ; Inav ppH L peH L peH L &pei
|
||||
store64 ; Inav ppH L peH L &pei+4
|
||||
drop ; Inav ppH L peH L
|
||||
|
||||
// check pe < pp for unlock indicator
|
||||
over64 ; Inav ppH L peH L ppH L
|
||||
over64 ; Inav ppH L peH L ppH L peH L
|
||||
sub64 ; Inav ppH L peH L pp-pe:H L
|
||||
sgn64_16 ; Inav ppH L peH L (pp-pe)<0[15] ; r stack:
|
||||
r ; Inav ppH L peH L (pp-pe)<0[15] this ; this
|
||||
swap ; Inav ppH L peH L this (pp-pe)<0[15]
|
||||
to_r ; Inav ppH L peH L this ; this (pp-pe)<0[15]
|
||||
to_r ; Inav ppH L peH L ; this (pp-pe)<0[15] this
|
||||
swap64 ; Inav peH L ppH L
|
||||
|
||||
// get power late (pl) and save
|
||||
call GetPower ; Inav peH L ppH L plH L
|
||||
dup64 ; Inav ppH L ppH L plH L plH L ; this (pp-pe)<0[15] this
|
||||
r_from ; Inav ppH L ppH L plH L plH L this ; this (pp-pe)<0[15]
|
||||
addi ch_IQ + 16 ; Inav ppH L ppH L plH L plH L &pli
|
||||
store64 ; Inav ppH L ppH L plH L &pli+4
|
||||
drop ; Inav ppH L ppH L plH L
|
||||
|
||||
// check pl < pp for unlock indicator
|
||||
swap64 ; Inav peH L plH L ppH L
|
||||
over64 ; Inav peH L plH L ppH L plH L
|
||||
sub64 ; Inav peH L plH L pp-pl:H L
|
||||
sgn64_16 ; Inav peH L plH L (pp-pl)<0[15] ; this (pp-pe)<0[15]
|
||||
r_from ; Inav peH L plH L (pp-pl)<0[15] (pp-pe)<0[15] ; this
|
||||
|
||||
// set unlock indicator
|
||||
or ; Inav peH L plH L unlocked[15]
|
||||
r ; Inav peH L plH L unlocked this ; this
|
||||
addi ch_unlocked ; Inav peH L plH L unlocked &ch_unlocked
|
||||
store16 ; Inav peH L plH L &ch_unlocked
|
||||
pop ; Inav peH L plH L
|
||||
|
||||
// error term is pe-pl
|
||||
sub64 ; Inav pe-pl:H L
|
||||
|
||||
// C/A or E1B?
|
||||
r ; Inav pe-pl:H L this
|
||||
addi ch_E1B_mode ; Inav pe-pl:H L &ch_E1B_mode
|
||||
fetch16 ; Inav pe-pl:H L e1b_mode
|
||||
brNZ E1B_CG_loop ; Inav pe-pl:H L
|
||||
|
||||
// C/A BPSK
|
||||
// close the CG loop based on error term pe-pl
|
||||
br close_CG_loop ; Inav pe-pl:H L
|
||||
|
||||
|
||||
// E1B BOC(1,1)
|
||||
// close the CG loop based on ACF +/- AACF after determining locked LO polarity
|
||||
E1B_CG_loop: ; Inav pe-pl:H L
|
||||
r ; Inav pe-pl:H L this
|
||||
addi ch_LO_polarity ; Inav pe-pl:H L &ch_LO_polarity
|
||||
fetch16 ; Inav pe-pl:H L pol
|
||||
brZ close_CG_loop ; Inav pe-pl:H L // pol == 0: begin by using EMLP
|
||||
dup64 ; Inav ACF:H L ACF:H L // ACF = pe-pl error term
|
||||
abs64 ; Inav ACF:H L AACF:H L
|
||||
r ; Inav ACF:H L AACF:H L this
|
||||
addi ch_LO_polarity ; Inav ACF:H L AACF:H L &ch_LO_polarity
|
||||
fetch16 ; Inav ACF:H L AACF:H L pol
|
||||
push 1 ; Inav ACF:H L AACF:H L pol 1
|
||||
sub ; Inav ACF:H L AACF:H L (pol==1)?
|
||||
brNZ E1B_AACF_sub ; Inav ACF:H L AACF:H L
|
||||
E1B_AACF_add: ; // pol == 1: ACF+AACF
|
||||
add64 ; Inav (ACF+AACF)H L
|
||||
br E1B_AACF_end
|
||||
E1B_AACF_sub: ; // pol == 2: ACF-AACF
|
||||
sub64 ; Inav (ACF-AACF)H L
|
||||
E1B_AACF_end:
|
||||
// instead of dividing by 2 here the AGC is simply reduced by 2 when ACF mode is in effect
|
||||
#endif
|
||||
|
||||
|
||||
close_CG_loop: ; Inav errH L
|
||||
|
||||
CloseLoop ch_CG_FREQ ch_CG_GAIN SET_CG_NCO
|
||||
|
||||
r ; Inav this
|
||||
addi ch_E1B_mode ; Inav &ch_E1B_mode
|
||||
fetch16 ; Inav e1b_mode
|
||||
brNZ E1B_nav ; Inav
|
||||
|
||||
//
|
||||
// L1 C/A nav
|
||||
//
|
||||
// process NAV data (20 msec per bit @ 50 bps)
|
||||
// remember: loop is running at 1 kHz (1 msec), so 20 samples per bit
|
||||
//
|
||||
// if (Inav == ch_NAV_PREV) {
|
||||
// // NavSame
|
||||
// if (ch_NAV_MS != 19) ch_NAV_MS++, return
|
||||
//
|
||||
// stayed same for all 20 samples
|
||||
// ch_NAV_MS = 0
|
||||
// ch_NAV_BITS = (ch_NAV_BITS + 1) & (MAX_NAV_BITS - 1)
|
||||
// ch_NAV_BUF[] <<= |= Inav
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// // NavNotSame
|
||||
// ch_NAV_PREV = Inav
|
||||
//
|
||||
// if (ch_NAV_MS != 0) ch_NAV_GLITCH++ // changed in the middle of sampling
|
||||
//
|
||||
// // NavEdge
|
||||
// ch_NAV_MS = 1
|
||||
// return
|
||||
|
||||
|
||||
// if Inav == ch_NAV_PREV goto NavSame
|
||||
L1_nav:
|
||||
r ; Inav this
|
||||
addi ch_NAV_PREV ; Inav &prev
|
||||
fetch16 ; Inav prev
|
||||
over ; Inav prev Inav
|
||||
sub ; Inav diff
|
||||
brZ NavSame ; Inav
|
||||
|
||||
// NavNotSame
|
||||
r ; Inav this
|
||||
addi ch_NAV_PREV ; Inav &prev
|
||||
store16
|
||||
drop ;
|
||||
|
||||
// if ch_NAV_MS == 0 then goto NavEdge
|
||||
r ; this
|
||||
addi ch_NAV_MS ; &ms
|
||||
fetch16 ; ms
|
||||
brZ NavEdge
|
||||
|
||||
// ch_NAV_GLITCH++
|
||||
r ; this
|
||||
addi ch_NAV_GLITCH ; &g
|
||||
fetch16 ; g
|
||||
addi 1 ; g+1
|
||||
r ; g+1 this
|
||||
addi ch_NAV_GLITCH ; g+1 &g
|
||||
store16
|
||||
drop ;
|
||||
|
||||
NavEdge: // ch_NAV_MS = 1
|
||||
push 1 ; 1
|
||||
r_from ; 1 this NB: pops final this from r stack
|
||||
addi ch_NAV_MS ; 1 &ms
|
||||
store16
|
||||
drop.r ;
|
||||
|
||||
NavSame: // if ch_NAV_MS == 19 then goto NavSave
|
||||
r ; Inav this
|
||||
addi ch_NAV_MS ; Inav &ms
|
||||
dup ; Inav &ms &ms
|
||||
fetch16 ; Inav &ms ms
|
||||
push 19
|
||||
sub ; Inav &ms ms-19
|
||||
brZ NavSave ; Inav &ms
|
||||
|
||||
// else ch_NAV_MS++
|
||||
fetch16 ; Inav ms
|
||||
addi 1 ; Inav ms+1
|
||||
r_from ; Inav ms+1 this NB: pops final this from r stack
|
||||
addi ch_NAV_MS ; Inav ms+1 &ms
|
||||
store16
|
||||
drop ; Inav
|
||||
drop.r ;
|
||||
|
||||
NavSave: // ch_NAV_MS = 0
|
||||
push 0
|
||||
swap ; Inav 0 &ms
|
||||
store16
|
||||
drop ; Inav
|
||||
|
||||
// ch_NAV_BITS = (ch_NAV_BITS + 1) & (MAX_NAV_BITS - 1)
|
||||
r ; Inav this
|
||||
addi ch_NAV_BITS ; Inav &cnt
|
||||
fetch16 ; Inav cnt
|
||||
dup ; Inav cnt cnt
|
||||
addi 1 ; Inav cnt cnt+1
|
||||
push MAX_NAV_BITS - 1
|
||||
and ; Inav cnt wrapped
|
||||
r ; Inav cnt wrapped this
|
||||
addi ch_NAV_BITS ; Inav cnt wrapped &cnt
|
||||
store16
|
||||
drop ; Inav cnt
|
||||
|
||||
// ch_NAV_BUF[] <<= |= Inav
|
||||
REPEAT 4
|
||||
shr ; Inav cnt/16
|
||||
ENDR
|
||||
shl ; Inav offset
|
||||
r_from ; Inav offset this NB: pops final this from r stack
|
||||
addi ch_NAV_BUF ; Inav offset buf
|
||||
add ; Inav ptr
|
||||
dup ; Inav ptr ptr
|
||||
to_r ; Inav ptr
|
||||
fetch16 ; Inav old
|
||||
shl ; Inav old<<1
|
||||
add ; new
|
||||
r_from ; new ptr
|
||||
store16
|
||||
drop.r ;
|
||||
|
||||
//
|
||||
// E1B nav
|
||||
//
|
||||
// process NAV data (4 msec per bit @ 250 bps)
|
||||
// remember: loop is running at 250 Hz (4 msec), so 1 sample per bit
|
||||
//
|
||||
// ch_NAV_MS = 0
|
||||
// ch_NAV_BITS = (ch_NAV_BITS + 1) & (MAX_NAV_BITS - 1)
|
||||
// ch_NAV_BUF[] <<= |= Inav
|
||||
// return
|
||||
|
||||
E1B_nav: ; Inav
|
||||
//br L1_nav
|
||||
|
||||
// ch_NAV_MS = 0
|
||||
push 0 ; Inav 0
|
||||
r ; Inav 0 this
|
||||
addi ch_NAV_MS ; Inav 0 &ms
|
||||
store16 ; Inav &ms
|
||||
drop ; Inav
|
||||
|
||||
// ch_NAV_BITS = (ch_NAV_BITS + 1) & (MAX_NAV_BITS - 1)
|
||||
r ; Inav this
|
||||
addi ch_NAV_BITS ; Inav &cnt
|
||||
fetch16 ; Inav cnt
|
||||
dup ; Inav cnt cnt
|
||||
addi 1 ; Inav cnt cnt+1
|
||||
push MAX_NAV_BITS - 1
|
||||
and ; Inav cnt wrapped
|
||||
r ; Inav cnt wrapped this
|
||||
addi ch_NAV_BITS ; Inav cnt wrapped &cnt
|
||||
store16
|
||||
drop ; Inav cnt
|
||||
|
||||
// ch_NAV_BUF[] <<= |= Inav
|
||||
REPEAT 4
|
||||
shr ; Inav cnt/16
|
||||
ENDR
|
||||
shl ; Inav offset offset = cnt/16
|
||||
r_from ; Inav offset this NB: pops final this from r stack
|
||||
addi ch_NAV_BUF ; Inav offset buf
|
||||
add ; Inav ptr
|
||||
dup ; Inav ptr ptr
|
||||
to_r ; Inav ptr
|
||||
fetch16 ; Inav old
|
||||
shl ; Inav old<<1
|
||||
add ; new
|
||||
r_from ; new ptr
|
||||
store16 ; ptr
|
||||
drop.r ;
|
||||
|
||||
; ============================================================================
|
||||
|
||||
UploadChan: ; &GPS_channels[n]
|
||||
REPEAT sizeof GPS_CHAN / 2
|
||||
wrEvt GET_MEMORY
|
||||
ENDR
|
||||
ret
|
||||
|
||||
// "wrEvt GET_MEMORY" side-effect: auto mem ptr incr, i.e. 2x tos += 2 (explains "-4" below)
|
||||
UploadClock: ; &GPS_channels + ch_NAV_MS
|
||||
wrEvt GET_MEMORY ; GPS_channels++ -> ch_NAV_MS
|
||||
wrEvt GET_MEMORY ; GPS_channels++ -> ch_NAV_BITS
|
||||
|
||||
#if GPS_REPL_BITS 16
|
||||
rdBit16 ; 16-bit clock replica
|
||||
wrReg HOST_TX
|
||||
push 0 ; to simplify code always return 2 words
|
||||
wrReg HOST_TX
|
||||
#endif
|
||||
|
||||
#if GPS_REPL_BITS 18
|
||||
rdBit16 ; 18-bit clock replica sent across 2 words
|
||||
wrReg HOST_TX
|
||||
push 0
|
||||
rdBit
|
||||
rdBit
|
||||
wrReg HOST_TX
|
||||
#endif
|
||||
addi.r sizeof GPS_CHAN - 4 ; &GPS_channels++
|
||||
|
||||
UploadGlitches: ; &GPS_channels + ch_NAV_GLITCH
|
||||
wrEvt GET_MEMORY
|
||||
addi.r sizeof GPS_CHAN - 2 ; &(GPS_channels+1) + ch_NAV_GLITCH
|
||||
|
||||
; ============================================================================
|
||||
|
||||
MACRO SetRate member nco ;
|
||||
rdReg HOST_RX ; chan
|
||||
RdReg32 HOST_RX ; chan freq32
|
||||
swap ; freq32 chan
|
||||
over ; freq32 chan freq32
|
||||
over ; freq32 chan freq32 chan
|
||||
call GetGPSchanPtr ; freq32 chan freq32 this
|
||||
addi member ; freq32 chan freq32 &freq
|
||||
push 0 ; freq32 chan freq32 &freq 0
|
||||
swap ; freq32 chan freq64H L=0 &freq
|
||||
store64 ; freq32 chan &freq
|
||||
drop ; freq32 chan
|
||||
wrReg SET_CHAN ; freq32
|
||||
wrReg nco ;
|
||||
ENDM
|
||||
|
||||
MACRO SetGain member ;
|
||||
rdReg HOST_RX ; chan
|
||||
RdReg32 HOST_RX ; chan kp,ki
|
||||
swap ; kp,ki chan
|
||||
call GetGPSchanPtr ; kp,ki this
|
||||
addi member ; kp,ki &gain
|
||||
store32 ; &gain
|
||||
drop ;
|
||||
ENDM
|
||||
|
||||
; ============================================================================
|
||||
|
||||
CmdSample: wrEvt GPS_SAMPLER_RST
|
||||
ret
|
||||
|
||||
CmdSetMask: SetReg SET_MASK
|
||||
ret
|
||||
|
||||
CmdSetRateCG: SetRate ch_CG_FREQ SET_CG_NCO
|
||||
ret
|
||||
|
||||
CmdSetRateLO: SetRate ch_LO_FREQ SET_LO_NCO
|
||||
ret
|
||||
|
||||
CmdSetGainCG: SetGain ch_CG_GAIN
|
||||
ret
|
||||
|
||||
CmdSetGainLO: SetGain ch_LO_GAIN
|
||||
ret
|
||||
|
||||
CmdSetSat: rdReg HOST_RX ; chan#
|
||||
dup ; chan# chan#
|
||||
wrReg SET_CHAN ; chan#
|
||||
call GetGPSchanPtr ; this
|
||||
rdReg HOST_RX ; this sat#
|
||||
dup ; this sat# sat#
|
||||
wrReg SET_SAT ; this sat#
|
||||
push E1B_MODE ; this sat# E1B_MODE
|
||||
and ; this e1b_mode
|
||||
swap ; eb1_mode this
|
||||
addi ch_E1B_mode ; e1b_mode &ch_E1B_mode
|
||||
store16 ; &ch_E1B_mode
|
||||
pop.r ;
|
||||
|
||||
CmdSetE1Bcode: SetReg SET_CHAN
|
||||
SetReg SET_E1B_CODE
|
||||
ret
|
||||
|
||||
CmdSetPolarity: rdReg HOST_RX ; chan#
|
||||
call GetGPSchanPtr ; this
|
||||
rdReg HOST_RX ; this pol
|
||||
swap ; pol this
|
||||
addi ch_LO_polarity ; pol &ch_LO_polarity
|
||||
store16 ; &ch_LO_polarity
|
||||
pop.r ;
|
||||
|
||||
CmdPause: SetReg SET_CHAN
|
||||
SetReg SET_PAUSE
|
||||
ret
|
||||
|
||||
CmdGetGPSSamples:
|
||||
wrEvt HOST_RST
|
||||
push GPS_SAMPS
|
||||
up_more:
|
||||
wrEvt GET_GPS_SAMPLES
|
||||
push 1
|
||||
sub
|
||||
dup
|
||||
brNZ up_more
|
||||
drop.r
|
||||
|
||||
CmdGetChan: rdReg HOST_RX ; chan#
|
||||
wrEvt HOST_RST ; chan#
|
||||
call GetGPSchanPtr ; this
|
||||
call UploadChan ; this++
|
||||
drop.r
|
||||
|
||||
CmdGetClocks: wrEvt HOST_RST
|
||||
rdReg GET_SNAPSHOT ; 0
|
||||
rdBit16z ; 48-bit system clock
|
||||
wrReg HOST_TX
|
||||
rdBit16 ; "
|
||||
wrReg HOST_TX
|
||||
rdBit16 ; "
|
||||
wrReg HOST_TX
|
||||
|
||||
push 0
|
||||
REPEAT GPS_CHANS
|
||||
rdBit ; chan srq
|
||||
ENDR
|
||||
wrReg HOST_TX
|
||||
|
||||
push GPS_channels + ch_NAV_MS
|
||||
REPEAT GPS_CHANS
|
||||
call UploadClock
|
||||
ENDR
|
||||
drop.r
|
||||
|
||||
CmdGetGlitches: wrEvt HOST_RST
|
||||
push GPS_channels + ch_NAV_GLITCH
|
||||
REPEAT GPS_CHANS
|
||||
call UploadGlitches
|
||||
ENDR
|
||||
drop.r
|
||||
|
||||
iq_ch: u16 0
|
||||
|
||||
CmdIQLogReset: rdReg HOST_RX ; ch#
|
||||
push iq_ch ; ch# &iq_ch
|
||||
store16 ; &iq_ch
|
||||
wrEvt LOG_RST ; &iq_ch
|
||||
pop.r ;
|
||||
|
||||
CmdIQLogGet: wrEvt HOST_RST
|
||||
push GPS_IQ_SAMPS
|
||||
up_more_log:
|
||||
wrEvt GET_LOG ; IH
|
||||
wrEvt GET_LOG ; IL
|
||||
wrEvt GET_LOG ; QH
|
||||
wrEvt GET_LOG ; QL
|
||||
push 1
|
||||
sub
|
||||
dup
|
||||
brNZ up_more_log
|
||||
drop.r
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
; Copyright (c) 2021 John Seamons, ZL/KF6VO
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
; Copyright (c) 2021 John Seamons, ZL/KF6VO
|
||||
|
||||
MACRO OTHER_CMDS
|
||||
ENDM
|
|
@ -216,7 +216,10 @@ void CHANNEL::Reset(int sat, int codegen_init) {
|
|||
int prn = c->isE1B? Sats[c->sat].prn : 0;
|
||||
if (dbg && i == 0 && j == 0) printf("%d ", prn);
|
||||
int bit = (prn > 0)? E1B_code1[prn-1][(i*E1B_CODE_LOOP)+j] : 0;
|
||||
*code = (*code >> 1) | (bit? (1 << (GPS_CHANS-1)): 0); // ch0 in lsb
|
||||
#if GPS_CHANS > 0
|
||||
// this code won't even be reached if GPS_CHANS = 0
|
||||
*code = (*code >> 1) | (bit? (1 << (GPS_CHANS-1)): 0); // ch0 in lsb
|
||||
#endif
|
||||
//if (0 && j == 0) printf("ch%2d busy=%d isE1B=%d prn%02d code 0x%03x\n",
|
||||
// chan+1, busy? 1:0, busy? c->isE1B:0, prn, *code);
|
||||
}
|
||||
|
|
|
@ -42,7 +42,8 @@ void gps_main(int argc, char *argv[])
|
|||
// verilog limitations, see:
|
||||
// gps.v: "cmd_chan"
|
||||
// ipcore_bram_gps_4k_12b
|
||||
assert(GPS_CHANS <= MAX_GPS_CHANS);
|
||||
|
||||
assert(GPS_CHANS <= MAX_GPS_CHANS);
|
||||
|
||||
printf("GPS starting..\n");
|
||||
SearchParams(argc, argv);
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
// http://www.holmea.demon.co.uk/GPS/Main.htm
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __GPS_H_
|
||||
#define __GPS_H_
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
#include "kiwi.h"
|
||||
|
@ -305,5 +304,3 @@ void GPSstat(STAT st, double, int=0, int=0, int=0, int=0, double=0);
|
|||
unsigned bin(char *s, int n);
|
||||
void StatTask(void *param);
|
||||
void GPSstat_init();
|
||||
|
||||
#endif
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include "spi.h"
|
||||
#include "printf.h"
|
||||
|
||||
static bool ready = FALSE;
|
||||
|
||||
typedef struct {
|
||||
int lo_dop, ca_sft;
|
||||
int lo_dop2, ca_dop2;
|
||||
|
@ -47,6 +45,8 @@ stats_t stats[GPS_CHANS];
|
|||
|
||||
gps_t gps;
|
||||
|
||||
static bool ready = FALSE;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ Boston, MA 02110-1301, USA.
|
|||
#include "jsmn.h"
|
||||
#include "cfg.h"
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
#include "dx.h"
|
||||
#endif
|
||||
|
||||
|
@ -129,7 +129,7 @@ void cfg_reload()
|
|||
}
|
||||
}
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
dx_reload();
|
||||
#endif
|
||||
}
|
||||
|
|
43
kiwi.config
43
kiwi.config
|
@ -13,9 +13,18 @@
|
|||
#else
|
||||
DEFh USE_SDR 0
|
||||
#endif
|
||||
|
||||
//DEFp GPS_CHANS 0
|
||||
//DEFp GPS_CHANS 4
|
||||
DEFp GPS_CHANS 12
|
||||
|
||||
#if GPS_CHANS
|
||||
DEFh USE_GPS 1
|
||||
|
||||
|
||||
#else
|
||||
DEFh USE_GPS 0
|
||||
#endif
|
||||
|
||||
|
||||
// options
|
||||
|
||||
DEFh ARTIX_7A35 1
|
||||
|
@ -44,20 +53,25 @@
|
|||
DEFp FPGA_ID_RX8_WF2 4'd1
|
||||
DEFp FPGA_ID_RX3_WF3 4'd2
|
||||
DEFp FPGA_ID_RX14_WF0 4'd3
|
||||
DEFp FPGA_ID_GPS 4'd3
|
||||
DEFp FPGA_ID_OTHER 4'd4
|
||||
|
||||
DEFp NUM_CMDS_BASE 13
|
||||
DEFp NUM_CMDS_GPS 16
|
||||
|
||||
#if USE_SDR
|
||||
DEFp NUM_CMDS_SDR 12
|
||||
DEFh CFG_GPS_ONLY 0
|
||||
#else
|
||||
DEFp NUM_CMDS_SDR 0
|
||||
DEFh CFG_GPS_ONLY 1
|
||||
#endif
|
||||
|
||||
DEFp NUM_CMDS NUM_CMDS_BASE + NUM_CMDS_SDR + NUM_CMDS_GPS
|
||||
#if USE_GPS
|
||||
DEFp NUM_CMDS_GPS 16
|
||||
#else
|
||||
DEFp NUM_CMDS_GPS 0
|
||||
#endif
|
||||
|
||||
DEFp NUM_CMDS_OTHER 0
|
||||
|
||||
DEFp NUM_CMDS NUM_CMDS_BASE + NUM_CMDS_SDR + NUM_CMDS_GPS + NUM_CMDS_OTHER
|
||||
|
||||
|
||||
; ============================================================================
|
||||
|
@ -177,7 +191,6 @@
|
|||
|
||||
// gps
|
||||
DEFp MAX_GPS_CHANS 12 // limited by ipcore_bram_gps_4k_12b
|
||||
DEFp GPS_CHANS 12
|
||||
|
||||
//DEFp GPS_INTEG_BITS 16 // width of EPL I/Q integrators
|
||||
//DEFp GPS_INTEG_BITS 18 // width of EPL I/Q integrators
|
||||
|
@ -237,15 +250,18 @@
|
|||
// write reg (wrReg & op[10:0], one hot)
|
||||
DEFb HOST_TX 0x001
|
||||
DEFb SET_MASK 0x002
|
||||
#if USE_GPS
|
||||
DEFb SET_CHAN 0x004
|
||||
DEFb SET_CG_NCO 0x008
|
||||
DEFb SET_LO_NCO 0x010
|
||||
DEFb SET_SAT 0x020
|
||||
DEFb SET_E1B_CODE 0x040
|
||||
DEFb SET_PAUSE 0x080
|
||||
#endif
|
||||
DEFb SET_CTRL 0x400
|
||||
|
||||
// write reg (wrReg2 & op[10:0], one hot)
|
||||
#if USE_SDR
|
||||
DEFb SET_RX_CHAN 0x001
|
||||
DEFb SET_RX_FREQ 0x002
|
||||
DEFb FREQ_L 0x004
|
||||
|
@ -256,19 +272,23 @@
|
|||
DEFb SET_WF_FREQ 0x080
|
||||
DEFb SET_WF_DECIM 0x100
|
||||
DEFb WF_SAMPLER_RST 0x200
|
||||
#endif
|
||||
DEFb SET_CNT_MASK 0x400
|
||||
|
||||
// events (wrEvt & op[10:0], one hot)
|
||||
DEFb HOST_RST 0x001
|
||||
DEFb HOST_RDY 0x002
|
||||
DEFb GPS_SAMPLER_RST 0x004
|
||||
DEFb GET_GPS_SAMPLES 0x008 // data transfer goes directly to SPI BRAM
|
||||
DEFb GET_MEMORY 0x010 // causes ecpu data memory (with TOS pointer++) to SPI BRAM transfer
|
||||
DEFb GET_MEMORY 0x004 // causes ecpu data memory (with TOS pointer++) to SPI BRAM transfer
|
||||
#if USE_GPS
|
||||
DEFb GPS_SAMPLER_RST 0x008
|
||||
DEFb GET_GPS_SAMPLES 0x010 // data transfer goes directly to SPI BRAM
|
||||
DEFb GET_LOG 0x020 // data transfer goes directly to SPI BRAM
|
||||
DEFb PUT_LOG 0x040
|
||||
DEFb LOG_RST 0x080
|
||||
#endif
|
||||
|
||||
// events (wrEvt2 & op[10:0], one hot)
|
||||
#if USE_SDR
|
||||
DEFb GET_RX_SAMP 0x001 // data transfer goes directly to SPI BRAM
|
||||
DEFb RX_BUFFER_RST 0x002
|
||||
DEFb RX_GET_BUF_CTR 0x004 // data transfer goes directly to SPI BRAM
|
||||
|
@ -276,6 +296,7 @@
|
|||
DEFb GET_WF_SAMP_I 0x010 // data transfer goes directly to SPI BRAM
|
||||
DEFb GET_WF_SAMP_Q 0x020 // "
|
||||
DEFb CLR_RX_OVFL 0x040
|
||||
#endif
|
||||
DEFb FREEZE_TOS 0x080
|
||||
DEFb CPU_CTR_CLR 0x100
|
||||
DEFb CPU_CTR_ENA 0x200
|
||||
|
|
254
main.cpp
254
main.cpp
|
@ -37,9 +37,10 @@ Boston, MA 02110-1301, USA.
|
|||
#include "ext_int.h"
|
||||
#include "sanitizer.h"
|
||||
#include "shmem.h" // shmem_init()
|
||||
|
||||
#include "debug.h"
|
||||
|
||||
#include "other.gen.h"
|
||||
|
||||
#ifdef EV_MEAS
|
||||
#warning NB: EV_MEAS is enabled
|
||||
#endif
|
||||
|
@ -76,11 +77,23 @@ bool create_eeprom, need_hardware, kiwi_reg_debug, have_ant_switch_ext, gps_e1b_
|
|||
char **main_argv;
|
||||
char *fpga_file;
|
||||
|
||||
#ifdef USE_OTHER
|
||||
void other_task(void *param)
|
||||
{
|
||||
void other_main(int test_flag, int p0, int p1, int p2);
|
||||
other_main(test_flag, p0, p1, p2);
|
||||
kiwi_exit(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
int p_gps=0;
|
||||
bool ext_clk = false;
|
||||
bool ext_clk = false, err;
|
||||
#define FW_CONFIGURED -2 // -2 because -1 means "other" firmware and 0-N is Kiwi firmware
|
||||
#define FW_OTHER -1
|
||||
int fw_sel_override = FW_CONFIGURED;
|
||||
|
||||
version_maj = VERSION_MAJ;
|
||||
version_min = VERSION_MIN;
|
||||
|
@ -110,98 +123,87 @@ int main(int argc, char *argv[])
|
|||
shmem_init();
|
||||
printf_init();
|
||||
|
||||
for (i=1; i<argc; ) {
|
||||
if (strcmp(argv[i], "-kiwi_reg")==0) kiwi_reg_debug = TRUE;
|
||||
if (strcmp(argv[i], "-bg")==0) { background_mode = TRUE; bg=1; }
|
||||
if (strcmp(argv[i], "-fopt")==0) use_foptim = 1; // in EDATA_DEVEL mode use foptim version of files
|
||||
if (strcmp(argv[i], "-down")==0) down = 1;
|
||||
if (strcmp(argv[i], "+gps")==0) p_gps = 1;
|
||||
if (strcmp(argv[i], "-gps")==0) p_gps = -1;
|
||||
if (strcmp(argv[i], "+sdr")==0) do_sdr = 1;
|
||||
if (strcmp(argv[i], "-sdr")==0) do_sdr = 0;
|
||||
if (strcmp(argv[i], "+fft")==0) do_fft = 1;
|
||||
if (strcmp(argv[i], "-debug")==0) debug_printfs = true;
|
||||
|
||||
if (strcmp(argv[i], "-gps_debug")==0) {
|
||||
errno = 0;
|
||||
if (i+1 < argc && (gps_debug = strtol(argv[i+1], 0, 0), errno == 0)) {
|
||||
i++;
|
||||
} else {
|
||||
gps_debug = -1;
|
||||
}
|
||||
}
|
||||
#define ARG(s) (strcmp(argv[ai], s) == 0)
|
||||
#define ARGP() argv[++ai]
|
||||
#define ARGL(v) if (ai+1 < argc) (v) = strtol(argv[++ai], 0, 0);
|
||||
|
||||
for (int ai = 1; ai < argc; ) {
|
||||
if (ARG("-fw")) { ARGL(fw_sel_override); printf("firmware select override: %d\n", fw_sel_override); }
|
||||
if (ARG("-kiwi_reg")) kiwi_reg_debug = TRUE;
|
||||
if (ARG("-bg")) { background_mode = TRUE; bg=1; }
|
||||
if (ARG("-fopt")) use_foptim = 1; // in EDATA_DEVEL mode use foptim version of files
|
||||
if (ARG("-down")) down = 1;
|
||||
if (ARG("+gps")) p_gps = 1;
|
||||
if (ARG("-gps")) p_gps = -1;
|
||||
if (ARG("+sdr")) do_sdr = 1;
|
||||
if (ARG("-sdr")) do_sdr = 0;
|
||||
if (ARG("+fft")) do_fft = 1;
|
||||
if (ARG("-debug")) debug_printfs = true;
|
||||
if (ARG("-gps_debug")) { gps_debug = -1; ARGL(gps_debug); }
|
||||
if (ARG("-stats") || ARG("+stats")) { print_stats = STATS_TASK; ARGL(print_stats); }
|
||||
|
||||
if (strcmp(argv[i], "-stats")==0 || strcmp(argv[i], "+stats")==0) {
|
||||
errno = 0;
|
||||
if (i+1 < argc && (print_stats = strtol(argv[i+1], 0, 0), errno == 0)) {
|
||||
i++;
|
||||
} else {
|
||||
print_stats = STATS_TASK;
|
||||
}
|
||||
}
|
||||
|
||||
if (strcmp(argv[i], "-test")==0) { i++; test_flag = strtol(argv[i], 0, 0); printf("test_flag %d(0x%x)\n", test_flag, test_flag); }
|
||||
if (strcmp(argv[i], "-led")==0 || strcmp(argv[i], "-leds")==0) disable_led_task = true;
|
||||
if (strcmp(argv[i], "-gps_e1b")==0) gps_e1b_only = true;
|
||||
if (strcmp(argv[i], "-gps_var")==0) { i++; gps_var = strtol(argv[i], 0, 0); printf("gps_var %d\n", gps_var); }
|
||||
if (strcmp(argv[i], "-e1b_lo_gain")==0) { i++; gps_lo_gain = strtol(argv[i], 0, 0); printf("e1b_lo_gain %d\n", gps_lo_gain); }
|
||||
if (strcmp(argv[i], "-e1b_cg_gain")==0) { i++; gps_cg_gain = strtol(argv[i], 0, 0); printf("e1b_cg_gain %d\n", gps_cg_gain); }
|
||||
if (ARG("-test")) { ARGL(test_flag); printf("test_flag %d(0x%x)\n", test_flag, test_flag); }
|
||||
if (ARG("-led") || ARG("-leds")) disable_led_task = true;
|
||||
if (ARG("-gps_e1b")) gps_e1b_only = true;
|
||||
if (ARG("-gps_var")) { ARGL(gps_var); printf("gps_var %d\n", gps_var); }
|
||||
if (ARG("-e1b_lo_gain")) { ARGL(gps_lo_gain); printf("e1b_lo_gain %d\n", gps_lo_gain); }
|
||||
if (ARG("-e1b_cg_gain")) { ARGL(gps_cg_gain); printf("e1b_cg_gain %d\n", gps_cg_gain); }
|
||||
|
||||
if (strcmp(argv[i], "-debian")==0) { i++; debian_ver = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-ctrace")==0) { i++; web_caching_debug = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-ext")==0) ext_clk = true;
|
||||
if (strcmp(argv[i], "-use_spidev")==0) { i++; use_spidev = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-eeprom")==0) create_eeprom = true;
|
||||
if (strcmp(argv[i], "-sim")==0) wf_sim = 1;
|
||||
if (strcmp(argv[i], "-real")==0) wf_real = 1;
|
||||
if (strcmp(argv[i], "-time")==0) wf_time = 1;
|
||||
if (strcmp(argv[i], "-port")==0) { i++; alt_port = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-p")==0) { alt_port = 8074; }
|
||||
if (strcmp(argv[i], "-dump")==0 || strcmp(argv[i], "+dump")==0) { i++; ev_dump = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-flip")==0) wf_flip = 1;
|
||||
if (strcmp(argv[i], "-start")==0) wf_start = 1;
|
||||
if (strcmp(argv[i], "-mult")==0) wf_mult = 1;
|
||||
if (strcmp(argv[i], "-multgen")==0) wf_mult_gen = 1;
|
||||
if (strcmp(argv[i], "-wmax")==0) wf_max = 1;
|
||||
if (strcmp(argv[i], "-olap")==0) wf_olap = 1;
|
||||
if (strcmp(argv[i], "-meas")==0) meas = 1;
|
||||
if (ARG("-debian")) ARGL(debian_ver);
|
||||
if (ARG("-ctrace")) ARGL(web_caching_debug);
|
||||
if (ARG("-ext")) ext_clk = true;
|
||||
if (ARG("-use_spidev")) ARGL(use_spidev);
|
||||
if (ARG("-eeprom")) create_eeprom = true;
|
||||
if (ARG("-sim")) wf_sim = 1;
|
||||
if (ARG("-real")) wf_real = 1;
|
||||
if (ARG("-time")) wf_time = 1;
|
||||
if (ARG("-port")) ARGL(alt_port);
|
||||
if (ARG("-p")) { alt_port = 8074; }
|
||||
if (ARG("-dump") || ARG("+dump")) ARGL(ev_dump);
|
||||
if (ARG("-flip")) wf_flip = 1;
|
||||
if (ARG("-start")) wf_start = 1;
|
||||
if (ARG("-mult")) wf_mult = 1;
|
||||
if (ARG("-multgen")) wf_mult_gen = 1;
|
||||
if (ARG("-wmax")) wf_max = 1;
|
||||
if (ARG("-olap")) wf_olap = 1;
|
||||
if (ARG("-meas")) meas = 1;
|
||||
|
||||
// do_fft
|
||||
if (strcmp(argv[i], "-none")==0) unwrap = 0;
|
||||
if (strcmp(argv[i], "-norm")==0) unwrap = 1;
|
||||
if (strcmp(argv[i], "-rev")==0) unwrap = 2;
|
||||
if (strcmp(argv[i], "-qi")==0) rev_iq = 1;
|
||||
if (strcmp(argv[i], "-ineg")==0) ineg = 1;
|
||||
if (strcmp(argv[i], "-qneg")==0) qneg = 1;
|
||||
if (strcmp(argv[i], "-file")==0) fft_file = 1;
|
||||
if (strcmp(argv[i], "-fftsize")==0) { i++; fftsize = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-fftuse")==0) { i++; fftuse = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-np")==0) { i++; noisePwr = strtol(argv[i], 0, 0); }
|
||||
if (ARG("-none")) unwrap = 0;
|
||||
if (ARG("-norm")) unwrap = 1;
|
||||
if (ARG("-rev")) unwrap = 2;
|
||||
if (ARG("-qi")) rev_iq = 1;
|
||||
if (ARG("-ineg")) ineg = 1;
|
||||
if (ARG("-qneg")) qneg = 1;
|
||||
if (ARG("-file")) fft_file = 1;
|
||||
if (ARG("-fftsize")) ARGL(fftsize);
|
||||
if (ARG("-fftuse")) ARGL(fftuse);
|
||||
if (ARG("-np")) ARGL(noisePwr);
|
||||
|
||||
if (strcmp(argv[i], "-rcordic")==0) rx_cordic = 1;
|
||||
if (strcmp(argv[i], "-rcic")==0) rx_cic = 1;
|
||||
if (strcmp(argv[i], "-rcic2")==0) rx_cic2 = 1;
|
||||
if (strcmp(argv[i], "-rdump")==0) rx_dump = 1;
|
||||
if (strcmp(argv[i], "-wcordic")==0) wf_cordic = 1;
|
||||
if (strcmp(argv[i], "-wcic")==0) wf_cic = 1;
|
||||
if (strcmp(argv[i], "-clkg")==0) spi_clkg = 1;
|
||||
if (ARG("-rcordic")) rx_cordic = 1;
|
||||
if (ARG("-rcic")) rx_cic = 1;
|
||||
if (ARG("-rcic2")) rx_cic2 = 1;
|
||||
if (ARG("-rdump")) rx_dump = 1;
|
||||
if (ARG("-wcordic")) wf_cordic = 1;
|
||||
if (ARG("-wcic")) wf_cic = 1;
|
||||
if (ARG("-clkg")) spi_clkg = 1;
|
||||
|
||||
if (strcmp(argv[i], "-avg")==0) { i++; navg = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-tone")==0) { i++; tone = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-slc")==0) { i++; do_slice = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-rx")==0) { i++; rx_num = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-wf")==0) { i++; wf_num = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-spispeed")==0) { i++; spi_speed = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-spi")==0) { i++; spi_delay = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-ch")==0) { i++; gps_chans = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-y")==0) { i++; rx_yield = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-p0")==0) { i++; p0 = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-p1")==0) { i++; p1 = strtol(argv[i], 0, 0); }
|
||||
if (strcmp(argv[i], "-p2")==0) { i++; p2 = strtol(argv[i], 0, 0); }
|
||||
if (ARG("-avg")) ARGL(navg);
|
||||
if (ARG("-tone")) ARGL(tone);
|
||||
if (ARG("-slc")) ARGL(do_slice);
|
||||
if (ARG("-rx")) ARGL(rx_num);
|
||||
if (ARG("-wf")) ARGL(wf_num);
|
||||
if (ARG("-spispeed")) ARGL(spi_speed);
|
||||
if (ARG("-spi")) ARGL(spi_delay);
|
||||
if (ARG("-ch")) ARGL(gps_chans);
|
||||
if (ARG("-y")) ARGL(rx_yield);
|
||||
if (ARG("-p0")) { ARGL(p0); printf("-p0 = %d\n", p0); }
|
||||
if (ARG("-p1")) { ARGL(p1); printf("-p1 = %d\n", p1); }
|
||||
if (ARG("-p2")) { ARGL(p2); printf("-p2 = %d\n", p2); }
|
||||
|
||||
i++;
|
||||
while (i<argc && ((argv[i][0] != '+') && (argv[i][0] != '-'))) {
|
||||
i++;
|
||||
ai++;
|
||||
while (ai < argc && ((argv[ai][0] != '+') && (argv[ai][0] != '-'))) {
|
||||
ai++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -253,9 +255,12 @@ int main(int argc, char *argv[])
|
|||
cfg_reload();
|
||||
clock_init();
|
||||
|
||||
bool err;
|
||||
fw_sel = admcfg_int("firmware_sel", &err, CFG_OPTIONAL);
|
||||
if (err) fw_sel = FW_SEL_SDR_RX4_WF4;
|
||||
if (fw_sel_override != FW_CONFIGURED) {
|
||||
fw_sel = fw_sel_override;
|
||||
} else {
|
||||
fw_sel = admcfg_int("firmware_sel", &err, CFG_OPTIONAL);
|
||||
if (err) fw_sel = FW_SEL_SDR_RX4_WF4;
|
||||
}
|
||||
|
||||
if (fw_sel == FW_SEL_SDR_RX4_WF4) {
|
||||
fpga_id = FPGA_ID_RX4_WF4;
|
||||
|
@ -292,40 +297,42 @@ int main(int argc, char *argv[])
|
|||
rx_decim = RX_DECIM_14CH;
|
||||
nrx_bufs = RXBUF_SIZE_14CH / NRX_SPI;
|
||||
lprintf("firmware: SDR_RX14_WF0\n");
|
||||
} else
|
||||
if (VAL_CFG_GPS_ONLY) {
|
||||
fpga_id = FPGA_ID_GPS;
|
||||
lprintf("firmware: GPS_ONLY\n");
|
||||
} else
|
||||
panic("fw_sel");
|
||||
} else {
|
||||
fpga_id = FPGA_ID_OTHER;
|
||||
lprintf("firmware: OTHER\n");
|
||||
}
|
||||
|
||||
asprintf(&fpga_file, "rx%d.wf%d", rx_chans, wf_chans);
|
||||
if (fpga_id == FPGA_ID_OTHER) {
|
||||
fpga_file = strdup((char *) "other");
|
||||
} else {
|
||||
asprintf(&fpga_file, "rx%d.wf%d", rx_chans, wf_chans);
|
||||
|
||||
bool no_wf = cfg_bool("no_wf", &err, CFG_OPTIONAL);
|
||||
if (err) no_wf = false;
|
||||
if (no_wf) wf_chans = 0;
|
||||
bool no_wf = cfg_bool("no_wf", &err, CFG_OPTIONAL);
|
||||
if (err) no_wf = false;
|
||||
if (no_wf) wf_chans = 0;
|
||||
|
||||
lprintf("firmware: rx_chans=%d wf_chans=%d\n", rx_chans, wf_chans);
|
||||
lprintf("firmware: rx_chans=%d wf_chans=%d\n", rx_chans, wf_chans);
|
||||
|
||||
assert(rx_chans <= MAX_RX_CHANS);
|
||||
assert(wf_chans <= MAX_WF_CHANS);
|
||||
assert(rx_chans <= MAX_RX_CHANS);
|
||||
assert(wf_chans <= MAX_WF_CHANS);
|
||||
|
||||
nrx_samps = NRX_SAMPS_CHANS(rx_chans);
|
||||
nrx_samps_loop = nrx_samps * rx_chans / NRX_SAMPS_RPT;
|
||||
nrx_samps_rem = (nrx_samps * rx_chans) - (nrx_samps_loop * NRX_SAMPS_RPT);
|
||||
snd_intr_usec = 1e6 / ((float) snd_rate/nrx_samps);
|
||||
lprintf("firmware: RX bufs=%d samps=%d loop=%d rem=%d intr_usec=%d\n",
|
||||
nrx_bufs, nrx_samps, nrx_samps_loop, nrx_samps_rem, snd_intr_usec);
|
||||
nrx_samps = NRX_SAMPS_CHANS(rx_chans);
|
||||
nrx_samps_loop = nrx_samps * rx_chans / NRX_SAMPS_RPT;
|
||||
nrx_samps_rem = (nrx_samps * rx_chans) - (nrx_samps_loop * NRX_SAMPS_RPT);
|
||||
snd_intr_usec = 1e6 / ((float) snd_rate/nrx_samps);
|
||||
lprintf("firmware: RX bufs=%d samps=%d loop=%d rem=%d intr_usec=%d\n",
|
||||
nrx_bufs, nrx_samps, nrx_samps_loop, nrx_samps_rem, snd_intr_usec);
|
||||
|
||||
assert(nrx_bufs <= MAX_NRX_BUFS);
|
||||
assert(nrx_samps <= MAX_NRX_SAMPS);
|
||||
assert(nrx_samps < FASTFIR_OUTBUF_SIZE); // see data_pump.h
|
||||
assert(nrx_bufs <= MAX_NRX_BUFS);
|
||||
assert(nrx_samps <= MAX_NRX_SAMPS);
|
||||
assert(nrx_samps < FASTFIR_OUTBUF_SIZE); // see data_pump.h
|
||||
|
||||
lprintf("firmware: WF xfer=%d samps=%d rpt=%d loop=%d rem=%d\n",
|
||||
NWF_NXFER, NWF_SAMPS, NWF_SAMPS_RPT, NWF_SAMPS_LOOP, NWF_SAMPS_REM);
|
||||
lprintf("firmware: WF xfer=%d samps=%d rpt=%d loop=%d rem=%d\n",
|
||||
NWF_NXFER, NWF_SAMPS, NWF_SAMPS_RPT, NWF_SAMPS_LOOP, NWF_SAMPS_REM);
|
||||
|
||||
rx_num = rx_chans, wf_num = wf_chans;
|
||||
monitors_max = (rx_chans * N_CAMP) + N_QUEUERS;
|
||||
rx_num = rx_chans, wf_num = wf_chans;
|
||||
monitors_max = (rx_chans * N_CAMP) + N_QUEUERS;
|
||||
}
|
||||
|
||||
TaskInitCfg();
|
||||
|
||||
|
@ -375,19 +382,26 @@ int main(int argc, char *argv[])
|
|||
|
||||
rx_server_init();
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
extint_setup();
|
||||
#endif
|
||||
#ifdef USE_SDR
|
||||
extint_setup();
|
||||
#endif
|
||||
|
||||
web_server_init(WS_INIT_START);
|
||||
|
||||
if (do_gps) {
|
||||
if (!GPS_CHANS) panic("no GPS_CHANS configured");
|
||||
gps_main(argc, argv);
|
||||
#ifdef USE_GPS
|
||||
gps_main(argc, argv);
|
||||
#endif
|
||||
}
|
||||
|
||||
CreateTask(stat_task, NULL, MAIN_PRIORITY);
|
||||
|
||||
#ifdef USE_OTHER
|
||||
if (fw_sel == FW_OTHER)
|
||||
CreateTask(other_task, NULL, MAIN_PRIORITY);
|
||||
#endif
|
||||
|
||||
// run periodic housekeeping functions
|
||||
while (TRUE) {
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
// other configuration
|
||||
|
||||
DEFh USE_OTHER 0
|
||||
|
||||
#if USE_OTHER
|
||||
|
||||
#endif
|
|
@ -392,6 +392,27 @@ void spi_set_noduplex(SPI_CMD cmd, uint16_t wparam, uint32_t lparam) {
|
|||
spi_check_wakeup(cmd); // must be done outside the lock
|
||||
}
|
||||
|
||||
void spi_set4_noduplex(SPI_CMD cmd, uint16_t wparam, uint16_t w2param, uint16_t w3param, uint16_t w4param) {
|
||||
lock_enter(&spi_lock); // block other threads
|
||||
int wait = wait_avail("spi_set_noduplex", cmd);
|
||||
SPI_MOSI *tx = &SPI_SHMEM->spi_tx[2];
|
||||
tx->data2.cmd = cmd; tx->data2.wparam = wparam; tx->data2.w2param = w2param; tx->data2.w3param = w3param; tx->data2.w4param = w4param;
|
||||
evSpiCmd(EC_EVENT, EV_SPILOOP, -1, "spi_setND", evprintf("ENTER %s(%d) %d %d", cmds[cmd], cmd, wparam, lparam));
|
||||
spi_scan(wait, tx); // Send request
|
||||
|
||||
#ifdef STACK_CHECK
|
||||
spi_stack_check(wait, tx);
|
||||
#else
|
||||
tx->data = _CmdFlush;
|
||||
evSpiCmd(EC_EVENT, EV_SPILOOP, -1, "spi_setND", evprintf("CmdNoDuplex self-response"));
|
||||
wait = wait_avail("spi_set_noduplex RESPONSE", cmd);
|
||||
spi_scan(wait, tx); // Collect response to our own request
|
||||
#endif
|
||||
evSpiCmd(EC_EVENT, EV_SPILOOP, -1, "spi_setND", "DONE");
|
||||
lock_leave(&spi_lock); // release block
|
||||
spi_check_wakeup(cmd); // must be done outside the lock
|
||||
}
|
||||
|
||||
void spi_set_buf_noduplex(SPI_CMD cmd, SPI_MOSI *tx, int bytes) {
|
||||
lock_enter(&spi_lock); // block other threads
|
||||
int wait = wait_avail("spi_set_buf_noduplex", cmd);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
typedef enum { // Embedded CPU commands, order must match 'Commands:' table in .asm code
|
||||
|
||||
// general
|
||||
CmdPing,
|
||||
CmdPing = 0,
|
||||
CmdLoad,
|
||||
CmdPing2,
|
||||
CmdCPUCtrClr,
|
||||
|
@ -80,7 +80,42 @@ typedef enum { // Embedded CPU commands, order must match 'Commands:' table in .
|
|||
CmdCheckLast,
|
||||
|
||||
// pseudo for debugging
|
||||
CmdPumpFlush
|
||||
CmdPumpFlush,
|
||||
|
||||
#ifndef USE_SDR
|
||||
CmdSetRXFreq = 0,
|
||||
CmdSetRXNsamps = 0,
|
||||
CmdSetGenFreq = 0,
|
||||
CmdSetGenAttn = 0,
|
||||
CmdGetRX = 0,
|
||||
CmdClrRXOvfl = 0,
|
||||
CmdSetWFFreq = 0,
|
||||
CmdSetWFDecim = 0,
|
||||
CmdWFReset = 0,
|
||||
CmdGetWFSamples = 0,
|
||||
CmdGetWFContSamps = 0,
|
||||
CmdSetOVMask = 0,
|
||||
#endif
|
||||
|
||||
#ifndef USE_GPS
|
||||
CmdSample = 0,
|
||||
CmdSetMask = 0,
|
||||
CmdSetRateCG = 0,
|
||||
CmdSetRateLO = 0,
|
||||
CmdSetGainCG = 0,
|
||||
CmdSetGainLO = 0,
|
||||
CmdSetSat = 0,
|
||||
CmdSetE1Bcode = 0,
|
||||
CmdSetPolarity = 0,
|
||||
CmdPause = 0,
|
||||
CmdGetGPSSamples = 0,
|
||||
CmdGetChan = 0,
|
||||
CmdGetClocks = 0,
|
||||
CmdGetGlitches = 0,
|
||||
CmdIQLogReset = 0,
|
||||
CmdIQLogGet = 0,
|
||||
#endif
|
||||
|
||||
} SPI_CMD;
|
||||
|
||||
static const char *cmds[] = {
|
||||
|
@ -142,6 +177,7 @@ static const char *cmds[] = {
|
|||
"CmdPumpFlush"
|
||||
};
|
||||
|
||||
|
||||
typedef struct {
|
||||
u4_t xfers, flush, bytes;
|
||||
u4_t retry;
|
||||
|
@ -190,6 +226,15 @@ typedef struct {
|
|||
uint8_t _pad_; // 3 LSBs stay in ha_disr[2:0]
|
||||
} spi_mosi_data_t;
|
||||
|
||||
typedef struct {
|
||||
uint16_t cmd;
|
||||
uint16_t wparam;
|
||||
uint16_t w2param;
|
||||
uint16_t w3param;
|
||||
uint16_t w4param;
|
||||
uint8_t _pad_; // 3 LSBs stay in ha_disr[2:0]
|
||||
} spi_mosi_data2_t;
|
||||
|
||||
typedef struct {
|
||||
PAD_FRONT;
|
||||
union {
|
||||
|
@ -197,6 +242,7 @@ typedef struct {
|
|||
u1_t bytes[SPIBUF_B]; // because tx/rx DMA sizes equal
|
||||
u2_t words[SPIBUF_W];
|
||||
spi_mosi_data_t data;
|
||||
spi_mosi_data2_t data2;
|
||||
};
|
||||
PAD_BACK;
|
||||
} DMA_ALIGNMENT SPI_MOSI;
|
||||
|
@ -242,6 +288,7 @@ void spi_stats();
|
|||
void _spi_set(SPI_CMD cmd, uint16_t wparam=0, uint32_t lparam=0);
|
||||
void spi_set3(SPI_CMD cmd, uint16_t wparam, uint32_t lparam, uint16_t w2param);
|
||||
void spi_set_noduplex(SPI_CMD cmd, uint16_t wparam=0, uint32_t lparam=0);
|
||||
void spi_set4_noduplex(SPI_CMD cmd, uint16_t wparam=0, uint16_t w2param=0, uint16_t w3param=0, uint16_t w4param=0);
|
||||
void spi_set_buf_noduplex(SPI_CMD cmd, SPI_MOSI *tx, int bytes);
|
||||
|
||||
void _spi_get(SPI_CMD cmd, SPI_MISO *rx, int bytes, uint16_t wparam=0, uint32_t lparam=0);
|
||||
|
|
|
@ -127,9 +127,9 @@ typedef struct conn_st {
|
|||
// conn_t.type
|
||||
#define AJAX_VERSION 0
|
||||
#define STREAM_ADMIN 1
|
||||
#define STREAM_SOUND 2
|
||||
#define STREAM_WATERFALL 3
|
||||
#define STREAM_MFG 4
|
||||
#define STREAM_MFG 2
|
||||
#define STREAM_SOUND 3
|
||||
#define STREAM_WATERFALL 4
|
||||
#define STREAM_EXT 5
|
||||
#define STREAM_MONITOR 6
|
||||
#define AJAX_DISCOVERY 7
|
||||
|
|
|
@ -312,7 +312,7 @@ static void data_pump(void *param)
|
|||
|
||||
void data_pump_start_stop()
|
||||
{
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
bool no_users = true;
|
||||
for (int i = 0; i < rx_chans; i++) {
|
||||
rx_chan_t *rx = &rx_channels[i];
|
||||
|
|
|
@ -38,7 +38,7 @@ Boston, MA 02110-1301, USA.
|
|||
#include "ext_int.h"
|
||||
#include "wspr.h"
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
#include "data_pump.h"
|
||||
#include "dx.h"
|
||||
#endif
|
||||
|
@ -73,7 +73,7 @@ const int mode_offset[N_MODE] = {
|
|||
0, 0, 1500, -1500, 0, 0, 0, 0, 0, 1350, -1350, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
|
||||
static dx_t *dx_list_first, *dx_list_last;
|
||||
|
||||
|
@ -699,7 +699,7 @@ bool rx_common_cmd(const char *stream_name, conn_t *conn, char *cmd)
|
|||
// dx
|
||||
////////////////////////////////
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
|
||||
#define DX_SPACING_ZOOM_THRESHOLD 5
|
||||
#define DX_SPACING_THRESHOLD_PX 10
|
||||
|
@ -1063,7 +1063,7 @@ bool rx_common_cmd(const char *stream_name, conn_t *conn, char *cmd)
|
|||
sb = kstr_asprintf(sb, ",\"ga\":%d,\"gt\":%d,\"gg\":%d,\"gf\":%d,\"gc\":%.6f,\"go\":%d",
|
||||
gps.acquiring, gps.tracking, gps.good, gps.fixes, adc_clock_system()/1e6, clk.adc_gps_clk_corrections);
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
//printf("ch=%d ug=%d lat=%d\n", ch, wspr_c.GPS_update_grid, (gps.StatLat != 0));
|
||||
if (wspr_c.GPS_update_grid && gps.StatLat) {
|
||||
latLon_t loc;
|
||||
|
@ -1118,7 +1118,7 @@ bool rx_common_cmd(const char *stream_name, conn_t *conn, char *cmd)
|
|||
}
|
||||
break;
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
|
||||
case CMD_GET_USERS:
|
||||
if (strcmp(cmd, "SET GET_USERS") == 0) {
|
||||
|
@ -1266,7 +1266,7 @@ bool rx_common_cmd(const char *stream_name, conn_t *conn, char *cmd)
|
|||
break;
|
||||
}
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
// used by signal generator etc.
|
||||
case CMD_WF_COMP: {
|
||||
int wf_comp;
|
||||
|
|
|
@ -35,7 +35,7 @@ Boston, MA 02110-1301, USA.
|
|||
#include "net.h"
|
||||
#include "data_pump.h"
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
#include "ext_int.h"
|
||||
#endif
|
||||
|
||||
|
@ -56,10 +56,10 @@ rx_chan_t rx_channels[MAX_RX_CHANS];
|
|||
rx_stream_t rx_streams[] = {
|
||||
{ AJAX_VERSION, "VER" },
|
||||
{ STREAM_ADMIN, "admin", &c2s_admin, &c2s_admin_setup, &c2s_admin_shutdown, TASK_MED_PRIORITY },
|
||||
#ifndef CFG_GPS_ONLY
|
||||
{ STREAM_MFG, "mfg", &c2s_mfg, &c2s_mfg_setup, NULL, TASK_MED_PRIORITY },
|
||||
#ifdef USE_SDR
|
||||
{ STREAM_SOUND, "SND", &c2s_sound, &c2s_sound_setup, &c2s_sound_shutdown, SND_PRIORITY },
|
||||
{ STREAM_WATERFALL, "W/F", &c2s_waterfall, &c2s_waterfall_setup, &c2s_waterfall_shutdown, WF_PRIORITY },
|
||||
{ STREAM_MFG, "mfg", &c2s_mfg, &c2s_mfg_setup, NULL, TASK_MED_PRIORITY },
|
||||
{ STREAM_EXT, "EXT", &extint_c2s, &extint_setup_c2s, NULL, TASK_MED_PRIORITY },
|
||||
{ STREAM_MONITOR, "MON", &c2s_mon, &c2s_mon_setup, NULL, TASK_MED_PRIORITY },
|
||||
|
||||
|
@ -419,7 +419,7 @@ void rx_server_user_kick(int chan)
|
|||
if (chan == -1 || chan == c->ext_rx_chan) {
|
||||
c->kick = true;
|
||||
if (chan != -1)
|
||||
printf("rx_server_user_kick KICKING rx=%d EXT %s\n", chan, c->ext->name);
|
||||
printf("rx_server_user_kick KICKING rx=%d EXT %s\n", chan, c->ext? c->ext->name : "?");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -540,7 +540,7 @@ conn_t *rx_server_websocket(websocket_mode_e mode, struct mg_connection *mc)
|
|||
kiwi_ifree(uri_m);
|
||||
|
||||
// handle case of server initially starting disabled, but then being enabled later by admin
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
static bool init_snd_wf;
|
||||
if (!init_snd_wf && !down) {
|
||||
c2s_sound_init();
|
||||
|
@ -565,7 +565,7 @@ conn_t *rx_server_websocket(websocket_mode_e mode, struct mg_connection *mc)
|
|||
if (stat(DIR_CFG "/opt.no_console", &_st) == 0)
|
||||
return NULL;
|
||||
printf("allowed by su %s %s\n", rx_streams[st->type].uri, remote_ip);
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
if (!init_snd_wf) {
|
||||
c2s_sound_init();
|
||||
c2s_waterfall_init();
|
||||
|
@ -723,12 +723,15 @@ conn_t *rx_server_websocket(websocket_mode_e mode, struct mg_connection *mc)
|
|||
if (force_camp) rx = -1;
|
||||
//cprintf(c, "rx=%d force_camp=%d\n", rx, force_camp);
|
||||
force_camp = false;
|
||||
if (isKiwi_UI && (mon_total < monitors_max)) {
|
||||
// turn first connection when no channels (SND or WF) into MONITOR
|
||||
c->type = STREAM_MONITOR;
|
||||
st = &rx_streams[STREAM_MONITOR];
|
||||
snd_or_wf = false;
|
||||
} else {
|
||||
#ifdef USE_SDR
|
||||
if (isKiwi_UI && (mon_total < monitors_max)) {
|
||||
// turn first connection when no channels (SND or WF) into MONITOR
|
||||
c->type = STREAM_MONITOR;
|
||||
st = &rx_streams[STREAM_MONITOR];
|
||||
snd_or_wf = false;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
conn_printf("(too many rx channels open for %s)\n", st->uri);
|
||||
if (!internal) send_msg_mc(mc, SM_NO_DEBUG, "MSG too_busy=%d", rx_chans);
|
||||
mc->connection_param = NULL;
|
||||
|
|
|
@ -50,6 +50,8 @@ Boston, MA 02110-1301, USA.
|
|||
#include <math.h>
|
||||
#include <fftw3.h>
|
||||
|
||||
#ifdef USE_SDR
|
||||
|
||||
//#define WF_INFO
|
||||
//#define TR_WF_CMDS
|
||||
#define SM_WF_DEBUG false
|
||||
|
@ -1375,3 +1377,5 @@ void c2s_waterfall_shutdown(void *param)
|
|||
if (c && c->mc)
|
||||
rx_server_websocket(WS_MODE_CLOSE, c->mc);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -97,8 +97,9 @@ u2_t ctrl_get()
|
|||
SPI_MISO *ctrl = get_misc_miso();
|
||||
|
||||
spi_get_noduplex(CmdCtrlGet, ctrl, sizeof(ctrl->word[0]));
|
||||
u2_t rv = ctrl->word[0];
|
||||
release_misc_miso();
|
||||
return ctrl->word[0];
|
||||
return rv;
|
||||
}
|
||||
|
||||
void ctrl_clr_set(u2_t clr, u2_t set)
|
||||
|
|
|
@ -22,11 +22,15 @@ Boston, MA 02110-1301, USA.
|
|||
#include "types.h"
|
||||
#include "kiwi.h"
|
||||
#include "printf.h"
|
||||
#include "spi.h"
|
||||
|
||||
#include <sys/file.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
SPI_MISO *get_misc_miso();
|
||||
void release_misc_miso();
|
||||
|
||||
u2_t ctrl_get();
|
||||
void ctrl_clr_set(u2_t clr, u2_t set);
|
||||
void ctrl_positive_pulse(u2_t bits);
|
||||
|
|
4
types.h
4
types.h
|
@ -18,6 +18,7 @@ typedef double d64_t;
|
|||
|
||||
typedef void (*func_t)();
|
||||
typedef void (*funcPI_t)(int);
|
||||
typedef void (*funcPI2_t)(int, int);
|
||||
typedef void (*funcP_t)(void *);
|
||||
typedef int (*funcPR_t)(void *);
|
||||
|
||||
|
@ -78,7 +79,8 @@ typedef int (*funcPR_t)(void *);
|
|||
|
||||
#define NOT_FOUND -1
|
||||
|
||||
#define ARRAY_LEN(x) ((int) (sizeof (x) / sizeof ((x) [0])))
|
||||
#define ARRAY_EL_LEN(x) ((int) sizeof ((x) [0]))
|
||||
#define ARRAY_LEN(x) ((int) (sizeof (x) / ARRAY_EL_LEN(x)))
|
||||
#define ARRAY_END(x) (&(x)[ARRAY_LEN(x)])
|
||||
|
||||
#define K 1024
|
||||
|
|
|
@ -37,7 +37,7 @@ Boston, MA 02110-1301, USA.
|
|||
#include "clk.h"
|
||||
#include "wspr.h"
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
#include "data_pump.h"
|
||||
#include "ext_int.h"
|
||||
#endif
|
||||
|
@ -71,7 +71,7 @@ void c2s_admin_setup(void *param)
|
|||
conn_t *conn = (conn_t *) param;
|
||||
|
||||
// send initial values
|
||||
send_msg(conn, SM_NO_DEBUG, "ADM gps_only_mode=%d", VAL_CFG_GPS_ONLY);
|
||||
send_msg(conn, SM_NO_DEBUG, "ADM admin_sdr_mode=%d", VAL_USE_SDR);
|
||||
#ifdef MULTI_CORE
|
||||
send_msg(conn, SM_NO_DEBUG, "ADM is_multi_core");
|
||||
#endif
|
||||
|
@ -317,7 +317,7 @@ void c2s_admin(void *param)
|
|||
// status
|
||||
////////////////////////////////
|
||||
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
i = strcmp(cmd, "SET dpump_hist_reset");
|
||||
if (i == 0) {
|
||||
dpump.force_reset = true;
|
||||
|
@ -1201,7 +1201,7 @@ void c2s_admin(void *param)
|
|||
|
||||
i = strcmp(cmd, "SET extint_load_extension_configs");
|
||||
if (i == 0) {
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
extint_load_extension_configs(conn);
|
||||
#endif
|
||||
continue;
|
||||
|
|
|
@ -1,530 +0,0 @@
|
|||
Configuration of Vivado 2014.4 BRAM, adder/accumulator and DDS IP blocks
|
||||
necessary to build the Kiwi Verilog code.
|
||||
Updated 6 Apr 2018
|
||||
|
||||
In Vivado:
|
||||
In the Project Manager > Sources window select the "IP Sources" tab at the bottom.
|
||||
Open the IP folder and double-click on an IP block to get the "Re-customize IP" window.
|
||||
Make your changes and then generate (re-compile) the new IP.
|
||||
|
||||
Below are the settings used for each IP block.
|
||||
|
||||
Block Memory Generator (8.2):
|
||||
|
||||
used by rx/receiver.v:
|
||||
Component Name
|
||||
ipcore_bram_8k_16b
|
||||
Basic
|
||||
Interface Type
|
||||
> native
|
||||
Memory Type
|
||||
> simple dual port RAM
|
||||
Common Clock
|
||||
> no
|
||||
Algorithm
|
||||
minimum area
|
||||
Port A Options
|
||||
Width
|
||||
> 16
|
||||
Depth
|
||||
> 8192
|
||||
Operating Mode
|
||||
> no change
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
Port B Options
|
||||
Width
|
||||
> 16
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
> no output registers
|
||||
Other Options
|
||||
> none
|
||||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:0 #36k:4 B-latency:1 addr-A-width:13 addr-B-width:13
|
||||
|
||||
used by rx/iq_sampler_8k_32b.v:
|
||||
Component Name
|
||||
ipcore_bram_8k_32b
|
||||
Basic
|
||||
Interface Type
|
||||
> native
|
||||
Memory Type
|
||||
> simple dual port RAM
|
||||
Common Clock
|
||||
> no
|
||||
Algorithm
|
||||
minimum area
|
||||
Port A Options
|
||||
Width
|
||||
> 32
|
||||
Depth
|
||||
> 8192
|
||||
Operating Mode
|
||||
> no change
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
Port B Options
|
||||
Width
|
||||
> 32
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
> no output registers
|
||||
Other Options
|
||||
> none
|
||||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:1 #36k:7 B-latency:1 addr-A-width:13 addr-B-width:13
|
||||
|
||||
used by gps/sampler.v:
|
||||
Component Name
|
||||
ipcore_bram_gps_16k_1b_4k_4b
|
||||
Basic
|
||||
Interface Type
|
||||
> native
|
||||
Memory Type
|
||||
> simple dual port RAM
|
||||
Common Clock
|
||||
> no
|
||||
Algorithm
|
||||
minimum area
|
||||
Port A Options
|
||||
Width
|
||||
> 1
|
||||
Depth
|
||||
> 16384
|
||||
Operating Mode
|
||||
> no change
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
Port B Options
|
||||
Width
|
||||
> 4
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
> no output registers
|
||||
Other Options
|
||||
> none
|
||||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:1 #36k:0 B-latency:1 addr-A-width:14 addr-B-width:12
|
||||
|
||||
used by gps/logger.v:
|
||||
Component Name
|
||||
ipcore_bram_1k_16b
|
||||
Basic
|
||||
Interface Type
|
||||
> native
|
||||
Memory Type
|
||||
> simple dual port RAM
|
||||
Common Clock
|
||||
> no
|
||||
Algorithm
|
||||
minimum area
|
||||
Port A Options
|
||||
Width
|
||||
> 16
|
||||
Depth
|
||||
> 1024
|
||||
Operating Mode
|
||||
> no change
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
Port B Options
|
||||
Width
|
||||
> 16
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
> no output registers
|
||||
Other Options
|
||||
> none
|
||||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:1 #36k:0 B-latency:1 addr-A-width:10 addr-B-width:10
|
||||
|
||||
used by gps/e1bcode.v:
|
||||
Component Name
|
||||
ipcore_bram_256_16b_4k_1b
|
||||
Basic
|
||||
Interface Type
|
||||
> native
|
||||
Memory Type
|
||||
> simple dual port RAM
|
||||
Common Clock
|
||||
> no
|
||||
Algorithm
|
||||
minimum area
|
||||
Port A Options
|
||||
Width
|
||||
> 16
|
||||
Depth
|
||||
> 256
|
||||
Operating Mode
|
||||
> no change
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
Port B Options
|
||||
Width
|
||||
> 1
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
> no output registers
|
||||
Other Options
|
||||
> none
|
||||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:1 #36k:0 B-latency:1 addr-A-width:8 addr-B-width:12
|
||||
|
||||
used by cpu.v:
|
||||
Component Name
|
||||
ipcore_bram_cpu_2k_16b
|
||||
Basic
|
||||
Interface Type
|
||||
> native
|
||||
Memory Type
|
||||
> true dual port RAM
|
||||
Common Clock
|
||||
> no
|
||||
Algorithm
|
||||
minimum area
|
||||
Port A Options
|
||||
Write Width
|
||||
> 16
|
||||
Read Width
|
||||
> 16
|
||||
Write Depth
|
||||
> 2048
|
||||
Read Depth
|
||||
(2048)
|
||||
Operating Mode
|
||||
> write first
|
||||
Enable Port Type
|
||||
> use ENA pin <=== NOTE! ***
|
||||
Port A Output Reset Options
|
||||
RSTA pin
|
||||
> yes <=== NOTE! ***
|
||||
Output Reset Value (Hex)
|
||||
> 8000
|
||||
> no output registers
|
||||
Port B Options
|
||||
Write Width
|
||||
> 16
|
||||
Read Width
|
||||
> 16
|
||||
Write Depth
|
||||
(2048)
|
||||
Read Depth
|
||||
(2048)
|
||||
Operating Mode
|
||||
> write first
|
||||
Enable Port Type
|
||||
> use ENB pin <=== NOTE! ***
|
||||
> no output registers
|
||||
Other Options
|
||||
Memory Initialization
|
||||
Fill Remaining Memory Locations
|
||||
> 8000 (hex) <=== NOTE! ***
|
||||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:0 #36k:1 A-latency:1 B-latency:1 addr-A-width:11 addr-B-width:11
|
||||
|
||||
used by cpu.v:
|
||||
Component Name
|
||||
ipcore_bram_512_32b
|
||||
Basic
|
||||
Interface Type
|
||||
> native
|
||||
Memory Type
|
||||
> true dual port RAM
|
||||
Common Clock
|
||||
> no
|
||||
Algorithm
|
||||
minimum area
|
||||
Port A Options
|
||||
Write Width
|
||||
> 32
|
||||
Read Width
|
||||
> 32
|
||||
Write Depth
|
||||
> 512
|
||||
Read Depth
|
||||
(512)
|
||||
Operating Mode
|
||||
> write first
|
||||
Enable Port Type
|
||||
> use ENA pin <=== NOTE! ***
|
||||
> no output registers
|
||||
Port B Options
|
||||
Write Width
|
||||
> 32
|
||||
Read Width
|
||||
> 32
|
||||
Write Depth
|
||||
(512)
|
||||
Read Depth
|
||||
(512)
|
||||
Operating Mode
|
||||
> write first
|
||||
Enable Port Type
|
||||
> use ENB pin <=== NOTE! ***
|
||||
> no output registers
|
||||
Other Options
|
||||
> none
|
||||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:0 #36k:1 A-latency:1 B-latency:1 addr-A-width:9 addr-B-width:9
|
||||
|
||||
used by host.v:
|
||||
Component Name
|
||||
ipcore_bram_16k_1b_1k_16b
|
||||
Basic
|
||||
Interface Type
|
||||
> native
|
||||
Memory Type
|
||||
> true dual port RAM
|
||||
Common Clock
|
||||
> no
|
||||
Algorithm
|
||||
minimum area
|
||||
Port A Options
|
||||
Write Width
|
||||
> 1
|
||||
Read Width
|
||||
> 1
|
||||
Write Depth
|
||||
> 16384
|
||||
Read Depth
|
||||
(16384)
|
||||
Operating Mode
|
||||
> read first <=== NOTE! ***
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
> no output registers
|
||||
Port B Options
|
||||
Write Width
|
||||
> 16
|
||||
Read Width
|
||||
> 16
|
||||
Write Depth
|
||||
(1024)
|
||||
Read Depth
|
||||
(1024)
|
||||
Operating Mode
|
||||
> write first
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
> no output registers
|
||||
Other Options
|
||||
> none
|
||||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:1 #36k:0 A-latency:1 B-latency:1 addr-A-width:14 addr-B-width:10
|
||||
|
||||
|
||||
Adder/Subtracter (12.0):
|
||||
|
||||
used by cpu.v:
|
||||
Component Name
|
||||
ipcore_add_u32b
|
||||
Basic
|
||||
Implement using
|
||||
> DSP48
|
||||
A
|
||||
Input Type
|
||||
> unsigned
|
||||
Input Width
|
||||
> 32
|
||||
Add mode
|
||||
> add
|
||||
Output Width
|
||||
> 33
|
||||
Latency Configuration
|
||||
> manual
|
||||
Latency
|
||||
> 0
|
||||
B
|
||||
Input Type
|
||||
> unsigned
|
||||
Input Width
|
||||
> 32
|
||||
Control
|
||||
Carry In
|
||||
> yes
|
||||
Carry Out
|
||||
> no
|
||||
SCLR
|
||||
> no
|
||||
Bypass
|
||||
> no
|
||||
|
||||
used by gps/demod.v:
|
||||
Component Name
|
||||
ipcore_add_u30b
|
||||
Basic
|
||||
Implement using
|
||||
> DSP48
|
||||
A
|
||||
Input Type
|
||||
> unsigned
|
||||
Input Width
|
||||
> 30
|
||||
Add mode
|
||||
> add
|
||||
Output Width
|
||||
> 31
|
||||
Latency Configuration
|
||||
> manual
|
||||
Latency
|
||||
> 0
|
||||
B
|
||||
Input Type
|
||||
> unsigned
|
||||
Input Width
|
||||
> 30
|
||||
Control
|
||||
Carry In
|
||||
> yes
|
||||
Carry Out
|
||||
> no
|
||||
SCLR
|
||||
> no
|
||||
Bypass
|
||||
> no
|
||||
|
||||
used by rx/{cic_iq_seq.v, cic_prune_seq.v}:
|
||||
Component Name
|
||||
ipcore_add_s48b
|
||||
Basic
|
||||
Implement using
|
||||
> DSP48
|
||||
A
|
||||
Input Type
|
||||
> unsigned
|
||||
Input Width
|
||||
> 32
|
||||
Add mode
|
||||
> add
|
||||
Output Width
|
||||
> 33
|
||||
Latency Configuration
|
||||
> manual
|
||||
Latency
|
||||
> 0
|
||||
B
|
||||
Input Type
|
||||
> unsigned
|
||||
Input Width
|
||||
> 32
|
||||
Control
|
||||
Carry In
|
||||
> yes
|
||||
Carry Out
|
||||
> no
|
||||
SCLR
|
||||
> no
|
||||
Bypass
|
||||
> no
|
||||
|
||||
|
||||
Accumulator (12.0):
|
||||
|
||||
used by {kiwi.v, gps/demod.v}:
|
||||
Component Name
|
||||
ipcore_acc_u32b
|
||||
Basic
|
||||
Implement using
|
||||
> DSP48
|
||||
Input Type
|
||||
> unsigned
|
||||
Input Width
|
||||
> 32
|
||||
Output Width
|
||||
> 32
|
||||
Accumulation Mode
|
||||
> add
|
||||
Latency Configuration
|
||||
> manual
|
||||
Latency
|
||||
> 1
|
||||
Control
|
||||
Clock Enable
|
||||
> no
|
||||
Carry In
|
||||
> no
|
||||
SCLR
|
||||
> yes
|
||||
Bypass
|
||||
> no
|
||||
|
||||
|
||||
DDS Compiler (6.0):
|
||||
|
||||
used by rx/{iq_mixer.v, gen.v}:
|
||||
Component Name
|
||||
ipcore_dds_sin_cos_13b_15b
|
||||
Configuration
|
||||
Configuration Options
|
||||
> phase generator and sin cos lut
|
||||
System Requirements
|
||||
System Clock
|
||||
> 66.6666
|
||||
Number of Channels
|
||||
> 1
|
||||
Mode of Operation
|
||||
> standard
|
||||
Parameter Selection
|
||||
> hardware parameters
|
||||
Noise Shaping
|
||||
> phase dithering
|
||||
Hardware Parameters
|
||||
Phase Width
|
||||
> 32
|
||||
Output Width
|
||||
> 15
|
||||
Implementation
|
||||
Phase Increment Programmability
|
||||
> streaming
|
||||
Resync
|
||||
> no
|
||||
Phase Offset Programmability
|
||||
> none
|
||||
Output
|
||||
Output Selection
|
||||
> sine and cosine
|
||||
Polarity
|
||||
> no
|
||||
Amplitude Mode
|
||||
> full range
|
||||
Implementation Options
|
||||
Memory Type
|
||||
> block ROM
|
||||
Optimization Goal
|
||||
> area
|
||||
DSP48 Use
|
||||
>minimal
|
||||
Has Phase Out
|
||||
> no
|
||||
Detailed Implementation
|
||||
AXI Channel Options
|
||||
DATA Has TLAST
|
||||
> not required
|
||||
Output TREADY
|
||||
> no
|
||||
TUSER Options
|
||||
Input
|
||||
> not required
|
||||
Output Form
|
||||
> twos complement
|
||||
Latency Options
|
||||
Latency Configuration
|
||||
> auto
|
||||
Control Signals
|
||||
> none
|
||||
Summary (if anything here is different you configured something incorrectly)
|
||||
Output Width = 15 Bits
|
||||
Channels = 1
|
||||
System Clock = 66.6666 MHz
|
||||
Frequency per Channel (Fs) = 66.666600000000003 MHz
|
||||
Noise Shaping = Phase Dithering
|
||||
Memory Type = Block ROM
|
||||
Optimization Goal = Area
|
||||
Phase Width = 32 bits
|
||||
Frequency Resolution = 0.015522027388315065 Hz
|
||||
Phase Angle Width = 13 Bits
|
||||
Spurious Free Dynamic Range = 90 dB
|
||||
Latency = 8
|
||||
DSP48 slice = 0
|
||||
BRAM (18k) count = 2
|
|
@ -1,68 +0,0 @@
|
|||
// (c) Copyright 1995-2015 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:c_accum:12.0
|
||||
// IP Revision: 5
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_acc_u32b your_instance_name (
|
||||
.B(B), // input wire [31 : 0] B
|
||||
.CLK(CLK), // input wire CLK
|
||||
.SCLR(SCLR), // input wire SCLR
|
||||
.Q(Q) // output wire [31 : 0] Q
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_acc_u32b.v when simulating
|
||||
// the core, ipcore_acc_u32b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_acc_u32b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="c_accum" spirit:version="12.0"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_acc_u32b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Implementation">DSP48</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Type">Unsigned</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Input_Width">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Width">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Accum_Mode">Add</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Latency_Configuration">Manual</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Latency">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Scale">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_In">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SCLR">true</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SSET">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SINIT">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SINIT_Value">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Bypass">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Bypass_Sense">Active_High</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SyncCtrlPriority">Reset_Overrides_Set</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Sync_CE_Priority">Sync_Overrides_CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AINIT_Value">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_VERBOSITY">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_B_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUT_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_B_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CE_OVERRIDES_SCLR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADD_MODE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_C_IN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_CE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_BYPASS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SCLR">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LATENCY">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SCALE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AINIT_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SINIT_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYPASS_LOW">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SCLR_OVERRIDES_SSET">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SSET">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SINIT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK_INTF.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">5</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,68 +0,0 @@
|
|||
// (c) Copyright 1995-2018 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:c_addsub:12.0
|
||||
// IP Revision: 5
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_add_u30b your_instance_name (
|
||||
.A(A), // input wire [29 : 0] A
|
||||
.B(B), // input wire [29 : 0] B
|
||||
.C_IN(C_IN), // input wire C_IN
|
||||
.S(S) // output wire [30 : 0] S
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_add_u30b.v when simulating
|
||||
// the core, ipcore_add_u30b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_add_u30b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="c_addsub" spirit:version="12.0"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_add_u30b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Implementation">DSP48</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.A_Type">Unsigned</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.B_Type">Unsigned</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.A_Width">30</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.B_Width">30</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Add_Mode">Add</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Out_Width">31</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Latency_Configuration">Manual</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Latency">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.B_Constant">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.B_Value">000000000000000000000000000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_In">true</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_Out">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Borrow_Sense">Active_Low</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SCLR">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SSET">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SINIT">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SINIT_Value">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Bypass">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Bypass_Sense">Active_High</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Sync_Ctrl_Priority">Reset_Overrides_Set</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Sync_CE_Priority">Sync_Overrides_CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Bypass_CE_Priority">CE_Overrides_Bypass</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AINIT_Value">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_VERBOSITY">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_A_WIDTH">30</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_B_WIDTH">30</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUT_WIDTH">31</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CE_OVERRIDES_SCLR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_A_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_B_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LATENCY">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADD_MODE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_B_CONSTANT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_B_VALUE">000000000000000000000000000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AINIT_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SINIT_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CE_OVERRIDES_BYPASS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYPASS_LOW">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SCLR_OVERRIDES_SSET">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_C_IN">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_C_OUT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BORROW_LOW">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_CE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_BYPASS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SCLR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SSET">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SINIT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK_INTF.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">5</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,68 +0,0 @@
|
|||
// (c) Copyright 1995-2015 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:c_addsub:12.0
|
||||
// IP Revision: 5
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_add_u32b your_instance_name (
|
||||
.A(A), // input wire [31 : 0] A
|
||||
.B(B), // input wire [31 : 0] B
|
||||
.C_IN(C_IN), // input wire C_IN
|
||||
.S(S) // output wire [32 : 0] S
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_add_u32b.v when simulating
|
||||
// the core, ipcore_add_u32b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_add_u32b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="c_addsub" spirit:version="12.0"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_add_u32b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Implementation">DSP48</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.A_Type">Unsigned</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.B_Type">Unsigned</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.A_Width">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.B_Width">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Add_Mode">Add</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Out_Width">33</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Latency_Configuration">Manual</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Latency">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.B_Constant">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.B_Value">00000000000000000000000000000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_In">true</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_Out">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Borrow_Sense">Active_Low</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SCLR">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SSET">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SINIT">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SINIT_Value">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Bypass">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Bypass_Sense">Active_High</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Sync_Ctrl_Priority">Reset_Overrides_Set</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Sync_CE_Priority">Sync_Overrides_CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Bypass_CE_Priority">CE_Overrides_Bypass</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AINIT_Value">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_VERBOSITY">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IMPLEMENTATION">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_A_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_B_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUT_WIDTH">33</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CE_OVERRIDES_SCLR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_A_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_B_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LATENCY">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADD_MODE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_B_CONSTANT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_B_VALUE">00000000000000000000000000000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AINIT_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SINIT_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CE_OVERRIDES_BYPASS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYPASS_LOW">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SCLR_OVERRIDES_SSET">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_C_IN">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_C_OUT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BORROW_LOW">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_CE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_BYPASS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SCLR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SSET">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SINIT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK_INTF.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">5</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,74 +0,0 @@
|
|||
// (c) Copyright 1995-2015 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.2
|
||||
// IP Revision: 3
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_bram_16k_1b_1k_16b your_instance_name (
|
||||
.clka(clka), // input wire clka
|
||||
.wea(wea), // input wire [0 : 0] wea
|
||||
.addra(addra), // input wire [13 : 0] addra
|
||||
.dina(dina), // input wire [0 : 0] dina
|
||||
.douta(douta), // output wire [0 : 0] douta
|
||||
.clkb(clkb), // input wire clkb
|
||||
.web(web), // input wire [0 : 0] web
|
||||
.addrb(addrb), // input wire [9 : 0] addrb
|
||||
.dinb(dinb), // input wire [15 : 0] dinb
|
||||
.doutb(doutb) // output wire [15 : 0] doutb
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_bram_16k_1b_1k_16b.v when simulating
|
||||
// the core, ipcore_bram_16k_1b_1k_16b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_bram_16k_1b_1k_16b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.2"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_bram_16k_1b_1k_16b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">True_Dual_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">16384</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">READ_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_Mem_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ipcore_bram_16k_1b_1k_16b.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">READ_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">16384</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">16384</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">14</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">10</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_INPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SIM_COLLISION_CHECK">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 2.83395 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">3</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,71 +0,0 @@
|
|||
// (c) Copyright 1995-2018 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.2
|
||||
// IP Revision: 3
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_bram_256_16b_4k_1b your_instance_name (
|
||||
.clka(clka), // input wire clka
|
||||
.wea(wea), // input wire [0 : 0] wea
|
||||
.addra(addra), // input wire [7 : 0] addra
|
||||
.dina(dina), // input wire [15 : 0] dina
|
||||
.clkb(clkb), // input wire clkb
|
||||
.addrb(addrb), // input wire [11 : 0] addrb
|
||||
.doutb(doutb) // output wire [0 : 0] doutb
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_bram_256_16b_4k_1b.v when simulating
|
||||
// the core, ipcore_bram_256_16b_4k_1b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_bram_256_16b_4k_1b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.2"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_bram_256_16b_4k_1b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">Simple_Dual_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">true</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_mem_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ipcore_bram_256_16b_4k_1b.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">4096</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">4096</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">12</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_INPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SIM_COLLISION_CHECK">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 1.10985 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">3</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,76 +0,0 @@
|
|||
// (c) Copyright 1995-2015 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.2
|
||||
// IP Revision: 3
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_bram_512_32b your_instance_name (
|
||||
.clka(clka), // input wire clka
|
||||
.ena(ena), // input wire ena
|
||||
.wea(wea), // input wire [0 : 0] wea
|
||||
.addra(addra), // input wire [8 : 0] addra
|
||||
.dina(dina), // input wire [31 : 0] dina
|
||||
.douta(douta), // output wire [31 : 0] douta
|
||||
.clkb(clkb), // input wire clkb
|
||||
.enb(enb), // input wire enb
|
||||
.web(web), // input wire [0 : 0] web
|
||||
.addrb(addrb), // input wire [8 : 0] addrb
|
||||
.dinb(dinb), // input wire [31 : 0] dinb
|
||||
.doutb(doutb) // output wire [31 : 0] doutb
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_bram_512_32b.v when simulating
|
||||
// the core, ipcore_bram_512_32b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_bram_512_32b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.2"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_bram_512_32b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">True_Dual_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">512</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Use_ENA_Pin</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Use_ENB_Pin</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_Mem_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ipcore_bram_512_32b.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">512</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">512</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENB">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">512</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">512</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_INPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SIM_COLLISION_CHECK">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 5.9043 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">3</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,71 +0,0 @@
|
|||
// (c) Copyright 1995-2017 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.2
|
||||
// IP Revision: 3
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_bram_8k_32b your_instance_name (
|
||||
.clka(clka), // input wire clka
|
||||
.wea(wea), // input wire [0 : 0] wea
|
||||
.addra(addra), // input wire [12 : 0] addra
|
||||
.dina(dina), // input wire [31 : 0] dina
|
||||
.clkb(clkb), // input wire clkb
|
||||
.addrb(addrb), // input wire [12 : 0] addrb
|
||||
.doutb(doutb) // output wire [31 : 0] doutb
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_bram_8k_32b.v when simulating
|
||||
// the core, ipcore_bram_8k_32b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_bram_8k_32b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.2"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_bram_8k_32b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">Simple_Dual_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_mem_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ipcore_bram_8k_32b.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">13</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">13</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_INPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SIM_COLLISION_CHECK">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 20.4756 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">3</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,77 +0,0 @@
|
|||
// (c) Copyright 1995-2015 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.2
|
||||
// IP Revision: 3
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_bram_cpu_2k_16b your_instance_name (
|
||||
.clka(clka), // input wire clka
|
||||
.rsta(rsta), // input wire rsta
|
||||
.ena(ena), // input wire ena
|
||||
.wea(wea), // input wire [0 : 0] wea
|
||||
.addra(addra), // input wire [10 : 0] addra
|
||||
.dina(dina), // input wire [15 : 0] dina
|
||||
.douta(douta), // output wire [15 : 0] douta
|
||||
.clkb(clkb), // input wire clkb
|
||||
.enb(enb), // input wire enb
|
||||
.web(web), // input wire [0 : 0] web
|
||||
.addrb(addrb), // input wire [10 : 0] addrb
|
||||
.dinb(dinb), // input wire [15 : 0] dinb
|
||||
.doutb(doutb) // output wire [15 : 0] doutb
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_bram_cpu_2k_16b.v when simulating
|
||||
// the core, ipcore_bram_cpu_2k_16b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_bram_cpu_2k_16b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.2"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_bram_cpu_2k_16b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">True_Dual_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">2048</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Use_ENA_Pin</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Use_ENB_Pin</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">true</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">8000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">true</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">8000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_Mem_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ipcore_bram_cpu_2k_16b.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_DATA">8000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">8000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">2048</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">2048</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">11</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENB">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">2048</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">2048</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">11</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_INPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SIM_COLLISION_CHECK">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 5.349 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">3</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,72 +0,0 @@
|
|||
// (c) Copyright 1995-2015 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.2
|
||||
// IP Revision: 3
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_bram_gps_16k_1b_4k_4b your_instance_name (
|
||||
.clka(clka), // input wire clka
|
||||
.ena(ena), // input wire ena
|
||||
.wea(wea), // input wire [0 : 0] wea
|
||||
.addra(addra), // input wire [13 : 0] addra
|
||||
.dina(dina), // input wire [0 : 0] dina
|
||||
.clkb(clkb), // input wire clkb
|
||||
.addrb(addrb), // input wire [11 : 0] addrb
|
||||
.doutb(doutb) // output wire [3 : 0] doutb
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_bram_gps_16k_1b_4k_4b.v when simulating
|
||||
// the core, ipcore_bram_gps_16k_1b_4k_4b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_bram_gps_16k_1b_4k_4b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.2"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_bram_gps_16k_1b_4k_4b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">Simple_Dual_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">16384</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Use_ENA_Pin</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_mem_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ipcore_bram_gps_16k_1b_4k_4b.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">16384</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">16384</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">14</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">4096</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">4096</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">12</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_INPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SIM_COLLISION_CHECK">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 2.2821500000000001 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">3</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,69 +0,0 @@
|
|||
// (c) Copyright 1995-2016 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
// international copyright and other intellectual property
|
||||
// laws.
|
||||
//
|
||||
// DISCLAIMER
|
||||
// This disclaimer is not a license and does not grant any
|
||||
// rights to the materials distributed herewith. Except as
|
||||
// otherwise provided in a valid license issued to you by
|
||||
// Xilinx, and to the maximum extent permitted by applicable
|
||||
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
|
||||
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
|
||||
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
|
||||
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
|
||||
// (2) Xilinx shall not be liable (whether in contract or tort,
|
||||
// including negligence, or under any other theory of
|
||||
// liability) for any loss or damage of any kind or nature
|
||||
// related to, arising under or in connection with these
|
||||
// materials, including for any direct, or any indirect,
|
||||
// special, incidental, or consequential loss or damage
|
||||
// (including loss of data, profits, goodwill, or any type of
|
||||
// loss or damage suffered as a result of any action brought
|
||||
// by a third party) even if such damage or loss was
|
||||
// reasonably foreseeable or Xilinx had been advised of the
|
||||
// possibility of the same.
|
||||
//
|
||||
// CRITICAL APPLICATIONS
|
||||
// Xilinx products are not designed or intended to be fail-
|
||||
// safe, or for use in any application requiring fail-safe
|
||||
// performance, such as life-support or safety devices or
|
||||
// systems, Class III medical devices, nuclear facilities,
|
||||
// applications related to the deployment of airbags, or any
|
||||
// other applications that could lead to death, personal
|
||||
// injury, or severe property or environmental damage
|
||||
// (individually and collectively, "Critical
|
||||
// Applications"). Customer assumes the sole risk and
|
||||
// liability of any use of Xilinx products in Critical
|
||||
// Applications, subject only to applicable laws and
|
||||
// regulations governing limitations on product liability.
|
||||
//
|
||||
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
|
||||
// PART OF THIS FILE AT ALL TIMES.
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:dds_compiler:6.0
|
||||
// IP Revision: 7
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_dds_sin_cos_13b_15b your_instance_name (
|
||||
.aclk(aclk), // input wire aclk
|
||||
.s_axis_phase_tvalid(s_axis_phase_tvalid), // input wire s_axis_phase_tvalid
|
||||
.s_axis_phase_tdata(s_axis_phase_tdata), // input wire [31 : 0] s_axis_phase_tdata
|
||||
.m_axis_data_tvalid(m_axis_data_tvalid), // output wire m_axis_data_tvalid
|
||||
.m_axis_data_tdata(m_axis_data_tdata) // output wire [31 : 0] m_axis_data_tdata
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_dds_sin_cos_13b_15b.v when simulating
|
||||
// the core, ipcore_dds_sin_cos_13b_15b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -1,184 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_dds_sin_cos_13b_15b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="dds_compiler" spirit:version="6.0"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_dds_sin_cos_13b_15b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PartsPresent">Phase_Generator_and_SIN_COS_LUT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DDS_Clock_Rate">66.6666</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Channels">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Mode_of_Operation">Standard</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Modulus">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Parameter_Entry">Hardware_Parameters</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Spurious_Free_Dynamic_Range">90</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Frequency_Resolution">0.0156</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Noise_Shaping">Phase_Dithering</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Width">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Width">15</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Increment">Streaming</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Resync">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_offset">None</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Selection">Sine_and_Cosine</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Negative_Sine">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Negative_Cosine">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Amplitude_Mode">Full_Range</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">Block_ROM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Optimization_Goal">Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DSP48_Use">Minimal</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Has_Phase_Out">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_Has_TLAST">Not_Required</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Has_TREADY">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.S_PHASE_Has_TUSER">Not_Required</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.S_PHASE_TUSER_Width">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.M_DATA_Has_TUSER">Not_Required</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.M_PHASE_Has_TUSER">Not_Required</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.S_CONFIG_Sync_Mode">On_Vector</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_FORM">Twos_Complement</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Latency_Configuration">Auto</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Latency">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Has_ARESETn">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Has_ACLKEN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency1">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC1">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles1">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF1">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency2">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC2">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles2">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF2">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency3">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC3">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles3">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF3">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency4">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC4">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles4">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF4">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency5">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC5">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles5">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF5">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency6">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC6">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles6">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF6">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency7">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC7">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles7">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF7">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency8">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC8">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles8">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF8">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency9">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC9">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles9">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF9">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency10">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC10">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles10">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF10">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency11">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC11">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles11">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF11">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency12">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC12">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles12">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF12">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency13">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC13">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles13">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF13">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency14">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC14">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles14">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF14">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency15">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC15">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles15">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF15">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Frequency16">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PINC16">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Phase_Offset_Angles16">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POFF16">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POR_mode">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.GUI_Behaviour">Coregen</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.explicit_period">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.period">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MODE_OF_OPERATION">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MODULUS">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ACCUMULATOR_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CHANNELS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PHASE_OUT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_PHASEGEN">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SINCOS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LATENCY">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NEGATIVE_COSINE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NEGATIVE_SINE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NOISE_SHAPING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTPUTS_REQUIRED">2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTPUT_FORM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTPUT_WIDTH">15</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PHASE_ANGLE_WIDTH">13</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PHASE_INCREMENT">3</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PHASE_INCREMENT_VALUE">0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RESYNC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PHASE_OFFSET">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PHASE_OFFSET_VALUE">0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OPTIMISE_GOAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DSP48">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_POR_MODE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AMPLITUDE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ACLKEN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ARESETN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_TLAST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_TREADY">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_S_PHASE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_PHASE_TDATA_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_PHASE_HAS_TUSER">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_PHASE_TUSER_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_S_CONFIG">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_CONFIG_SYNC_MODE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_CONFIG_TDATA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_M_DATA">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_DATA_TDATA_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_DATA_HAS_TUSER">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_DATA_TUSER_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_M_PHASE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_PHASE_TDATA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_PHASE_HAS_TUSER">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_PHASE_TUSER_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEBUG_INTERFACE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CHAN_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.ACLK_INTF.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -45,7 +45,7 @@ small rx buffer used by rx/receiver.v:
|
|||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:0 #36k:4 B-latency:1 addr-A-width:13 addr-B-width:13
|
||||
|
||||
large rx buffer used by rx/receiver.v:
|
||||
medium rx buffer used by rx/receiver.v:
|
||||
Component Name
|
||||
ipcore_bram_16k_16b
|
||||
Basic
|
||||
|
@ -77,6 +77,38 @@ large rx buffer used by rx/receiver.v:
|
|||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:1 #36k:7 B-latency:1 addr-A-width:14 addr-B-width:14
|
||||
|
||||
large rx buffer used by rx/receiver.v:
|
||||
Component Name
|
||||
ipcore_bram_32k_16b
|
||||
Basic
|
||||
Interface Type
|
||||
> native
|
||||
Memory Type
|
||||
> simple dual port RAM
|
||||
Common Clock
|
||||
> no
|
||||
Algorithm
|
||||
minimum area
|
||||
Port A Options
|
||||
Width
|
||||
> 16
|
||||
Depth
|
||||
> 32768
|
||||
Operating Mode
|
||||
> no change
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
Port B Options
|
||||
Width
|
||||
> 16
|
||||
Enable Port Type
|
||||
> always enabled
|
||||
> no output registers
|
||||
Other Options
|
||||
> none
|
||||
Summary (if anything here is different you configured something incorrectly)
|
||||
#18k:0 #36k:15 B-latency:1 addr-A-width:15 addr-B-width:15
|
||||
|
||||
used by rx/iq_sampler_8k_32b.v:
|
||||
Component Name
|
||||
ipcore_bram_8k_32b
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// (c) Copyright 1995-2018 Xilinx, Inc. All rights reserved.
|
||||
// (c) Copyright 1995-2019 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
|
@ -46,26 +46,26 @@
|
|||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.2
|
||||
// IP Revision: 3
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
|
||||
// IP Revision: 1
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_bram_1k_16b your_instance_name (
|
||||
ipcore_bram_32k_16b your_instance_name (
|
||||
.clka(clka), // input wire clka
|
||||
.wea(wea), // input wire [0 : 0] wea
|
||||
.addra(addra), // input wire [9 : 0] addra
|
||||
.addra(addra), // input wire [14 : 0] addra
|
||||
.dina(dina), // input wire [15 : 0] dina
|
||||
.clkb(clkb), // input wire clkb
|
||||
.addrb(addrb), // input wire [9 : 0] addrb
|
||||
.addrb(addrb), // input wire [14 : 0] addrb
|
||||
.doutb(doutb) // output wire [15 : 0] doutb
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_bram_1k_16b.v when simulating
|
||||
// the core, ipcore_bram_1k_16b. When compiling the wrapper file, be sure to
|
||||
// You must compile the wrapper file ipcore_bram_32k_16b.v when simulating
|
||||
// the core, ipcore_bram_32k_16b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -6,159 +6,261 @@
|
|||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_bram_8k_16b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.2"/>
|
||||
<spirit:instanceName>ipcore_bram_32k_16b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.4"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_bram_8k_16b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">Simple_Dual_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_mem_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="ADDRBLOCK_RANGE.S_1.Mem0">4096</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ADDR_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ARUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.AWUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.BUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.DATA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_BRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_CACHE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_LOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_PROT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_QOS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_REGION">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_RRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_WSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.MAX_BURST_LENGTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_READ_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_READ_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_WRITE_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_WRITE_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.PROTOCOL">AXI4LITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.RUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.RUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.SUPPORTS_NARROW_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.WUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.WUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ADDR_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ARUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.AWUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.BUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.DATA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_BRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_CACHE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_LOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_PROT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_QOS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_REGION">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_RRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_WSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.MAX_BURST_LENGTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_READ_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_READ_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_WRITE_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_WRITE_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.PROTOCOL">AXI4LITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.RUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.RUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.SUPPORTS_NARROW_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.WUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.WUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MASTER_TYPE">OTHER</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MEM_ECC">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MEM_SIZE">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MEM_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MASTER_TYPE">OTHER</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MEM_ECC">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MEM_SIZE">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MEM_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">15</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">15</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ipcore_bram_8k_16b.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">15</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_DEEPSLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_RDADDRA_CHG">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_RDADDRB_CHG">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SAFETY_CKT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SHUTDOWN_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 34.64452 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">13</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">13</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_INPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ipcore_bram_32k_16b.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">32768</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">32768</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SIM_COLLISION_CHECK">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 9.0695 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_URAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">32768</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">32768</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_bram_32k_16b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_DEEPSLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SAFETY_CKT">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SHUTDOWN_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_mem_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">Simple_Dual_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_type_to_Implement">BRAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RD_ADDR_CHNG_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RD_ADDR_CHNG_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">32768</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Flow</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">3</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2017.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
<spirit:vendorExtensions>
|
||||
<xilinx:componentInstanceExtensions>
|
||||
<xilinx:configElementInfos>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Enable_A" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Enable_B" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Memory_Type" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Operating_Mode_A" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Port_B_Clock" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Port_B_Enable_Rate" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Write_Depth_A" xilinx:valueSource="user"/>
|
||||
</xilinx:configElementInfos>
|
||||
</xilinx:componentInstanceExtensions>
|
||||
</spirit:vendorExtensions>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +1,4 @@
|
|||
// (c) Copyright 1995-2017 Xilinx, Inc. All rights reserved.
|
||||
// (c) Copyright 1995-2021 Xilinx, Inc. All rights reserved.
|
||||
//
|
||||
// This file contains confidential and proprietary information
|
||||
// of Xilinx, Inc. and is protected under U.S. and
|
||||
|
@ -46,26 +46,25 @@
|
|||
//
|
||||
// DO NOT MODIFY THIS FILE.
|
||||
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.2
|
||||
// IP Revision: 3
|
||||
// IP VLNV: xilinx.com:ip:blk_mem_gen:8.4
|
||||
// IP Revision: 1
|
||||
|
||||
// The following must be inserted into your Verilog file for this
|
||||
// core to be instantiated. Change the instance name and port connections
|
||||
// (in parentheses) to your own signal names.
|
||||
|
||||
//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
||||
ipcore_bram_8k_16b your_instance_name (
|
||||
ipcore_bram_sp_1k_16b your_instance_name (
|
||||
.clka(clka), // input wire clka
|
||||
.wea(wea), // input wire [0 : 0] wea
|
||||
.addra(addra), // input wire [12 : 0] addra
|
||||
.ena(ena), // input wire ena
|
||||
.wea(wea), // input wire [1 : 0] wea
|
||||
.addra(addra), // input wire [9 : 0] addra
|
||||
.dina(dina), // input wire [15 : 0] dina
|
||||
.clkb(clkb), // input wire clkb
|
||||
.addrb(addrb), // input wire [12 : 0] addrb
|
||||
.doutb(doutb) // output wire [15 : 0] doutb
|
||||
.douta(douta) // output wire [15 : 0] douta
|
||||
);
|
||||
// INST_TAG_END ------ End INSTANTIATION Template ---------
|
||||
|
||||
// You must compile the wrapper file ipcore_bram_8k_16b.v when simulating
|
||||
// the core, ipcore_bram_8k_16b. When compiling the wrapper file, be sure to
|
||||
// You must compile the wrapper file ipcore_bram_sp_1k_16b.v when simulating
|
||||
// the core, ipcore_bram_sp_1k_16b. When compiling the wrapper file, be sure to
|
||||
// reference the Verilog simulation library.
|
||||
|
|
@ -6,159 +6,260 @@
|
|||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ipcore_bram_1k_16b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.2"/>
|
||||
<spirit:instanceName>ipcore_bram_sp_1k_16b</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.4"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_bram_1k_16b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">Simple_Dual_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_mem_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ipcore_bram_1k_16b.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">NO_CHANGE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="ADDRBLOCK_RANGE.S_1.Mem0">4096</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ADDR_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ARUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.AWUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.BUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.DATA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_BRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_CACHE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_LOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_PROT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_QOS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_REGION">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_RRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_WSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.MAX_BURST_LENGTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_READ_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_READ_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_WRITE_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_WRITE_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.PROTOCOL">AXI4LITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.RUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.RUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.SUPPORTS_NARROW_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.WUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.WUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ADDR_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ARUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.AWUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.BUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.DATA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_BRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_CACHE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_LOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_PROT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_QOS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_REGION">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_RRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_WSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.MAX_BURST_LENGTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_READ_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_READ_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_WRITE_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_WRITE_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.PROTOCOL">AXI4LITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.RUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.RUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.SUPPORTS_NARROW_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.WUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.WUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MASTER_TYPE">OTHER</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MEM_ECC">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MEM_SIZE">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MEM_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MASTER_TYPE">OTHER</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MEM_ECC">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MEM_SIZE">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MEM_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">10</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">10</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_DEEPSLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_RDADDRA_CHG">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_RDADDRB_CHG">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SAFETY_CKT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SHUTDOWN_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 1.53085 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_INPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ipcore_bram_sp_1k_16b.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SIM_COLLISION_CHECK">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 2.7261 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_URAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ipcore_bram_sp_1k_16b</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_DEEPSLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SAFETY_CKT">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SHUTDOWN_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Use_ENA_Pin</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_mem_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">Single_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_type_to_Implement">BRAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RD_ADDR_CHNG_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RD_ADDR_CHNG_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">true</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">1024</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a35t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ftg256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Flow</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2014.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">3</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2017.4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
<spirit:vendorExtensions>
|
||||
<xilinx:componentInstanceExtensions>
|
||||
<xilinx:configElementInfos>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Byte_Size" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Read_Width_A" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Read_Width_B" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Use_Byte_Write_Enable" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Write_Depth_A" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Write_Width_A" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Write_Width_B" xilinx:valueSource="user"/>
|
||||
</xilinx:configElementInfos>
|
||||
</xilinx:componentInstanceExtensions>
|
||||
</spirit:vendorExtensions>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
File diff suppressed because it is too large
Load Diff
|
@ -131,10 +131,9 @@ set_false_path -from [get_ports {BBB_CS_N[0] BBB_CS_N[1]}] -to [get_clocks BBB_S
|
|||
set_false_path -rise_from [get_clocks BBB_SCLK] -to [get_ports BBB_MISO]
|
||||
|
||||
# define async clock domains
|
||||
set_clock_groups -asynchronous -group [get_clocks GPS_TCXO] -group [get_clocks ADC_CLKIN]
|
||||
set_clock_groups -asynchronous -group [get_clocks ADC_CLKIN] -group [get_clocks GPS_TCXO]
|
||||
set_clock_groups -asynchronous -group [get_clocks GPS_TCXO] -group [get_clocks BBB_SCLK]
|
||||
set_clock_groups -asynchronous -group [get_clocks BBB_SCLK] -group [get_clocks GPS_TCXO]
|
||||
set_clock_groups -asynchronous -group [get_clocks ADC_CLKIN]
|
||||
set_clock_groups -asynchronous -group [get_clocks GPS_TCXO]
|
||||
set_clock_groups -asynchronous -group [get_clocks BBB_SCLK]
|
||||
|
||||
# config
|
||||
set_property CONFIG_VOLTAGE 3.3 [current_design]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# When building in batch mode, as opposed to using the Vivado UI, V_SRC_DIR is passed to the tcl script
|
||||
# to specify where to place the resulting .bit files.
|
||||
#
|
||||
# V_SRC_DIR can be set as a global environment variable else it will default to the value below.
|
||||
# V_SRC_DIR can be set as a global environment variable otherwise it will default to the value below.
|
||||
#
|
||||
|
||||
ifeq ($(V_SRC_DIR)x,x)
|
||||
|
@ -51,13 +51,30 @@ cv:
|
|||
# command to "copy verilog" from KiwiSDR distribution into our build directory
|
||||
# designed to complement the "make cv" command run in the KiwiSDR server build directory
|
||||
EXCLUDE_RSYNC = ".DS_Store" "KiwiSDR/" "generated" ".Xil/" "vivado.*"
|
||||
V_PROJ = KiwiSDR
|
||||
cv2:
|
||||
rsync -av --delete $(addprefix --exclude , $(EXCLUDE_RSYNC)) $(V_SRC_DIR)/KiwiSDR/ .
|
||||
# rsync -av --delete --exclude .DS_Store $(V_SRC_DIR)/KiwiSDR.Vivado.2014.4.ip/ ../import_ip
|
||||
rsync -av --delete --exclude .DS_Store $(V_SRC_DIR)/KiwiSDR.Vivado.2017.4.ip/ ../import_ip
|
||||
rsync -av --delete $(addprefix --exclude , $(EXCLUDE_RSYNC)) $(V_SRC_DIR)/$(V_PROJ)/ .
|
||||
rsync -av --delete --exclude .DS_Store $(V_SRC_DIR)/$(V_PROJ).Vivado.2017.4.ip/ ../import_ip
|
||||
|
||||
RX_CFG = $(shell grep RX_CFG kiwi.cfg.vh | cut -d\ -f 4 | tr -d ';')
|
||||
ifeq ($(RX_CFG),4)
|
||||
CFG = rx4.wf4
|
||||
else ifeq ($(RX_CFG),8)
|
||||
CFG = rx8.wf2
|
||||
else ifeq ($(RX_CFG),3)
|
||||
CFG = rx3.wf3
|
||||
else ifeq ($(RX_CFG),14)
|
||||
CFG = rx14.wf0
|
||||
else
|
||||
CFG = other
|
||||
endif
|
||||
|
||||
cb:
|
||||
cp ../*.runs/impl_1/KiwiSDR.bit $(V_SRC_DIR)
|
||||
@echo "CFG =" $(CFG)
|
||||
cp ../*.runs/impl_1/KiwiSDR.bit $(V_SRC_DIR)/KiwiSDR.$(CFG).bit
|
||||
|
||||
sum:
|
||||
sum /media/sf_shared/*.bit
|
||||
|
||||
ts:
|
||||
-tail -f KiwiSDR/KiwiSDR.runs/synth_1/runme.log
|
||||
|
|
|
@ -1,108 +0,0 @@
|
|||
Steps to creating and building the KiwiSDR project with Vivado 2014.4
|
||||
Updated 6 Apr 2018
|
||||
|
||||
1) You will most likely be running Vivado on a Windows or Linux machine.
|
||||
We run Vivado successfully on a MacBook Pro using the VirtualBox application to emulate a PC
|
||||
and then running Ubuntu Linux on that and Vivado on that! (talk about punishment, lol).
|
||||
|
||||
2) Copy Verilog source files from the KiwiSDR distribution to a directory on the machine
|
||||
you will run Vivado as follows. We suggest creating a directory like verilog/KiwiSDR/import_srcs
|
||||
and copying the files there from the KiwiSDR_SDR_GPS/verilog/ directory of the KiwiSDR distribution.
|
||||
|
||||
In a few steps you will tell Vivado to use verilog/KiwiSDR as the project directory and it will
|
||||
create a bunch of files there, but will not modify anything in the import_srcs/ subdirectory.
|
||||
You can then update import_srcs/ when you (or we) make changes to the Verilog code.
|
||||
And Vivado will know to look for updated changes to the Verilog in that directory.
|
||||
|
||||
3) Now there is the question of the Vivado IP (intellectual property) blocks.
|
||||
|
||||
This is handled by a separate set of files in the verilog.Vivado.2014.4.ip/ subdirectory of the Kiwi distribution.
|
||||
These files contain the IP block configuration parameters captured when we at KiwiSDR initially ran
|
||||
the IP Catalog user interface as described in the verilog.Vivado.2014.4.ip/README file. These files will also be
|
||||
copied to your build machine and Vivado told where to find them.
|
||||
Then the first time you synthesize the project all the IP blocks will get compiled. This takes a
|
||||
long time but only needs to be done once. You can open each IP block with the IP Re-customize editor
|
||||
and change the configuration, and re-compile, if needed.
|
||||
|
||||
Create a directory called verilog/KiwiSDR/import_ip/ and copy the files from
|
||||
KiwiSDR_SDR_GPS/verilog.Vivado.2014.4.ip/ there from your your build machine.
|
||||
|
||||
4) We are now ready to setup the project. To begin start Vivado.
|
||||
">" denotes a user action (keyboard entry, mouse button push etc.)
|
||||
|
||||
5) On the front page after starting Vivado:
|
||||
> Quick Start > Create New Project
|
||||
|
||||
6) New Project menu
|
||||
> Next
|
||||
Project Name
|
||||
Project name
|
||||
> KiwiSDR
|
||||
Project location
|
||||
> verilog/ (note: NOT verilog/KiwiSDR/)
|
||||
Doesn't matter if "Create project subdirectory" is checked or not since
|
||||
verilog/KiwiSDR/ already exists.
|
||||
Project Type
|
||||
> RTL Project
|
||||
Add Sources
|
||||
> Add Directories
|
||||
Choose the verilog/KiwiSDR/import_srcs/ subdirectory.
|
||||
> Select
|
||||
Make sure "Copy sources into project" is NOT checked.
|
||||
Make sure "Add sources from subdirectories" is checked.
|
||||
Make sure target language is Verilog.
|
||||
> Next
|
||||
Add Existing IP
|
||||
> Add Directories
|
||||
And specify the verilog/KiwiSDR/import_ip/ subdirectory.
|
||||
> Select
|
||||
Make sure "Copy sources into project" is *IS* checked. <=== VERY IMPORTANT
|
||||
> Next
|
||||
Add Constraints
|
||||
> Add files
|
||||
Navigate to the verilog/KiwiSDR/import_srcs/ directory and select the KiwiSDR.xdc file.
|
||||
> OK
|
||||
Make sure "Copy constraints files into project" is NOT checked.
|
||||
It will default to being checked by having been checked in the preceding step.
|
||||
> Next
|
||||
Default Part
|
||||
Sub-Family
|
||||
> Artix-7
|
||||
Package
|
||||
> ftg256
|
||||
Speed-grade
|
||||
> -1
|
||||
Then select the xc7a35tftg256-1 from the list.
|
||||
> Next
|
||||
|
||||
New Project Summary
|
||||
>Finish
|
||||
|
||||
7) Now the main Vivado user interface will appear. Look at the Project Manager > Sources window.
|
||||
After it settles down the "KiwiSDR (kiwi.v)" entry should be listed in bold as the top-level module.
|
||||
The GEN module will be listed because it isn't used in the current Verilog configuration.
|
||||
|
||||
8) Build the Verilog by clicking the "Generate Bitstream" icon in the Vivado toolbar (10th from left).
|
||||
|
||||
Remember that the very first build will have to compile all the IP blocks. You can monitor the
|
||||
progress by selecting the "Design Runs" tab at the bottom of the Project Manager window.
|
||||
|
||||
After building is complete you should get result similar to these:
|
||||
|
||||
Error count:
|
||||
Synthesis = 165
|
||||
Implementation = 74
|
||||
DRC advisories = 60
|
||||
|
||||
Utilization - Post Implementation:
|
||||
FF 47%, LUT 68%
|
||||
BRAM 95%, DSP 50%
|
||||
|
||||
9) The new .bit file will be in verilog/KiwiSDR/KiwiSDR.runs/impl_1/KiwiSDR.bit
|
||||
Copy this to the Beagle_SDR_GPS/ directory where you build the Kiwi server code.
|
||||
|
||||
10) Notes:
|
||||
The files named *.v.OFF are Verilog files not used in the current configuration. By naming them
|
||||
".OFF" Vivado ignores them and it keeps the Project Manager > Sources window less cluttered.
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
Steps to creating and building the KiwiSDR project with Vivado 2017.4
|
||||
Updated 6 Apr 2018
|
||||
Updated 15 May 2021
|
||||
|
||||
1) You will most likely be running Vivado on a Windows or Linux machine.
|
||||
We run Vivado successfully on a MacBook Pro using the VirtualBox application to emulate a PC
|
||||
|
@ -120,16 +120,31 @@ Utilization - Post Implementation:
|
|||
|
||||
10) The new .bit file will be in verilog/KiwiSDR/KiwiSDR.runs/impl_1/KiwiSDR.bit
|
||||
Copy this to the Beagle_SDR_GPS/ directory where you build the Kiwi server code.
|
||||
But see the next step for the correct .bit filename to create.
|
||||
|
||||
11) You must actually build two FPGA images with different configurations. This is to accomodate the
|
||||
4-channel and 8-channel configuration modes (see admin page, "mode" tab). To do this in the file
|
||||
kiwi.config set the value of CFG_SDR_RX4_WF4 to "1" and CFG_SDR_RX8_WF2 to "0". Then build the
|
||||
Kiwi code. This will generate a proper verilog/kiwi.gen.vh Verilog include file. Copy this file to
|
||||
your Vivado build machine and build the FPGA image file KiwiSDR.bit Copy this file back to your
|
||||
development machine and rename it KiwiSDR.rx4wf4.bit Repeat the entire process with
|
||||
CFG_SDR_RX4_WF4 set to "0" and CFG_SDR_RX8_WF2 set to "1". Name this FPGA image KiwiSDR.rx8wf2.bit
|
||||
See the Makefile for details about how these .bit files are installed in the correct place
|
||||
when the "make install" command is used.
|
||||
11) You must actually build four FPGA images with different configurations. This is to accomodate
|
||||
the 3, 4, 8 and 14-channel (BBAI only) configuration modes (see admin page, "mode" tab).
|
||||
|
||||
In the file Beagle_SDR_GPS/kiwi.config uncomment the value of RX_CFG for the configuration you
|
||||
want to build. Then run a "make" which will build the Kiwi server code, but also create the
|
||||
generated Verilog include files verilog/kiwi.cfg.vh, verilog/kiwi.gen.vh and verilog/other.gen.vh
|
||||
Copy the files over the files to the source directory of your Vivado build machine as before.
|
||||
|
||||
Then build the Kiwi Verilog code in Vivado as described previously. Copy the resulting
|
||||
KiwiSDR.bit file back to your development machine and rename it to a filename of the form
|
||||
KiwiSDR.rxA.wfB.bit where A = the number of rx channels in the configuration and
|
||||
B = the number of waterfall channels.
|
||||
|
||||
That is, the files:
|
||||
KiwiSDR.rx4.wf4.bit
|
||||
KiwiSDR.rx8.wf2.bit
|
||||
KiwiSDR.rx3.wf3.bit
|
||||
KiwiSDR.rx14.wf0.bit
|
||||
|
||||
The make file in Beagle_SDR_GPS/verilog/Makefile shows an example of this process.
|
||||
|
||||
It also shows how to use the Vivado tcl script "make_proj.tcl" to run Vivado in batch
|
||||
mode to create all four .bit files without manually using the Vivado user interface.
|
||||
|
||||
12) Notes:
|
||||
The files named *.v.OFF are Verilog files not used in the current configuration. By naming them
|
||||
|
|
|
@ -55,9 +55,9 @@ module CPU (
|
|||
// 100p ppppRiiiiiii addi, imm [6:0] 0-127
|
||||
// 100p ppppRCxxxxxx add, C = carry-in
|
||||
// 100p ppppRSxxxxxx rdBit, S selects 'ser' bit input
|
||||
// 100p ppppRxxxxxxx others, EXCEPT illegal for: r, r_from, to_r
|
||||
// 100p ppppRxxxxxxx all others, EXCEPT R=1 illegal for: r, r_from, to_r
|
||||
|
||||
// bbbb xxxxxxxxxxxb op5 [15:0]
|
||||
// bbbb -----------b op5 [15:0]
|
||||
// 1010 ddddddddddd0 call 11:1 (:1 because of 16-bit insn width)
|
||||
// 1010 ddddddddddd1 BR 11:1
|
||||
// 1011 ddddddddddd0 BZ 11:1
|
||||
|
@ -113,7 +113,7 @@ module CPU (
|
|||
|
||||
wire op_push = ~op[15]; // op[14:0] --> TOS
|
||||
|
||||
wire opt_ret = op[7] && op[15:13]==3'b100;
|
||||
wire opt_ret = op[7] && op[15:13] == 3'b100;
|
||||
wire opt_cin = op[6];
|
||||
wire ser_sel = op[6];
|
||||
wire serial = ser_sel? ser[1] : ser[0];
|
||||
|
@ -127,21 +127,21 @@ module CPU (
|
|||
|
||||
wire nz = |tos[15:0];
|
||||
|
||||
wire jump = op5==op_branchNZ && nz || op5==op_branch ||
|
||||
op5==op_branchZ && ~nz || op5==op_call;
|
||||
wire jump = op5 == op_branchNZ && nz || op5 == op_branch ||
|
||||
op5 == op_branchZ && ~nz || op5 == op_call;
|
||||
|
||||
wire inc_sp = op_push || op4==op_rdReg || op8==op_dup || op8==op_r
|
||||
|| op8==op_over || op8==op_r_from;
|
||||
wire inc_sp = op_push || op4 == op_rdReg || op8 == op_dup || op8 == op_r
|
||||
|| op8 == op_over || op8 == op_r_from;
|
||||
|
||||
wire dec_sp = op4==op_wrReg || op8==op_drop || op8==op_and || op8==op_mult ||
|
||||
op5==op_branchZ || op8==op_add || op8==op_or || op8==op_to_r ||
|
||||
op5==op_branchNZ || op8==op_sub || op8==op_xor || op8==op_store16;
|
||||
wire dec_sp = op4 == op_wrReg || op8 == op_drop || op8 == op_and || op8 == op_mult ||
|
||||
op5 == op_branchZ || op8 == op_add || op8 == op_or || op8 == op_to_r ||
|
||||
op5 == op_branchNZ || op8 == op_sub || op8 == op_xor || op8 == op_store16;
|
||||
|
||||
wire inc_rp = op8==op_to_r || op5==op_call;
|
||||
wire dec_rp = op8==op_r_from || opt_ret;
|
||||
wire inc_rp = op8 == op_to_r || op5 == op_call;
|
||||
wire dec_rp = op8 == op_r_from || opt_ret;
|
||||
|
||||
wire dstk_wr = op8==op_rot || inc_sp;
|
||||
wire rstk_wr = op8==op_to_r || op5==op_call;
|
||||
wire dstk_wr = op8 == op_rot || inc_sp;
|
||||
wire rstk_wr = op8 == op_to_r || op5 == op_call;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Next on stack
|
||||
|
@ -169,7 +169,7 @@ module CPU (
|
|||
wire [39:0] prod40;
|
||||
wire [31:0] sum;
|
||||
wire co;
|
||||
wire ci = (op8==op_add && opt_cin && carry) || op8==op_sub;
|
||||
wire ci = (op8 == op_add && opt_cin && carry) || op8 == op_sub;
|
||||
reg [31:0] a, b, alu;
|
||||
reg carry;
|
||||
|
||||
|
@ -177,15 +177,15 @@ module CPU (
|
|||
// FIXME: combine adder & multipler into a single DSP slice
|
||||
ip_add_u32b cpu_sum (.a(a), .b(b), .s({co, sum}), .c_in(ci));
|
||||
|
||||
always @ (posedge clk) if (op8==op_add) carry <= co;
|
||||
always @ (posedge clk) if (op8 == op_add) carry <= co;
|
||||
|
||||
always @*
|
||||
if (op8==op_addi) a = op[6:0];
|
||||
if (op8 == op_addi) a = op[6:0];
|
||||
else if (mem_rd) a = 2;
|
||||
else a = nos;
|
||||
|
||||
always @*
|
||||
if (op8==op_sub) b = ~tos;
|
||||
if (op8 == op_sub) b = ~tos;
|
||||
else b = tos;
|
||||
|
||||
always @*
|
||||
|
@ -208,7 +208,7 @@ module CPU (
|
|||
endcase
|
||||
|
||||
always @*
|
||||
if (op8==op_mult) begin
|
||||
if (op8 == op_mult) begin
|
||||
xa = {{2{nos[15]}}, nos[15:0]};
|
||||
xb = {{2{tos[15]}}, tos[15:0]};
|
||||
end
|
||||
|
@ -255,14 +255,14 @@ module CPU (
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
// I/O
|
||||
|
||||
assign rdBit = (op8==op_rdBit) && !ser_sel;
|
||||
assign rdBit2 = (op8==op_rdBit) && ser_sel;
|
||||
assign rdReg = (op4==op_rdReg) && !op[11];
|
||||
assign rdReg2 = (op4==op_rdReg) && op[11];
|
||||
assign wrReg = (op4==op_wrReg) && !op[11];
|
||||
assign wrReg2 = (op4==op_wrReg) && op[11];
|
||||
assign wrEvt = (op4==op_wrEvt) && !op[11];
|
||||
assign wrEvt2 = (op4==op_wrEvt) && op[11];
|
||||
assign rdBit = (op8 == op_rdBit) && !ser_sel;
|
||||
assign rdBit2 = (op8 == op_rdBit) && ser_sel;
|
||||
assign rdReg = (op4 == op_rdReg) && !op[11];
|
||||
assign rdReg2 = (op4 == op_rdReg) && op[11];
|
||||
assign wrReg = (op4 == op_wrReg) && !op[11];
|
||||
assign wrReg2 = (op4 == op_wrReg) && op[11];
|
||||
assign wrEvt = (op4 == op_wrEvt) && !op[11];
|
||||
assign wrEvt2 = (op4 == op_wrEvt) && op[11];
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Program counter and stack pointers
|
||||
|
@ -301,7 +301,7 @@ module CPU (
|
|||
.ena (rst[RUN]), .enb (rst[RUN]),
|
||||
.addra (dstk_addr), .addrb (rstk_addr),
|
||||
.douta (dstk_dout), .doutb (rstk_dout),
|
||||
.dina (nos), .dinb (op5==op_call? pc_plus_2 : tos),
|
||||
.dina (nos), .dinb (op5 == op_call? pc_plus_2 : tos),
|
||||
.wea (dstk_wr), .web (rstk_wr)
|
||||
);
|
||||
|
||||
|
@ -313,13 +313,14 @@ module CPU (
|
|||
// There are just two ports so opcode fetch and data i/o can overlap.
|
||||
|
||||
ipcore_bram_cpu_2k_16b cpu_code_data (
|
||||
.clka (clk), .clkb (clk),
|
||||
.rsta (~rst[RUN]),
|
||||
.ena (1'b1), .enb (rst[RUN]),
|
||||
.addra (next_pc), .addrb (next_tos[11:1]),
|
||||
.douta (op), .doutb (mem_dout),
|
||||
.dina (par), .dinb (nos[15:0]),
|
||||
.wea (rst[LOAD]), .web (op8==op_store16)
|
||||
.clka (clk), .clkb (clk),
|
||||
.rsta (~rst[RUN]),
|
||||
.rsta_busy (), .rstb_busy (),
|
||||
.ena (1'b1), .enb (rst[RUN]),
|
||||
.addra (next_pc), .addrb (next_tos[11:1]),
|
||||
.douta (op), .doutb (mem_dout),
|
||||
.dina (par), .dinb (nos[15:0]),
|
||||
.wea (rst[LOAD]), .web (op8 == op_store16)
|
||||
);
|
||||
|
||||
endmodule
|
||||
|
|
|
@ -40,6 +40,9 @@ module HOST (
|
|||
input wire wf_rd,
|
||||
input wire [15:0] wf_dout,
|
||||
|
||||
input wire ext_rd,
|
||||
input wire [15:0] ext_dout,
|
||||
|
||||
input wire hb_ovfl,
|
||||
output wire hb_orst,
|
||||
|
||||
|
@ -48,7 +51,7 @@ module HOST (
|
|||
input wire [15:0] mem_dout,
|
||||
output reg boot_done,
|
||||
|
||||
input wire [31:0] tos,
|
||||
input wire [15:0] tos,
|
||||
input wire [15:0] op,
|
||||
input wire rdReg,
|
||||
input wire wrReg,
|
||||
|
@ -274,7 +277,7 @@ module HOST (
|
|||
|
||||
reg [HB_MSB:0] hb_addr, hb_pos;
|
||||
|
||||
wire hb_wr = host_wr | gps_rd | rx_rd | wf_rd | mem_rd;
|
||||
wire hb_wr = host_wr | gps_rd | rx_rd | wf_rd | ext_rd | mem_rd;
|
||||
wire hb_rd = host_rd | boot_rd;
|
||||
wire hb_rst = host_rst | boot_rst;
|
||||
|
||||
|
@ -303,11 +306,12 @@ module HOST (
|
|||
assign mem_rd = wrEvt & op[GET_MEMORY];
|
||||
|
||||
always @*
|
||||
if (gps_rd) hb_din = gps_dout; else
|
||||
if (mem_rd) hb_din = mem_dout; else
|
||||
if (rx_rd) hb_din = rx_dout; else
|
||||
if (wf_rd) hb_din = wf_dout; else
|
||||
hb_din = tos[15:0]; // default: host_wr (HOST_TX)
|
||||
if (gps_rd) hb_din = gps_dout; else
|
||||
if (mem_rd) hb_din = mem_dout; else
|
||||
if (rx_rd) hb_din = rx_dout; else
|
||||
if (wf_rd) hb_din = wf_dout; else
|
||||
if (ext_rd) hb_din = ext_dout; else
|
||||
hb_din = tos[15:0]; // default: host_wr (HOST_TX)
|
||||
|
||||
// 16'b0 assignment very important because some rdRegs want to push a zero on the stack as a side-effect
|
||||
assign host_dout = hb_rd? hb_dout : 16'b0;
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
// this file auto-generated by the embedded processor assembler -- edits likely to be overwritten
|
||||
// this file auto-generated by the e_cpu assembler -- edits will be overwritten
|
||||
|
||||
`ifndef _KIWI_GEN_VH_
|
||||
`define _KIWI_GEN_VH_
|
||||
`ifndef _GEN_kiwi_VH_
|
||||
`define _GEN_kiwi_VH_
|
||||
|
||||
// from assembler DEF directives:
|
||||
|
||||
`define USE_SDR // DEFh 0x1
|
||||
parameter GPS_CHANS = 12; // DEFp 0xc
|
||||
`define DEF_GPS_CHANS
|
||||
`define USE_GPS // DEFh 0x1
|
||||
`define ARTIX_7A35 // DEFh 0x1
|
||||
//`define ZYNQ_7007 // DEFh 0x0
|
||||
|
@ -36,15 +38,16 @@
|
|||
`define DEF_FPGA_ID_RX3_WF3
|
||||
parameter FPGA_ID_RX14_WF0 = 4'd3; // DEFp 0x3
|
||||
`define DEF_FPGA_ID_RX14_WF0
|
||||
parameter FPGA_ID_GPS = 4'd3; // DEFp 0x3
|
||||
`define DEF_FPGA_ID_GPS
|
||||
parameter FPGA_ID_OTHER = 4'd4; // DEFp 0x4
|
||||
`define DEF_FPGA_ID_OTHER
|
||||
parameter NUM_CMDS_BASE = 13; // DEFp 0xd
|
||||
`define DEF_NUM_CMDS_BASE
|
||||
parameter NUM_CMDS_GPS = 16; // DEFp 0x10
|
||||
`define DEF_NUM_CMDS_GPS
|
||||
parameter NUM_CMDS_SDR = 12; // DEFp 0xc
|
||||
`define DEF_NUM_CMDS_SDR
|
||||
//`define CFG_GPS_ONLY // DEFh 0x0
|
||||
parameter NUM_CMDS_GPS = 16; // DEFp 0x10
|
||||
`define DEF_NUM_CMDS_GPS
|
||||
parameter NUM_CMDS_OTHER = 0; // DEFp 0x0
|
||||
//`define DEF_NUM_CMDS_OTHER
|
||||
parameter NUM_CMDS = 41; // DEFp 0x29
|
||||
`define DEF_NUM_CMDS
|
||||
`define SPI_32 // DEFh 0x1
|
||||
|
@ -145,8 +148,6 @@
|
|||
//`define DEF_WF_2CIC_MAXD
|
||||
parameter MAX_GPS_CHANS = 12; // DEFp 0xc
|
||||
`define DEF_MAX_GPS_CHANS
|
||||
parameter GPS_CHANS = 12; // DEFp 0xc
|
||||
`define DEF_GPS_CHANS
|
||||
parameter GPS_INTEG_BITS = 20; // DEFp 0x14
|
||||
`define DEF_GPS_INTEG_BITS
|
||||
parameter GPS_REPL_BITS = 18; // DEFp 0x12
|
||||
|
@ -219,9 +220,9 @@
|
|||
parameter SET_CNT_MASK = 10; // DEFb: bit number for value: 0x400
|
||||
parameter HOST_RST = 0; // DEFb: bit number for value: 0x1
|
||||
parameter HOST_RDY = 1; // DEFb: bit number for value: 0x2
|
||||
parameter GPS_SAMPLER_RST = 2; // DEFb: bit number for value: 0x4
|
||||
parameter GET_GPS_SAMPLES = 3; // DEFb: bit number for value: 0x8
|
||||
parameter GET_MEMORY = 4; // DEFb: bit number for value: 0x10
|
||||
parameter GET_MEMORY = 2; // DEFb: bit number for value: 0x4
|
||||
parameter GPS_SAMPLER_RST = 3; // DEFb: bit number for value: 0x8
|
||||
parameter GET_GPS_SAMPLES = 4; // DEFb: bit number for value: 0x10
|
||||
parameter GET_LOG = 5; // DEFb: bit number for value: 0x20
|
||||
parameter PUT_LOG = 6; // DEFb: bit number for value: 0x40
|
||||
parameter LOG_RST = 7; // DEFb: bit number for value: 0x80
|
||||
|
|
|
@ -102,19 +102,22 @@ module KiwiSDR (
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
// clocks
|
||||
|
||||
wire adc_clk, gps_clk, cpu_clk;
|
||||
|
||||
wire gps_tcxo_buf;
|
||||
IBUFG tcxo_ibufg(.I(GPS_TCXO), .O(gps_tcxo_buf)); // 16.368 MHz TCXO
|
||||
wire cpu_clk = gps_tcxo_buf;
|
||||
wire gps_clk = gps_tcxo_buf;
|
||||
|
||||
wire adc_clk;
|
||||
IBUFG vcxo_ibufg(.I(ADC_CLKIN), .O(adc_clk));
|
||||
assign ADC_CLKEN = ctrl[CTRL_OSC_EN];
|
||||
|
||||
IBUFG tcxo_ibufg(.I(GPS_TCXO), .O(gps_clk)); // 16.368 MHz TCXO
|
||||
assign cpu_clk = gps_clk;
|
||||
|
||||
`ifdef USE_SDR
|
||||
reg signed [ADC_BITS-1:0] reg_adc_data;
|
||||
always @ (posedge adc_clk)
|
||||
begin
|
||||
reg_adc_data <= ADC_DATA;
|
||||
end
|
||||
`endif
|
||||
|
||||
wire [2:1] rst;
|
||||
|
||||
|
@ -124,8 +127,8 @@ module KiwiSDR (
|
|||
wire [1:0] ser;
|
||||
wire rdBit, rdBit2, rdReg, rdReg2, wrReg, wrReg2, wrEvt, wrEvt2;
|
||||
|
||||
wire boot_done, host_srq, mem_rd, gps_rd;
|
||||
wire [15:0] host_dout, mem_dout, gps_dout;
|
||||
wire boot_done, host_srq, mem_rd, gps_rd, ext_rd;
|
||||
wire [15:0] host_dout, mem_dout, gps_dout, ext_dout;
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
@ -158,11 +161,22 @@ module KiwiSDR (
|
|||
assign P8[8] = ctrl[CTRL_UNUSED_OUT];
|
||||
assign P8[9] = ctrl[CTRL_UNUSED_OUT];
|
||||
|
||||
wire unused_inputs = IF_MAG | P9[2];
|
||||
wire unused_inputs = IF_MAG | P9[2]
|
||||
`ifndef USE_SDR
|
||||
| ADC_CLKIN | |ADC_DATA | ADC_OVFL
|
||||
`endif
|
||||
`ifndef USE_GPS
|
||||
| IF_SGN
|
||||
`endif
|
||||
;
|
||||
|
||||
`ifndef USE_SDR
|
||||
assign ADC_CLKEN = 1'b0;
|
||||
`endif
|
||||
|
||||
wire [15:0] status;
|
||||
wire [3:0] stat_user = { 3'b0, dna_data };
|
||||
// when the firmware returns status it replaces stat_replaced with FW_ID
|
||||
// when the eCPU firmware returns status it replaces stat_replaced with FW_ID
|
||||
wire [2:0] stat_replaced = { 2'b0, unused_inputs };
|
||||
wire [3:0] fpga_id = { FPGA_ID };
|
||||
assign status[15:0] = { rx_overflow_C, stat_replaced, FPGA_VER, stat_user, fpga_id };
|
||||
|
@ -180,9 +194,9 @@ module KiwiSDR (
|
|||
|
||||
wire rx_rd, wf_rd;
|
||||
wire [15:0] rx_dout, wf_dout;
|
||||
|
||||
wire [47:0] ticks_A;
|
||||
|
||||
`ifdef USE_SDR
|
||||
RECEIVER receiver (
|
||||
.adc_clk (adc_clk),
|
||||
.adc_data (reg_adc_data),
|
||||
|
@ -201,21 +215,12 @@ module KiwiSDR (
|
|||
.tos (tos),
|
||||
.op (op),
|
||||
.rdReg (rdReg),
|
||||
.rdBit2 (rdBit2),
|
||||
.wrReg2 (wrReg2),
|
||||
.wrEvt2 (wrEvt2),
|
||||
|
||||
.ctrl (ctrl)
|
||||
);
|
||||
|
||||
wire rx_ovfl_C, rx_orst;
|
||||
reg rx_overflow_C;
|
||||
always @ (posedge cpu_clk)
|
||||
begin
|
||||
if (rx_orst) rx_overflow_C <= rx_ovfl_C; else
|
||||
rx_overflow_C <= rx_overflow_C | rx_ovfl_C;
|
||||
end
|
||||
|
||||
//`define ADC_OVFL_ON_ONE_SAMPLE
|
||||
`ifdef ADC_OVFL_ON_ONE_SAMPLE
|
||||
SYNC_PULSE sync_adc_ovfl (.in_clk(adc_clk), .in(ADC_OVFL), .out_clk(cpu_clk), .out(rx_ovfl_C));
|
||||
|
@ -246,13 +251,32 @@ module KiwiSDR (
|
|||
SYNC_PULSE sync_adc_ovfl (.in_clk(adc_clk), .in(adc_ovfl), .out_clk(cpu_clk), .out(rx_ovfl_C));
|
||||
`endif
|
||||
|
||||
wire rx_ovfl_C, rx_orst;
|
||||
reg rx_overflow_C;
|
||||
always @ (posedge cpu_clk)
|
||||
begin
|
||||
if (rx_orst) rx_overflow_C <= rx_ovfl_C; else
|
||||
rx_overflow_C <= rx_overflow_C | rx_ovfl_C;
|
||||
end
|
||||
|
||||
`else
|
||||
assign rx_rd = 0;
|
||||
assign rx_dout = 0;
|
||||
assign wf_rd = 0;
|
||||
assign wf_dout = 0;
|
||||
`ifndef USE_OTHER
|
||||
assign ser[1] = 1'b0;
|
||||
`endif
|
||||
wire rx_orst;
|
||||
wire rx_overflow_C = 0;
|
||||
`endif
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// CPU parallel port input mux
|
||||
|
||||
wire [31:0] wcnt;
|
||||
|
||||
always @*
|
||||
begin
|
||||
`ifdef USE_CPU_CTR
|
||||
if (rdReg & op[GET_CPU_CTR0]) par = { cpu_ctr[1][ 7 -:8], cpu_ctr[0][ 7 -:8] }; else
|
||||
if (rdReg & op[GET_CPU_CTR1]) par = { cpu_ctr[1][15 -:8], cpu_ctr[0][15 -:8] }; else
|
||||
|
@ -262,13 +286,14 @@ wire [31:0] wcnt;
|
|||
|
||||
if (rdReg & op[GET_STATUS]) par = status; else
|
||||
par = host_dout;
|
||||
end
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// host SPI interface
|
||||
|
||||
HOST host (
|
||||
.hb_clk (gps_clk),
|
||||
.hb_clk (cpu_clk),
|
||||
.rst (rst),
|
||||
.spi_sclk (BBB_SCLK),
|
||||
.spi_cs (~BBB_CS_N),
|
||||
|
@ -285,6 +310,9 @@ wire [31:0] wcnt;
|
|||
.wf_rd (wf_rd),
|
||||
.wf_dout (wf_dout),
|
||||
|
||||
.ext_rd (ext_rd),
|
||||
.ext_dout (ext_dout),
|
||||
|
||||
.hb_ovfl (rx_overflow_C),
|
||||
.hb_orst (rx_orst), // NB: hb_clk = gps_clk = cpu_clk
|
||||
|
||||
|
@ -293,7 +321,7 @@ wire [31:0] wcnt;
|
|||
.mem_dout (mem_dout),
|
||||
.boot_done (boot_done),
|
||||
|
||||
.tos (tos),
|
||||
.tos (tos[15:0]),
|
||||
.op (op),
|
||||
.rdReg (rdReg),
|
||||
.wrReg (wrReg),
|
||||
|
@ -342,7 +370,7 @@ wire [31:0] wcnt;
|
|||
);
|
||||
|
||||
|
||||
`ifdef DEF_GPS_CHANS
|
||||
`ifdef USE_GPS
|
||||
GPS gps (
|
||||
.clk (gps_clk),
|
||||
.adc_clk (adc_clk),
|
||||
|
@ -355,7 +383,7 @@ wire [31:0] wcnt;
|
|||
.ticks_A (ticks_A),
|
||||
|
||||
.ser (ser[0]),
|
||||
.tos (tos), // fixme: cpu_clk?
|
||||
.tos (tos), // no clk domain crossing because gps_clk = cpu_clk
|
||||
.op (op),
|
||||
.rdBit (rdBit),
|
||||
.rdReg (rdReg),
|
||||
|
@ -364,16 +392,25 @@ wire [31:0] wcnt;
|
|||
);
|
||||
`else
|
||||
|
||||
// if no GPS configured, still need to capture host_srq in the same way as GPS.
|
||||
// if no GPS configured, still need to capture host_srq in the same way as GPS does.
|
||||
assign ser[0] = srq_out;
|
||||
reg srq_noted, srq_out;
|
||||
|
||||
always @ (posedge cpu_clk)
|
||||
begin
|
||||
if (rdReg & op[GET_SRQ]) srq_noted <= host_srq;
|
||||
else srq_noted <= host_srq | srq_noted;
|
||||
if (rdReg & op[GET_SRQ]) srq_out <= srq_noted;
|
||||
else srq_noted <= host_srq | srq_noted;
|
||||
if (rdReg & op[GET_SRQ]) srq_out <= srq_noted;
|
||||
end
|
||||
|
||||
assign gps_rd = 0;
|
||||
assign gps_dout = 0;
|
||||
`endif
|
||||
|
||||
`ifdef USE_OTHER
|
||||
`else
|
||||
assign ext_rd = 0;
|
||||
assign ext_dout = 0;
|
||||
`endif
|
||||
|
||||
endmodule
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
`include "kiwi.cfg.vh"
|
||||
`include "kiwi.gen.vh"
|
||||
`include "other.gen.vh"
|
||||
|
||||
parameter V_RX_CHANS = (RX_CFG == 4)? 4 : ((RX_CFG == 8)? 8 : ((RX_CFG == 3)? 3 : ((RX_CFG == 14)? 14 : 0)));
|
||||
parameter V_WF_CHANS = (RX_CFG == 4)? 4 : ((RX_CFG == 8)? 2 : ((RX_CFG == 3)? 3 : ((RX_CFG == 14)? 0 : 0)));
|
||||
|
@ -13,7 +14,7 @@ parameter RXBUF_LARGE = (RX_CFG == 4)? 0 : ((RX_CFG == 8)? 1 : ((RX_CFG == 3)? 1
|
|||
parameter RX1_DECIM = (RX_CFG == 4)? RX1_STD_DECIM : ((RX_CFG == 8)? RX1_STD_DECIM : ((RX_CFG == 3)? RX1_WIDE_DECIM : ((RX_CFG == 14)? RX1_STD_DECIM : 0)));
|
||||
parameter RX2_DECIM = (RX_CFG == 4)? RX2_STD_DECIM : ((RX_CFG == 8)? RX2_STD_DECIM : ((RX_CFG == 3)? RX2_WIDE_DECIM : ((RX_CFG == 14)? RX2_STD_DECIM : 0)));
|
||||
|
||||
parameter FPGA_ID = (RX_CFG == 4)? FPGA_ID_RX4_WF4 : ((RX_CFG == 8)? FPGA_ID_RX8_WF2 : ((RX_CFG == 3)? FPGA_ID_RX3_WF3 : ((RX_CFG == 14)? FPGA_ID_RX14_WF0 : 0)));
|
||||
parameter FPGA_ID = (RX_CFG == 4)? FPGA_ID_RX4_WF4 : ((RX_CFG == 8)? FPGA_ID_RX8_WF2 : ((RX_CFG == 3)? FPGA_ID_RX3_WF3 : ((RX_CFG == 14)? FPGA_ID_RX14_WF0 : FPGA_ID_OTHER)));
|
||||
|
||||
// rst[2:1]
|
||||
parameter LOAD = 1;
|
||||
|
|
|
@ -150,6 +150,7 @@ set files [ list \
|
|||
"[file normalize ${origin_dir}/kiwi.vh]" \
|
||||
"[file normalize ${origin_dir}/kiwi.cfg.vh]" \
|
||||
"[file normalize ${origin_dir}/kiwi.gen.vh]" \
|
||||
"[file normalize ${origin_dir}/other.gen.vh]" \
|
||||
"[file normalize ${origin_dir}/kiwi.v]" \
|
||||
"[file normalize ${origin_dir}/host.v]" \
|
||||
"[file normalize ${origin_dir}/cpu.v]" \
|
||||
|
@ -200,6 +201,7 @@ proc add_verilog_header_file fn {
|
|||
if {[string equal $proj_create "yes"]} {
|
||||
add_verilog_header_file "$origin_dir/kiwi.vh"
|
||||
add_verilog_header_file "$origin_dir/kiwi.gen.vh"
|
||||
add_verilog_header_file "$origin_dir/other.gen.vh"
|
||||
add_verilog_header_file "$origin_dir/rx/cic_rx1_12k.vh"
|
||||
add_verilog_header_file "$origin_dir/rx/cic_rx1_20k.vh"
|
||||
add_verilog_header_file "$origin_dir/rx/cic_rx2_12k.vh"
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
// this file auto-generated by the e_cpu assembler -- edits will be overwritten
|
||||
|
||||
`ifndef _GEN_other_VH_
|
||||
`define _GEN_other_VH_
|
||||
|
||||
// from assembler DEF directives:
|
||||
|
||||
//`define USE_OTHER // DEFh 0x0
|
||||
|
||||
`endif
|
|
@ -147,6 +147,7 @@ module cic_prune_var (
|
|||
16: in <= in_data << (ACC_WIDTH - ACC_R16);
|
||||
32: in <= in_data << (ACC_WIDTH - ACC_R32);
|
||||
64: in <= in_data << (ACC_WIDTH - ACC_R64);
|
||||
default: in <= in_data;
|
||||
endcase
|
||||
end
|
||||
endgenerate
|
||||
|
@ -169,6 +170,7 @@ module cic_prune_var (
|
|||
512: in <= in_data << (ACC_WIDTH - ACC_R512);
|
||||
1024: in <= in_data << (ACC_WIDTH - ACC_R1K);
|
||||
2048: in <= in_data << (ACC_WIDTH - ACC_R2K);
|
||||
default: in <= in_data;
|
||||
endcase
|
||||
end
|
||||
endgenerate
|
||||
|
@ -192,6 +194,7 @@ module cic_prune_var (
|
|||
1024: in <= in_data << (ACC_WIDTH - ACC_R1K);
|
||||
2048: in <= in_data << (ACC_WIDTH - ACC_R2K);
|
||||
4096: in <= in_data << (ACC_WIDTH - ACC_R4K);
|
||||
default: in <= in_data;
|
||||
endcase
|
||||
end
|
||||
endgenerate
|
||||
|
@ -216,6 +219,7 @@ module cic_prune_var (
|
|||
2048: in <= in_data << (ACC_WIDTH - ACC_R2K);
|
||||
4096: in <= in_data << (ACC_WIDTH - ACC_R4K);
|
||||
8192: in <= in_data << (ACC_WIDTH - ACC_R8K);
|
||||
default: in <= in_data;
|
||||
endcase
|
||||
end
|
||||
endgenerate
|
||||
|
@ -241,6 +245,7 @@ module cic_prune_var (
|
|||
4096: in <= in_data << (ACC_WIDTH - ACC_R4K);
|
||||
8192: in <= in_data << (ACC_WIDTH - ACC_R8K);
|
||||
16384: in <= in_data << (ACC_WIDTH - ACC_R16K);
|
||||
default: in <= in_data;
|
||||
endcase
|
||||
end
|
||||
endgenerate
|
||||
|
|
|
@ -36,7 +36,6 @@ module RECEIVER (
|
|||
input wire [31:0] tos,
|
||||
input wire [15:0] op,
|
||||
input wire rdReg,
|
||||
input wire rdBit2,
|
||||
input wire wrReg2,
|
||||
input wire wrEvt2,
|
||||
|
||||
|
@ -482,7 +481,7 @@ module RECEIVER (
|
|||
.wf_dout_C (wfn_dout_C),
|
||||
|
||||
.cpu_clk (cpu_clk),
|
||||
.tos (tos),
|
||||
.tos_16 (tos[15:0]),
|
||||
.freeze_tos_A (freeze_tos_A),
|
||||
|
||||
.set_wf_freqH_C (set_wf_freqH_C),
|
||||
|
|
|
@ -27,7 +27,7 @@ module WATERFALL_1CIC (
|
|||
output wire [15:0] wf_dout_C,
|
||||
|
||||
input wire cpu_clk,
|
||||
input wire [31:0] tos,
|
||||
input wire [15:0] tos_16,
|
||||
input wire [31:0] freeze_tos_A,
|
||||
|
||||
input wire set_wf_freqH_C,
|
||||
|
@ -44,7 +44,7 @@ module WATERFALL_1CIC (
|
|||
SYNC_PULSE reset_inst (.in_clk(cpu_clk), .in(wf_sel_C && rst_wf_sampler_C), .out_clk(adc_clk), .out(rst_wf_sampler_A));
|
||||
|
||||
wire rst_wf_samp_wr_A = rst_wf_sampler_A && freeze_tos_A[WF_SAMP_WR_RST];
|
||||
wire rst_wf_samp_rd_C = rst_wf_sampler_C && tos[WF_SAMP_RD_RST]; // qualified with wf_sel_C below
|
||||
wire rst_wf_samp_rd_C = rst_wf_sampler_C && tos_16[WF_SAMP_RD_RST]; // qualified with wf_sel_C below
|
||||
|
||||
reg wf_continuous_A;
|
||||
always @ (posedge adc_clk)
|
||||
|
@ -52,7 +52,7 @@ module WATERFALL_1CIC (
|
|||
if (rst_wf_sampler_A) wf_continuous_A <= freeze_tos_A[WF_SAMP_CONTIN];
|
||||
end
|
||||
|
||||
wire wf_samp_sync_C = rst_wf_sampler_C && tos[WF_SAMP_SYNC]; // qualified with wf_sel_C below
|
||||
wire wf_samp_sync_C = rst_wf_sampler_C && tos_16[WF_SAMP_SYNC]; // qualified with wf_sel_C below
|
||||
|
||||
reg signed [47:0] wf_phase_inc;
|
||||
wire set_wf_freqH_A, set_wf_freqL_A;
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
--------------------------------------------------------------------------------
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// Copyright (c) 2021 John Seamons, ZL/KF6VO
|
||||
|
||||
`include "kiwi.vh"
|
||||
|
||||
// variable length left shift register
|
||||
|
||||
module sreg #(parameter WIDTH=16) (
|
||||
input wire clk,
|
||||
input wire [WIDTH-1:0] pin,
|
||||
input wire load,
|
||||
input wire sft,
|
||||
input wire sin,
|
||||
output wire sout
|
||||
);
|
||||
|
||||
reg [WIDTH-1:0] sr;
|
||||
assign sout = sr[WIDTH-1];
|
||||
|
||||
always @ (posedge clk)
|
||||
if (load)
|
||||
sr <= pin;
|
||||
else
|
||||
if (sft)
|
||||
sr <= { sr[WIDTH-2:0], sin };
|
||||
else
|
||||
sr <= sr;
|
||||
|
||||
endmodule
|
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
--------------------------------------------------------------------------------
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// Copyright (c) 2021 John Seamons, ZL/KF6VO
|
||||
|
||||
`include "kiwi.vh"
|
||||
|
||||
// tri-state buffer
|
||||
|
||||
module tristate_buf (
|
||||
input wire in,
|
||||
output wire out,
|
||||
input wire oe
|
||||
);
|
||||
|
||||
assign #2 out = oe? in : 1'bZ;
|
||||
|
||||
endmodule
|
|
@ -556,7 +556,7 @@ void reload_index_params()
|
|||
kstr_free(sb);
|
||||
|
||||
// add the list of extensions (only used by admin.html)
|
||||
#ifndef CFG_GPS_ONLY
|
||||
#ifdef USE_SDR
|
||||
sb = extint_list_js();
|
||||
iparams_add("EXT_LIST_JS", kstr_sp(sb));
|
||||
//real_printf("%s\n", kstr_sp(sb));
|
||||
|
|
Loading…
Reference in New Issue