diff --git a/cMIPS/bin/build.sh b/cMIPS/bin/build.sh index 11bbffd2bc95de59413f389a422fb235aef95d16..70d5ef2c52a421d662db477e55dcfd58db9acc2f 100755 --- a/cMIPS/bin/build.sh +++ b/cMIPS/bin/build.sh @@ -54,7 +54,8 @@ pkg_vhd="$srcVHDL/packageMemory.vhd" if [ $pkg_vhd -nt $c_ld -o\ $pkg_vhd -nt $c_s -o\ - $pkg_vhd -nt $c_h ] ; then + $pkg_vhd -nt $c_h -o\ + ! -f ${srcVHDL}/.last_import ] ; then "${bin}"/edMemory.sh -v || errorED || exit 1 fi diff --git a/cMIPS/bin/edMemory.sh b/cMIPS/bin/edMemory.sh index 243de4036d7ef25f8e706377067226f511878bde..74acc9c5533b3e89e3963a0820671bb7d67e49ee 100755 --- a/cMIPS/bin/edMemory.sh +++ b/cMIPS/bin/edMemory.sh @@ -60,7 +60,10 @@ VARIABLES="x_INST_BASE_ADDR x_INST_MEM_SZ x_DATA_BASE_ADDR x_DATA_MEM_SZ x_IO_BA EXCEPTION_VECTORS="x_EXCEPTION_0000 x_EXCEPTION_0100 x_EXCEPTION_0180 x_EXCEPTION_0200 x_EXCEPTION_BFC0 x_ENTRY_POINT" -if [ "${dfn}" -nt "${lnk}" ] || [ "${dfn}" -nt "${asm}" ] || [ "${dfn}" -nt "${hdr}" ] ; +if [ "${dfn}" -nt "${lnk}" ] ||\ + [ "${dfn}" -nt "${asm}" ] ||\ + [ "${dfn}" -nt "${hdr}" ] ||\ + [ ! -f ${srcVHDL}/.last_include ] ; then cp "${asm}" "${asm}"~ diff --git a/cMIPS/tests/mmu_tlbwi.s b/cMIPS/tests/mmu_tlbwi.s index fa2620d7505143dde9a54f8634dad4d130f07747..50088fa5de8b519b785290cdc0d88845b0ffe5bb 100644 --- a/cMIPS/tests/mmu_tlbwi.s +++ b/cMIPS/tests/mmu_tlbwi.s @@ -229,7 +229,7 @@ read3: tlbr # read TLB at index = 3 ## test will break if MMU is initialized with different page #s .set PAGE_SZ, 4096 .set TAG_MASK, 0xfffff000 # 4Kbyte pages - .set TAG_G, 0x00000000 # mark pages as global + .set TAG_G, 0x00000000 # mark pages as non-global # read from MMU(6) diff --git a/cMIPS/vhdl/packageMemory.vhd b/cMIPS/vhdl/packageMemory.vhd index a0f54b59e792804b62eaf1f7d5e2200b49db237c..8edf7bcc3d775edf7bb1ff433ecf95cc6b611cb2 100644 --- a/cMIPS/vhdl/packageMemory.vhd +++ b/cMIPS/vhdl/packageMemory.vhd @@ -42,8 +42,8 @@ package p_MEMORY is -- you may change the values, not names neither formatting -- constant x_INST_BASE_ADDR : reg32 := x"00000000"; constant x_INST_MEM_SZ : reg32 := x"00004000"; - constant x_DATA_BASE_ADDR : reg32 := x"00040000"; - constant x_DATA_MEM_SZ : reg32 := x"00004000"; + constant x_DATA_BASE_ADDR : reg32 := x"00010000"; + constant x_DATA_MEM_SZ : reg32 := x"00008000"; constant x_IO_BASE_ADDR : reg32 := x"0F000000"; constant x_IO_MEM_SZ : reg32 := x"00002000"; constant x_IO_ADDR_RANGE : reg32 := x"00000020";