Merge remote-tracking branch 'upstream/main'

This commit is contained in:
Benzi
2026-09-20 19:24:11 -04:00
8 changed files with 145 additions and 109 deletions
+5
View File
@@ -9,3 +9,8 @@ __pycache__/
# Cadence/Xcelium simulation output
sim/behav/WORKSPACE/
# Submission packaging
*-dd-fall26.zip
regress.log
submission.stamp
+28 -1
View File
@@ -1,3 +1,12 @@
# Fill these in before running make submit, for example:
# MEMBER_NAME = George Burdell
# GT_USERNAME = gburdell3
# DISCORD_NAME = gburdell67discord
MEMBER_NAME =
GT_USERNAME =
DISCORD_NAME =
export MEMBER_NAME
PYTHON ?= python3
TEST ?= ebreak
TEST_DIR := tests/$(TEST)
@@ -6,13 +15,14 @@ CROSSBAR_TIMEOUT ?= 20
TEST_NAMES := $(sort $(notdir $(patsubst %/,%,$(dir $(wildcard tests/*/program.asm)))))
.PHONY: help generate smoke test regress clean clean-generated
.PHONY: help generate smoke test regress submit clean clean-generated
help:
@echo "make generate TEST=<name> Assemble a test and generate golden files"
@echo "make smoke Test build/TB wiring with a mock DUT"
@echo "make test TEST=<name> Generate and run one RTL test"
@echo "make regress Run every test, print PASS/FAIL summary (logs in tests/<name>/sim.log)"
@echo "make submit Run regress and zip your sources, tests and log for checkoff"
@echo "make clean Remove generated test and simulator files"
@echo "Available tests: $(TEST_NAMES)"
@@ -54,6 +64,23 @@ regress:
exit 1; \
fi
submit:
@if [ -z "$(strip $(MEMBER_NAME))" ] || [ -z "$(strip $(GT_USERNAME))" ] || [ -z "$(strip $(DISCORD_NAME))" ]; then \
echo "Fill in MEMBER_NAME, GT_USERNAME and DISCORD_NAME at the top of the Makefile first."; \
exit 2; \
fi
@submission="$$(printf '%s' "$$MEMBER_NAME" | tr -d "[:space:]'.,-")-$(strip $(GT_USERNAME))-$(strip $(DISCORD_NAME))-dd-fall26.zip"; \
rm -f "$$submission" regress.log submission.stamp; \
scripts/sjstamp submission.stamp regress.log src sim/behav/Include tests -- $(MAKE) --no-print-directory regress; \
status=$$?; \
if [ $$status -eq 125 ]; then echo "Could not stamp the submission, nothing was zipped."; exit 1; fi; \
zip -qr "$$submission" src sim/behav/Include tests regress.log submission.stamp \
-x '*.DS_Store' 'tests/*/program.o' 'tests/*/program.hex' 'tests/*/sim.log'; \
echo "----------------------------------------"; \
if [ $$status -ne 0 ]; then echo "WARNING: not all tests pass, see regress.log"; fi; \
echo "Wrote $$submission"
>>>>>>> upstream/main
clean:
$(MAKE) -C sim/behav clean
$(MAKE) --no-print-directory clean-generated
+3 -1
View File
@@ -273,10 +273,12 @@ Disclaimer: We will be running some back end AI and software similarity checkers
In Person Submissions:
- We will ask you to walk through the logic and answer a few random questions on must-know concepts.
- You still need to run `make submit` and send the zip to the sjcheckoffs Discord Account, same as an online submission.
Additional Instructions For Online Submissions:
- Include a screenshot of all your tests passing with your gt username somewhere in the terminal in the screenshot
- **submit a zip of the src folder to the sjcheckoffs Discord Account​** <img width="417" height="422" alt="image" src="https://github.gatech.edu/user-attachments/assets/1c271294-ba6a-4314-beb2-e4c76c7e97db" />
- fill in your name, GT username and Discord username at the top of the `Makefile`, then run `make submit` to run every test and build the zip
- **submit the zip that `make submit` wrote to the sjcheckoffs Discord Account​** <img width="417" height="422" alt="image" src="https://github.gatech.edu/user-attachments/assets/1c271294-ba6a-4314-beb2-e4c76c7e97db" />
- Include any supporting documentation you may have used (diagrams, drawings, state machines)
BIN
View File
Binary file not shown.
+1
View File
@@ -5,6 +5,7 @@
// END SYSTEM HEADER
module cpu_top (
<<<<<<< HEAD
input logic clk_i,
input logic rst_i,
input logic en_i,
+7 -6
View File
@@ -14,10 +14,10 @@ module reg_file (
input logic [31:0] rd_data_i,
// Read-only architectural state exposed to the debug crossbar.
output logic [31:0] reg_values_o[32] //Register Values Output
output logic [31:0] reg_values_o [0:31] //Register Values Output
);
logic [31:0] registers[32];
logic [31:0] registers [0:31];
integer i; //used for generate loops in systemverilog
always_comb begin
@@ -27,16 +27,17 @@ module reg_file (
assign reg_values_o[0] = 32'd0;
generate
for (
genvar register_index = 1; register_index < 32; register_index++
) begin : gen_debug_register_values
for (genvar register_index = 1;
register_index < 32;
register_index++) begin : gen_debug_register_values
assign reg_values_o[register_index] = registers[register_index];
end
endgenerate
always_ff @(posedge clk_i) begin
if (rst_i) begin
for (i = 0; i < 32; i = i + 1) registers[i] <= 32'd0;
for (i = 0; i < 32; i = i + 1)
registers[i] <= 32'd0;
end else if (rd_write_en_i && (rd_addr_i != 5'd0)) begin
registers[rd_addr_i] <= rd_data_i;
end