summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile17
-rw-r--r--riscvsingle.sv2
-rw-r--r--rom_large.s89
3 files changed, 103 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 70e8c94..c181cf9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,21 @@
1CC = riscv32-none-elf-gcc 1CC = riscv32-none-elf-gcc
2CP = riscv32-none-elf-objcopy 2CP = riscv32-none-elf-objcopy
3CFLAGS = -fno-pic -nostdlib -fno-delete-null-pointer-checks --param=min-pagesize=0 -O3 -march=rv32i -mabi=ilp32 -Wall -Wextra -pedantic 3CFLAGS = -fno-pic -nostdlib -fno-delete-null-pointer-checks --param=min-pagesize=0 -O0 -march=rv32i -mabi=ilp32 -Wall -Wextra -pedantic
4 4
5SRC = fibonacci.c 5SRC_fib = fibonacci.c
6SRC_rom = rom_large.s
6ROM = riscvtest_rom_image.txt 7ROM = riscvtest_rom_image.txt
7 8
8all: 9all: fibonacci
9 ${CC} ${CFLAGS} ${SRC} 10
11fibonacci:
12 ${CC} ${CFLAGS} ${SRC_fib}
13 ${CP} -j .text -O binary a.out /dev/stdout \
14 | od -t x4 -w4 - | cut -d' ' -f2 | head -n -1 \
15 > ${ROM}
16
17rom_large:
18 ${CC} ${CFLAGS} ${SRC_rom}
10 ${CP} -j .text -O binary a.out /dev/stdout \ 19 ${CP} -j .text -O binary a.out /dev/stdout \
11 | od -t x4 -w4 - | cut -d' ' -f2 | head -n -1 \ 20 | od -t x4 -w4 - | cut -d' ' -f2 | head -n -1 \
12 > ${ROM} 21 > ${ROM}
diff --git a/riscvsingle.sv b/riscvsingle.sv
index 7436ed6..d078176 100644
--- a/riscvsingle.sv
+++ b/riscvsingle.sv
@@ -131,7 +131,7 @@ endmodule
131module imem(input logic [31:0] a, 131module imem(input logic [31:0] a,
132 output logic [31:0] rd); 132 output logic [31:0] rd);
133 133
134 logic [31:0] ROM[63:0]; 134 logic [31:0] ROM[127:0];
135 135
136 // Initialize the program memory 136 // Initialize the program memory
137 // Simulator : ok 137 // Simulator : ok
diff --git a/rom_large.s b/rom_large.s
new file mode 100644
index 0000000..e368519
--- /dev/null
+++ b/rom_large.s
@@ -0,0 +1,89 @@
1main: addi x0, x0, 0
2 addi x0, x0, 0
3 addi x0, x0, 0
4 addi x0, x0, 0
5 addi x0, x0, 0
6 addi x0, x0, 0
7 addi x0, x0, 0
8 addi x0, x0, 0
9 addi x0, x0, 0
10 addi x0, x0, 0
11 addi x0, x0, 0
12 addi x0, x0, 0
13 addi x0, x0, 0
14 addi x0, x0, 0
15 addi x0, x0, 0
16 addi x0, x0, 0
17 addi x0, x0, 0
18 addi x0, x0, 0
19 addi x0, x0, 0
20 addi x0, x0, 0
21 addi x0, x0, 0
22 addi x0, x0, 0
23 addi x0, x0, 0
24 addi x0, x0, 0
25 addi x0, x0, 0
26 addi x0, x0, 0
27 addi x0, x0, 0
28 addi x0, x0, 0
29 addi x0, x0, 0
30 addi x0, x0, 0
31 addi x0, x0, 0
32 addi x0, x0, 0
33 addi x0, x0, 0
34 addi x0, x0, 0
35 addi x0, x0, 0
36 addi x0, x0, 0
37 addi x0, x0, 0
38 addi x0, x0, 0
39 addi x0, x0, 0
40 addi x0, x0, 0
41 addi x0, x0, 0
42 addi x0, x0, 0
43 addi x0, x0, 0
44 addi x0, x0, 0
45 addi x0, x0, 0
46 addi x0, x0, 0
47 addi x0, x0, 0
48 addi x0, x0, 0
49 addi x0, x0, 0
50 addi x0, x0, 0
51 addi x0, x0, 0
52 addi x0, x0, 0
53 addi x0, x0, 0
54 addi x0, x0, 0
55 addi x0, x0, 0
56 addi x0, x0, 0
57 addi x0, x0, 0
58 addi x0, x0, 0
59 addi x0, x0, 0
60 addi x0, x0, 0
61 addi x0, x0, 0
62 addi x0, x0, 0
63 addi x0, x0, 0
64 addi x0, x0, 0
65 addi x0, x0, 0
66 addi x0, x0, 0
67 addi x0, x0, 0
68 addi x0, x0, 0
69 addi x0, x0, 0
70 addi x0, x0, 0
71 addi x0, x0, 0
72 addi x0, x0, 0
73 addi x0, x0, 0
74 addi x0, x0, 0
75 addi x0, x0, 0
76 addi x0, x0, 0
77 addi x0, x0, 0
78 addi x0, x0, 0
79 addi x0, x0, 0
80 addi x0, x0, 0
81 addi x0, x0, 0
82 addi x0, x0, 0
83 addi x0, x0, 0
84 addi x0, x0, 0
85 addi x0, x0, 0
86 addi x0, x0, 0
87 addi x1, x0, 300
88 sw x1, 0(x0)
89done: bne x0, x1, done