diff --git a/Makefile b/Makefile
index 2af9250..8c106e7 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
# This file is part of the 9086 project.
#
-# Copyright (c) 2023 Efthymios Kritikos
+# Copyright (c) 2024 Efthymios Kritikos
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/README.md b/README.md
index 1a3bd4f..b8afa82 100644
--- a/README.md
+++ b/README.md
@@ -20,16 +20,16 @@ A CPU that aims to be binary compatible with the 8086 ISA, focused on optimisati
Both Verilator and Icarus Verilog can be used for simulation. You can select which one you want with the SIM variable on [./common.mk](./common.mk).
This list shows the software needed and the versions used during development :
-* Icarus Verilog : version 12.0 OR **(preferred)** Verilator : 5.016
+* Icarus Verilog : version 12.0 OR **(preferred)** Verilator : 5.018
* bin86 : 0.16.21
* GNU Make : 4.4.1
-* xxd : 2022-01-14
+* xxd : 2023-10-25
* POSIX coreutils : GNU coreutils 9.4
After that you can run `make` on the top level directory and it should build everything and start the simulation
### Synthesis and bitstream creation for FPGAs
-You need to set FPGA\_BOARD in [./common.mk](./common.mk) to the name of a directory inside [./system/fpga\_config/](system/fpga_config/). You should also check inside your board directory for config.mk for further board-specific configuration options. Then you can run `make upload_bitstream` in the top level directory and it should create the bitstream and upload it.
+You need to set FPGA\_BOARD in [./common.mk](./common.mk) to the name of a directory inside [./system/fpga\_config/](system/fpga_config/). You should also check inside your board directory for config.mk for further board-specific configuration options like the model of I2C boot rom (if any). Then you can run `make upload_bitstream` in the top level directory and it should create the bitstream and upload it to the fpga. Depending on the board you might need to run `make upload_bootrom` to upload the boot code to an I2C eeprom.
These are the currently supported FPGA boards:
@@ -37,10 +37,10 @@ These are the currently supported FPGA boards:
This list shows the software needed and the versions used during development :
-* yosys : 0.35
+* yosys : 0.37
* bin86 : 0.16.21
* GNU Make : 4.4.1
-* xxd : 2022-01-14
+* xxd : 2023-10-25
* POSIX coreutils : GNU coreutils 9.4
Additionally, for ECP5 FPGAs:
@@ -52,6 +52,10 @@ Additionally, for FPGAs using the [foboot](https://github.com/im-tomu/foboot) bo
* dfu-util : 0.11
+Additionally, for boards that require an I2C eeprom to boot from
+
+* minipro : 0.6 - ( git commit a227bce77d1b592785558e0af58ae2b0b97d4a23 )
+
Additionally, if you need a DRAM/DDR controller, the project supports litedram but all the dependencies
needed to build it are downloaded automatically by the appropriate script.
diff --git a/boot_code/Makefile b/boot_code/Makefile
index 44edbc3..1998c69 100644
--- a/boot_code/Makefile
+++ b/boot_code/Makefile
@@ -1,6 +1,6 @@
# This file is part of the 9086 project.
#
-# Copyright (c) 2023 Efthymios Kritikos
+# Copyright (c) 2024 Efthymios Kritikos
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/boot_code/brainfuck_compiler_v1.asm b/boot_code/brainfuck_compiler_v1.asm
index d321ff7..a43caff 100644
--- a/boot_code/brainfuck_compiler_v1.asm
+++ b/boot_code/brainfuck_compiler_v1.asm
@@ -2,7 +2,7 @@
;
; This file is part of the 9086 project.
;
-; Copyright (c) 2023 Efthymios Kritikos
+; Copyright (c) 2024 Efthymios Kritikos
;
; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
diff --git a/boot_code/brainfuck_interpreter_v0.asm b/boot_code/brainfuck_interpreter_v0.asm
index b60f5dd..8158476 100644
--- a/boot_code/brainfuck_interpreter_v0.asm
+++ b/boot_code/brainfuck_interpreter_v0.asm
@@ -2,7 +2,7 @@
;
; This file is part of the 9086 project.
;
-; Copyright (c) 2023 Efthymios Kritikos
+; Copyright (c) 2024 Efthymios Kritikos
;
; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
diff --git a/readme_files/.~lock.9086_design1.ase# b/readme_files/.~lock.9086_design1.ase#
deleted file mode 100644
index ac0c52e..0000000
--- a/readme_files/.~lock.9086_design1.ase#
+++ /dev/null
@@ -1 +0,0 @@
-,user,localhost,24.10.2023 00:59,file:///home/user/.config/libreoffice/4;
\ No newline at end of file
diff --git a/system/Makefile b/system/Makefile
index 28e3efa..f567824 100644
--- a/system/Makefile
+++ b/system/Makefile
@@ -1,6 +1,6 @@
# This file is part of the 9086 project.
#
-# Copyright (c) 2023 Efthymios Kritikos
+# Copyright (c) 2024 Efthymios Kritikos
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/system/alu.v b/system/alu.v
index 595c231..27c4b81 100644
--- a/system/alu.v
+++ b/system/alu.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/alu_header.v b/system/alu_header.v
index 83b35c7..713d95e 100644
--- a/system/alu_header.v
+++ b/system/alu_header.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/biu.v b/system/biu.v
index 79168f8..9c91b3b 100644
--- a/system/biu.v
+++ b/system/biu.v
@@ -3,7 +3,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/config.v b/system/config.v
index 02a6404..c58419d 100644
--- a/system/config.v
+++ b/system/config.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/decoder.v b/system/decoder.v
index c344ea5..1e02e35 100644
--- a/system/decoder.v
+++ b/system/decoder.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/exec_state_def.v b/system/exec_state_def.v
index cd272f7..ee26cc8 100644
--- a/system/exec_state_def.v
+++ b/system/exec_state_def.v
@@ -3,7 +3,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/execute.v b/system/execute.v
index f519956..10d326c 100644
--- a/system/execute.v
+++ b/system/execute.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/fpga_config/OrangeCrab_r0.2.1/fpga_top.v b/system/fpga_config/OrangeCrab_r0.2.1/fpga_top.v
index 2f5acde..8aa9cdc 100644
--- a/system/fpga_config/OrangeCrab_r0.2.1/fpga_top.v
+++ b/system/fpga_config/OrangeCrab_r0.2.1/fpga_top.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/general.v b/system/general.v
index 737a329..3151b65 100644
--- a/system/general.v
+++ b/system/general.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/memory.v b/system/memory.v
index a062665..0b7e684 100644
--- a/system/memory.v
+++ b/system/memory.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/peripherals/I2C_driver.v b/system/peripherals/I2C_driver.v
index bf61a2a..a05a012 100644
--- a/system/peripherals/I2C_driver.v
+++ b/system/peripherals/I2C_driver.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/peripherals/Wishbone_IO_driver.v b/system/peripherals/Wishbone_IO_driver.v
index 42722ee..506fb1c 100644
--- a/system/peripherals/Wishbone_IO_driver.v
+++ b/system/peripherals/Wishbone_IO_driver.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -103,7 +103,7 @@ always @( posedge clock )begin
just_transacted<=2'd1;
end
end
- end else if(just_transacted!=2'd0&&CYCLE_END==1'b1)begin // In the unlikely senario that the CPU wants to write without having checked for the previous write
+ end else if(just_transacted!=2'd0&&CYCLE_END==1'b1)begin // In the unlikely scenario that the CPU wants to write without having checked for the previous write
WISHBONE_STATUS[0:0]<=WISHBONE_ACK_IN;
WISHBONE_STATUS[1:1]<=WISHBONE_ERROR_IN;
WISHBONE_ACTIVE_CYCLE<=0;
diff --git a/system/peripherals/Wishbone_memory_driver.v b/system/peripherals/Wishbone_memory_driver.v
index 19fa49d..acdbd0e 100644
--- a/system/peripherals/Wishbone_memory_driver.v
+++ b/system/peripherals/Wishbone_memory_driver.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/peripherals/ascii_to_HD44780_driver.v b/system/peripherals/ascii_to_HD44780_driver.v
index 14ef0c5..d1f60fd 100644
--- a/system/peripherals/ascii_to_HD44780_driver.v
+++ b/system/peripherals/ascii_to_HD44780_driver.v
@@ -3,7 +3,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/peripherals/pcf8574_for_HD44780.v b/system/peripherals/pcf8574_for_HD44780.v
index eaa9fec..d5b9fc2 100644
--- a/system/peripherals/pcf8574_for_HD44780.v
+++ b/system/peripherals/pcf8574_for_HD44780.v
@@ -4,7 +4,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/processor.v b/system/processor.v
index 7f8ddfc..0333cc7 100644
--- a/system/processor.v
+++ b/system/processor.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/registers.v b/system/registers.v
index b6cf2dd..cd0ac55 100644
--- a/system/registers.v
+++ b/system/registers.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/system.v b/system/system.v
index 4143350..ad2db9c 100644
--- a/system/system.v
+++ b/system/system.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/testbench.v b/system/testbench.v
index e9edf16..65ab5eb 100644
--- a/system/testbench.v
+++ b/system/testbench.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/ucode.txt b/system/ucode.txt
index c0cabe8..a591328 100644
--- a/system/ucode.txt
+++ b/system/ucode.txt
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/system/ucode_header.v b/system/ucode_header.v
index d508aaa..1d5d2a9 100644
--- a/system/ucode_header.v
+++ b/system/ucode_header.v
@@ -2,7 +2,7 @@
This file is part of the 9086 project.
- Copyright (c) 2023 Efthymios Kritikos
+ Copyright (c) 2024 Efthymios Kritikos
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tools/docker_build_tests.sh b/tools/docker_build_tests.sh
index 461fcf5..6361baf 100755
--- a/tools/docker_build_tests.sh
+++ b/tools/docker_build_tests.sh
@@ -1,4 +1,22 @@
#!/bin/sh
+#
+# docker_build_tests.sh - Tests the build process on various distributions with docker
+#
+# Copyright (c) 2024 Efthymios Kritikos
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
set -eu
PROJDIRNAME=$(basename $(realpath "$(dirname "$0")"/..))
diff --git a/tools/gen_litedram.sh b/tools/gen_litedram.sh
index a377747..9c32b16 100755
--- a/tools/gen_litedram.sh
+++ b/tools/gen_litedram.sh
@@ -1,4 +1,22 @@
#!/bin/sh
+#
+# gen_litedram.sh - Downloads and generates the litedram verilog source code for a specific phy or for simulation
+#
+# Copyright (c) 2024 Efthymios Kritikos
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
set -eu
SOURCE_CODE_URL=https://github.com/enjoy-digital/litedram/archive/refs/tags/2023.08.tar.gz
@@ -107,7 +125,7 @@ wget --output-document=source.tar.gz --quiet "$SOURCE_CODE_URL"
if [ "$(md5sum source.tar.gz)" != "${SOURCE_MD5_SUM} source.tar.gz" ]
then
- echo Downlaoded litedram source downloaded doesn\'t match md5 sum
+ echo Downloaded litedram source downloaded doesn\'t match md5 sum
exit 1
fi
@@ -213,11 +231,11 @@ if ! [ "$(sed 's@//.*@@' build/gateware/litedram_core.v | md5sum )" = "$CHECK_MD
then
if [ "$FORCE" = 0 ]
then
- echo ERROR: File was successfully bult but the md5sum doesn\'t match the one used in development.
+ echo ERROR: File was successfully built but the md5sum doesn\'t match the one used in development.
echo You can ignore this error by passing the --force flag
exit 1
else
- echo WARNING: File was successfully bult but the md5sum doesn\'t match the one used in development.
+ echo WARNING: File was successfully built but the md5sum doesn\'t match the one used in development.
fi
fi
diff --git a/tools/parse_nextpnr_stats.sh b/tools/parse_nextpnr_stats.sh
index a11eb78..508179d 100755
--- a/tools/parse_nextpnr_stats.sh
+++ b/tools/parse_nextpnr_stats.sh
@@ -1,4 +1,22 @@
#!/bin/sh
+#
+# parse_nextpnr_stats.sh - Reads a nextpnr json report file and generates some basic statistics about the design
+#
+# Copyright (c) 2024 Efthymios Kritikos
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
set -eu
if ! which jq &> /dev/null
diff --git a/tools/plot.sh b/tools/plot.sh
index e7a93b2..fbaa7f4 100755
--- a/tools/plot.sh
+++ b/tools/plot.sh
@@ -1,4 +1,22 @@
#!/bin/sh
+#
+# plot.sh - Parses the runtime simulation json data and plots them to an svg file
+#
+# Copyright (c) 2024 Efthymios Kritikos
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
set -euf
print_help(){