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

Subversion Repositories thor

[/] [thor/] [trunk/] [FT64/] [software/] [test/] [TestICache.asm] - Blame information for rev 44

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 44 robfinch
; TestICache.asm - (C) 2017-2018 Robert Finch, Waterloo
2
;
3
; This file is part of FT64
4
;
5
;------------------------------------------------------------------------------
6
;
7
; system memory map
8
;
9
;
10
; 00000000 +----------------+
11
;          |                |
12
;          |                |
13
;          |                |
14
;          |                |
15
;          :  dram memory   : 512 MB
16
;          |                |
17
;          |                |
18
;          |                |
19
;          |                |
20
; 20000000 +----------------+
21
;          |                |
22
;          :     unused     :
23
;          |                |
24
; FF400000 +----------------+
25
;          |   scratchpad   | 32 kB
26
; FF408000 +----------------+
27
;          |     unused     |
28
; FFD00000 +----------------+
29
;          |                |
30
;          :    I/O area    : 1.0 M
31
;          |                |
32
; FFE00000 +----------------+
33
;          |                |
34
;          :     unused     :
35
;          |                |
36
; FFFC0000 +----------------+
37
;          |                |
38
;          :    boot rom    :
39
;          |                |
40
; FFFFFFFF +----------------+
41
;
42
;
43
;
44
; Test I-Cache
45
;
46
                org             0xFFFC0000
47
                jmp             brkrout
48
 
49
                org             0xFFFC0100
50
start:
51
        ; Seed random number generator
52
                ldi             r6,#$FFDC0000
53
                sh              r0,$0C04[r6]                    ; select stream #0
54
                ldi             r1,#$88888888
55
                sh              r1,$0C08[r6]                    ; set initial m_z
56
                ldi             r1,#$01234567
57
                sh              r1,$0C0C[r6]                    ; set initial m_w
58
.st4:
59
        ; Get a random number
60
                sh              r0,$FFDC0C04    ; set the stream
61
                nop                                             ; delay a wee bit
62
                lhu             r1,$FFDC0C00    ; get a number
63
                sh              r0,$FFDC0C00    ; generate next number
64
 
65
        ; convert to random address
66
                shl             r1,r1,#2
67
                and             r1,r1,#$3FFC
68
                add             r1,r1,#$FF400000        ; scratchram address
69
 
70
        ; Fill an area with test code
71
                ldi             r2,#15                  ; number of ops - 1
72
                ldi             r3,#.st2
73
.st3:
74
                lhu             r4,[r3+r2*4]
75
                sh              r4,[r1+r2*4]
76
                sub             r2,r2,#1
77
                bge             .st3
78
 
79
        ; Jump to the test code
80
                jal             r29,[r1]
81
                ldi             r2,#14
82
                cmp             r1,r1,r2
83
                bne             r1,r0,.st5
84
                bra             .st4
85
 
86
        ; Display fail code
87
.st5:
88
                ldi             r1,#$FA
89
                sb              r1,$FFDC0600
90
                bra             .st5
91
 
92
; Test code accumulates for 16 instructions, sum should be 14
93
 
94
.st2:
95
                ldi             r1,#0
96
                add             r1,r1,#1
97
                add             r1,r1,#1
98
                add             r1,r1,#1
99
                add             r1,r1,#1
100
                add             r1,r1,#1
101
                add             r1,r1,#1
102
                add             r1,r1,#1
103
                add             r1,r1,#1
104
                add             r1,r1,#1
105
                add             r1,r1,#1
106
                add             r1,r1,#1
107
                add             r1,r1,#1
108
                add             r1,r1,#1
109
                add             r1,r1,#1
110
                ret
111
 
112
brkrout:
113
                rti

powered by: WebSVN 2.1.0

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