Fix HI/LO
This commit is contained in:
parent
7c5fef05b0
commit
57b9d66643
@ -1,7 +1,7 @@
|
|||||||
//Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
//Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
||||||
//--------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------
|
||||||
//Tool Version: Vivado v.2022.1 (lin64) Build 3526262 Mon Apr 18 15:47:01 MDT 2022
|
//Tool Version: Vivado v.2022.1 (lin64) Build 3526262 Mon Apr 18 15:47:01 MDT 2022
|
||||||
//Date : Mon Aug 8 13:32:33 2022
|
//Date : Tue Aug 16 17:39:17 2022
|
||||||
//Host : Laptop-Paul running 64-bit Manjaro Linux
|
//Host : Laptop-Paul running 64-bit Manjaro Linux
|
||||||
//Command : generate_target mycpu_block_wrapper.bd
|
//Command : generate_target mycpu_block_wrapper.bd
|
||||||
//Design : mycpu_block_wrapper
|
//Design : mycpu_block_wrapper
|
||||||
@ -42,6 +42,12 @@ module mycpu_block_wrapper
|
|||||||
spi_rtl_0_io1_io,
|
spi_rtl_0_io1_io,
|
||||||
spi_rtl_0_sck_io,
|
spi_rtl_0_sck_io,
|
||||||
spi_rtl_0_ss_io,
|
spi_rtl_0_ss_io,
|
||||||
|
uart_rtl_0_cts,
|
||||||
|
uart_rtl_0_dcd,
|
||||||
|
uart_rtl_0_dsr,
|
||||||
|
uart_rtl_0_dtr,
|
||||||
|
uart_rtl_0_ri,
|
||||||
|
uart_rtl_0_rts,
|
||||||
uart_rtl_0_rxd,
|
uart_rtl_0_rxd,
|
||||||
uart_rtl_0_txd);
|
uart_rtl_0_txd);
|
||||||
input clk;
|
input clk;
|
||||||
@ -76,6 +82,12 @@ module mycpu_block_wrapper
|
|||||||
inout spi_rtl_0_io1_io;
|
inout spi_rtl_0_io1_io;
|
||||||
inout spi_rtl_0_sck_io;
|
inout spi_rtl_0_sck_io;
|
||||||
inout [0:0]spi_rtl_0_ss_io;
|
inout [0:0]spi_rtl_0_ss_io;
|
||||||
|
input uart_rtl_0_cts;
|
||||||
|
input uart_rtl_0_dcd;
|
||||||
|
input uart_rtl_0_dsr;
|
||||||
|
output uart_rtl_0_dtr;
|
||||||
|
input uart_rtl_0_ri;
|
||||||
|
output uart_rtl_0_rts;
|
||||||
input uart_rtl_0_rxd;
|
input uart_rtl_0_rxd;
|
||||||
output uart_rtl_0_txd;
|
output uart_rtl_0_txd;
|
||||||
|
|
||||||
@ -126,6 +138,12 @@ module mycpu_block_wrapper
|
|||||||
wire [0:0]spi_rtl_0_ss_io_0;
|
wire [0:0]spi_rtl_0_ss_io_0;
|
||||||
wire [0:0]spi_rtl_0_ss_o_0;
|
wire [0:0]spi_rtl_0_ss_o_0;
|
||||||
wire spi_rtl_0_ss_t;
|
wire spi_rtl_0_ss_t;
|
||||||
|
wire uart_rtl_0_cts;
|
||||||
|
wire uart_rtl_0_dcd;
|
||||||
|
wire uart_rtl_0_dsr;
|
||||||
|
wire uart_rtl_0_dtr;
|
||||||
|
wire uart_rtl_0_ri;
|
||||||
|
wire uart_rtl_0_rts;
|
||||||
wire uart_rtl_0_rxd;
|
wire uart_rtl_0_rxd;
|
||||||
wire uart_rtl_0_txd;
|
wire uart_rtl_0_txd;
|
||||||
|
|
||||||
@ -177,11 +195,15 @@ module mycpu_block_wrapper
|
|||||||
.spi_rtl_0_ss_i(spi_rtl_0_ss_i_0),
|
.spi_rtl_0_ss_i(spi_rtl_0_ss_i_0),
|
||||||
.spi_rtl_0_ss_o(spi_rtl_0_ss_o_0),
|
.spi_rtl_0_ss_o(spi_rtl_0_ss_o_0),
|
||||||
.spi_rtl_0_ss_t(spi_rtl_0_ss_t),
|
.spi_rtl_0_ss_t(spi_rtl_0_ss_t),
|
||||||
.uart_rtl_0_ctsn(1'b0),
|
.uart_rtl_0_ctsn(~uart_rtl_0_cts),
|
||||||
.uart_rtl_0_dcdn(1'b0),
|
.uart_rtl_0_dcdn(~uart_rtl_0_dcd),
|
||||||
.uart_rtl_0_ri(1'b1),
|
.uart_rtl_0_dsrn(~uart_rtl_0_dsr),
|
||||||
|
.uart_rtl_0_dtrn(~uart_rtl_0_dtr),
|
||||||
|
.uart_rtl_0_ri(uart_rtl_0_ri),
|
||||||
|
.uart_rtl_0_rtsn(~uart_rtl_0_rts),
|
||||||
.uart_rtl_0_rxd(uart_rtl_0_rxd),
|
.uart_rtl_0_rxd(uart_rtl_0_rxd),
|
||||||
.uart_rtl_0_txd(uart_rtl_0_txd));
|
.uart_rtl_0_txd(uart_rtl_0_txd));
|
||||||
|
|
||||||
IOBUF spi_rtl_0_io0_iobuf
|
IOBUF spi_rtl_0_io0_iobuf
|
||||||
(.I(spi_rtl_0_io0_o),
|
(.I(spi_rtl_0_io0_o),
|
||||||
.IO(spi_rtl_0_io0_io),
|
.IO(spi_rtl_0_io0_io),
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -195,9 +195,7 @@ module mycpu_block_wrapper
|
|||||||
.uart_rtl_0_ctsn(~uart_rtl_0_cts),
|
.uart_rtl_0_ctsn(~uart_rtl_0_cts),
|
||||||
.uart_rtl_0_dcdn(~uart_rtl_0_dcd),
|
.uart_rtl_0_dcdn(~uart_rtl_0_dcd),
|
||||||
.uart_rtl_0_dsrn(~uart_rtl_0_dsr),
|
.uart_rtl_0_dsrn(~uart_rtl_0_dsr),
|
||||||
.uart_rtl_0_dtrn(~uart_rtl_0_dtr),
|
|
||||||
.uart_rtl_0_ri(uart_rtl_0_ri),
|
.uart_rtl_0_ri(uart_rtl_0_ri),
|
||||||
.uart_rtl_0_rtsn(~uart_rtl_0_rts),
|
|
||||||
.uart_rtl_0_rxd(uart_rtl_0_rxd),
|
.uart_rtl_0_rxd(uart_rtl_0_rxd),
|
||||||
.uart_rtl_0_txd(uart_rtl_0_txd));
|
.uart_rtl_0_txd(uart_rtl_0_txd));
|
||||||
endmodule
|
endmodule
|
||||||
|
333
resources/soft/func/inst/n103_memory1.S
Normal file
333
resources/soft/func/inst/n103_memory1.S
Normal file
@ -0,0 +1,333 @@
|
|||||||
|
#include <asm.h>
|
||||||
|
#include <regdef.h>
|
||||||
|
#include <inst_test.h>
|
||||||
|
|
||||||
|
LEAF(n103_memory1_test)
|
||||||
|
.set noreorder
|
||||||
|
addiu s0, s0 ,1
|
||||||
|
li s2, 0x0
|
||||||
|
###test inst
|
||||||
|
|
||||||
|
move a0, k0
|
||||||
|
move a1, k1
|
||||||
|
|
||||||
|
#########################################
|
||||||
|
|
||||||
|
li v0, 0x800d0000
|
||||||
|
li v1, 0x800f0000
|
||||||
|
mfc0 t5, $9, 0
|
||||||
|
move k0, t5
|
||||||
|
move k1, t5
|
||||||
|
addiu t6, t5, 42
|
||||||
|
addiu t7, t6, 42
|
||||||
|
addiu t8, t7, 42
|
||||||
|
addiu s5, t8, 42
|
||||||
|
addiu s6, s5, 42
|
||||||
|
addiu s7, s6, 42
|
||||||
|
addiu s8, s7, 42
|
||||||
|
|
||||||
|
1:
|
||||||
|
beq v0, v1, 2f
|
||||||
|
nop
|
||||||
|
sw t5, 0(v0)
|
||||||
|
sw t6, 4(v0)
|
||||||
|
sw t7, 8(v0)
|
||||||
|
sw t8, 12(v0)
|
||||||
|
sw s5, 16(v0)
|
||||||
|
sw s6, 20(v0)
|
||||||
|
sw s7, 24(v0)
|
||||||
|
sw s8, 28(v0)
|
||||||
|
addiu v0, v0, 32
|
||||||
|
addiu t5, t5, 11
|
||||||
|
addiu t6, t6, 11
|
||||||
|
addiu t7, t7, 11
|
||||||
|
addiu t8, t8, 11
|
||||||
|
addiu s5, s5, 11
|
||||||
|
addiu s6, s6, 11
|
||||||
|
addiu s7, s7, 11
|
||||||
|
addiu s8, s8, 11
|
||||||
|
j 1b
|
||||||
|
nop
|
||||||
|
2:
|
||||||
|
|
||||||
|
|
||||||
|
li v0, 0x800d0000
|
||||||
|
1:
|
||||||
|
beq v0, v1, 2f
|
||||||
|
nop
|
||||||
|
lw t5, 0(v0)
|
||||||
|
lw t6, 4(v0)
|
||||||
|
lw t7, 8(v0)
|
||||||
|
lw t8, 12(v0)
|
||||||
|
lw s5, 16(v0)
|
||||||
|
lw s6, 20(v0)
|
||||||
|
lw s7, 24(v0)
|
||||||
|
lw s8, 28(v0)
|
||||||
|
move t4, k0
|
||||||
|
bne t5, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne t6, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne t7, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne t8, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s5, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s6, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s7, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s8, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu v0, v0, 32
|
||||||
|
addiu k0, k0, 11
|
||||||
|
j 1b
|
||||||
|
nop
|
||||||
|
2:
|
||||||
|
|
||||||
|
#########################################
|
||||||
|
|
||||||
|
li v0, 0x800e0000
|
||||||
|
move t5, k0
|
||||||
|
move t9, k0
|
||||||
|
addiu t6, t5, 42
|
||||||
|
addiu t7, t6, 42
|
||||||
|
addiu t8, t7, 42
|
||||||
|
addiu s5, t8, 42
|
||||||
|
addiu s6, s5, 42
|
||||||
|
addiu s7, s6, 42
|
||||||
|
addiu s8, s7, 42
|
||||||
|
1:
|
||||||
|
beq v0, v1, 2f
|
||||||
|
nop
|
||||||
|
sw t5, 0(v0)
|
||||||
|
sw t6, 4(v0)
|
||||||
|
sw t7, 8(v0)
|
||||||
|
sw t8, 12(v0)
|
||||||
|
sw s5, 16(v0)
|
||||||
|
sw s6, 20(v0)
|
||||||
|
sw s7, 24(v0)
|
||||||
|
sw s8, 28(v0)
|
||||||
|
addiu v0, v0, 32
|
||||||
|
addiu t5, t5, 11
|
||||||
|
addiu t6, t6, 11
|
||||||
|
addiu t7, t7, 11
|
||||||
|
addiu t8, t8, 11
|
||||||
|
addiu s5, s5, 11
|
||||||
|
addiu s6, s6, 11
|
||||||
|
addiu s7, s7, 11
|
||||||
|
addiu s8, s8, 11
|
||||||
|
j 1b
|
||||||
|
nop
|
||||||
|
2:
|
||||||
|
|
||||||
|
|
||||||
|
li v0, 0x800d0000
|
||||||
|
li v1, 0x800e0000
|
||||||
|
1:
|
||||||
|
beq v0, v1, 2f
|
||||||
|
nop
|
||||||
|
lw t5, 0(v0)
|
||||||
|
lw t6, 4(v0)
|
||||||
|
lw t7, 8(v0)
|
||||||
|
lw t8, 12(v0)
|
||||||
|
lw s5, 16(v0)
|
||||||
|
lw s6, 20(v0)
|
||||||
|
lw s7, 24(v0)
|
||||||
|
lw s8, 28(v0)
|
||||||
|
move t4, k1
|
||||||
|
bne t5, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne t6, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne t7, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne t8, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s5, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s6, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s7, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s8, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu v0, v0, 32
|
||||||
|
addiu k1, k1, 11
|
||||||
|
j 1b
|
||||||
|
nop
|
||||||
|
2:
|
||||||
|
|
||||||
|
li v0, 0x800e0000
|
||||||
|
li v1, 0x800f0000
|
||||||
|
1:
|
||||||
|
beq v0, v1, 2f
|
||||||
|
nop
|
||||||
|
lw t5, 0(v0)
|
||||||
|
lw t6, 4(v0)
|
||||||
|
lw t7, 8(v0)
|
||||||
|
lw t8, 12(v0)
|
||||||
|
lw s5, 16(v0)
|
||||||
|
lw s6, 20(v0)
|
||||||
|
lw s7, 24(v0)
|
||||||
|
lw s8, 28(v0)
|
||||||
|
move t4, t9
|
||||||
|
bne t5, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne t6, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne t7, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne t8, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s5, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s6, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s7, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 42
|
||||||
|
bne s8, t4, inst_error
|
||||||
|
nop
|
||||||
|
addiu v0, v0, 32
|
||||||
|
addiu t9, t9, 11
|
||||||
|
j 1b
|
||||||
|
nop
|
||||||
|
2:
|
||||||
|
|
||||||
|
#########################################
|
||||||
|
|
||||||
|
li v0, 0x800d0000
|
||||||
|
li v1, 0x800f0000
|
||||||
|
mfc0 t5, $9, 0
|
||||||
|
move k0, t5
|
||||||
|
move k1, t5
|
||||||
|
addiu t6, t5, 42
|
||||||
|
addiu t7, t6, 42
|
||||||
|
addiu t8, t7, 42
|
||||||
|
addiu s5, t8, 42
|
||||||
|
addiu s6, s5, 42
|
||||||
|
addiu s7, s6, 42
|
||||||
|
addiu s8, s7, 42
|
||||||
|
1:
|
||||||
|
beq v0, v1, 2f
|
||||||
|
nop
|
||||||
|
sw t5, 0(v0)
|
||||||
|
sw t6, 4(v0)
|
||||||
|
sw t7, 8(v0)
|
||||||
|
sw t8, 12(v0)
|
||||||
|
sw s5, 16(v0)
|
||||||
|
sw s6, 20(v0)
|
||||||
|
sw s7, 24(v0)
|
||||||
|
sw s8, 28(v0)
|
||||||
|
addiu v0, v0, 32
|
||||||
|
addiu t5, t5, 11
|
||||||
|
addiu t6, t6, 11
|
||||||
|
addiu t7, t7, 11
|
||||||
|
addiu t8, t8, 11
|
||||||
|
addiu s5, s5, 11
|
||||||
|
addiu s6, s6, 11
|
||||||
|
addiu s7, s7, 11
|
||||||
|
addiu s8, s8, 11
|
||||||
|
j 1b
|
||||||
|
nop
|
||||||
|
2:
|
||||||
|
|
||||||
|
li v0, 0x800d0000
|
||||||
|
1:
|
||||||
|
beq v0, v1, 2f
|
||||||
|
nop
|
||||||
|
lw t5, 0(v0)
|
||||||
|
sw t5, 4(v0)
|
||||||
|
lw t5, 8(v0)
|
||||||
|
sw t5, 12(v0)
|
||||||
|
lw t5, 16(v0)
|
||||||
|
sw t5, 20(v0)
|
||||||
|
lw t5, 24(v0)
|
||||||
|
sw t5, 28(v0)
|
||||||
|
addiu v0, v0, 32
|
||||||
|
j 1b
|
||||||
|
nop
|
||||||
|
2:
|
||||||
|
|
||||||
|
li v0, 0x800d0000
|
||||||
|
1:
|
||||||
|
beq v0, v1, 2f
|
||||||
|
nop
|
||||||
|
lw t5, 0(v0)
|
||||||
|
lw t6, 4(v0)
|
||||||
|
lw t7, 8(v0)
|
||||||
|
lw t8, 12(v0)
|
||||||
|
lw s5, 16(v0)
|
||||||
|
lw s6, 20(v0)
|
||||||
|
lw s7, 24(v0)
|
||||||
|
lw s8, 28(v0)
|
||||||
|
addiu v0, v0, 32
|
||||||
|
move t4, k0
|
||||||
|
bne t4, t5, inst_error
|
||||||
|
nop
|
||||||
|
bne t4, t6, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 84
|
||||||
|
bne t4, t7, inst_error
|
||||||
|
nop
|
||||||
|
bne t4, t8, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 84
|
||||||
|
bne t4, s5, inst_error
|
||||||
|
nop
|
||||||
|
bne t4, s6, inst_error
|
||||||
|
nop
|
||||||
|
addiu t4, t4, 84
|
||||||
|
bne t4, s7, inst_error
|
||||||
|
nop
|
||||||
|
bne t4, s8, inst_error
|
||||||
|
nop
|
||||||
|
addiu k0, k0, 11
|
||||||
|
|
||||||
|
j 1b
|
||||||
|
nop
|
||||||
|
2:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#########################################
|
||||||
|
|
||||||
|
move k0, a0
|
||||||
|
move k1, a1
|
||||||
|
|
||||||
|
###detect exception
|
||||||
|
bne s2, zero, inst_error
|
||||||
|
nop
|
||||||
|
###score ++
|
||||||
|
addiu s3, s3, 1
|
||||||
|
###output (s0<<24)|s3
|
||||||
|
inst_error:
|
||||||
|
sll t1, s0, 24
|
||||||
|
or t0, t1, s3
|
||||||
|
sw t0, 0(s1)
|
||||||
|
jr ra
|
||||||
|
nop
|
||||||
|
END(n103_memory1_test)
|
61
resources/soft/func/inst/n104_linux.S
Normal file
61
resources/soft/func/inst/n104_linux.S
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#include <asm.h>
|
||||||
|
#include <regdef.h>
|
||||||
|
#include <inst_test.h>
|
||||||
|
|
||||||
|
LEAF(n104_linux)
|
||||||
|
.set noreorder
|
||||||
|
addiu s0, s0 ,1
|
||||||
|
li s2, 0x0
|
||||||
|
###test inst
|
||||||
|
|
||||||
|
#########################
|
||||||
|
## lw + mthi/lo hazard ##
|
||||||
|
#########################
|
||||||
|
|
||||||
|
li a0, 0x42424242
|
||||||
|
li a1, 0x800d0000
|
||||||
|
sw a0, 0(a1)
|
||||||
|
j 1f
|
||||||
|
nop
|
||||||
|
1:
|
||||||
|
lw v0, 0(a1)
|
||||||
|
mthi v0
|
||||||
|
nop;nop;nop;nop;
|
||||||
|
mfhi v1
|
||||||
|
bne a0, v1, inst_error
|
||||||
|
nop
|
||||||
|
|
||||||
|
mfhi v0
|
||||||
|
sw v0, 4(a1)
|
||||||
|
nop;nop;nop;nop;nop;nop;nop;
|
||||||
|
nop;nop;nop;nop;nop;nop;nop;
|
||||||
|
lw v1, 4(a1)
|
||||||
|
bne a0, v1, inst_error
|
||||||
|
nop
|
||||||
|
|
||||||
|
|
||||||
|
## mips_next_event
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#########################################
|
||||||
|
|
||||||
|
move k0, a0
|
||||||
|
move k1, a1
|
||||||
|
|
||||||
|
###detect exception
|
||||||
|
bne s2, zero, inst_error
|
||||||
|
nop
|
||||||
|
###score ++
|
||||||
|
addiu s3, s3, 1
|
||||||
|
###output (s0<<24)|s3
|
||||||
|
inst_error:
|
||||||
|
sll t1, s0, 24
|
||||||
|
or t0, t1, s3
|
||||||
|
sw t0, 0(s1)
|
||||||
|
jr ra
|
||||||
|
nop
|
||||||
|
END(n104_linux)
|
@ -8,6 +8,52 @@ LEAF(n99_cache_icache_test)
|
|||||||
li s2, 0x0
|
li s2, 0x0
|
||||||
###test inst
|
###test inst
|
||||||
|
|
||||||
|
# series test
|
||||||
|
li v0, 0x9fc00000
|
||||||
|
li v1, 0x9fc0ff00
|
||||||
|
|
||||||
|
1:
|
||||||
|
beq v0, v1, 2f
|
||||||
|
nop
|
||||||
|
addiu v0, v0, 0x100
|
||||||
|
cache 16, 0(v0)
|
||||||
|
cache 16, 64(v0)
|
||||||
|
cache 16, 128(v0)
|
||||||
|
cache 16, 192(v0)
|
||||||
|
cache 16, 256(v0)
|
||||||
|
cache 16, 320(v0)
|
||||||
|
cache 16, 384(v0)
|
||||||
|
cache 16, 448(v0)
|
||||||
|
cache 16, 512(v0)
|
||||||
|
cache 16, 576(v0)
|
||||||
|
cache 16, 640(v0)
|
||||||
|
cache 16, 704(v0)
|
||||||
|
cache 16, 768(v0)
|
||||||
|
cache 16, 832(v0)
|
||||||
|
cache 16, 896(v0)
|
||||||
|
cache 16, 960(v0)
|
||||||
|
cache 16, 1024(v0)
|
||||||
|
cache 16, 1088(v0)
|
||||||
|
cache 16, 1152(v0)
|
||||||
|
cache 16, 1216(v0)
|
||||||
|
cache 16, 1280(v0)
|
||||||
|
cache 16, 1344(v0)
|
||||||
|
cache 16, 1408(v0)
|
||||||
|
cache 16, 1472(v0)
|
||||||
|
cache 16, 1536(v0)
|
||||||
|
cache 16, 1600(v0)
|
||||||
|
cache 16, 1664(v0)
|
||||||
|
cache 16, 1728(v0)
|
||||||
|
cache 16, 1792(v0)
|
||||||
|
cache 16, 1856(v0)
|
||||||
|
cache 16, 1920(v0)
|
||||||
|
cache 16, 1984(v0)
|
||||||
|
j 1b
|
||||||
|
nop
|
||||||
|
2:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.n99_1_prepare:
|
.n99_1_prepare:
|
||||||
addi a1, zero, 0
|
addi a1, zero, 0
|
||||||
.n99_1:
|
.n99_1:
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
#include <utils.h>
|
#include <utils.h>
|
||||||
|
|
||||||
#define TEST_NUM 152
|
#define TEST_NUM 156
|
||||||
|
|
||||||
|
|
||||||
##s0, number
|
##s0, number
|
||||||
@ -309,6 +309,8 @@ locate:
|
|||||||
lui s0, 0 ## initial run number
|
lui s0, 0 ## initial run number
|
||||||
|
|
||||||
inst_test:
|
inst_test:
|
||||||
|
TEST_UNIT_CACHE(n104_linux)
|
||||||
|
|
||||||
TEST_UNIT_CACHE(n1_lui_test) # 1 2
|
TEST_UNIT_CACHE(n1_lui_test) # 1 2
|
||||||
TEST_UNIT_CACHE(n2_addu_test)
|
TEST_UNIT_CACHE(n2_addu_test)
|
||||||
TEST_UNIT_CACHE(n3_addiu_test)
|
TEST_UNIT_CACHE(n3_addiu_test)
|
||||||
@ -417,8 +419,6 @@ inst_test:
|
|||||||
TEST_UNIT_CACHE(n96_maddu_test)
|
TEST_UNIT_CACHE(n96_maddu_test)
|
||||||
TEST_UNIT_CACHE(n97_msub_msubu_test)
|
TEST_UNIT_CACHE(n97_msub_msubu_test)
|
||||||
|
|
||||||
TEST_UNIT(n98_cache_dcache_test) # 146
|
|
||||||
TEST_UNIT_ONLY_CACHE(n99_cache_icache_test)
|
|
||||||
|
|
||||||
TEST_UNIT_CACHE(n100_movz_movn_test) # 148 149
|
TEST_UNIT_CACHE(n100_movz_movn_test) # 148 149
|
||||||
|
|
||||||
@ -426,6 +426,11 @@ inst_test:
|
|||||||
|
|
||||||
TEST_UNIT_CACHE(n102_memory_test) # 151 152
|
TEST_UNIT_CACHE(n102_memory_test) # 151 152
|
||||||
|
|
||||||
|
TEST_UNIT_ONLY_CACHE(n103_memory1_test) # 153
|
||||||
|
|
||||||
|
TEST_UNIT(n98_cache_dcache_test) # 146
|
||||||
|
TEST_UNIT_ONLY_CACHE(n99_cache_icache_test)
|
||||||
|
|
||||||
###check io access
|
###check io access
|
||||||
LI (a0, IO_SIMU_ADDR)
|
LI (a0, IO_SIMU_ADDR)
|
||||||
LI (t0, 0x1234)
|
LI (t0, 0x1234)
|
||||||
|
@ -883,7 +883,7 @@ module Datapath (
|
|||||||
assign E.I0.ExcValid = E_I0_PrevExcValid | E_I0_NowExcValid;
|
assign E.I0.ExcValid = E_I0_PrevExcValid | E_I0_NowExcValid;
|
||||||
assign E.I0.ERET = E_I0_PrevERET & ~C0_int;
|
assign E.I0.ERET = E_I0_PrevERET & ~C0_int;
|
||||||
assign E.I0.REFILL = E_I0_PrevREFILL & ~C0_int;
|
assign E.I0.REFILL = E_I0_PrevREFILL & ~C0_int;
|
||||||
assign E.I0.ExcCode = C0_int ? 5'h0
|
assign E.I0.ExcCode = C0_int ? `EXCCODE_INT
|
||||||
: E_I0_PrevExcValid ? E_I0_PrevExcCode : `EXCCODE_OV;
|
: E_I0_PrevExcValid ? E_I0_PrevExcCode : `EXCCODE_OV;
|
||||||
|
|
||||||
assign E_I1_NowExcValidWithoutOF = C0_int & E_valid | E.I1.MCtrl.MR & E_I1_STRBERROR;
|
assign E_I1_NowExcValidWithoutOF = C0_int & E_valid | E.I1.MCtrl.MR & E_I1_STRBERROR;
|
||||||
@ -892,7 +892,7 @@ module Datapath (
|
|||||||
assign E.I1.ExcValid = E_I1_PrevExcValid | E_I1_NowExcValid;
|
assign E.I1.ExcValid = E_I1_PrevExcValid | E_I1_NowExcValid;
|
||||||
assign E.I1.ERET = E_I1_PrevERET & ~C0_int;
|
assign E.I1.ERET = E_I1_PrevERET & ~C0_int;
|
||||||
assign E.I1.REFILL = E_I1_PrevREFILL & ~C0_int;
|
assign E.I1.REFILL = E_I1_PrevREFILL & ~C0_int;
|
||||||
assign E.I1.ExcCode = C0_int ? 5'h0
|
assign E.I1.ExcCode = C0_int ? `EXCCODE_INT
|
||||||
: E_I1_PrevExcValid ? E_I1_PrevExcCode
|
: E_I1_PrevExcValid ? E_I1_PrevExcCode
|
||||||
: E_I1_Overflow & E.I1.OFA ? `EXCCODE_OV
|
: E_I1_Overflow & E.I1.OFA ? `EXCCODE_OV
|
||||||
: E.I1.MCtrl.MWR ? `EXCCODE_ADES : `EXCCODE_ADEL;
|
: E.I1.MCtrl.MWR ? `EXCCODE_ADES : `EXCCODE_ADEL;
|
||||||
@ -1354,19 +1354,19 @@ module Datapath (
|
|||||||
ffen #(32) HI_ff (
|
ffen #(32) HI_ff (
|
||||||
clk,
|
clk,
|
||||||
M_I0_HI,
|
M_I0_HI,
|
||||||
M.I0.MCtrl.HW & M_go,
|
M.I0.MCtrl.HW & M_I0_go & M.en,
|
||||||
HI
|
HI
|
||||||
);
|
);
|
||||||
ffen #(32) LO_ff (
|
ffen #(32) LO_ff (
|
||||||
clk,
|
clk,
|
||||||
M_I0_LO,
|
M_I0_LO,
|
||||||
M.I0.MCtrl.LW & M_go,
|
M.I0.MCtrl.LW & M_I0_go & M.en,
|
||||||
LO
|
LO
|
||||||
);
|
);
|
||||||
|
|
||||||
assign C0_addr = M.I0.MCtrl.C0D;
|
assign C0_addr = M.I0.MCtrl.C0D;
|
||||||
assign C0_sel = M.I0.MCtrl.SEL;
|
assign C0_sel = M.I0.MCtrl.SEL;
|
||||||
assign C0_we = M.I0.MCtrl.C0W & M_I0_go;
|
assign C0_we = M.I0.MCtrl.C0W & M_I0_go & M.en;
|
||||||
assign C0_wdata = M_I0_ForwardT;
|
assign C0_wdata = M_I0_ForwardT;
|
||||||
|
|
||||||
// M.I1.MEM
|
// M.I1.MEM
|
||||||
|
Loading…
Reference in New Issue
Block a user