diff --git a/flist/apb/apb_ip.flist b/flist/apb/apb_ip.flist index 593cf11136920aa568ebb28bcc9987b20db4f222..24e608fc499ba3e7d2a19a25aa1c09e7cad2afd5 100644 --- a/flist/apb/apb_ip.flist +++ b/flist/apb/apb_ip.flist @@ -18,8 +18,8 @@ // ============= Accelerator Module search path ============= -y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_ahb_to_apb/verilog -y $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb3_eg_slave/verilog -+incdir+(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_ahb_to_apb/verilog -+incdir+(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb3_eg_slave/verilog ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_ahb_to_apb/verilog ++incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb3_eg_slave/verilog $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_ahb_to_apb/verilog/cmsdk_ahb_to_apb.v $(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb3_eg_slave/verilog/cmsdk_apb3_eg_slave_interface.v diff --git a/flist/corstone-101/corstone-101_ip.flist b/flist/corstone-101/corstone-101_ip.flist index 06d9fcc13b2d834ff3095575db324317f176e5c5..60800f67280ad289a9ec194d023efb323097536c 100644 --- a/flist/corstone-101/corstone-101_ip.flist +++ b/flist/corstone-101/corstone-101_ip.flist @@ -16,8 +16,6 @@ +libext+.v+.vlib // ============= Corstone-101 search path ============= -+incdir+$(PROJECT_DIR)/system/defines/corstone101 - +incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog +incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog +incdir+$(ARM_IP_LIBRARY_PATH)/latest/Corstone-101/logical/models/memories/ diff --git a/flist/nanosoc/nanosoc_chip_ip.flist b/flist/nanosoc/nanosoc_chip_ip.flist index f148dace48e1eeab7cf512d5a0e2ed2b0df5323a..c7b49e1f711620a60d1490706fb2d8dfd61a27d1 100644 --- a/flist/nanosoc/nanosoc_chip_ip.flist +++ b/flist/nanosoc/nanosoc_chip_ip.flist @@ -31,7 +31,4 @@ $(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_mcu_clkctrl.v $(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_mcu_sysctrl.v $(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_apb_usrt.v -$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_ahb_bootrom.v - - -$(NANOSOC_TECH_DIR)/system/src/bootrom/verilog/bootrom.v \ No newline at end of file +$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_ahb_bootrom.v \ No newline at end of file diff --git a/flist/nanosoc/nanosoc_tb.flist b/flist/nanosoc/nanosoc_tb.flist index 166bb2e0deaee0ca3a6c6b07e26356b9d8443f18..e5438e8832b81056cb5f1dde561df2d779c8ce8e 100644 --- a/flist/nanosoc/nanosoc_tb.flist +++ b/flist/nanosoc/nanosoc_tb.flist @@ -15,8 +15,8 @@ // ============= Verilog library extensions =========== +libext+.v+.vlib -// ============= DMA-230 search path ============= -+incdir+$(NANOSOC_TECH_DIR)/system/verilog/ +// ============= NanoSoC Testbench search path ============= ++incdir+$(NANOSOC_TECH_DIR)/system/verif/verilog/ // - Top-level testbench $(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_tb.v diff --git a/flist/project/system.flist b/flist/project/system.flist index 2b2b0f148cea235344edc2c7bad5e344db901b3a..d95e9b3c098f8691c90566f2b3935929c96528ce 100644 --- a/flist/project/system.flist +++ b/flist/project/system.flist @@ -58,4 +58,7 @@ $(PROJECT_DIR)/system/src/nanosoc_exp.v // - Top level --f $(PROJECT_DIR)/flist/nanosoc/nanosoc_tb.flist \ No newline at end of file +-f $(PROJECT_DIR)/flist/nanosoc/nanosoc_tb.flist + +// ============= Bootrom Filelist ================ +$(PROJECT_DIR)/system/bootrom/verilog/bootrom.v \ No newline at end of file diff --git a/generic-lib b/generic-lib index f5886f46ad61255996214720ab13e0b006530699..6272430296dc633f2424b1f7cf87a90f7167e54c 160000 --- a/generic-lib +++ b/generic-lib @@ -1 +1 @@ -Subproject commit f5886f46ad61255996214720ab13e0b006530699 +Subproject commit 6272430296dc633f2424b1f7cf87a90f7167e54c diff --git a/nanosoc b/nanosoc index a0ac6688b4031dbd37877c2a665e4e375d918cbc..7709570c4a96911d0f105616670453b8b4a92a0b 160000 --- a/nanosoc +++ b/nanosoc @@ -1 +1 @@ -Subproject commit a0ac6688b4031dbd37877c2a665e4e375d918cbc +Subproject commit 7709570c4a96911d0f105616670453b8b4a92a0b diff --git a/simulate/socsim/system_secworks_sha256.sh b/simulate/socsim/system_secworks_sha256.sh index 339422ab1f358d67a4ada731db516083127f39f7..599841244f1c22128babe3c8f5f676964c3d38c2 100755 --- a/simulate/socsim/system_secworks_sha256.sh +++ b/simulate/socsim/system_secworks_sha256.sh @@ -26,6 +26,7 @@ cd $PROJECT_DIR/simulate/sim/system_secworks_sha256 echo ${2} make -C $NANOSOC_TECH_DIR/system run_xm \ SIM_DIR=$SIM_DIR \ + BOOTROM_GEN=yes \ ADP_FILE=$PROJECT_DIR/system/stimulus/adp_hash_stim.cmd \ ${@:2} diff --git a/system/bootrom/bintxt/bootrom.bintxt b/system/bootrom/bintxt/bootrom.bintxt new file mode 100644 index 0000000000000000000000000000000000000000..9cd282998f44b6e5d77aa2fffd2afad4672056cb --- /dev/null +++ b/system/bootrom/bintxt/bootrom.bintxt @@ -0,0 +1,256 @@ +00110000000000000000001101101000 +00010000000000000000001100110101 +00010000000000000000001100111101 +00010000000000000000001100111111 +00000000000000000000000000000000 +00000000000000000000000000000000 +00000000000000000000000000000000 +00000000000000000000000000000000 +00000000000000000000000000000000 +00000000000000000000000000000000 +00000000000000000000000000000000 +00010000000000000000001101000001 +00000000000000000000000000000000 +00000000000000000000000000000000 +00010000000000000000001101000011 +00010000000000000000001101000101 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +00010000000000000000001101000111 +11111000000000101111000000000000 +11111000001111101111000000000000 +11001000001100001010000000001100 +00011000001001000011100000001000 +01000110101000100001100000101101 +01000110101010110001111001100111 +01000110010111010100011001010100 +11010001000000010100001010101100 +11111000001100001111000000000000 +00111110000011110100011001111110 +01000110101101101100110000001111 +01000010001100110010011000000001 +00011010111110111101000000000000 +01000110101010110100011010100010 +01000111000110000100001100110011 +00000000000000000000001011011100 +00000000000000000000001011111100 +11010011000000100011101000010000 +11000001011110001100100001111000 +00000111010100101101100011111010 +11001000001100001101001100000001 +11010101000000011100000100110000 +01100000000011000110100000000100 +00000000000000000100011101110000 +00100100000000000010001100000000 +00100110000000000010010100000000 +11010011000000010011101000010000 +11011000111110111100000101111000 +11010011000000000000011101010010 +11010101000000001100000100110000 +01000111011100000110000000001011 +10111101000111111011010100011111 +10111101000100001011010100010000 +11111001000101011111000000000000 +11110111111111110100011000010001 +11110000000000001111111111110111 +11110000000000001111100001101000 +10110100000000111111100100101101 +11111111111100101111011111111111 +11110000000000001011110000000011 +00000000000000001111100100110011 +01101000000000010010000000000000 +01101000010000010100011010001101 +00000000000000000100011100001000 +01001000010100110010000101000001 +01100001000000010000000101001001 +01100000100000010010000100000001 +01100000100000010100100001010001 +00100000001000000100100101010001 +01000111011100000110000110001000 +01101000010010100100100101001110 +11010001111111000000011111010010 +00000111110100100110100001001010 +01100000000010001101000100000000 +01001001010010100100011101110000 +00101011000000000111100000000011 +01101000010010101101000000001001 +11010001111111000000011111010010 +00000111110100100110100001001010 +01100000000010111101000100000000 +00101011000000000001110001000000 +01000111011100001101000111110010 +01001100010001001011010100010000 +01001000010000010110100000100001 +11010000000010100010100100000000 +01111000000110101010001101000010 +11010000001000010010101000000000 +00000111110010010110100001000001 +01101000010000011101000111111100 +11010000000101110000011111001001 +10100011010000011110000000010111 +00101010000000000111100000011010 +01101000010000011101000000001001 +11010001111111000000011111001001 +00000111110010010110100001000001 +01100000000000101101000100000000 +00101010000000000001110001011011 +00100010000001001101000111110010 +00000111110010010110100001000001 +01101000010000011101000111111100 +11010001000000000000011111001001 +11100111111111100110000000000010 +00011100010110110110000000000010 +11010001110110100010101000000000 +01100000001000000010000000000000 +10001111010011111111001110111111 +10001111011011111111001110111111 +11111111101000101111011111111111 +10110101000100001011110100010000 +01001000001001100010000101000001 +01100001000000010000000101001001 +01100000100000010010000100000001 +01100000100000010100100000100100 +00100001001000000100101000100100 +10100011001011110110000110010001 +00101010000000000111100000011010 +01101000010000011101000000001001 +11010001111111000000011111001001 +00000111110010010110100001000001 +01100000000000101101000100000000 +00101010000000000001110001011011 +01001100000111011101000111110010 +00101001000000000110100000100001 +10100011000111001101000000001010 +00101010000000000111100000011010 +01101000010000011101000000100001 +11010001111111000000011111001001 +00000111110010010110100001000001 +11100000000101111101000000010111 +01111000000110101010001100011010 +11010000000010010010101000000000 +00000111110010010110100001000001 +01101000010000011101000111111100 +11010001000000000000011111001001 +00011100010110110110000000000010 +11010001111100100010101000000000 +01101000010000010010001000000100 +11010001111111000000011111001001 +00000111110010010110100001000001 +01100000000000101101000100000000 +01100000000000101110011111111110 +00101010000000000001110001011011 +00100000000000001101000111011010 +11110011101111110110000000100000 +11110011101111111000111101001111 +11110111111111111000111101101111 +00100000000000001111111101010101 +00000000000000001011110100010000 +01000000000000000110000000000000 +01000000000000001110000000000000 +01000000000000010001000000000000 +01000000000000011111000000000000 +01010010001000000010101000101010 +01110000011000010110110101100101 +01000001010100100011111000101101 +00000000000010100011001001001101 +01110010011100100100010101000000 +00100000001110100111001001101111 +01000001010011010100010101010010 +01101100011000110010000001010000 +01100101011100100110000101100101 +00000000000000000000101001100100 +01010011000010100000101000001010 +01000001010011000100001101001111 +00100000001110100101001101000010 +00100000010011010101001001000001 +01110100011100100110111101000011 +01001101001011010111100001100101 +01100001011011100010000000110000 +01101111011100110110111101101110 +00000000000000000000101001100011 +01001000000000110100100100000100 +01000111011100000110000000001000 +01001000000000010100100100000010 +01000111011100000110000000001000 +00000101111101011110000100000000 +00110000000000000000000000000000 +01000111100000000100100000000111 +01000111000000000100100000000111 +11100111111111101110011111111110 +11100111111111101110011111111110 +11100111111111101110011111111110 +01001001000001010100100000000100 +01001011000001100100101000000101 +00000000000000000100011101110000 +00010000000000000000001100100101 +00010000000000000000000011000001 +00110000000000000000000001101000 +00110000000000000000001101101000 +00110000000000000000000101101000 +00110000000000000000000101101000 +01000111011100000100011101110000 +01000110011101010100011101110000 +11111000001001001111000000000000 +00000000000001010100011010101110 +01000110010100110100011001101001 +00000000110000000000100011000000 +10110000000110000100011010000101 +11110111111111111011010100100000 +10111100011000001111111111011101 +00001000010010010010011100000000 +00100110000000000100011010110110 +11000101110000001100010111000000 +11000101110000001100010111000000 +11000101110000001100010111000000 +11000101110000001100010111000000 +00000000010010010011110101000000 +01000111011100000100011010001101 +01000110000001001011010100010000 +01000110110000000100011011000000 +11110111111111110100011000100000 +10111101000100001111111011001100 +01000111011100000100100000000000 +00110000000000000000000000000100 +00100000000110000100100100000001 +11100111111111101011111010101011 +00000000000000100000000000100110 +00000000000000000100011101110000 +00010000000000000000001111111000 +00110000000000000000000000000000 +00000000000000000000000000000100 +00010000000000000000000100000100 +00010000000000000000001111111100 +00110000000000000000000000000100 +00000000000000000000001101100100 +00010000000000000000000100100000 +00000101111101011110000100000000 +00000000000000000000000000000000 diff --git a/system/bootrom/hex/bootloader.hex b/system/bootrom/hex/bootloader.hex new file mode 100644 index 0000000000000000000000000000000000000000..ce820229ded4e80f74279c05db88c9d44b2e4ea9 --- /dev/null +++ b/system/bootrom/hex/bootloader.hex @@ -0,0 +1,1020 @@ +68 +03 +00 +30 +35 +03 +00 +10 +3D +03 +00 +10 +3F +03 +00 +10 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +41 +03 +00 +10 +00 +00 +00 +00 +00 +00 +00 +00 +43 +03 +00 +10 +45 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +47 +03 +00 +10 +00 +F0 +02 +F8 +00 +F0 +3E +F8 +0C +A0 +30 +C8 +08 +38 +24 +18 +2D +18 +A2 +46 +67 +1E +AB +46 +54 +46 +5D +46 +AC +42 +01 +D1 +00 +F0 +30 +F8 +7E +46 +0F +3E +0F +CC +B6 +46 +01 +26 +33 +42 +00 +D0 +FB +1A +A2 +46 +AB +46 +33 +43 +18 +47 +DC +02 +00 +00 +FC +02 +00 +00 +10 +3A +02 +D3 +78 +C8 +78 +C1 +FA +D8 +52 +07 +01 +D3 +30 +C8 +30 +C1 +01 +D5 +04 +68 +0C +60 +70 +47 +00 +00 +00 +23 +00 +24 +00 +25 +00 +26 +10 +3A +01 +D3 +78 +C1 +FB +D8 +52 +07 +00 +D3 +30 +C1 +00 +D5 +0B +60 +70 +47 +1F +B5 +1F +BD +10 +B5 +10 +BD +00 +F0 +15 +F9 +11 +46 +FF +F7 +F7 +FF +00 +F0 +68 +F8 +00 +F0 +2D +F9 +03 +B4 +FF +F7 +F2 +FF +03 +BC +00 +F0 +33 +F9 +00 +00 +00 +20 +01 +68 +8D +46 +41 +68 +08 +47 +00 +00 +41 +21 +53 +48 +49 +01 +01 +61 +01 +21 +81 +60 +51 +48 +81 +60 +51 +49 +20 +20 +88 +61 +70 +47 +4E +49 +4A +68 +D2 +07 +FC +D1 +4A +68 +D2 +07 +00 +D1 +08 +60 +70 +47 +4A +49 +03 +78 +00 +2B +09 +D0 +4A +68 +D2 +07 +FC +D1 +4A +68 +D2 +07 +00 +D1 +0B +60 +40 +1C +00 +2B +F2 +D1 +70 +47 +10 +B5 +44 +4C +21 +68 +41 +48 +00 +29 +0A +D0 +42 +A3 +1A +78 +00 +2A +21 +D0 +41 +68 +C9 +07 +FC +D1 +41 +68 +C9 +07 +17 +D0 +17 +E0 +41 +A3 +1A +78 +00 +2A +09 +D0 +41 +68 +C9 +07 +FC +D1 +41 +68 +C9 +07 +00 +D1 +02 +60 +5B +1C +00 +2A +F2 +D1 +04 +22 +41 +68 +C9 +07 +FC +D1 +41 +68 +C9 +07 +00 +D1 +02 +60 +FE +E7 +02 +60 +5B +1C +00 +2A +DA +D1 +00 +20 +20 +60 +BF +F3 +4F +8F +BF +F3 +6F +8F +FF +F7 +A2 +FF +10 +BD +10 +B5 +41 +21 +26 +48 +49 +01 +01 +61 +01 +21 +81 +60 +24 +48 +81 +60 +24 +4A +20 +21 +91 +61 +2F +A3 +1A +78 +00 +2A +09 +D0 +41 +68 +C9 +07 +FC +D1 +41 +68 +C9 +07 +00 +D1 +02 +60 +5B +1C +00 +2A +F2 +D1 +1D +4C +21 +68 +00 +29 +0A +D0 +1C +A3 +1A +78 +00 +2A +21 +D0 +41 +68 +C9 +07 +FC +D1 +41 +68 +C9 +07 +17 +D0 +17 +E0 +1A +A3 +1A +78 +00 +2A +09 +D0 +41 +68 +C9 +07 +FC +D1 +41 +68 +C9 +07 +00 +D1 +02 +60 +5B +1C +00 +2A +F2 +D1 +04 +22 +41 +68 +C9 +07 +FC +D1 +41 +68 +C9 +07 +00 +D1 +02 +60 +FE +E7 +02 +60 +5B +1C +00 +2A +DA +D1 +00 +20 +20 +60 +BF +F3 +4F +8F +BF +F3 +6F +8F +FF +F7 +55 +FF +00 +20 +10 +BD +00 +00 +00 +60 +00 +40 +00 +E0 +00 +40 +00 +10 +01 +40 +00 +F0 +01 +40 +2A +2A +20 +52 +65 +6D +61 +70 +2D +3E +52 +41 +4D +32 +0A +00 +40 +45 +72 +72 +6F +72 +3A +20 +52 +45 +4D +41 +50 +20 +63 +6C +65 +61 +72 +65 +64 +0A +00 +00 +0A +0A +0A +53 +4F +43 +4C +41 +42 +53 +3A +20 +41 +52 +4D +20 +43 +6F +72 +74 +65 +78 +2D +4D +30 +20 +6E +61 +6E +6F +73 +6F +63 +0A +00 +00 +04 +49 +03 +48 +08 +60 +70 +47 +02 +49 +01 +48 +08 +60 +70 +47 +00 +E1 +F5 +05 +00 +00 +00 +30 +07 +48 +80 +47 +07 +48 +00 +47 +FE +E7 +FE +E7 +FE +E7 +FE +E7 +FE +E7 +FE +E7 +04 +48 +05 +49 +05 +4A +06 +4B +70 +47 +00 +00 +25 +03 +00 +10 +C1 +00 +00 +10 +68 +00 +00 +30 +68 +03 +00 +30 +68 +01 +00 +30 +68 +01 +00 +30 +70 +47 +70 +47 +70 +47 +75 +46 +00 +F0 +24 +F8 +AE +46 +05 +00 +69 +46 +53 +46 +C0 +08 +C0 +00 +85 +46 +18 +B0 +20 +B5 +FF +F7 +DD +FF +60 +BC +00 +27 +49 +08 +B6 +46 +00 +26 +C0 +C5 +C0 +C5 +C0 +C5 +C0 +C5 +C0 +C5 +C0 +C5 +C0 +C5 +C0 +C5 +40 +3D +49 +00 +8D +46 +70 +47 +10 +B5 +04 +46 +C0 +46 +C0 +46 +20 +46 +FF +F7 +CC +FE +10 +BD +00 +48 +70 +47 +04 +00 +00 +30 +01 +49 +18 +20 +AB +BE +FE +E7 +26 +00 +02 +00 +70 +47 +00 +00 +F8 +03 +00 +10 +00 +00 +00 +30 +04 +00 +00 +00 +04 +01 +00 +10 +FC +03 +00 +10 +04 +00 +00 +30 +64 +03 +00 +00 +20 +01 +00 +10 +00 +E1 +F5 +05 diff --git a/system/bootrom/verilog/bootrom.v b/system/bootrom/verilog/bootrom.v new file mode 100644 index 0000000000000000000000000000000000000000..16a0c7f4edaf3ebfa662855fb3a2fe8a20eabc10 --- /dev/null +++ b/system/bootrom/verilog/bootrom.v @@ -0,0 +1,277 @@ +//------------------------------------------------------------------------------------ +// customised auto-generated synthesizable ROM module abstraction +// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +// +// Contributors +// +// David Flynn (d.w.flynn@soton.ac.uk) +// Date: 2304282139 +// Copyright (c) 2021-3, SoC Labs (www.soclabs.org) +//------------------------------------------------------------------------------------ +module bootrom ( + input wire CLK, + input wire EN, + input wire [9:2] ADDR, + output reg [31:0] RDATA ); +reg [9:2] addr_r; +always @(posedge CLK) if (EN) addr_r <= ADDR; +always @(addr_r) case(addr_r[9:2]) + 8'h00 : RDATA <= 32'h30000368; // 0x0000 + 8'h01 : RDATA <= 32'h10000335; // 0x0004 + 8'h02 : RDATA <= 32'h1000033d; // 0x0008 + 8'h03 : RDATA <= 32'h1000033f; // 0x000c + 8'h04 : RDATA <= 32'h00000000; // 0x0010 + 8'h05 : RDATA <= 32'h00000000; // 0x0014 + 8'h06 : RDATA <= 32'h00000000; // 0x0018 + 8'h07 : RDATA <= 32'h00000000; // 0x001c + 8'h08 : RDATA <= 32'h00000000; // 0x0020 + 8'h09 : RDATA <= 32'h00000000; // 0x0024 + 8'h0a : RDATA <= 32'h00000000; // 0x0028 + 8'h0b : RDATA <= 32'h10000341; // 0x002c + 8'h0c : RDATA <= 32'h00000000; // 0x0030 + 8'h0d : RDATA <= 32'h00000000; // 0x0034 + 8'h0e : RDATA <= 32'h10000343; // 0x0038 + 8'h0f : RDATA <= 32'h10000345; // 0x003c + 8'h10 : RDATA <= 32'h10000347; // 0x0040 + 8'h11 : RDATA <= 32'h10000347; // 0x0044 + 8'h12 : RDATA <= 32'h10000347; // 0x0048 + 8'h13 : RDATA <= 32'h10000347; // 0x004c + 8'h14 : RDATA <= 32'h10000347; // 0x0050 + 8'h15 : RDATA <= 32'h10000347; // 0x0054 + 8'h16 : RDATA <= 32'h10000347; // 0x0058 + 8'h17 : RDATA <= 32'h10000347; // 0x005c + 8'h18 : RDATA <= 32'h10000347; // 0x0060 + 8'h19 : RDATA <= 32'h10000347; // 0x0064 + 8'h1a : RDATA <= 32'h10000347; // 0x0068 + 8'h1b : RDATA <= 32'h10000347; // 0x006c + 8'h1c : RDATA <= 32'h10000347; // 0x0070 + 8'h1d : RDATA <= 32'h10000347; // 0x0074 + 8'h1e : RDATA <= 32'h10000347; // 0x0078 + 8'h1f : RDATA <= 32'h10000347; // 0x007c + 8'h20 : RDATA <= 32'h10000347; // 0x0080 + 8'h21 : RDATA <= 32'h10000347; // 0x0084 + 8'h22 : RDATA <= 32'h10000347; // 0x0088 + 8'h23 : RDATA <= 32'h10000347; // 0x008c + 8'h24 : RDATA <= 32'h10000347; // 0x0090 + 8'h25 : RDATA <= 32'h10000347; // 0x0094 + 8'h26 : RDATA <= 32'h10000347; // 0x0098 + 8'h27 : RDATA <= 32'h10000347; // 0x009c + 8'h28 : RDATA <= 32'h10000347; // 0x00a0 + 8'h29 : RDATA <= 32'h10000347; // 0x00a4 + 8'h2a : RDATA <= 32'h10000347; // 0x00a8 + 8'h2b : RDATA <= 32'h10000347; // 0x00ac + 8'h2c : RDATA <= 32'h10000347; // 0x00b0 + 8'h2d : RDATA <= 32'h10000347; // 0x00b4 + 8'h2e : RDATA <= 32'h10000347; // 0x00b8 + 8'h2f : RDATA <= 32'h10000347; // 0x00bc + 8'h30 : RDATA <= 32'hf802f000; // 0x00c0 + 8'h31 : RDATA <= 32'hf83ef000; // 0x00c4 + 8'h32 : RDATA <= 32'hc830a00c; // 0x00c8 + 8'h33 : RDATA <= 32'h18243808; // 0x00cc + 8'h34 : RDATA <= 32'h46a2182d; // 0x00d0 + 8'h35 : RDATA <= 32'h46ab1e67; // 0x00d4 + 8'h36 : RDATA <= 32'h465d4654; // 0x00d8 + 8'h37 : RDATA <= 32'hd10142ac; // 0x00dc + 8'h38 : RDATA <= 32'hf830f000; // 0x00e0 + 8'h39 : RDATA <= 32'h3e0f467e; // 0x00e4 + 8'h3a : RDATA <= 32'h46b6cc0f; // 0x00e8 + 8'h3b : RDATA <= 32'h42332601; // 0x00ec + 8'h3c : RDATA <= 32'h1afbd000; // 0x00f0 + 8'h3d : RDATA <= 32'h46ab46a2; // 0x00f4 + 8'h3e : RDATA <= 32'h47184333; // 0x00f8 + 8'h3f : RDATA <= 32'h000002dc; // 0x00fc + 8'h40 : RDATA <= 32'h000002fc; // 0x0100 + 8'h41 : RDATA <= 32'hd3023a10; // 0x0104 + 8'h42 : RDATA <= 32'hc178c878; // 0x0108 + 8'h43 : RDATA <= 32'h0752d8fa; // 0x010c + 8'h44 : RDATA <= 32'hc830d301; // 0x0110 + 8'h45 : RDATA <= 32'hd501c130; // 0x0114 + 8'h46 : RDATA <= 32'h600c6804; // 0x0118 + 8'h47 : RDATA <= 32'h00004770; // 0x011c + 8'h48 : RDATA <= 32'h24002300; // 0x0120 + 8'h49 : RDATA <= 32'h26002500; // 0x0124 + 8'h4a : RDATA <= 32'hd3013a10; // 0x0128 + 8'h4b : RDATA <= 32'hd8fbc178; // 0x012c + 8'h4c : RDATA <= 32'hd3000752; // 0x0130 + 8'h4d : RDATA <= 32'hd500c130; // 0x0134 + 8'h4e : RDATA <= 32'h4770600b; // 0x0138 + 8'h4f : RDATA <= 32'hbd1fb51f; // 0x013c + 8'h50 : RDATA <= 32'hbd10b510; // 0x0140 + 8'h51 : RDATA <= 32'hf915f000; // 0x0144 + 8'h52 : RDATA <= 32'hf7ff4611; // 0x0148 + 8'h53 : RDATA <= 32'hf000fff7; // 0x014c + 8'h54 : RDATA <= 32'hf000f868; // 0x0150 + 8'h55 : RDATA <= 32'hb403f92d; // 0x0154 + 8'h56 : RDATA <= 32'hfff2f7ff; // 0x0158 + 8'h57 : RDATA <= 32'hf000bc03; // 0x015c + 8'h58 : RDATA <= 32'h0000f933; // 0x0160 + 8'h59 : RDATA <= 32'h68012000; // 0x0164 + 8'h5a : RDATA <= 32'h6841468d; // 0x0168 + 8'h5b : RDATA <= 32'h00004708; // 0x016c + 8'h5c : RDATA <= 32'h48532141; // 0x0170 + 8'h5d : RDATA <= 32'h61010149; // 0x0174 + 8'h5e : RDATA <= 32'h60812101; // 0x0178 + 8'h5f : RDATA <= 32'h60814851; // 0x017c + 8'h60 : RDATA <= 32'h20204951; // 0x0180 + 8'h61 : RDATA <= 32'h47706188; // 0x0184 + 8'h62 : RDATA <= 32'h684a494e; // 0x0188 + 8'h63 : RDATA <= 32'hd1fc07d2; // 0x018c + 8'h64 : RDATA <= 32'h07d2684a; // 0x0190 + 8'h65 : RDATA <= 32'h6008d100; // 0x0194 + 8'h66 : RDATA <= 32'h494a4770; // 0x0198 + 8'h67 : RDATA <= 32'h2b007803; // 0x019c + 8'h68 : RDATA <= 32'h684ad009; // 0x01a0 + 8'h69 : RDATA <= 32'hd1fc07d2; // 0x01a4 + 8'h6a : RDATA <= 32'h07d2684a; // 0x01a8 + 8'h6b : RDATA <= 32'h600bd100; // 0x01ac + 8'h6c : RDATA <= 32'h2b001c40; // 0x01b0 + 8'h6d : RDATA <= 32'h4770d1f2; // 0x01b4 + 8'h6e : RDATA <= 32'h4c44b510; // 0x01b8 + 8'h6f : RDATA <= 32'h48416821; // 0x01bc + 8'h70 : RDATA <= 32'hd00a2900; // 0x01c0 + 8'h71 : RDATA <= 32'h781aa342; // 0x01c4 + 8'h72 : RDATA <= 32'hd0212a00; // 0x01c8 + 8'h73 : RDATA <= 32'h07c96841; // 0x01cc + 8'h74 : RDATA <= 32'h6841d1fc; // 0x01d0 + 8'h75 : RDATA <= 32'hd01707c9; // 0x01d4 + 8'h76 : RDATA <= 32'ha341e017; // 0x01d8 + 8'h77 : RDATA <= 32'h2a00781a; // 0x01dc + 8'h78 : RDATA <= 32'h6841d009; // 0x01e0 + 8'h79 : RDATA <= 32'hd1fc07c9; // 0x01e4 + 8'h7a : RDATA <= 32'h07c96841; // 0x01e8 + 8'h7b : RDATA <= 32'h6002d100; // 0x01ec + 8'h7c : RDATA <= 32'h2a001c5b; // 0x01f0 + 8'h7d : RDATA <= 32'h2204d1f2; // 0x01f4 + 8'h7e : RDATA <= 32'h07c96841; // 0x01f8 + 8'h7f : RDATA <= 32'h6841d1fc; // 0x01fc + 8'h80 : RDATA <= 32'hd10007c9; // 0x0200 + 8'h81 : RDATA <= 32'he7fe6002; // 0x0204 + 8'h82 : RDATA <= 32'h1c5b6002; // 0x0208 + 8'h83 : RDATA <= 32'hd1da2a00; // 0x020c + 8'h84 : RDATA <= 32'h60202000; // 0x0210 + 8'h85 : RDATA <= 32'h8f4ff3bf; // 0x0214 + 8'h86 : RDATA <= 32'h8f6ff3bf; // 0x0218 + 8'h87 : RDATA <= 32'hffa2f7ff; // 0x021c + 8'h88 : RDATA <= 32'hb510bd10; // 0x0220 + 8'h89 : RDATA <= 32'h48262141; // 0x0224 + 8'h8a : RDATA <= 32'h61010149; // 0x0228 + 8'h8b : RDATA <= 32'h60812101; // 0x022c + 8'h8c : RDATA <= 32'h60814824; // 0x0230 + 8'h8d : RDATA <= 32'h21204a24; // 0x0234 + 8'h8e : RDATA <= 32'ha32f6191; // 0x0238 + 8'h8f : RDATA <= 32'h2a00781a; // 0x023c + 8'h90 : RDATA <= 32'h6841d009; // 0x0240 + 8'h91 : RDATA <= 32'hd1fc07c9; // 0x0244 + 8'h92 : RDATA <= 32'h07c96841; // 0x0248 + 8'h93 : RDATA <= 32'h6002d100; // 0x024c + 8'h94 : RDATA <= 32'h2a001c5b; // 0x0250 + 8'h95 : RDATA <= 32'h4c1dd1f2; // 0x0254 + 8'h96 : RDATA <= 32'h29006821; // 0x0258 + 8'h97 : RDATA <= 32'ha31cd00a; // 0x025c + 8'h98 : RDATA <= 32'h2a00781a; // 0x0260 + 8'h99 : RDATA <= 32'h6841d021; // 0x0264 + 8'h9a : RDATA <= 32'hd1fc07c9; // 0x0268 + 8'h9b : RDATA <= 32'h07c96841; // 0x026c + 8'h9c : RDATA <= 32'he017d017; // 0x0270 + 8'h9d : RDATA <= 32'h781aa31a; // 0x0274 + 8'h9e : RDATA <= 32'hd0092a00; // 0x0278 + 8'h9f : RDATA <= 32'h07c96841; // 0x027c + 8'ha0 : RDATA <= 32'h6841d1fc; // 0x0280 + 8'ha1 : RDATA <= 32'hd10007c9; // 0x0284 + 8'ha2 : RDATA <= 32'h1c5b6002; // 0x0288 + 8'ha3 : RDATA <= 32'hd1f22a00; // 0x028c + 8'ha4 : RDATA <= 32'h68412204; // 0x0290 + 8'ha5 : RDATA <= 32'hd1fc07c9; // 0x0294 + 8'ha6 : RDATA <= 32'h07c96841; // 0x0298 + 8'ha7 : RDATA <= 32'h6002d100; // 0x029c + 8'ha8 : RDATA <= 32'h6002e7fe; // 0x02a0 + 8'ha9 : RDATA <= 32'h2a001c5b; // 0x02a4 + 8'haa : RDATA <= 32'h2000d1da; // 0x02a8 + 8'hab : RDATA <= 32'hf3bf6020; // 0x02ac + 8'hac : RDATA <= 32'hf3bf8f4f; // 0x02b0 + 8'had : RDATA <= 32'hf7ff8f6f; // 0x02b4 + 8'hae : RDATA <= 32'h2000ff55; // 0x02b8 + 8'haf : RDATA <= 32'h0000bd10; // 0x02bc + 8'hb0 : RDATA <= 32'h40006000; // 0x02c0 + 8'hb1 : RDATA <= 32'h4000e000; // 0x02c4 + 8'hb2 : RDATA <= 32'h40011000; // 0x02c8 + 8'hb3 : RDATA <= 32'h4001f000; // 0x02cc + 8'hb4 : RDATA <= 32'h52202a2a; // 0x02d0 + 8'hb5 : RDATA <= 32'h70616d65; // 0x02d4 + 8'hb6 : RDATA <= 32'h41523e2d; // 0x02d8 + 8'hb7 : RDATA <= 32'h000a324d; // 0x02dc + 8'hb8 : RDATA <= 32'h72724540; // 0x02e0 + 8'hb9 : RDATA <= 32'h203a726f; // 0x02e4 + 8'hba : RDATA <= 32'h414d4552; // 0x02e8 + 8'hbb : RDATA <= 32'h6c632050; // 0x02ec + 8'hbc : RDATA <= 32'h65726165; // 0x02f0 + 8'hbd : RDATA <= 32'h00000a64; // 0x02f4 + 8'hbe : RDATA <= 32'h530a0a0a; // 0x02f8 + 8'hbf : RDATA <= 32'h414c434f; // 0x02fc + 8'hc0 : RDATA <= 32'h203a5342; // 0x0300 + 8'hc1 : RDATA <= 32'h204d5241; // 0x0304 + 8'hc2 : RDATA <= 32'h74726f43; // 0x0308 + 8'hc3 : RDATA <= 32'h4d2d7865; // 0x030c + 8'hc4 : RDATA <= 32'h616e2030; // 0x0310 + 8'hc5 : RDATA <= 32'h6f736f6e; // 0x0314 + 8'hc6 : RDATA <= 32'h00000a63; // 0x0318 + 8'hc7 : RDATA <= 32'h48034904; // 0x031c + 8'hc8 : RDATA <= 32'h47706008; // 0x0320 + 8'hc9 : RDATA <= 32'h48014902; // 0x0324 + 8'hca : RDATA <= 32'h47706008; // 0x0328 + 8'hcb : RDATA <= 32'h05f5e100; // 0x032c + 8'hcc : RDATA <= 32'h30000000; // 0x0330 + 8'hcd : RDATA <= 32'h47804807; // 0x0334 + 8'hce : RDATA <= 32'h47004807; // 0x0338 + 8'hcf : RDATA <= 32'he7fee7fe; // 0x033c + 8'hd0 : RDATA <= 32'he7fee7fe; // 0x0340 + 8'hd1 : RDATA <= 32'he7fee7fe; // 0x0344 + 8'hd2 : RDATA <= 32'h49054804; // 0x0348 + 8'hd3 : RDATA <= 32'h4b064a05; // 0x034c + 8'hd4 : RDATA <= 32'h00004770; // 0x0350 + 8'hd5 : RDATA <= 32'h10000325; // 0x0354 + 8'hd6 : RDATA <= 32'h100000c1; // 0x0358 + 8'hd7 : RDATA <= 32'h30000068; // 0x035c + 8'hd8 : RDATA <= 32'h30000368; // 0x0360 + 8'hd9 : RDATA <= 32'h30000168; // 0x0364 + 8'hda : RDATA <= 32'h30000168; // 0x0368 + 8'hdb : RDATA <= 32'h47704770; // 0x036c + 8'hdc : RDATA <= 32'h46754770; // 0x0370 + 8'hdd : RDATA <= 32'hf824f000; // 0x0374 + 8'hde : RDATA <= 32'h000546ae; // 0x0378 + 8'hdf : RDATA <= 32'h46534669; // 0x037c + 8'he0 : RDATA <= 32'h00c008c0; // 0x0380 + 8'he1 : RDATA <= 32'hb0184685; // 0x0384 + 8'he2 : RDATA <= 32'hf7ffb520; // 0x0388 + 8'he3 : RDATA <= 32'hbc60ffdd; // 0x038c + 8'he4 : RDATA <= 32'h08492700; // 0x0390 + 8'he5 : RDATA <= 32'h260046b6; // 0x0394 + 8'he6 : RDATA <= 32'hc5c0c5c0; // 0x0398 + 8'he7 : RDATA <= 32'hc5c0c5c0; // 0x039c + 8'he8 : RDATA <= 32'hc5c0c5c0; // 0x03a0 + 8'he9 : RDATA <= 32'hc5c0c5c0; // 0x03a4 + 8'hea : RDATA <= 32'h00493d40; // 0x03a8 + 8'heb : RDATA <= 32'h4770468d; // 0x03ac + 8'hec : RDATA <= 32'h4604b510; // 0x03b0 + 8'hed : RDATA <= 32'h46c046c0; // 0x03b4 + 8'hee : RDATA <= 32'hf7ff4620; // 0x03b8 + 8'hef : RDATA <= 32'hbd10fecc; // 0x03bc + 8'hf0 : RDATA <= 32'h47704800; // 0x03c0 + 8'hf1 : RDATA <= 32'h30000004; // 0x03c4 + 8'hf2 : RDATA <= 32'h20184901; // 0x03c8 + 8'hf3 : RDATA <= 32'he7febeab; // 0x03cc + 8'hf4 : RDATA <= 32'h00020026; // 0x03d0 + 8'hf5 : RDATA <= 32'h00004770; // 0x03d4 + 8'hf6 : RDATA <= 32'h100003f8; // 0x03d8 + 8'hf7 : RDATA <= 32'h30000000; // 0x03dc + 8'hf8 : RDATA <= 32'h00000004; // 0x03e0 + 8'hf9 : RDATA <= 32'h10000104; // 0x03e4 + 8'hfa : RDATA <= 32'h100003fc; // 0x03e8 + 8'hfb : RDATA <= 32'h30000004; // 0x03ec + 8'hfc : RDATA <= 32'h00000364; // 0x03f0 + 8'hfd : RDATA <= 32'h10000120; // 0x03f4 + 8'hfe : RDATA <= 32'h05f5e100; // 0x03f8 + 8'hff : RDATA <= 32'h00000000; // 0x03fc + default : RDATA <=32'h0; + endcase +endmodule