Modify program to adapt for new register layout

This commit is contained in:
2022-11-13 11:17:10 +01:00
parent ced12b01f0
commit 15f51c1793
2 changed files with 170 additions and 1 deletions

View File

@@ -0,0 +1,169 @@
reset:
br always >main
nop
hardfault:
reti
nop
memfault:
reti
nop
.align
segment_addr: .word 0x000F00A0
// w_cnt_top: .word 0xFFC000
w_cnt_top: .word 0x100 //for simulation only
write_and_shift:
.word 0x01000100
main:
ldr r8, >w_cnt_top
ldr r0, >segment_addr
ldr r1, >write_and_shift
number_loop:
// 0 1 2 3 4 5 6 7
clr r4
addi r4, 0x0
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0x1
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0x2
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0x3
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0x4
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0x5
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0x6
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0x7
or r4, r4, r1
st32 r0, r4
call >wait
nop
// 8 9 A B C D E F
clr r4
addi r4, 0x8
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0x9
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xA
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xB
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xC
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xD
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xE
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xF
or r4, r4, r1
st32 r0, r4
call >wait
nop
// 0xDEADBEEF pattern:
clr r4
addi r4, 0xD
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xE
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xA
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xD
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xB
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xE
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xE
or r4, r4, r1
st32 r0, r4
clr r4
addi r4, 0xF
or r4, r4, r1
st32 r0, r4
call >wait
nop
br always >number_loop
nop
//subroutine to iterate until counter overflow
wait:
clr r7 //inititalize inner counter
inc_i:
cmp neq r7,r8
br true >inc_i //if i=cnt_top
addi r7,1
ret //else
nop

View File

@@ -21,7 +21,7 @@ ARCHITECTURE sim OF warmup3_tb IS
COMPONENT lt16soc_top IS
generic(
programfilename : string := "../../programs/segments_test.ram"
programfilename : string := "../../programs/segments_adv_test.ram"
);
port(
clk : in std_logic;