From efd4cb6e4823e8ceeca8e331a7b345ffd1c479c0 Mon Sep 17 00:00:00 2001 From: Brendan Haines Date: Fri, 2 Jul 2021 01:28:23 -0600 Subject: [PATCH] build test code into build directory --- Makefile | 20 ++++++++++++++++++++ hdl/Makefile | 19 ------------------- test/Makefile | 22 +++++++++++++--------- test/test.S | 2 +- 4 files changed, 34 insertions(+), 29 deletions(-) create mode 100644 Makefile delete mode 100644 hdl/Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..28cd3ed --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +BUILD_DIR = build +SOURCE_V = $(wildcard hdl/*.v) +TESTBENCH_V = $(wildcard hdl/tb/*.v) + +all: sim + +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + +$(BUILD_DIR)/tb.out: $(SOURCE_V) $(TESTBENCH_V) | $(BUILD_DIR) + iverilog $^ -o $@ + +sim: $(BUILD_DIR)/tb.out + cd $(BUILD_DIR) && ./tb.out + +clean: + rm -rf $(BUILD_DIR) + +.SECONDARY: +.PHONY: all clean sim diff --git a/hdl/Makefile b/hdl/Makefile deleted file mode 100644 index 27c1efd..0000000 --- a/hdl/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# SOURCE_V = $(wildcard *.v) -# TESTBENCH_V = $(wildcard tb/*.v) - -SOURCE_V = core.v -TESTBENCH_V = tb/core_tb.v - -all: sim - -tb.out: $(SOURCE_V) $(TESTBENCH_V) - iverilog $^ -o $@ - -sim: tb.out - ./tb.out - -clean: - rm -rf tb.out tb.vcd - -.SECONDARY: -.PHONY: all clean sim diff --git a/test/Makefile b/test/Makefile index f213c35..2286429 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,8 +1,7 @@ -all: text.hex data.hex - +BUILD_DIR = build CC = riscv64-linux-gnu-gcc # CFLAGS = -march=rv32i -mabi=ilp32 -CFLAGS = -march=rv64i -mabi=lp64 -o0 +CFLAGS = -march=rv64i -mabi=lp64 AS = riscv64-linux-gnu-as ASFLAGS = $(CFLAGS) @@ -10,20 +9,25 @@ ASFLAGS = $(CFLAGS) LD = riscv64-linux-gnu-ld LDFLAGS = -T test.ld -%.o: %.S +all: $(BUILD_DIR)/text.hex $(BUILD_DIR)/data.hex + +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + +$(BUILD_DIR)/%.o: %.S | $(BUILD_DIR) $(AS) $(ASFLAGS) $^ -o $@ -%.o: %.c +$(BUILD_DIR)/%.o: %.c | $(BUILD_DIR) $(CC) $(CFLAGS) $^ -o $@ -%.elf: %.o %.ld +$(BUILD_DIR)/%.elf: $(BUILD_DIR)/%.o %.ld $(LD) $(LDFLAGS) $< -o $@ -text.hex: test.elf +$(BUILD_DIR)/text.hex: $(BUILD_DIR)/test.elf riscv64-linux-gnu-objdump -s $^ | sed -n '/.text/,$$p' | tail -n+2 | sed -n '/.data/,$$!p' | cut -f3-6 -d ' ' | sed -e 's/ /\n/g' | sed 's/^\(..\)\(..\)\(..\)\(..\)/\4\3\2\1/' > $@ -data.hex: test.elf +$(BUILD_DIR)/data.hex: $(BUILD_DIR)/test.elf riscv64-linux-gnu-objdump -s $^ | sed -n '/.data/,$$p' | tail -n+2 | sed -n '/.bss/,$$!p' | cut -f3-6 -d ' ' | sed -e 's/ /\n/g' | sed 's/^\(..\)\(..\)\(..\)\(..\)/\4\3\2\1/' > $@ clean: - rm test.elf text.hex data.hex \ No newline at end of file + rm -rf $(BUILD_DIR) \ No newline at end of file diff --git a/test/test.S b/test/test.S index 7718ec2..5583508 100644 --- a/test/test.S +++ b/test/test.S @@ -369,4 +369,4 @@ someint: .bss anotherint: - .word \ No newline at end of file + .word