OpenCores
URL https://opencores.org/ocsvn/storm_core/storm_core/trunk

Subversion Repositories storm_core

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 36 to Rev 37
    Reverse comparison

Rev 36 → Rev 37

/storm_core/trunk/rtl/ALU.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/STORM_TOP.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/OPERAND_UNIT.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/CORE.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/BUS_UNIT.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/CORE_PKG.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/LOAD_STORE_UNIT.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/BARREL_SHIFTER.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/FLOW_CTRL.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/MC_SYS.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/OPCODE_DECODER.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/CACHE.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/WB_UNIT.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/REG_FILE.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/MULTIPLY_UNIT.vhd File deleted \ No newline at end of file
/storm_core/trunk/rtl/MS_UNIT.vhd File deleted \ No newline at end of file
/storm_core/trunk/doc/STORM CORE datasheet.pdf Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
storm_core/trunk/doc/STORM CORE datasheet.pdf Property changes : Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: storm_core/trunk/software/ASM/make.bat =================================================================== --- storm_core/trunk/software/ASM/make.bat (revision 36) +++ storm_core/trunk/software/ASM/make.bat (nonexistent) @@ -1,3 +0,0 @@ -@echo off -arm-elf-as.exe -EB -mapcs-32 main.asm -extract.exe \ No newline at end of file Index: storm_core/trunk/software/ASM/main.asm =================================================================== --- storm_core/trunk/software/ASM/main.asm (revision 36) +++ storm_core/trunk/software/ASM/main.asm (nonexistent) @@ -1,41 +0,0 @@ -/* ### DEMO PROGRAM: FIBONACCI NUMBERS ### ---------------------------------------------- - Calculates and stores the first 30 Fibonacci - numbers and stores them in the internal memory, - starting at word location 25 (byte loaction 100). */ - -.include "macro.inc" - -/*----------------------------------------------------- - Exception Vectors ------------------------------------------------------*/ - -Vectors: BAL Reset /* Hardware Reset */ - NOP /* Undef Instruction */ - NOP /* Software INT */ - NOP /* Prefetch Abort */ - NOP /* Data Abort */ - NOP /* Reserved */ - NOP /* HW INT req */ - NOP /* Fast HW INT req */ - -/*----------------------------------------------------- - Reset Handler ------------------------------------------------------*/ - -Reset: MOV R0, #0 /* A */ - MOV R1, #1 /* B */ - MOV R2, #0 /* C */ - MOV R3, #100 /* mem area to place results */ - -LOOP: CMP R3, #220 - BEQ NIRVANA - - STR R0, [R3], #4 - ADD R2, R0, R1 - MOV R0, R1 - MOV R1, R2 - - BAL LOOP - -NIRVANA: BAL NIRVANA Index: storm_core/trunk/software/ASM/arm-elf-as.exe =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: storm_core/trunk/software/ASM/arm-elf-as.exe =================================================================== --- storm_core/trunk/software/ASM/arm-elf-as.exe (revision 36) +++ storm_core/trunk/software/ASM/arm-elf-as.exe (nonexistent)
storm_core/trunk/software/ASM/arm-elf-as.exe Property changes : Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: storm_core/trunk/software/ASM/macro.inc =================================================================== --- storm_core/trunk/software/ASM/macro.inc (revision 36) +++ storm_core/trunk/software/ASM/macro.inc (nonexistent) @@ -1,40 +0,0 @@ -@ ########################################### -@ # STORM CORE Processor assembler macros # -@ # +-------------------------------------+ # -@ # Version 1.0, 06.09.2011 # -@ ########################################### - -@ Return from subroutine -.macro RET - MOV PC, LR -.endm - -@ Return from exception -.macro RETI - MOVS PC, LR -.endm - -@ Push register on stack -.macro PUSH REG - STR ®, [SP], #-4 -.endm - -@ Pop register from stack -.macro POP REG - LDR ®, [SP, #+4]! -.endm - -@ Simple increment -.macro INC REG - ADD ®, ®, #1 -.endm - -@ Simple decrement -.macro DEC REG - SUB ®, ®, #1 -.endm - -@ Clear register -.macro CLR REG - XOR ®, ®,& REG -.endm Index: storm_core/trunk/software/ASM/extract.exe =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: storm_core/trunk/software/ASM/extract.exe =================================================================== --- storm_core/trunk/software/ASM/extract.exe (revision 36) +++ storm_core/trunk/software/ASM/extract.exe (nonexistent)
storm_core/trunk/software/ASM/extract.exe Property changes : Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: storm_core/trunk/software/C/storm_program.txt =================================================================== --- storm_core/trunk/software/C/storm_program.txt (revision 36) +++ storm_core/trunk/software/C/storm_program.txt (nonexistent) @@ -1,98 +0,0 @@ -000000 => x"EA000012", -000001 => x"E59FF014", -000002 => x"E59FF014", -000003 => x"E59FF014", -000004 => x"E59FF014", -000005 => x"E1A00000", -000006 => x"E51FFFF0", -000007 => x"E59FF010", -000008 => x"00000038", -000009 => x"0000003C", -000010 => x"00000040", -000011 => x"00000044", -000012 => x"00000048", -000013 => x"0000004C", -000014 => x"EAFFFFFE", -000015 => x"EAFFFFFE", -000016 => x"EAFFFFFE", -000017 => x"EAFFFFFE", -000018 => x"EAFFFFFE", -000019 => x"EAFFFFFE", -000020 => x"E59F00C8", -000021 => x"E10F1000", -000022 => x"E3C1107F", -000023 => x"E38110DB", -000024 => x"E129F001", -000025 => x"E1A0D000", -000026 => x"E2400080", -000027 => x"E10F1000", -000028 => x"E3C1107F", -000029 => x"E38110D7", -000030 => x"E129F001", -000031 => x"E1A0D000", -000032 => x"E2400080", -000033 => x"E10F1000", -000034 => x"E3C1107F", -000035 => x"E38110D1", -000036 => x"E129F001", -000037 => x"E1A0D000", -000038 => x"E2400080", -000039 => x"E10F1000", -000040 => x"E3C1107F", -000041 => x"E38110D2", -000042 => x"E129F001", -000043 => x"E1A0D000", -000044 => x"E2400080", -000045 => x"E10F1000", -000046 => x"E3C1107F", -000047 => x"E38110D3", -000048 => x"E129F001", -000049 => x"E1A0D000", -000050 => x"E2400080", -000051 => x"E10F1000", -000052 => x"E3C1107F", -000053 => x"E38110DF", -000054 => x"E129F001", -000055 => x"E1A0D000", -000056 => x"E3A00000", -000057 => x"E59F1038", -000058 => x"E59F2038", -000059 => x"E1510002", -000060 => x"0A000001", -000061 => x"34810004", -000062 => x"3AFFFFFB", -000063 => x"E3A00000", -000064 => x"E1A01000", -000065 => x"E1A02000", -000066 => x"E1A0B000", -000067 => x"E1A07000", -000068 => x"E59FA014", -000069 => x"E1A0E00F", -000070 => x"E1A0F00A", -000071 => x"EAFFFFFE", -000072 => x"00000A00", -000073 => x"00000184", -000074 => x"00000184", -000075 => x"00000130", -000076 => x"E3E03A01", -000077 => x"E3A02000", -000078 => x"E52DE004", -000079 => x"E5032FDF", -000080 => x"E3A0E001", -000081 => x"E5032FDF", -000082 => x"E1A0100E", -000083 => x"E1A0000E", -000084 => x"E1A02000", -000085 => x"EA000000", -000086 => x"E3A0E001", -000087 => x"E2820001", -000088 => x"E08EC001", -000089 => x"E5031FDF", -000090 => x"E350001E", -000091 => x"E3A01000", -000092 => x"E1A02001", -000093 => x"CAFFFFF7", -000094 => x"E1A0100E", -000095 => x"E1A0E00C", -000096 => x"EAFFFFF2", -others => x"F0013007" Index: storm_core/trunk/software/C/Makefile =================================================================== --- storm_core/trunk/software/C/Makefile (revision 36) +++ storm_core/trunk/software/C/Makefile (nonexistent) @@ -1,431 +0,0 @@ -# Hey Emacs, this is a -*- makefile -*- -# -# WinARM template makefile -# by Martin Thomas, Kaiserslautern, Germany -# -# -# based on the WinAVR makefile written by Eric B. Weddington, Jörg Wunsch, et al. -# Released to the Public Domain -# Please read the make user manual! -# -# -# On command line: -# -# make all = Make software. -# -# make clean = Clean out built project files. -# -# make program = Download the hex file to the device, using lpc21isp -# -# (TODO: make filename.s = Just compile filename.c into the assembler code only) -# -# To rebuild project do "make clean" then "make all". -# -# Changelog: -# - 17. Feb. 2005 - added thumb-interwork support (mth) -# - 28. Apr. 2005 - added C++ support (mth) -# - 29. Arp. 2005 - changed handling for lst-Filename (mth) -# - 22. Jan. 2012 - modified to handle storm core project -# - -# MCU name and submodel -MCU = arm7m -SUBMDL = STORMcore - - -THUMB = -THUMB_IW = - - -## Create RAM-Image -RUN_MODE = RAM_RUN - - -# Output format. (can be srec, ihex, binary) -FORMAT = ihex - - -# Target file name (without extension). -TARGET = main - - -# List C source files here. (C dependencies are automatically generated.) -# use file-extension c for "c-only"-files -#SRC = - -# List C source files here which must be compiled in ARM-Mode. -# use file-extension c for "c-only"-files -SRCARM = $(TARGET).c - -# List C++ source files here. -# use file-extension cpp for C++-files -CPPSRC = - -# List C++ source files here which must be compiled in ARM-Mode. -# use file-extension cpp for C++-files -# CPPSRCARM = $(TARGET).cpp -CPPSRCARM = - -# List Assembler source files here. -# Make them always end in a capital .S. Files ending in a lowercase .s -# will not be considered source files but generated files (assembler -# output from the compiler), and will be deleted upon "make clean"! -# Even though the DOS/Win* filesystem matches both .s and .S the same, -# it will preserve the spelling of the filenames, and gcc itself does -# care about how the name is spelled on its command-line. -ASRC = - -# List Assembler source files here which must be assembled in ARM-Mode.. -ASRCARM = build/storm_startup_code.S - -# Optimization level, can be [0, 1, 2, 3, s]. -# 0 = turn off optimization. s = optimize for size. -# (Note: 3 is not always the best optimization level. See avr-libc FAQ.) -OPT = 2 - -# Debugging format. -# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2. -# AVR (extended) COFF requires stabs, plus an avr-objcopy run. -#DEBUG = stabs -DEBUG = dwarf-2 - -# List any extra directories to look for include files here. -# Each directory must be seperated by a space. -#EXTRAINCDIRS = ./include -EXTRAINCDIRS = - -# Compiler flag to set the C Standard level. -# c89 - "ANSI" C -# gnu89 - c89 plus GCC extensions -# c99 - ISO C99 standard (not yet fully implemented) -# gnu99 - c99 plus GCC extensions -CSTANDARD = -std=gnu99 - -# Place -D or -U options for C here -CDEFS = -D$(RUN_MODE) - -# Place -I options here -CINCS = - -# Place -D or -U options for ASM here -ADEFS = -D$(RUN_MODE) - - -# Compiler flags. -# -g*: generate debugging information -# -O*: optimization level -# -f...: tuning, see GCC manual and avr-libc documentation -# -Wall...: warning level -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns...: create assembler listing -# -# Flags for C and C++ (arm-elf-gcc/arm-elf-g++) -CFLAGS = -g$(DEBUG) -CFLAGS += $(CDEFS) $(CINCS) -CFLAGS += -O$(OPT) -CFLAGS += -Wall -Wcast-align -Wcast-qual -Wimplicit -CFLAGS += -Wpointer-arith -Wswitch -CFLAGS += -Wredundant-decls -Wreturn-type -Wshadow -Wunused -#CFLAGS += -Wa,-adhlns=$(<:.c=.lst) -CFLAGS += -Wa,-adhlns=$(subst $(suffix $<),.lst,$<) -CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) - -# flags only for C -CONLYFLAGS = -Wstrict-prototypes -Wmissing-declarations -CONLYFLAGS += -Wmissing-prototypes -Wnested-externs -CONLYFLAGS += $(CSTANDARD) - -# flags only for C++ (arm-elf-g++) -CPPFLAGS = - -# Assembler flags. -# -Wa,...: tell GCC to pass this to the assembler. -# -ahlms: create listing -# -gstabs: have the assembler create line number information; note that -# for use in COFF files, additional information about filenames -# and function names needs to be present in the assembler source -# files -- see avr-libc docs [FIXME: not yet described there] -##ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs -ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:.S=.lst),-g$(DEBUG) - -#Additional libraries. - -#Support for newlibc-lpc (file: libnewlibc-lpc.a) -#NEWLIBLPC = -lnewlib-lpc -NEWLIBCLPC = - -MATH_LIB = -lm - -# Linker flags. -# -Wl,...: tell GCC to pass this to linker. -# -Map: create map file -# --cref: add cross reference to map file -LDFLAGS = -nostartfiles -Wl,-Map=$(TARGET).map,--cref -LDFLAGS += -lc -LDFLAGS += $(NEWLIBLPC) $(MATH_LIB) -LDFLAGS += -lc -lgcc - -# Set Linker-Script Depending On Selected Memory -ifeq ($(RUN_MODE),RAM_RUN) -LDFLAGS +=-Tbuild/$(SUBMDL)-RAM.ld -else -LDFLAGS +=-Tbuild/$(SUBMDL)-ROM.ld -endif - - - -# --------------------------------------------------------------------------- -# Flash-Programming support using lpc21isp by Martin Maurer - -# Settings and variables: -LPC21ISP = lpc21isp -#LPC21ISP = lpc21isp_beta -LPC21ISP_PORT = com1 -LPC21ISP_BAUD = 115200 -LPC21ISP_XTAL = 14746 -LPC21ISP_FLASHFILE = $(TARGET).hex -# verbose output: -## LPC21ISP_DEBUG = -debug -# enter bootloader via RS232 DTR/RTS (only if hardware supports this -# feature - see Philips AppNote): -LPC21ISP_CONTROL = -control - - -# --------------------------------------------------------------------------- - -# Define directories, if needed. -## DIRARM = c:/WinARM/ -## DIRARMBIN = $(DIRAVR)/bin/ -## DIRAVRUTILS = $(DIRAVR)/utils/bin/ - -# Define programs and commands. -SHELL = sh -CC = arm-elf-gcc -mbig-endian -CPP = arm-elf-g++ -OBJCOPY = arm-elf-objcopy -OBJDUMP = arm-elf-objdump -SIZE = arm-elf-size -NM = arm-elf-nm -REMOVE = rm -f -COPY = cp - - -# Define Messages -# English -MSG_ERRORS_NONE = Errors: none -MSG_BEGIN = -------- begin -------- -MSG_END = -------- end -------- -MSG_EXTRACT = Extracting bootloader program file: -MSG_SIZE_BEFORE = Size before: -MSG_SIZE_AFTER = Size after: -MSG_FLASH = Creating load file for Flash: -MSG_EXTENDED_LISTING = Creating Extended Listing: -MSG_SYMBOL_TABLE = Creating Symbol Table: -MSG_LINKING = Linking: -MSG_COMPILING = Compiling C: -MSG_COMPILING_ARM = "Compiling C (ARM-only):" -MSG_COMPILINGCPP = Compiling C++: -MSG_COMPILINGCPP_ARM = "Compiling C++ (ARM-only):" -MSG_ASSEMBLING = Assembling: -MSG_ASSEMBLING_ARM = "Assembling (ARM-only):" -MSG_CLEANING = Cleaning project: -MSG_LPC21_RESETREMINDER = You may have to bring the target in bootloader-mode now. - - -# Define all object files. -COBJ = $(SRC:.c=.o) -AOBJ = $(ASRC:.S=.o) -COBJARM = $(SRCARM:.c=.o) -AOBJARM = $(ASRCARM:.S=.o) -CPPOBJ = $(CPPSRC:.cpp=.o) -CPPOBJARM = $(CPPSRCARM:.cpp=.o) - -# Define all listing files. -LST = $(ASRC:.S=.lst) $(ASRCARM:.S=.lst) $(SRC:.c=.lst) $(SRCARM:.c=.lst) -LST += $(CPPSRC:.cpp=.lst) $(CPPSRCARM:.cpp=.lst) - -# Compiler flags to generate dependency files. -### GENDEPFLAGS = -Wp,-M,-MP,-MT,$(*F).o,-MF,.dep/$(@F).d -GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d - -# Combine all necessary flags and optional flags. -# Add target processor to flags. -ALL_CFLAGS = -mcpu=$(MCU) $(THUMB_IW) -I. $(CFLAGS) $(GENDEPFLAGS) -ALL_ASFLAGS = -mcpu=$(MCU) $(THUMB_IW) -I. -x assembler-with-cpp $(ASFLAGS) - - -# Default target. -all: begin gccversion sizebefore build sizeafter finished cmp end - -build: elf hex lss - -elf: $(TARGET).elf -hex: $(TARGET).hex -lss: $(TARGET).lss -sym: $(TARGET).sym - -# Extract memory file. -cmp: - @echo - @echo $(MSG_EXTRACT) - storm_extractor.exe $(TARGET).elf - @echo - - -# Eye candy. -begin: - @echo - @echo $(MSG_BEGIN) - -finished: - @echo $(MSG_ERRORS_NONE) - -end: - @echo $(MSG_END) - @echo - - -# Display size of file. -HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex -ELFSIZE = $(SIZE) -A $(TARGET).elf -sizebefore: - @if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); echo; fi - -sizeafter: - @if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi - - -# Display compiler version information. -gccversion : - @$(CC) --version - - -# Program the device. -program: $(TARGET).hex - @echo - @echo $(MSG_LPC21_RESETREMINDER) - $(LPC21ISP) $(LPC21ISP_CONTROL) $(LPC21ISP_DEBUG) $(LPC21ISP_FLASHFILE) $(LPC21ISP_PORT) $(LPC21ISP_BAUD) $(LPC21ISP_XTAL) - - -# Create final output files (.hex, .eep) from ELF output file. -# TODO: handling the .eeprom-section should be redundant -%.hex: %.elf - @echo - @echo $(MSG_FLASH) $@ - $(OBJCOPY) -O $(FORMAT) $< $@ - - -# Create extended listing file from ELF output file. -# testing: option -C -%.lss: %.elf - @echo - @echo $(MSG_EXTENDED_LISTING) $@ - $(OBJDUMP) -h -S -C $< > $@ - - -# Create a symbol table from ELF output file. -%.sym: %.elf - @echo - @echo $(MSG_SYMBOL_TABLE) $@ - $(NM) -n $< > $@ - - -# Link: create ELF output file from object files. -.SECONDARY : $(TARGET).elf -.PRECIOUS : $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM) -%.elf: $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM) - @echo - @echo $(MSG_LINKING) $@ - $(CC) $(THUMB) $(ALL_CFLAGS) $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM) --output $@ $(LDFLAGS) -# $(CPP) $(THUMB) $(ALL_CFLAGS) $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM) --output $@ $(LDFLAGS) - -# Compile: create object files from C source files. ARM/Thumb -$(COBJ) : %.o : %.c - @echo - @echo $(MSG_COMPILING) $< - $(CC) -c $(THUMB) $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@ - -# Compile: create object files from C source files. ARM-only -$(COBJARM) : %.o : %.c - @echo - @echo $(MSG_COMPILING_ARM) $< - $(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@ - -# Compile: create object files from C++ source files. ARM/Thumb -$(CPPOBJ) : %.o : %.cpp - @echo - @echo $(MSG_COMPILINGCPP) $< - $(CPP) -c $(THUMB) $(ALL_CFLAGS) $(CPPFLAGS) $< -o $@ - -# Compile: create object files from C++ source files. ARM-only -$(CPPOBJARM) : %.o : %.cpp - @echo - @echo $(MSG_COMPILINGCPP_ARM) $< - $(CPP) -c $(ALL_CFLAGS) $(CPPFLAGS) $< -o $@ - - -# Compile: create assembler files from C source files. ARM/Thumb -## does not work - TODO - hints welcome -##$(COBJ) : %.s : %.c -## $(CC) $(THUMB) -S $(ALL_CFLAGS) $< -o $@ - - -# Assemble: create object files from assembler source files. ARM/Thumb -$(AOBJ) : %.o : %.S - @echo - @echo $(MSG_ASSEMBLING) $< - $(CC) -c $(THUMB) $(ALL_ASFLAGS) $< -o $@ - - -# Assemble: create object files from assembler source files. ARM-only -$(AOBJARM) : %.o : %.S - @echo - @echo $(MSG_ASSEMBLING_ARM) $< - $(CC) -c $(ALL_ASFLAGS) $< -o $@ - - -# Target: clean project. -clean: begin clean_list finished end - - -clean_list : - @echo - @echo $(MSG_CLEANING) - $(REMOVE) $(TARGET).hex - $(REMOVE) $(TARGET).obj - $(REMOVE) $(TARGET).elf - $(REMOVE) $(TARGET).map - $(REMOVE) $(TARGET).obj - $(REMOVE) $(TARGET).a90 - $(REMOVE) $(TARGET).sym - $(REMOVE) $(TARGET).lnk - $(REMOVE) $(TARGET).lss - $(REMOVE) a.out - $(REMOVE) storm_program.txt - $(REMOVE) storm_program.dat - $(REMOVE) $(COBJ) - $(REMOVE) $(CPPOBJ) - $(REMOVE) $(AOBJ) - $(REMOVE) $(COBJARM) - $(REMOVE) $(CPPOBJARM) - $(REMOVE) $(AOBJARM) - $(REMOVE) $(LST) - $(REMOVE) $(SRC:.c=.s) - $(REMOVE) $(SRC:.c=.d) - $(REMOVE) $(SRCARM:.c=.s) - $(REMOVE) $(SRCARM:.c=.d) - $(REMOVE) $(CPPSRC:.cpp=.s) - $(REMOVE) $(CPPSRC:.cpp=.d) - $(REMOVE) $(CPPSRCARM:.cpp=.s) - $(REMOVE) $(CPPSRCARM:.cpp=.d) - $(REMOVE) .dep/* - - -# Include the dependency files. --include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*) - - -# Listing of phony targets. -.PHONY : all begin finish end sizebefore sizeafter gccversion \ -build elf hex lss sym clean clean_list program - Index: storm_core/trunk/software/C/build/storm_startup_code.S =================================================================== --- storm_core/trunk/software/C/build/storm_startup_code.S (revision 36) +++ storm_core/trunk/software/C/build/storm_startup_code.S (nonexistent) @@ -1,175 +0,0 @@ - .global main // int main(void) - - .global _etext // -> .data initial values in ROM - .global _data // -> .data area in RAM - .global _edata // end of .data area - .global __bss_start // -> .bss area in RAM - .global __bss_end__ // end of .bss area - .global _stack // top of stack - -// Stack Sizes - .set UND_STACK_SIZE, 0x00000080 - .set ABT_STACK_SIZE, 0x00000080 - .set FIQ_STACK_SIZE, 0x00000080 - .set IRQ_STACK_SIZE, 0X00000080 - .set SVC_STACK_SIZE, 0x00000080 - -// Standard definitions of Mode bits and Interrupt flags in MSRs - .set MODE_USR, 0x10 // User Mode - .set MODE_FIQ, 0x11 // FIQ Mode - .set MODE_IRQ, 0x12 // IRQ Mode - .set MODE_SVC, 0x13 // Supervisor Mode - .set MODE_ABT, 0x17 // Abort Mode - .set MODE_UND, 0x1B // Undefined Mode - .set MODE_SYS, 0x1F // System Mode - - .equ FIQ_BIT, 0x40 // when FIQ bit is set, FIQ is disabled - .equ IRQ_BIT, 0x80 // when IRQ bit is set, IRQ is disabled - - .text - .code 32 - .align 2 - - .global _boot - .func _boot -_boot: - -// Runtime Interrupt Vectors -// ------------------------------------------------------------------- -Vectors: - b _start // reset - _start - ldr pc,_undf // undefined - _undf - ldr pc,_swi // SWI - _swi - ldr pc,_pabt // program abort - _pabt - ldr pc,_dabt // data abort - _dabt - nop // reserved - ldr pc,[pc,#-0xFF0] // IRQ - read the VIC - ldr pc,_fiq // FIQ - _fiq - - -// Use this group for development -_undf: .word __undf // undefined -_swi: .word __swi // SWI -_pabt: .word __pabt // program abort -_dabt: .word __dabt // data abort -_irq: .word __irq // IRQ -_fiq: .word __fiq // FIQ - -__undf: b . // undefined -__swi: b . // SWI -__pabt: b . // program abort -__dabt: b . // data abort -__irq: b . // IRQ -__fiq: b . // FIQ - - .size _boot, . - _boot - .endfunc - - -// Setup the operating mode & stack. -// ------------------------------------------------------------------- - .global _start, start, _mainCRTStartup - .func _start - -_start: -start: -_mainCRTStartup: - -// Who am I? Where am I going? - -// Initialize Interrupt System -// - Set stack location for each mode -// - Leave in System Mode with Interrupts Disabled -// ---------------------------------------------------- - ldr r0,=_stack // Calc stack base - mrs r1,CPSR - bic r1,r1,#0x7F - orr r1,r1,#MODE_UND|IRQ_BIT|FIQ_BIT // Change to Undefined Instruction mode - msr CPSR,r1 - mov sp,r0 // Store stack base - - sub r0,r0,#UND_STACK_SIZE // Calc stack base - mrs r1,CPSR - bic r1,r1,#0x7F - orr r1,r1,#MODE_ABT|IRQ_BIT|FIQ_BIT // Change to Abort Mode - msr CPSR,r1 - mov sp,r0 // Store stack base - - sub r0,r0,#ABT_STACK_SIZE // Calc stack base - mrs r1,CPSR - bic r1,r1,#0x7F - orr r1,r1,#MODE_FIQ|IRQ_BIT|FIQ_BIT // Change to FIQ Mode - msr CPSR,r1 - mov sp,r0 // Store stack base - - sub r0,r0,#FIQ_STACK_SIZE // Calc stack base - mrs r1,CPSR - bic r1,r1,#0x7F - orr r1,r1,#MODE_IRQ|IRQ_BIT|FIQ_BIT // Change to IRQ Mode - msr CPSR,r1 - mov sp,r0 // Store stack base - - sub r0,r0,#IRQ_STACK_SIZE // Calc stack base - mrs r1,CPSR - bic r1,r1,#0x7F - orr r1,r1,#MODE_SVC|IRQ_BIT|FIQ_BIT // Change to Supervisor Mode - msr CPSR,r1 - mov sp,r0 // Store stack base - - sub r0,r0,#SVC_STACK_SIZE // Calc stack base - mrs r1,CPSR - bic r1,r1,#0x7F - orr r1,r1,#MODE_SYS|IRQ_BIT|FIQ_BIT // Change to System Mode - msr CPSR,r1 - mov sp,r0 // Store stack base - -// Copy initialized data to its execution address in RAM -// ------------------------------------------------------------------- -#ifdef ROM_RUN - ldr r1,=_etext // -> ROM data start - ldr r2,=_data // -> data start - ldr r3,=_edata // -> end of data -x01: cmp r2,r3 // check if data to move - beq y01 - ldrlo r0,[r1],#4 // copy it - strlo r0,[r2],#4 - blo x01 // loop until done -y01: -#endif -// Clear .bss -// ---------- - mov r0,#0 // get a zero - ldr r1,=__bss_start // -> bss start - ldr r2,=__bss_end__ // -> bss end -x02: cmp r1,r2 // check if data to clear - beq y02 - strlo r0,[r1],#4 // clear 4 bytes - blo x02 // loop until done -y02: -// Call main program: main(0) -// -------------------------- - mov r0,#0 // no arguments (argc = 0) - mov r1,r0 - mov r2,r0 - mov fp,r0 // null frame pointer - mov r7,r0 // null frame pointer for thumb - ldr r10,=main - mov lr,pc - mov pc, r10 // enter main() - - .size _start, . - _start - .endfunc - - .global _reset, reset, exit, abort - .func _reset -_reset: -reset: -exit: -abort: - - b . // loop until reset - - .size _reset, . - _reset - .endfunc - - .end Index: storm_core/trunk/software/C/build/STORMcore-RAM.ld =================================================================== --- storm_core/trunk/software/C/build/STORMcore-RAM.ld (revision 36) +++ storm_core/trunk/software/C/build/STORMcore-RAM.ld (nonexistent) @@ -1,101 +0,0 @@ -/***********************************************************************/ -/* */ -/* RAM.ld: Linker Script File */ -/* */ -/***********************************************************************/ -ENTRY(_start) -STACK_SIZE = 0x800; - -/* Memory Definitions */ -MEMORY -{ - ROM (rx) : ORIGIN = 0xFFFFF000, LENGTH = 0x00000200 - RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 0x00001000 -} - -/* Section Definitions */ -SECTIONS -{ - /* first section is .text which is used for code */ - .text : - { - *storm_startup_code.o (.text) /* Startup code */ - *(.text) /* remaining code */ - *(.rodata) /* read-only data (constants) */ - *(.rodata*) - *(.glue_7) - *(.glue_7t) - } > RAM - - . = ALIGN(4); - _etext = . ; - PROVIDE (etext = .); - - /* .data section which is used for initialized data */ - .data : - { - _data = .; - *(.data) - } > RAM - - . = ALIGN(4); - _edata = . ; - PROVIDE (edata = .); - - /* .bss section which is used for uninitialized data */ - .bss (NOLOAD) : - { - __bss_start = . ; - __bss_start__ = . ; - *(.bss) - *(COMMON) - . = ALIGN(4); - } > RAM - - . = ALIGN(4); - __bss_end__ = . ; - PROVIDE (__bss_end = .); - - .stack ALIGN(256) : - { - . += STACK_SIZE; - PROVIDE (_stack = .); - } > RAM - - _end = . ; - PROVIDE (end = .); - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } -} Index: storm_core/trunk/software/C/storm_extractor.exe =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: storm_core/trunk/software/C/storm_extractor.exe =================================================================== --- storm_core/trunk/software/C/storm_extractor.exe (revision 36) +++ storm_core/trunk/software/C/storm_extractor.exe (nonexistent)
storm_core/trunk/software/C/storm_extractor.exe Property changes : Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: storm_core/trunk/software/C/storm_core.h =================================================================== --- storm_core/trunk/software/C/storm_core.h (revision 36) +++ storm_core/trunk/software/C/storm_core.h (nonexistent) @@ -1,42 +0,0 @@ -#ifndef storm_core_h -#define storm_core_h - -//////////////////////////////////////////////////////////////////////////////// -// storm_core.h - STORM Core internal definitions -// -// Created by Stephan Nolting (stnolting@googlemail.com) -// http://www.opencores.com/project,storm_core -// Last modified 13. Mar. 2012 -//////////////////////////////////////////////////////////////////////////////// - -/* Internal System Coprocessor Register Set */ -#define SYS_CP 15 // system coprocessor # -#define ID_REG_0 0 // ID register 0 -#define ID_REG_1 1 // ID register 1 -#define ID_REG_2 2 // ID register 2 -#define SYS_CTRL_0 6 // system control register 0 -#define CSTAT 8 // cache statistics register -#define ADR_FB 9 // adr feedback from bus unit -> for exception analysis -#define LFSR_POLY 11 // Internal LFSR, polynomial -#define LFSR_DATA 12 // Internal LFSR, shift register -#define SYS_IO 13 // System IO ports - -/* CP_SYS_CTRL_0 */ -#define DC_FLUSH 0 // flush d-cache -#define DC_CLEAR 1 // clear d-cache -#define IC_CLEAR 2 // flush i-cache -#define DC_WTHRU 3 // cache write-thru enable -#define DC_AUTOPR 4 // auto pre-reload d-cache page -#define IC_AUTOPR 5 // auto pre-reload i-cache page -#define CACHED_IO 6 // cached IO -#define PRTC_IO 7 // protected IO -#define DC_SYNC 8 // d-cache is sync -#define LFSR_EN 13 // enable lfsr -#define LFSR_M 14 // lfsr update mode -#define LFSR_D 15 // lfsr shift direction -#define MBC_0 16 // max bus cycle length bit 0 -#define MBC_LSB 16 -#define MBC_15 31 // max bus cycle length bit 15 -#define MBC_MSB 31 - -#endif // storm_core_h Index: storm_core/trunk/software/C/storm_program.dat =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: storm_core/trunk/software/C/storm_program.dat =================================================================== --- storm_core/trunk/software/C/storm_program.dat (revision 36) +++ storm_core/trunk/software/C/storm_program.dat (nonexistent)
storm_core/trunk/software/C/storm_program.dat Property changes : Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: storm_core/trunk/software/C/main.c =================================================================== --- storm_core/trunk/software/C/main.c (revision 36) +++ storm_core/trunk/software/C/main.c (nonexistent) @@ -1,42 +0,0 @@ -#include "storm_core.h" - -/*---------------------------------------- - STORM Core Demo SoC Program - by Stephan Nolting - - This program outputs the first 30 - Fibonacci numbers on the IO.O port. - Afterwards it restarts. - - The program is allready loaded - into the MEMORY.vhd test component. -----------------------------------------*/ - - -/* ---- IO Device Locations ---- */ -#define REG32 (volatile unsigned int*) -#define GPIO_OUT (*(REG32 (0xFFFFFE020))) -#define GPIO_IN (*(REG32 (0xFFFFFE024))) - - -int main(void) -{ - int i, num_a, num_b, tmp = 0; - - GPIO_OUT = 0; // clear output - - while(1) - { - num_a = 0; - num_b = 1; - - for(i=0; i<31; i++) - { - GPIO_OUT = num_a; - tmp = num_a + num_b; - num_a = num_b; - num_b = tmp; - } - } - -} Index: storm_core/trunk/software/storm_extractor src/main.c =================================================================== --- storm_core/trunk/software/storm_extractor src/main.c (revision 36) +++ storm_core/trunk/software/storm_extractor src/main.c (nonexistent) @@ -1,166 +0,0 @@ -#include -#include -#include - -void TextSpeichern (FILE *dateizeiger) -{ - char buffer[80] = ""; - - printf ("\nDone!\n\n"); - - fgets (buffer, 80, stdin); /* von der Tastatur lesen (stdin) */ - return; - -} - -//********************************************************************** -// Hauptfunktion -//********************************************************************** -int main(int argc, char *argv[]) -{ - FILE * pFile; - char filename[80] = "a.out"; - long lSize; - int m = 0; - int adr_start; - unsigned char * buffer; - size_t result; - - FILE *f; // txt output file - FILE *d; // binary output file - - - if (argc > 1) - { - while(argv[1][m] != '\0') - { - filename[m] = argv[1][m]; - m++; - } - } - - //system("color 0a"); - - pFile = fopen (filename , "rb" ); - if (pFile==NULL) - { - printf("Cannot open file 'a.out'\n"); - exit (1); - } - - // obtain file size: - fseek (pFile , 0 , SEEK_END); - lSize = ftell (pFile); - rewind (pFile); - - // allocate memory to contain the whole file: - buffer = (unsigned char*) malloc (sizeof(unsigned char)*lSize); - if (buffer == NULL) - { - printf("Memory error\n"); - exit (2); - } - - // copy the file into the buffer: - result = fread (buffer,1,lSize,pFile); - if (result != lSize) - { - printf("Reading error\n"); - exit (3); - } - - - // Open txt output file - f = fopen("storm_program.txt","w+"); - if(f == NULL) - { - printf("Error creating txt output file\n"); - exit(10); - } - - // Open dat output file - d = fopen("storm_program.bin","wb+"); - if(d == NULL) - { - printf("Error creating binary output file\n"); - exit(11); - } - - if (buffer[45] == 1) - { - adr_start = 56; - } - else - { - adr_start = 88; - } - - // Beginning of mnemomic part - unsigned long mnemonic_beginning = 0; - mnemonic_beginning = ((buffer[adr_start] << 24) | (buffer[adr_start+1] << 16) | (buffer[adr_start+2] << 8) | (buffer[adr_start+3])); - //printf("Mnemonic start: %u\n", mnemonic_beginning); - - // Length of mnemonic part - unsigned long mnemonic_length = 0; - mnemonic_length = ((buffer[adr_start+12] << 24) | (buffer[adr_start+13] << 16) | (buffer[adr_start+14] << 8) | (buffer[adr_start+15])); - if(mnemonic_length == 0) - { - printf("Invalid assembler file\n"); //x38 x58 - exit(4); - } - - if (mnemonic_length == 0) - { - printf("Assembler file is empty\n"); - exit(5); - } - - printf("Program start: 0x%.8X\n", mnemonic_beginning); - printf("Program size: 0x%.8X\n", mnemonic_length-4); - - int j = mnemonic_beginning; - int i = 0; - int k = 0; - char txt_string[32]; - char dat_string; - i = 0; - - sprintf(txt_string, "SMBR"); - txt_string[4] = (unsigned char)((mnemonic_length-4)>>24); - txt_string[5] = (unsigned char)((mnemonic_length-4)>>16); - txt_string[6] = (unsigned char)((mnemonic_length-4)>> 8); - txt_string[7] = (unsigned char)((mnemonic_length-4)>> 0); - fputc(txt_string[0], d); - fputc(txt_string[1], d); - fputc(txt_string[2], d); - fputc(txt_string[3], d); - fputc(txt_string[4], d); - fputc(txt_string[5], d); - fputc(txt_string[6], d); - fputc(txt_string[7], d); - - while (j != (mnemonic_length + mnemonic_beginning)) - { - unsigned long temp = 0; - temp = ((buffer[j] << 24) | (buffer[j+1] << 16) | (buffer[j+2] << 8) | (buffer[j+3])); - sprintf(txt_string, "%.6u\ => x\"%.8X\",\n", i ,temp); - fputs(txt_string, f); - for(k=0; k<=3; k++) - { - dat_string = (signed char) buffer[j+k]; - fputc(dat_string, d); - } - j=j+4; - i++; - } - sprintf(txt_string, "others => x\"F0013007\"\n"); - fputs(txt_string, f); - //printf("others => x\"F0013007\"\n"); // optimized NOP command - - // terminate - fclose(pFile); - fclose(f); - fclose(d); - free (buffer); - return 0; -} Index: storm_core/trunk/sim/STORM_core_TB.vhd =================================================================== --- storm_core/trunk/sim/STORM_core_TB.vhd (revision 36) +++ storm_core/trunk/sim/STORM_core_TB.vhd (nonexistent) @@ -1,372 +0,0 @@ --- ####################################################### --- # < STORM Core Processor by Stephan Nolting > # --- # *************************************************** # --- # STORM Core / STORM Demo SoC Testbench # --- # *************************************************** # --- # Last modified: 04.03.2012 # --- ####################################################### - -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.NUMERIC_STD.ALL; - -entity STORM_core_TB is -end STORM_core_TB; - -architecture Structure of STORM_core_TB is - - -- Address Map -------------------------------------------------------------------- - -- ----------------------------------------------------------------------------------- - constant INT_MEM_BASE_C : STD_LOGIC_VECTOR(31 downto 0) := x"00000000"; - constant INT_MEM_SIZE_C : natural := 1*1024; -- bytes - constant GP_IO_BASE_C : STD_LOGIC_VECTOR(31 downto 0) := x"FFFFE020"; - constant GP_IO_SIZE_C : natural := 2*4; -- two 4-byte registers = 8 bytes - - - -- Architecture Constants --------------------------------------------------------- - -- ----------------------------------------------------------------------------------- - constant BOOT_VECTOR_C : STD_LOGIC_VECTOR(31 downto 0) := INT_MEM_BASE_C; - constant IO_BEGIN_C : STD_LOGIC_VECTOR(31 downto 0) := x"FFFFE020"; -- first addr of IO area - constant IO_END_C : STD_LOGIC_VECTOR(31 downto 0) := x"FFFFE024"; -- last addr of IO area - constant I_CACHE_PAGES_C : natural := 4; -- number of pages in I cache - constant I_CACHE_PAGE_SIZE_C : natural := 16; -- page size in I cache - constant D_CACHE_PAGES_C : natural := 4; -- number of pages in D cache - constant D_CACHE_PAGE_SIZE_C : natural := 4; -- page size in D cache - - - -- Global Signals ----------------------------------------------------------------- - -- ----------------------------------------------------------------------------------- - - -- Global Clock & Reset -- - signal EXT_RST : STD_LOGIC; - signal MAIN_RST : STD_LOGIC; - signal MAIN_CLK : STD_LOGIC := '0'; - signal STORM_IRQ : STD_LOGIC; - signal STORM_FIQ : STD_LOGIC; - - -- Wishbone Core Bus -- - signal CORE_WB_ADR_O : STD_LOGIC_VECTOR(31 downto 0); -- address - signal CORE_WB_CTI_O : STD_LOGIC_VECTOR(02 downto 0); -- cycle type - signal CORE_WB_TGC_O : STD_LOGIC_VECTOR(06 downto 0); -- cycle tag - signal CORE_WB_SEL_O : STD_LOGIC_VECTOR(03 downto 0); -- byte select - signal CORE_WB_WE_O : STD_LOGIC; -- write enable - signal CORE_WB_DATA_O : STD_LOGIC_VECTOR(31 downto 0); -- data out - signal CORE_WB_DATA_I : STD_LOGIC_VECTOR(31 downto 0); -- data in - signal CORE_WB_STB_O : STD_LOGIC; -- valid transfer - signal CORE_WB_CYC_O : STD_LOGIC; -- valid cycle - signal CORE_WB_ACK_I : STD_LOGIC; -- acknowledge - signal CORE_WB_ERR_I : STD_LOGIC; -- abnormal termination - signal CORE_WB_HALT_I : STD_LOGIC; -- halt request - - - -- Component interface ------------------------------------------------------------ - -- ----------------------------------------------------------------------------------- - - -- Internal Working Memory -- - signal INT_MEM_DATA_O : STD_LOGIC_VECTOR(31 downto 0); - signal INT_MEM_STB_I : STD_LOGIC; - signal INT_MEM_ACK_O : STD_LOGIC; - signal INT_MEM_ERR_O : STD_LOGIC; - signal INT_MEM_HALT_O : STD_LOGIC; - - -- General Purpose IO Controller -- - signal GP_IO_CTRL_DATA_O : STD_LOGIC_VECTOR(31 downto 0); - signal GP_IO_CTRL_STB_I : STD_LOGIC; - signal GP_IO_CTRL_ACK_O : STD_LOGIC; - signal GP_IO_CTRL_ERR_O : STD_LOGIC; - signal GP_IO_CTRL_HALT_O : STD_LOGIC; - signal GP_IO_OUT_PORT : STD_LOGIC_VECTOR(31 downto 0); - signal GP_IO_IN_PORT : STD_LOGIC_VECTOR(31 downto 0); - - - -- Logarithm duales --------------------------------------------------------------- - -- ----------------------------------------------------------------------------------- - function log2(temp : natural) return natural is - begin - for i in 0 to integer'high loop - if (2**i >= temp) then - return i; - end if; - end loop; - return 0; - end function log2; - - - -- STORM Core Top Entity ---------------------------------------------------------- - -- ----------------------------------------------------------------------------------- - component STORM_TOP - generic ( - I_CACHE_PAGES : natural := 4; -- number of pages in I cache - I_CACHE_PAGE_SIZE : natural := 32; -- page size in I cache - D_CACHE_PAGES : natural := 8; -- number of pages in D cache - D_CACHE_PAGE_SIZE : natural := 4; -- page size in D cache - BOOT_VECTOR : STD_LOGIC_VECTOR(31 downto 0); -- boot address - IO_UC_BEGIN : STD_LOGIC_VECTOR(31 downto 0); -- begin of uncachable IO area - IO_UC_END : STD_LOGIC_VECTOR(31 downto 0) -- end of uncachable IO area - ); - port ( - -- Global Control -- - CORE_CLK_I : in STD_LOGIC; -- core clock input - RST_I : in STD_LOGIC; -- global reset input - IO_PORT_O : out STD_LOGIC_VECTOR(15 downto 0); -- direct output - IO_PORT_I : in STD_LOGIC_VECTOR(15 downto 0); -- direct input - - -- Wishbone Bus -- - WB_ADR_O : out STD_LOGIC_VECTOR(31 downto 0); -- address - WB_CTI_O : out STD_LOGIC_VECTOR(02 downto 0); -- cycle type - WB_TGC_O : out STD_LOGIC_VECTOR(06 downto 0); -- cycle tag - WB_SEL_O : out STD_LOGIC_VECTOR(03 downto 0); -- byte select - WB_WE_O : out STD_LOGIC; -- write enable - WB_DATA_O : out STD_LOGIC_VECTOR(31 downto 0); -- data out - WB_DATA_I : in STD_LOGIC_VECTOR(31 downto 0); -- data in - WB_STB_O : out STD_LOGIC; -- valid transfer - WB_CYC_O : out STD_LOGIC; -- valid cycle - WB_ACK_I : in STD_LOGIC; -- acknowledge - WB_ERR_I : in STD_LOGIC; -- abnormal cycle termination - WB_HALT_I : in STD_LOGIC; -- halt request - - -- Interrupt Request Lines -- - IRQ_I : in STD_LOGIC; -- interrupt request - FIQ_I : in STD_LOGIC -- fast interrupt request - ); - end component; - - - -- Internal Working Memory -------------------------------------------------------- - -- ----------------------------------------------------------------------------------- - component MEMORY - generic ( - MEM_SIZE : natural := 256; -- memory cells - LOG2_MEM_SIZE : natural := 8; -- log2(memory cells) - OUTPUT_GATE : boolean := FALSE -- output and-gate, might be necessary for some bus systems - ); - port ( - -- Wishbone Bus -- - WB_CLK_I : in STD_LOGIC; -- memory master clock - WB_RST_I : in STD_LOGIC; -- high active sync reset - WB_CTI_I : in STD_LOGIC_VECTOR(02 downto 0); -- cycle indentifier - WB_TGC_I : in STD_LOGIC_VECTOR(06 downto 0); -- cycle tag - WB_ADR_I : in STD_LOGIC_VECTOR(LOG2_MEM_SIZE-1 downto 0); -- adr in - WB_DATA_I : in STD_LOGIC_VECTOR(31 downto 0); -- write data - WB_DATA_O : out STD_LOGIC_VECTOR(31 downto 0); -- read data - WB_SEL_I : in STD_LOGIC_VECTOR(03 downto 0); -- data quantity - WB_WE_I : in STD_LOGIC; -- write enable - WB_STB_I : in STD_LOGIC; -- valid cycle - WB_ACK_O : out STD_LOGIC; -- acknowledge - WB_HALT_O : out STD_LOGIC; -- throttle master - WB_ERR_O : out STD_LOGIC -- abnormal cycle termination - ); - end component; - - - -- General Purpose IO Controller -------------------------------------------------- - -- ----------------------------------------------------------------------------------- - component GP_IO_CTRL - port ( - -- Wishbone Bus -- - WB_CLK_I : in STD_LOGIC; -- memory master clock - WB_RST_I : in STD_LOGIC; -- high active sync reset - WB_CTI_I : in STD_LOGIC_VECTOR(02 downto 0); -- cycle indentifier - WB_TGC_I : in STD_LOGIC_VECTOR(06 downto 0); -- cycle tag - WB_ADR_I : in STD_LOGIC; -- adr in - WB_DATA_I : in STD_LOGIC_VECTOR(31 downto 0); -- write data - WB_DATA_O : out STD_LOGIC_VECTOR(31 downto 0); -- read data - WB_SEL_I : in STD_LOGIC_VECTOR(03 downto 0); -- data quantity - WB_WE_I : in STD_LOGIC; -- write enable - WB_STB_I : in STD_LOGIC; -- valid cycle - WB_ACK_O : out STD_LOGIC; -- acknowledge - WB_HALT_O : out STD_LOGIC; -- throttle master - WB_ERR_O : out STD_LOGIC; -- abnormal termination - - -- IO Port -- - GP_IO_O : out STD_LOGIC_VECTOR(31 downto 00); - GP_IO_I : in STD_LOGIC_VECTOR(31 downto 00); - - -- Input Change INT -- - IO_IRQ_O : out STD_LOGIC - ); - end component; - -begin - --- ################################################################################################################################# --- ### STORM CORE PROCESSOR ### --- ################################################################################################################################# - - -- CLOCK/RESET GENERATOR ------------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - - -- Clock Generator -- - MAIN_CLK <= not MAIN_CLK after 20 ns; -- 50MHz - - -- Reset System -- - EXT_RST <= '1', '0' after 400 ns; - MAIN_RST <= EXT_RST; - - -- Interrupt Generator -- - STORM_IRQ <= '0', '1' after 2000 ns, '0' after 2020 ns; - STORM_FIQ <= '0'; - - - - -- STORM CORE PROCESSOR -------------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - STORM_TOP_INST: STORM_TOP - generic map ( - I_CACHE_PAGES => I_CACHE_PAGES_C, -- number of pages in I cache - I_CACHE_PAGE_SIZE => I_CACHE_PAGE_SIZE_C, -- page size in I cache - D_CACHE_PAGES => D_CACHE_PAGES_C, -- number of pages in D cache - D_CACHE_PAGE_SIZE => D_CACHE_PAGE_SIZE_C, -- page size in D cache - BOOT_VECTOR => BOOT_VECTOR_C, -- startup boot address - IO_UC_BEGIN => IO_BEGIN_C, -- begin of uncachable IO area - IO_UC_END => IO_END_C -- end of uncachable IO area - ) - port map ( - -- Global Control -- - CORE_CLK_I => MAIN_CLK, -- core clock input - RST_I => MAIN_RST, -- global reset input - IO_PORT_O => open, -- direct output - IO_PORT_I => x"0000", -- direct input - - -- Wishbone Bus -- - WB_ADR_O => CORE_WB_ADR_O, -- address - WB_CTI_O => CORE_WB_CTI_O, -- cycle type - WB_TGC_O => CORE_WB_TGC_O, -- cycle tag - WB_SEL_O => CORE_WB_SEL_O, -- byte select - WB_WE_O => CORE_WB_WE_O, -- write enable - WB_DATA_O => CORE_WB_DATA_O, -- data out - WB_DATA_I => CORE_WB_DATA_I, -- data in - WB_STB_O => CORE_WB_STB_O, -- valid transfer - WB_CYC_O => CORE_WB_CYC_O, -- valid cycle - WB_ACK_I => CORE_WB_ACK_I, -- acknowledge - WB_ERR_I => CORE_WB_ERR_I, -- abnormal cycle termination - WB_HALT_I => CORE_WB_HALT_I, -- halt request - - -- Interrupt Request Lines -- - IRQ_I => STORM_IRQ, -- interrupt request - FIQ_I => STORM_FIQ -- fast interrupt request - ); - - - --- ################################################################################################################################# --- ### WISHBONE FABRIC ### --- ################################################################################################################################# - - -- Valid Transfer Signal ------------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - INT_MEM_STB_I <= CORE_WB_STB_O when ((CORE_WB_ADR_O >= INT_MEM_BASE_C) and (CORE_WB_ADR_O < Std_logic_Vector(unsigned(INT_MEM_BASE_C) + INT_MEM_SIZE_C))) else '0'; - GP_IO_CTRL_STB_I <= CORE_WB_STB_O when ((CORE_WB_ADR_O >= GP_IO_BASE_C) and (CORE_WB_ADR_O < Std_logic_Vector(unsigned(GP_IO_BASE_C) + GP_IO_SIZE_C))) else '0'; --- DUMMY0_STB_I <= CORE_WB_STB_O when ((CORE_WB_ADR_O >= DUMMY0_BASE_C) and (CORE_WB_ADR_O < Std_logic_Vector(unsigned(DUMMY0_BASE_C) + DUMMY0_SIZE_C))) else '0'; --- DUMMY1_STB_I <= CORE_WB_STB_O when ((CORE_WB_ADR_O >= DUMMY1_BASE_C) and (CORE_WB_ADR_O < Std_logic_Vector(unsigned(DUMMY1_BASE_C) + DUMMY1_SIZE_C))) else '0'; - - - -- Read-Back Data Selector ----------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - CORE_WB_DATA_I <= - INT_MEM_DATA_O when (INT_MEM_STB_I = '1') else - GP_IO_CTRL_DATA_O when (GP_IO_CTRL_STB_I = '1') else --- DUMMY0_DATA_O when (DUMMY0_STB_I = '1') else --- DUMMY1_DATA_O when (DUMMY1_STB_I = '1') else - x"00000000"; - - - -- Use this style of data read-back terminal for pipelined Wishbone systems. - -- You have to ensure, that all not-selected IO devices set their data output to 0. - -- => Output and-gates controlled by the device's STB_I signal. --- CORE_WB_DATA_I <= INT_MEM_DATA_O or --- GP_IO_CTRL_DATA_O or --- DUMMY0_DATA_O or --- DUMMY1_DATA_O or --- '0'; - - - -- Acknowledge Terminal -------------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - CORE_WB_ACK_I <= INT_MEM_ACK_O or - GP_IO_CTRL_ACK_O or --- DUMMY0_ACK_O or --- DUMMY1_ACK_O or - '0'; - - - -- Halt Terminal --------------------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - CORE_WB_HALT_I <= INT_MEM_HALT_O or - GP_IO_CTRL_HALT_O or --- DUMMY0_HALT_O or --- DUMMY1_HALT_O or - '0'; - - - -- Halt Terminal --------------------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - CORE_WB_ERR_I <= INT_MEM_ERR_O or - GP_IO_CTRL_ERR_O or --- DUMMY0_ERR_O or --- DUMMY1_ERR_O or - '0'; - - - --- ################################################################################################################################# --- ### SYSTEM COMPONENTS ### --- ################################################################################################################################# - - -- Internal Working Memory ----------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - INTERNAL_MEMORY: MEMORY - generic map ( - MEM_SIZE => INT_MEM_SIZE_C/4, -- memory size in 32-bit cells - LOG2_MEM_SIZE => log2(INT_MEM_SIZE_C/4), -- log2 memory size in 32-bit cells - OUTPUT_GATE => FALSE -- not necessary here - ) - port map( - WB_CLK_I => MAIN_CLK, - WB_RST_I => MAIN_RST, - WB_CTI_I => CORE_WB_CTI_O, - WB_TGC_I => CORE_WB_TGC_O, - WB_ADR_I => CORE_WB_ADR_O(log2(INT_MEM_SIZE_C/4)+1 downto 2), -- word boundary access - WB_DATA_I => CORE_WB_DATA_O, - WB_DATA_O => INT_MEM_DATA_O, - WB_SEL_I => CORE_WB_SEL_O, - WB_WE_I => CORE_WB_WE_O, - WB_STB_I => INT_MEM_STB_I, - WB_ACK_O => INT_MEM_ACK_O, - WB_HALT_O => INT_MEM_HALT_O, - WB_ERR_O => INT_MEM_ERR_O - ); - - - - -- General Purpose IO ---------------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - IO_CONTROLLER: GP_IO_CTRL - port map ( - -- Wishbone Bus -- - WB_CLK_I => MAIN_CLK, - WB_RST_I => MAIN_RST, - WB_CTI_I => CORE_WB_CTI_O, - WB_TGC_I => CORE_WB_TGC_O, - WB_ADR_I => CORE_WB_ADR_O(2), - WB_DATA_I => CORE_WB_DATA_O, - WB_DATA_O => GP_IO_CTRL_DATA_O, - WB_SEL_I => CORE_WB_SEL_O, - WB_WE_I => CORE_WB_WE_O, - WB_STB_I => GP_IO_CTRL_STB_I, - WB_ACK_O => GP_IO_CTRL_ACK_O, - WB_HALT_O => GP_IO_CTRL_HALT_O, - WB_ERR_O => GP_IO_CTRL_ERR_O, - - -- IO Port -- - GP_IO_O => GP_IO_OUT_PORT, - GP_IO_I => GP_IO_IN_PORT, - - -- Input Change INT -- - IO_IRQ_O => open - ); - - -- Dummy input -- - GP_IO_IN_PORT <= "00000000001100111100110000000000"; - -end Structure; \ No newline at end of file Index: storm_core/trunk/sim/GP_IO_CTRL.vhd =================================================================== --- storm_core/trunk/sim/GP_IO_CTRL.vhd (revision 36) +++ storm_core/trunk/sim/GP_IO_CTRL.vhd (nonexistent) @@ -1,152 +0,0 @@ --- ###################################################### --- # < STORM SoC by Stephan Nolting > # --- # ************************************************** # --- # General Purpose 32-bit IO Controller # --- # ************************************************** # --- # Last modified: 20.02.2012 # --- ###################################################### - -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.NUMERIC_STD.ALL; - -entity GP_IO_CTRL is - port ( - -- Wishbone Bus -- - WB_CLK_I : in STD_LOGIC; -- memory master clock - WB_RST_I : in STD_LOGIC; -- high active sync reset - WB_CTI_I : in STD_LOGIC_VECTOR(02 downto 0); -- cycle indentifier - WB_TGC_I : in STD_LOGIC_VECTOR(06 downto 0); -- cycle tag - WB_ADR_I : in STD_LOGIC; -- adr in - WB_DATA_I : in STD_LOGIC_VECTOR(31 downto 0); -- write data - WB_DATA_O : out STD_LOGIC_VECTOR(31 downto 0); -- read data - WB_SEL_I : in STD_LOGIC_VECTOR(03 downto 0); -- data quantity - WB_WE_I : in STD_LOGIC; -- write enable - WB_STB_I : in STD_LOGIC; -- valid cycle - WB_ACK_O : out STD_LOGIC; -- acknowledge - WB_HALT_O : out STD_LOGIC; -- throttle master - WB_ERR_O : out STD_LOGIC; -- abnormal termination - - -- IO Port -- - GP_IO_O : out STD_LOGIC_VECTOR(31 downto 00); - GP_IO_I : in STD_LOGIC_VECTOR(31 downto 00); - - -- Input Change INT -- - IO_IRQ_O : out STD_LOGIC - ); -end GP_IO_CTRL; - -architecture Structure of GP_IO_CTRL is - - -- Input / Output Sync Register -- - signal IO_I_SYNC, IO_O_SYNC, IRQ_SYNC : STD_LOGIC_VECTOR(31 downto 0); - - -- internal Buffer -- - signal WB_ACK_O_INT : STD_LOGIC; - - -- Memory Map (word boundary) - -- ADR_I = 0 : Access to OUTPUT register - -- ADR_I = 1 : Access to INPUT register - -begin - - -- Wishbone Input Interface ---------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - WB_W_ACCESS: process(WB_CLK_I) - begin - if rising_edge(WB_CLK_I) then - if (WB_RST_I = '1') then - IO_O_SYNC <= (others => '0'); - elsif (WB_STB_I = '1') and (WB_WE_I = '1') and (WB_ADR_I = '0') then -- valid write access - for i in 0 to 3 loop - if (WB_SEL_I(i) = '1') then - IO_O_SYNC(8*i+7 downto 8*i) <= WB_DATA_I(8*i+7 downto 8*i); - end if; - end loop; - end if; - end if; - end process WB_W_ACCESS; - - --- Out-Port --- - GP_IO_O <= IO_O_SYNC; - - - - -- Wishbone Output Interface --------------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - WB_R_ACCESS: process(WB_CLK_I) - begin - if rising_edge(WB_CLK_I) then - if (WB_RST_I = '1') then - WB_DATA_O <= (others => '0'); - WB_ACK_O_INT <= '0'; - else - --- Data Output --- - if (WB_STB_I = '1') and (WB_WE_I = '0') then -- valid read request - if (WB_ADR_I = '0') then - WB_DATA_O <= IO_O_SYNC; - else - WB_DATA_O <= IO_I_SYNC; - end if; - else - WB_DATA_O <= (others => '0'); - end if; - - --- ACK Control --- - if (WB_CTI_I = "000") or (WB_CTI_I = "111") then - WB_ACK_O_INT <= WB_STB_I and (not WB_ACK_O_INT); - else - WB_ACK_O_INT <= WB_STB_I; -- data is valid one cycle later - end if; - end if; - end if; - end process WB_R_ACCESS; - - --- ACK Signal --- - WB_ACK_O <= WB_ACK_O_INT; - - --- Throttle --- - WB_HALT_O <= '0'; -- yeay, we're at full speed! - - --- Error --- - WB_ERR_O <= '0'; -- nothing can go wrong ;) - - - - -- Synchronize Input ------------------------------------------------- - -- ---------------------------------------------------------------------- - SYNC_INPUT: process(WB_CLK_I) - begin - if rising_edge(WB_CLK_I) then - if (WB_RST_I = '1') then - IO_I_SYNC <= (others => '0'); - IRQ_SYNC <= (others => '0'); - else - IO_I_SYNC <= GP_IO_I; - IRQ_SYNC <= IO_I_SYNC; - end if; - end if; - end process SYNC_INPUT; - - - - -- Input Change IRQ -------------------------------------------------- - -- ---------------------------------------------------------------------- - INPUT_CHANGE_IRQ: process(WB_CLK_I) - begin - if rising_edge(WB_CLK_I) then - if (WB_RST_I = '1') then - IO_IRQ_O <= '0'; - else - if (IRQ_SYNC /= IO_I_SYNC) then - IO_IRQ_O <= '1'; - else - IO_IRQ_O <= '0'; - end if; - end if; - end if; - end process INPUT_CHANGE_IRQ; - - - -end Structure; \ No newline at end of file Index: storm_core/trunk/sim/MEMORY.vhd =================================================================== --- storm_core/trunk/sim/MEMORY.vhd (revision 36) +++ storm_core/trunk/sim/MEMORY.vhd (nonexistent) @@ -1,195 +0,0 @@ --- ###################################################### --- # < STORM SoC by Stephan Nolting > # --- # ************************************************** # --- # Internal Memory Component # --- # ************************************************** # --- # Last modified: 04.03.2012 # --- ###################################################### - -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.NUMERIC_STD.ALL; - - -entity MEMORY is - generic ( - MEM_SIZE : natural := 256; -- memory cells - LOG2_MEM_SIZE : natural := 8; -- log2(memory cells) - OUTPUT_GATE : boolean := FALSE -- output and-gate, might be necessary for some bus systems - ); - port ( - -- Wishbone Bus -- - WB_CLK_I : in STD_LOGIC; -- memory master clock - WB_RST_I : in STD_LOGIC; -- high active sync reset - WB_CTI_I : in STD_LOGIC_VECTOR(02 downto 0); -- cycle indentifier - WB_TGC_I : in STD_LOGIC_VECTOR(06 downto 0); -- cycle tag - WB_ADR_I : in STD_LOGIC_VECTOR(LOG2_MEM_SIZE-1 downto 0); -- adr in - WB_DATA_I : in STD_LOGIC_VECTOR(31 downto 0); -- write data - WB_DATA_O : out STD_LOGIC_VECTOR(31 downto 0); -- read data - WB_SEL_I : in STD_LOGIC_VECTOR(03 downto 0); -- data quantity - WB_WE_I : in STD_LOGIC; -- write enable - WB_STB_I : in STD_LOGIC; -- valid cycle - WB_ACK_O : out STD_LOGIC; -- acknowledge - WB_HALT_O : out STD_LOGIC; -- throttle master - WB_ERR_O : out STD_LOGIC -- abnormal cycle termination - ); -end MEMORY; - -architecture Behavioral of MEMORY is - - --- Buffer --- - signal WB_ACK_O_INT : STD_LOGIC; - signal WB_DATA_INT : STD_LOGIC_VECTOR(31 downto 0); - - --- Memory Type --- - type MEM_FILE_TYPE is array (0 to MEM_SIZE - 1) of STD_LOGIC_VECTOR(31 downto 0); - - --- INIT MEMORY IMAGE --- - ------------------------------------------------------ - signal MEM_FILE : MEM_FILE_TYPE := - ( - 000000 => x"EA000012", -- THIS IS A SIMPLE PROGRAM FOR THE STORM DEMO SOC - 000001 => x"E59FF014", - 000002 => x"E59FF014", - 000003 => x"E59FF014", - 000004 => x"E59FF014", - 000005 => x"E1A00000", - 000006 => x"E51FFFF0", - 000007 => x"E59FF010", - 000008 => x"00000038", - 000009 => x"0000003C", - 000010 => x"00000040", - 000011 => x"00000044", - 000012 => x"00000048", - 000013 => x"0000004C", - 000014 => x"EAFFFFFE", - 000015 => x"EAFFFFFE", - 000016 => x"EAFFFFFE", - 000017 => x"EAFFFFFE", - 000018 => x"EAFFFFFE", - 000019 => x"EAFFFFFE", - 000020 => x"E59F00C8", - 000021 => x"E10F1000", - 000022 => x"E3C1107F", - 000023 => x"E38110DB", - 000024 => x"E129F001", - 000025 => x"E1A0D000", - 000026 => x"E2400080", - 000027 => x"E10F1000", - 000028 => x"E3C1107F", - 000029 => x"E38110D7", - 000030 => x"E129F001", - 000031 => x"E1A0D000", - 000032 => x"E2400080", - 000033 => x"E10F1000", - 000034 => x"E3C1107F", - 000035 => x"E38110D1", - 000036 => x"E129F001", - 000037 => x"E1A0D000", - 000038 => x"E2400080", - 000039 => x"E10F1000", - 000040 => x"E3C1107F", - 000041 => x"E38110D2", - 000042 => x"E129F001", - 000043 => x"E1A0D000", - 000044 => x"E2400080", - 000045 => x"E10F1000", - 000046 => x"E3C1107F", - 000047 => x"E38110D3", - 000048 => x"E129F001", - 000049 => x"E1A0D000", - 000050 => x"E2400080", - 000051 => x"E10F1000", - 000052 => x"E3C1107F", - 000053 => x"E38110DF", - 000054 => x"E129F001", - 000055 => x"E1A0D000", - 000056 => x"E3A00000", - 000057 => x"E59F1038", - 000058 => x"E59F2038", - 000059 => x"E1510002", - 000060 => x"0A000001", - 000061 => x"34810004", - 000062 => x"3AFFFFFB", - 000063 => x"E3A00000", - 000064 => x"E1A01000", - 000065 => x"E1A02000", - 000066 => x"E1A0B000", - 000067 => x"E1A07000", - 000068 => x"E59FA014", - 000069 => x"E1A0E00F", - 000070 => x"E1A0F00A", - 000071 => x"EAFFFFFE", - 000072 => x"00000A00", - 000073 => x"00000184", - 000074 => x"00000184", - 000075 => x"00000130", - 000076 => x"E3E03A01", - 000077 => x"E3A02000", - 000078 => x"E52DE004", - 000079 => x"E5032FDF", - 000080 => x"E3A0E001", - 000081 => x"E5032FDF", - 000082 => x"E1A0100E", - 000083 => x"E1A0000E", - 000084 => x"E1A02000", - 000085 => x"EA000000", - 000086 => x"E3A0E001", - 000087 => x"E2820001", - 000088 => x"E08EC001", - 000089 => x"E5031FDF", - 000090 => x"E350001E", - 000091 => x"E3A01000", - 000092 => x"E1A02001", - 000093 => x"CAFFFFF7", - 000094 => x"E1A0100E", - 000095 => x"E1A0E00C", - 000096 => x"EAFFFFF2", - others => x"F0013007" - ); - ------------------------------------------------------ - -begin - - -- STORM data/instruction memory ----------------------------------------------------------------------- - -- -------------------------------------------------------------------------------------------------------- - MEM_FILE_ACCESS: process(WB_CLK_I) - begin - --- Sync Write --- - if rising_edge(WB_CLK_I) then - - --- Data Read/Write --- - if (WB_STB_I = '1') then - if (WB_WE_I = '1') then - MEM_FILE(to_integer(unsigned(WB_ADR_I))) <= WB_DATA_I; - end if; - WB_DATA_INT <= MEM_FILE(to_integer(unsigned(WB_ADR_I))); - end if; - - --- ACK Control --- - if (WB_RST_I = '1') then - WB_ACK_O_INT <= '0'; - elsif (WB_CTI_I = "000") or (WB_CTI_I = "111") then - WB_ACK_O_INT <= WB_STB_I and (not WB_ACK_O_INT); - else - WB_ACK_O_INT <= WB_STB_I; - end if; - - end if; - end process MEM_FILE_ACCESS; - - --- Output Gate --- - WB_DATA_O <= WB_DATA_INT when (OUTPUT_GATE = FALSE) or ((OUTPUT_GATE = TRUE) and (WB_STB_I = '1')) else (others => '0'); - - --- ACK Signal --- - WB_ACK_O <= WB_ACK_O_INT; - - --- Throttle --- - WB_HALT_O <= '0'; -- yeay, we're at full speed! - - --- Error --- - WB_ERR_O <= '0'; -- nothing can go wrong ;) - - - -end Behavioral; \ No newline at end of file Index: storm_core/trunk/sim/Xilinx ISIM/storm_core_debug_wave.wcfg =================================================================== --- storm_core/trunk/sim/Xilinx ISIM/storm_core_debug_wave.wcfg (revision 36) +++ storm_core/trunk/sim/Xilinx ISIM/storm_core_debug_wave.wcfg (nonexistent) @@ -1,2477 +0,0 @@ - - - - - - - - - - - - - - - - - STORMcore globals - label - #3e3e3e - 230 230 230 - HEXRADIX - - - core_clk_i - core_clk_i - - - halt - halt - - - rst_i - rst_i - - - STORMcore interrupt - label - #3e3e3e - 230 230 230 - HEXRADIX - - - ext_int_req_sync[3:0] - ext_int_req_sync[3:0] - - - cont_exe - cont_exe - - - new_mode[4:0] - new_mode[4:0] - - - STORMcore pipeline - label - #3e3e3e - 230 230 230 - HEXRADIX - - - of_ctrl_o[45:0] - of_ctrl_o[45:0] - - - ms_ctrl_o[45:0] - ms_ctrl_o[45:0] - - - ex1_ctrl_o[45:0] - ex1_ctrl_o[45:0] - - - mem_ctrl_o[45:0] - mem_ctrl_o[45:0] - - - wb_ctrl_o[45:0] - wb_ctrl_o[45:0] - - - STORMcore registers - label - #3e3e3e - 230 230 230 - HEXRADIX - - - reg_file[0:31] - reg_file[0:31] - HEXRADIX - - [0] - reg_file[0] - HEXRADIX - - - [1] - reg_file[1] - HEXRADIX - - - [2] - reg_file[2] - HEXRADIX - - - [3] - reg_file[3] - HEXRADIX - - - [4] - reg_file[4] - HEXRADIX - - - [5] - reg_file[5] - HEXRADIX - - - [6] - reg_file[6] - HEXRADIX - - - [7] - reg_file[7] - HEXRADIX - - - [8] - reg_file[8] - HEXRADIX - - - [9] - reg_file[9] - HEXRADIX - - - [10] - reg_file[10] - HEXRADIX - - - [11] - reg_file[11] - HEXRADIX - - - [12] - reg_file[12] - HEXRADIX - - - [13] - reg_file[13] - HEXRADIX - - - [14] - reg_file[14] - HEXRADIX - - - [15] - reg_file[15] - HEXRADIX - - - [16] - reg_file[16] - HEXRADIX - - - [17] - reg_file[17] - HEXRADIX - - - [18] - reg_file[18] - HEXRADIX - - - [19] - reg_file[19] - HEXRADIX - - - [20] - reg_file[20] - HEXRADIX - - - [21] - reg_file[21] - HEXRADIX - - - [22] - reg_file[22] - HEXRADIX - - - [23] - reg_file[23] - HEXRADIX - - - [24] - reg_file[24] - HEXRADIX - - - [25] - reg_file[25] - HEXRADIX - - - [26] - reg_file[26] - HEXRADIX - - - [27] - reg_file[27] - HEXRADIX - - - [28] - reg_file[28] - HEXRADIX - - - [29] - reg_file[29] - HEXRADIX - - - [30] - reg_file[30] - HEXRADIX - - - [31] - reg_file[31] - HEXRADIX - - - - mcr_pc[31:0] - mcr_pc[31:0] - HEXRADIX - true - #ff0000 - - - instr_reg[31:0] - instr_reg[31:0] - HEXRADIX - true - #0000ff - - - mcr_cmsr[31:0] - mcr_cmsr[31:0] - true - #ffffff - - - cp_reg_file[15:0] - cp_reg_file[15:0] - - [15] - cp_reg_file[15] - HEXRADIX - - - [14] - cp_reg_file[14] - HEXRADIX - - - [13] - cp_reg_file[13] - HEXRADIX - - - [12] - cp_reg_file[12] - HEXRADIX - - - [11] - cp_reg_file[11] - HEXRADIX - - - [10] - cp_reg_file[10] - HEXRADIX - - - [9] - cp_reg_file[9] - HEXRADIX - - - [8] - cp_reg_file[8] - HEXRADIX - - - [7] - cp_reg_file[7] - HEXRADIX - - - [6] - cp_reg_file[6] - HEXRADIX - - - [5] - cp_reg_file[5] - HEXRADIX - - - [4] - cp_reg_file[4] - HEXRADIX - - - [3] - cp_reg_file[3] - HEXRADIX - - - [2] - cp_reg_file[2] - HEXRADIX - - - [1] - cp_reg_file[1] - HEXRADIX - - - [0] - cp_reg_file[0] - HEXRADIX - - - - DATA CACHE - label - #3e3e3e - 230 230 230 - HEXRADIX - - - arb_state - arb_state - - - b_cs_i - b_cs_i - - - p_adr_i[31:0] - p_adr_i[31:0] - HEXRADIX - - - sim_mem[0:7] - sim_mem[0:7] - HEXRADIX - - [0] - sim_mem[0] - HEXRADIX - - - [1] - sim_mem[1] - HEXRADIX - - - [2] - sim_mem[2] - HEXRADIX - - - [3] - sim_mem[3] - HEXRADIX - - - [4] - sim_mem[4] - HEXRADIX - - - [5] - sim_mem[5] - HEXRADIX - - - [6] - sim_mem[6] - HEXRADIX - - - [7] - sim_mem[7] - HEXRADIX - - - - INSTRUCTION CACHE - label - #3e3e3e - 230 230 230 - HEXRADIX - - - arb_state - arb_state - - - sim_mem[0:127] - sim_mem[0:127] - HEXRADIX - - [0] - sim_mem[0] - HEXRADIX - - - [1] - sim_mem[1] - HEXRADIX - - - [2] - sim_mem[2] - HEXRADIX - - - [3] - sim_mem[3] - HEXRADIX - - - [4] - sim_mem[4] - HEXRADIX - - - [5] - sim_mem[5] - HEXRADIX - - - [6] - sim_mem[6] - HEXRADIX - - - [7] - sim_mem[7] - HEXRADIX - - - [8] - sim_mem[8] - HEXRADIX - - - [9] - sim_mem[9] - HEXRADIX - - - [10] - sim_mem[10] - HEXRADIX - - - [11] - sim_mem[11] - HEXRADIX - - - [12] - sim_mem[12] - HEXRADIX - - - [13] - sim_mem[13] - HEXRADIX - - - [14] - sim_mem[14] - HEXRADIX - - - [15] - sim_mem[15] - HEXRADIX - - - [16] - sim_mem[16] - HEXRADIX - - - [17] - sim_mem[17] - HEXRADIX - - - [18] - sim_mem[18] - HEXRADIX - - - [19] - sim_mem[19] - HEXRADIX - - - [20] - sim_mem[20] - HEXRADIX - - - [21] - sim_mem[21] - HEXRADIX - - - [22] - sim_mem[22] - HEXRADIX - - - [23] - sim_mem[23] - HEXRADIX - - - [24] - sim_mem[24] - HEXRADIX - - - [25] - sim_mem[25] - HEXRADIX - - - [26] - sim_mem[26] - HEXRADIX - - - [27] - sim_mem[27] - HEXRADIX - - - [28] - sim_mem[28] - HEXRADIX - - - [29] - sim_mem[29] - HEXRADIX - - - [30] - sim_mem[30] - HEXRADIX - - - [31] - sim_mem[31] - HEXRADIX - - - [32] - sim_mem[32] - HEXRADIX - - - [33] - sim_mem[33] - HEXRADIX - - - [34] - sim_mem[34] - HEXRADIX - - - [35] - sim_mem[35] - HEXRADIX - - - [36] - sim_mem[36] - HEXRADIX - - - [37] - sim_mem[37] - HEXRADIX - - - [38] - sim_mem[38] - HEXRADIX - - - [39] - sim_mem[39] - HEXRADIX - - - [40] - sim_mem[40] - HEXRADIX - - - [41] - sim_mem[41] - HEXRADIX - - - [42] - sim_mem[42] - HEXRADIX - - - [43] - sim_mem[43] - HEXRADIX - - - [44] - sim_mem[44] - HEXRADIX - - - [45] - sim_mem[45] - HEXRADIX - - - [46] - sim_mem[46] - HEXRADIX - - - [47] - sim_mem[47] - HEXRADIX - - - [48] - sim_mem[48] - HEXRADIX - - - [49] - sim_mem[49] - HEXRADIX - - - [50] - sim_mem[50] - HEXRADIX - - - [51] - sim_mem[51] - HEXRADIX - - - [52] - sim_mem[52] - HEXRADIX - - - [53] - sim_mem[53] - HEXRADIX - - - [54] - sim_mem[54] - HEXRADIX - - - [55] - sim_mem[55] - HEXRADIX - - - [56] - sim_mem[56] - HEXRADIX - - - [57] - sim_mem[57] - HEXRADIX - - - [58] - sim_mem[58] - HEXRADIX - - - [59] - sim_mem[59] - HEXRADIX - - - [60] - sim_mem[60] - HEXRADIX - - - [61] - sim_mem[61] - HEXRADIX - - - [62] - sim_mem[62] - HEXRADIX - - - [63] - sim_mem[63] - HEXRADIX - - - [64] - sim_mem[64] - HEXRADIX - - - [65] - sim_mem[65] - HEXRADIX - - - [66] - sim_mem[66] - HEXRADIX - - - [67] - sim_mem[67] - HEXRADIX - - - [68] - sim_mem[68] - HEXRADIX - - - [69] - sim_mem[69] - HEXRADIX - - - [70] - sim_mem[70] - HEXRADIX - - - [71] - sim_mem[71] - HEXRADIX - - - [72] - sim_mem[72] - HEXRADIX - - - [73] - sim_mem[73] - HEXRADIX - - - [74] - sim_mem[74] - HEXRADIX - - - [75] - sim_mem[75] - HEXRADIX - - - [76] - sim_mem[76] - HEXRADIX - - - [77] - sim_mem[77] - HEXRADIX - - - [78] - sim_mem[78] - HEXRADIX - - - [79] - sim_mem[79] - HEXRADIX - - - [80] - sim_mem[80] - HEXRADIX - - - [81] - sim_mem[81] - HEXRADIX - - - [82] - sim_mem[82] - HEXRADIX - - - [83] - sim_mem[83] - HEXRADIX - - - [84] - sim_mem[84] - HEXRADIX - - - [85] - sim_mem[85] - HEXRADIX - - - [86] - sim_mem[86] - HEXRADIX - - - [87] - sim_mem[87] - HEXRADIX - - - [88] - sim_mem[88] - HEXRADIX - - - [89] - sim_mem[89] - HEXRADIX - - - [90] - sim_mem[90] - HEXRADIX - - - [91] - sim_mem[91] - HEXRADIX - - - [92] - sim_mem[92] - HEXRADIX - - - [93] - sim_mem[93] - HEXRADIX - - - [94] - sim_mem[94] - HEXRADIX - - - [95] - sim_mem[95] - HEXRADIX - - - [96] - sim_mem[96] - HEXRADIX - - - [97] - sim_mem[97] - HEXRADIX - - - [98] - sim_mem[98] - HEXRADIX - - - [99] - sim_mem[99] - HEXRADIX - - - [100] - sim_mem[100] - HEXRADIX - - - [101] - sim_mem[101] - HEXRADIX - - - [102] - sim_mem[102] - HEXRADIX - - - [103] - sim_mem[103] - HEXRADIX - - - [104] - sim_mem[104] - HEXRADIX - - - [105] - sim_mem[105] - HEXRADIX - - - [106] - sim_mem[106] - HEXRADIX - - - [107] - sim_mem[107] - HEXRADIX - - - [108] - sim_mem[108] - HEXRADIX - - - [109] - sim_mem[109] - HEXRADIX - - - [110] - sim_mem[110] - HEXRADIX - - - [111] - sim_mem[111] - HEXRADIX - - - [112] - sim_mem[112] - HEXRADIX - - - [113] - sim_mem[113] - HEXRADIX - - - [114] - sim_mem[114] - HEXRADIX - - - [115] - sim_mem[115] - HEXRADIX - - - [116] - sim_mem[116] - HEXRADIX - - - [117] - sim_mem[117] - HEXRADIX - - - [118] - sim_mem[118] - HEXRADIX - - - [119] - sim_mem[119] - HEXRADIX - - - [120] - sim_mem[120] - HEXRADIX - - - [121] - sim_mem[121] - HEXRADIX - - - [122] - sim_mem[122] - HEXRADIX - - - [123] - sim_mem[123] - HEXRADIX - - - [124] - sim_mem[124] - HEXRADIX - - - [125] - sim_mem[125] - HEXRADIX - - - [126] - sim_mem[126] - HEXRADIX - - - [127] - sim_mem[127] - HEXRADIX - - - - BUS UNIT - label - #3e3e3e - 230 230 230 - HEXRADIX - - - timeout_cnt[15:0] - timeout_cnt[15:0] - UNSIGNEDDECRADIX - - - arb_state - arb_state - - - io_access - io_access - - - dc_miss_i - dc_miss_i - - - dc_dirty_i - dc_dirty_i - - - freeze_storm_o - freeze_storm_o - - - WISHBONE BUS - label - #3e3e3e - 230 230 230 - HEXRADIX - - - core_wb_stb_o - core_wb_stb_o - - - core_wb_adr_o[31:0] - core_wb_adr_o[31:0] - HEXRADIX - - - core_wb_we_o - core_wb_we_o - - - core_wb_data_o[31:0] - core_wb_data_o[31:0] - HEXRADIX - - - core_wb_data_i[31:0] - core_wb_data_i[31:0] - HEXRADIX - - - core_wb_ack_i - core_wb_ack_i - - - core_wb_halt_i - core_wb_halt_i - - - core_wb_err_i - core_wb_err_i - - - INTERNAL MEMORY - label - #3e3e3e - 230 230 230 - HEXRADIX - - - wb_stb_i - wb_stb_i - - - wb_ack_o - wb_ack_o - - - sim_mem[0:255] - sim_mem[0:255] - HEXRADIX - - [0] - sim_mem[0] - HEXRADIX - - - [1] - sim_mem[1] - HEXRADIX - - - [2] - sim_mem[2] - HEXRADIX - - - [3] - sim_mem[3] - HEXRADIX - - - [4] - sim_mem[4] - HEXRADIX - - - [5] - sim_mem[5] - HEXRADIX - - - [6] - sim_mem[6] - HEXRADIX - - - [7] - sim_mem[7] - HEXRADIX - - - [8] - sim_mem[8] - HEXRADIX - - - [9] - sim_mem[9] - HEXRADIX - - - [10] - sim_mem[10] - HEXRADIX - - - [11] - sim_mem[11] - HEXRADIX - - - [12] - sim_mem[12] - HEXRADIX - - - [13] - sim_mem[13] - HEXRADIX - - - [14] - sim_mem[14] - HEXRADIX - - - [15] - sim_mem[15] - HEXRADIX - - - [16] - sim_mem[16] - HEXRADIX - - - [17] - sim_mem[17] - HEXRADIX - - - [18] - sim_mem[18] - HEXRADIX - - - [19] - sim_mem[19] - HEXRADIX - - - [20] - sim_mem[20] - HEXRADIX - - - [21] - sim_mem[21] - HEXRADIX - - - [22] - sim_mem[22] - HEXRADIX - - - [23] - sim_mem[23] - HEXRADIX - - - [24] - sim_mem[24] - HEXRADIX - - - [25] - sim_mem[25] - HEXRADIX - - - [26] - sim_mem[26] - HEXRADIX - - - [27] - sim_mem[27] - HEXRADIX - - - [28] - sim_mem[28] - HEXRADIX - - - [29] - sim_mem[29] - HEXRADIX - - - [30] - sim_mem[30] - HEXRADIX - - - [31] - sim_mem[31] - HEXRADIX - - - [32] - sim_mem[32] - HEXRADIX - - - [33] - sim_mem[33] - HEXRADIX - - - [34] - sim_mem[34] - HEXRADIX - - - [35] - sim_mem[35] - HEXRADIX - - - [36] - sim_mem[36] - HEXRADIX - - - [37] - sim_mem[37] - HEXRADIX - - - [38] - sim_mem[38] - HEXRADIX - - - [39] - sim_mem[39] - HEXRADIX - - - [40] - sim_mem[40] - HEXRADIX - - - [41] - sim_mem[41] - HEXRADIX - - - [42] - sim_mem[42] - HEXRADIX - - - [43] - sim_mem[43] - HEXRADIX - - - [44] - sim_mem[44] - HEXRADIX - - - [45] - sim_mem[45] - HEXRADIX - - - [46] - sim_mem[46] - HEXRADIX - - - [47] - sim_mem[47] - HEXRADIX - - - [48] - sim_mem[48] - HEXRADIX - - - [49] - sim_mem[49] - HEXRADIX - - - [50] - sim_mem[50] - HEXRADIX - - - [51] - sim_mem[51] - HEXRADIX - - - [52] - sim_mem[52] - HEXRADIX - - - [53] - sim_mem[53] - HEXRADIX - - - [54] - sim_mem[54] - HEXRADIX - - - [55] - sim_mem[55] - HEXRADIX - - - [56] - sim_mem[56] - HEXRADIX - - - [57] - sim_mem[57] - HEXRADIX - - - [58] - sim_mem[58] - HEXRADIX - - - [59] - sim_mem[59] - HEXRADIX - - - [60] - sim_mem[60] - HEXRADIX - - - [61] - sim_mem[61] - HEXRADIX - - - [62] - sim_mem[62] - HEXRADIX - - - [63] - sim_mem[63] - HEXRADIX - - - [64] - sim_mem[64] - HEXRADIX - - - [65] - sim_mem[65] - HEXRADIX - - - [66] - sim_mem[66] - HEXRADIX - - - [67] - sim_mem[67] - HEXRADIX - - - [68] - sim_mem[68] - HEXRADIX - - - [69] - sim_mem[69] - HEXRADIX - - - [70] - sim_mem[70] - HEXRADIX - - - [71] - sim_mem[71] - HEXRADIX - - - [72] - sim_mem[72] - HEXRADIX - - - [73] - sim_mem[73] - HEXRADIX - - - [74] - sim_mem[74] - HEXRADIX - - - [75] - sim_mem[75] - HEXRADIX - - - [76] - sim_mem[76] - HEXRADIX - - - [77] - sim_mem[77] - HEXRADIX - - - [78] - sim_mem[78] - HEXRADIX - - - [79] - sim_mem[79] - HEXRADIX - - - [80] - sim_mem[80] - HEXRADIX - - - [81] - sim_mem[81] - HEXRADIX - - - [82] - sim_mem[82] - HEXRADIX - - - [83] - sim_mem[83] - HEXRADIX - - - [84] - sim_mem[84] - HEXRADIX - - - [85] - sim_mem[85] - HEXRADIX - - - [86] - sim_mem[86] - HEXRADIX - - - [87] - sim_mem[87] - HEXRADIX - - - [88] - sim_mem[88] - HEXRADIX - - - [89] - sim_mem[89] - HEXRADIX - - - [90] - sim_mem[90] - HEXRADIX - - - [91] - sim_mem[91] - HEXRADIX - - - [92] - sim_mem[92] - HEXRADIX - - - [93] - sim_mem[93] - HEXRADIX - - - [94] - sim_mem[94] - HEXRADIX - - - [95] - sim_mem[95] - HEXRADIX - - - [96] - sim_mem[96] - HEXRADIX - - - [97] - sim_mem[97] - HEXRADIX - - - [98] - sim_mem[98] - HEXRADIX - - - [99] - sim_mem[99] - HEXRADIX - - - [100] - sim_mem[100] - HEXRADIX - - - [101] - sim_mem[101] - HEXRADIX - - - [102] - sim_mem[102] - HEXRADIX - - - [103] - sim_mem[103] - HEXRADIX - - - [104] - sim_mem[104] - HEXRADIX - - - [105] - sim_mem[105] - HEXRADIX - - - [106] - sim_mem[106] - HEXRADIX - - - [107] - sim_mem[107] - HEXRADIX - - - [108] - sim_mem[108] - HEXRADIX - - - [109] - sim_mem[109] - HEXRADIX - - - [110] - sim_mem[110] - HEXRADIX - - - [111] - sim_mem[111] - HEXRADIX - - - [112] - sim_mem[112] - HEXRADIX - - - [113] - sim_mem[113] - HEXRADIX - - - [114] - sim_mem[114] - HEXRADIX - - - [115] - sim_mem[115] - HEXRADIX - - - [116] - sim_mem[116] - HEXRADIX - - - [117] - sim_mem[117] - HEXRADIX - - - [118] - sim_mem[118] - HEXRADIX - - - [119] - sim_mem[119] - HEXRADIX - - - [120] - sim_mem[120] - HEXRADIX - - - [121] - sim_mem[121] - HEXRADIX - - - [122] - sim_mem[122] - HEXRADIX - - - [123] - sim_mem[123] - HEXRADIX - - - [124] - sim_mem[124] - HEXRADIX - - - [125] - sim_mem[125] - HEXRADIX - - - [126] - sim_mem[126] - HEXRADIX - - - [127] - sim_mem[127] - HEXRADIX - - - [128] - sim_mem[128] - HEXRADIX - - - [129] - sim_mem[129] - HEXRADIX - - - [130] - sim_mem[130] - HEXRADIX - - - [131] - sim_mem[131] - HEXRADIX - - - [132] - sim_mem[132] - HEXRADIX - - - [133] - sim_mem[133] - HEXRADIX - - - [134] - sim_mem[134] - HEXRADIX - - - [135] - sim_mem[135] - HEXRADIX - - - [136] - sim_mem[136] - HEXRADIX - - - [137] - sim_mem[137] - HEXRADIX - - - [138] - sim_mem[138] - HEXRADIX - - - [139] - sim_mem[139] - HEXRADIX - - - [140] - sim_mem[140] - HEXRADIX - - - [141] - sim_mem[141] - HEXRADIX - - - [142] - sim_mem[142] - HEXRADIX - - - [143] - sim_mem[143] - HEXRADIX - - - [144] - sim_mem[144] - HEXRADIX - - - [145] - sim_mem[145] - HEXRADIX - - - [146] - sim_mem[146] - HEXRADIX - - - [147] - sim_mem[147] - HEXRADIX - - - [148] - sim_mem[148] - HEXRADIX - - - [149] - sim_mem[149] - HEXRADIX - - - [150] - sim_mem[150] - HEXRADIX - - - [151] - sim_mem[151] - HEXRADIX - - - [152] - sim_mem[152] - HEXRADIX - - - [153] - sim_mem[153] - HEXRADIX - - - [154] - sim_mem[154] - HEXRADIX - - - [155] - sim_mem[155] - HEXRADIX - - - [156] - sim_mem[156] - HEXRADIX - - - [157] - sim_mem[157] - HEXRADIX - - - [158] - sim_mem[158] - HEXRADIX - - - [159] - sim_mem[159] - HEXRADIX - - - [160] - sim_mem[160] - HEXRADIX - - - [161] - sim_mem[161] - HEXRADIX - - - [162] - sim_mem[162] - HEXRADIX - - - [163] - sim_mem[163] - HEXRADIX - - - [164] - sim_mem[164] - HEXRADIX - - - [165] - sim_mem[165] - HEXRADIX - - - [166] - sim_mem[166] - HEXRADIX - - - [167] - sim_mem[167] - HEXRADIX - - - [168] - sim_mem[168] - HEXRADIX - - - [169] - sim_mem[169] - HEXRADIX - - - [170] - sim_mem[170] - HEXRADIX - - - [171] - sim_mem[171] - HEXRADIX - - - [172] - sim_mem[172] - HEXRADIX - - - [173] - sim_mem[173] - HEXRADIX - - - [174] - sim_mem[174] - HEXRADIX - - - [175] - sim_mem[175] - HEXRADIX - - - [176] - sim_mem[176] - HEXRADIX - - - [177] - sim_mem[177] - HEXRADIX - - - [178] - sim_mem[178] - HEXRADIX - - - [179] - sim_mem[179] - HEXRADIX - - - [180] - sim_mem[180] - HEXRADIX - - - [181] - sim_mem[181] - HEXRADIX - - - [182] - sim_mem[182] - HEXRADIX - - - [183] - sim_mem[183] - HEXRADIX - - - [184] - sim_mem[184] - HEXRADIX - - - [185] - sim_mem[185] - HEXRADIX - - - [186] - sim_mem[186] - HEXRADIX - - - [187] - sim_mem[187] - HEXRADIX - - - [188] - sim_mem[188] - HEXRADIX - - - [189] - sim_mem[189] - HEXRADIX - - - [190] - sim_mem[190] - HEXRADIX - - - [191] - sim_mem[191] - HEXRADIX - - - [192] - sim_mem[192] - HEXRADIX - - - [193] - sim_mem[193] - HEXRADIX - - - [194] - sim_mem[194] - HEXRADIX - - - [195] - sim_mem[195] - HEXRADIX - - - [196] - sim_mem[196] - HEXRADIX - - - [197] - sim_mem[197] - HEXRADIX - - - [198] - sim_mem[198] - HEXRADIX - - - [199] - sim_mem[199] - HEXRADIX - - - [200] - sim_mem[200] - HEXRADIX - - - [201] - sim_mem[201] - HEXRADIX - - - [202] - sim_mem[202] - HEXRADIX - - - [203] - sim_mem[203] - HEXRADIX - - - [204] - sim_mem[204] - HEXRADIX - - - [205] - sim_mem[205] - HEXRADIX - - - [206] - sim_mem[206] - HEXRADIX - - - [207] - sim_mem[207] - HEXRADIX - - - [208] - sim_mem[208] - HEXRADIX - - - [209] - sim_mem[209] - HEXRADIX - - - [210] - sim_mem[210] - HEXRADIX - - - [211] - sim_mem[211] - HEXRADIX - - - [212] - sim_mem[212] - HEXRADIX - - - [213] - sim_mem[213] - HEXRADIX - - - [214] - sim_mem[214] - HEXRADIX - - - [215] - sim_mem[215] - HEXRADIX - - - [216] - sim_mem[216] - HEXRADIX - - - [217] - sim_mem[217] - HEXRADIX - - - [218] - sim_mem[218] - HEXRADIX - - - [219] - sim_mem[219] - HEXRADIX - - - [220] - sim_mem[220] - HEXRADIX - - - [221] - sim_mem[221] - HEXRADIX - - - [222] - sim_mem[222] - HEXRADIX - - - [223] - sim_mem[223] - HEXRADIX - - - [224] - sim_mem[224] - HEXRADIX - - - [225] - sim_mem[225] - HEXRADIX - - - [226] - sim_mem[226] - HEXRADIX - - - [227] - sim_mem[227] - HEXRADIX - - - [228] - sim_mem[228] - HEXRADIX - - - [229] - sim_mem[229] - HEXRADIX - - - [230] - sim_mem[230] - HEXRADIX - - - [231] - sim_mem[231] - HEXRADIX - - - [232] - sim_mem[232] - HEXRADIX - - - [233] - sim_mem[233] - HEXRADIX - - - [234] - sim_mem[234] - HEXRADIX - - - [235] - sim_mem[235] - HEXRADIX - - - [236] - sim_mem[236] - HEXRADIX - - - [237] - sim_mem[237] - HEXRADIX - - - [238] - sim_mem[238] - HEXRADIX - - - [239] - sim_mem[239] - HEXRADIX - - - [240] - sim_mem[240] - HEXRADIX - - - [241] - sim_mem[241] - HEXRADIX - - - [242] - sim_mem[242] - HEXRADIX - - - [243] - sim_mem[243] - HEXRADIX - - - [244] - sim_mem[244] - HEXRADIX - - - [245] - sim_mem[245] - HEXRADIX - - - [246] - sim_mem[246] - HEXRADIX - - - [247] - sim_mem[247] - HEXRADIX - - - [248] - sim_mem[248] - HEXRADIX - - - [249] - sim_mem[249] - HEXRADIX - - - [250] - sim_mem[250] - HEXRADIX - - - [251] - sim_mem[251] - HEXRADIX - - - [252] - sim_mem[252] - HEXRADIX - - - [253] - sim_mem[253] - HEXRADIX - - - [254] - sim_mem[254] - HEXRADIX - - - [255] - sim_mem[255] - HEXRADIX - - - - IO Controller - label - #3e3e3e - 230 230 230 - HEXRADIX - - - wb_stb_i - wb_stb_i - - - wb_ack_o - wb_ack_o - - - io_o_sync[31:0] - io_o_sync[31:0] - HEXRADIX - - - io_o_sync[31:0] - io_o_sync[31:0] - UNSIGNEDDECRADIX - -

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.