diff options
| author | vin <git@vineetk.net> | 2025-04-17 16:38:53 -0400 |
|---|---|---|
| committer | vin <git@vineetk.net> | 2025-04-17 16:38:53 -0400 |
| commit | 6c5b90cf4ac5a9e582c95a6c936d67e0c38d811d (patch) | |
| tree | 183a9370c4f9beb77461ab2d9a94bc28fce1b7d4 | |
| parent | 92d16b841168f044536636179ad4a4364f5ba29a (diff) | |
| -rw-r--r-- | Makefile | 17 | ||||
| -rw-r--r-- | riscvsingle.sv | 2 | ||||
| -rw-r--r-- | rom_large.s | 89 |
3 files changed, 103 insertions, 5 deletions
| @@ -1,12 +1,21 @@ | |||
| 1 | CC = riscv32-none-elf-gcc | 1 | CC = riscv32-none-elf-gcc |
| 2 | CP = riscv32-none-elf-objcopy | 2 | CP = riscv32-none-elf-objcopy |
| 3 | CFLAGS = -fno-pic -nostdlib -fno-delete-null-pointer-checks --param=min-pagesize=0 -O3 -march=rv32i -mabi=ilp32 -Wall -Wextra -pedantic | 3 | CFLAGS = -fno-pic -nostdlib -fno-delete-null-pointer-checks --param=min-pagesize=0 -O0 -march=rv32i -mabi=ilp32 -Wall -Wextra -pedantic |
| 4 | 4 | ||
| 5 | SRC = fibonacci.c | 5 | SRC_fib = fibonacci.c |
| 6 | SRC_rom = rom_large.s | ||
| 6 | ROM = riscvtest_rom_image.txt | 7 | ROM = riscvtest_rom_image.txt |
| 7 | 8 | ||
| 8 | all: | 9 | all: fibonacci |
| 9 | ${CC} ${CFLAGS} ${SRC} | 10 | |
| 11 | fibonacci: | ||
| 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 | |||
| 17 | rom_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 | |||
| 131 | module imem(input logic [31:0] a, | 131 | module 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 @@ | |||
| 1 | main: 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) | ||
| 89 | done: bne x0, x1, done | ||
