diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..a61457f8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,49 @@ +# Changelog + +All notable changes to this project will be documented in this file. +It is updated on each new release based on contributions since the last release. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project loosely follows to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## 1.1.0 - 2025-05-07 + +### Added + +- sw: add various peripheral functions +- sw: add expanded helloworld as peripheral test +- pdk: add ETHZ cockpit integration +- openroad: add startup script for ease-of-use +- openroad: add parasitic extraction +- ci: add short synthesis and simulation flows +- ci: add long end-to-end flow +- ci: add artistic rendering flow +- openroad: add hierarchical area report + +### Changed + +- hw: make SRAM pin `A_DLY` configurable (used to be tied to low when datasheet recommends tie to high) +**IMPORTANT: This bug may create SRAM-internal timing violations; update strongly recommended** +- hw: update OBI dependency + - avoid explicit use of `r_optional` assignments + - fix index width calculations for mux/demux etc +- hw: update common_cells dependency +- yosys: move configurations from makefrags to `yosys_synthesis.tcl` +- yosys: add a default croc.flist + +### Fixed + +- hw: fix OBI connections to timer peripheral +- hw: various fixes to reduce warnings (Yosys, yosys-slang, Verilator) +- openroad: fix LVS netlist +- sw: fix linker script +-test: fix uninitialized memory +- verilator: speedup compile and synthesis +- bender: fix cve2 vendor dependency + +## 1.0.0 - 2024-12-05 + +### Added + +- Initial versioned release of the project diff --git a/README.md b/README.md index 86f914c8..1831428c 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,10 @@ Croc was sucesfully taped out in Nov 2024. The chip is called [MLEM](http://asic MLEM was designed and prepared for tapeout by ETHZ students as a bachelor project. The exact code and scripts used for the tapeout can be seen in the frozen [mlem-tapeout](https://github.com/pulp-platform/croc/tree/mlem-tapeout) branch. +**IMPORTANT: Update to 1.1 recommended.** +Release 1.1 and newer includes a fix for the SRAMs where the `A_DLY` pin was tied low instead of high. The pin controls internal timings and the old version may create violations for some SRAMs. + + ## Architecture ![Croc block diagram](doc/croc_arch.svg) @@ -90,14 +94,29 @@ Cell/Module placement | Routing ## Requirements We are using the excellent docker container maintained by Harald Pretl. If you get stuck with installing the tools, we urge you to check the [Tool Repository](https://github.com/iic-jku/IIC-OSIC-TOOLS). -The current supported version is 2024.11, no other version is tested or officially supported. +The current supported version is 2025.03, no other version is officially supported. ### ETHZ systems -An environment setup for bash is provided. +ETHZ Design Center maintains an internal version of the IHP PDK, with integrations into all tools we have access to. For this reason if you work on the ETH systems it is recommended to use the `icdesign` tool (cockpit) instead of the liked Github repo. +You can directly create a cockpit directory inside the croc directory: +```sh +# Make sure you are in /croc +# the checked-out repository +icdesign ihp13 -nogui +``` +The setup is guided by the `.cockpitrc` configuration file. If you need different macros or another version of the standard cells you can change it accordingly. + +An environment setup for bash is provided to get easy access to the tools: ```sh source ethz.env ``` +Additionally you may prefer to just enter a shell in the pre-installed osic-tools container using: +```sh +oseda bash +# older version eg: oseda -2025.03 bash +``` + ### Other systems **Note: this has currently only been tested on Ubuntu and RHEL Linux.** diff --git a/docker-compose.yml b/docker-compose.yml index 21415bb8..082df3d8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: pulp-docker: - image: hpretl/iic-osic-tools:2024.10 + image: hpretl/iic-osic-tools:2025.03 environment: - UID=${UID} - GID=${GID} diff --git a/openroad/pics/final.png b/openroad/pics/final.png deleted file mode 100644 index 7eea0d2a..00000000 Binary files a/openroad/pics/final.png and /dev/null differ diff --git a/openroad/pics/final_io.png b/openroad/pics/final_io.png deleted file mode 100644 index 32ff6cbf..00000000 Binary files a/openroad/pics/final_io.png and /dev/null differ diff --git a/openroad/pics/modules.png b/openroad/pics/modules.png deleted file mode 100644 index 2b0cbc6f..00000000 Binary files a/openroad/pics/modules.png and /dev/null differ diff --git a/start_vnc.bat b/start_vnc.bat index 7ae7fef3..528fafbe 100644 --- a/start_vnc.bat +++ b/start_vnc.bat @@ -46,7 +46,7 @@ if not exist "%DESIGNS%" %ECHO_IF_DRY_RUN% mkdir "%DESIGNS%" IF "%DOCKER_USER%"=="" SET DOCKER_USER=hpretl IF "%DOCKER_IMAGE%"=="" SET DOCKER_IMAGE=iic-osic-tools -IF "%DOCKER_TAG%"=="" SET DOCKER_TAG=2024.10 +IF "%DOCKER_TAG%"=="" SET DOCKER_TAG=2025.03 IF "%CONTAINER_USER%"=="" SET CONTAINER_USER=1000 IF "%CONTAINER_GROUP%"=="" SET CONTAINER_GROUP=1000 diff --git a/start_vnc.sh b/start_vnc.sh index 8886db5c..6bd2a607 100644 --- a/start_vnc.sh +++ b/start_vnc.sh @@ -52,7 +52,7 @@ if [ -z ${DOCKER_IMAGE+z} ]; then fi if [ -z ${DOCKER_TAG+z} ]; then - DOCKER_TAG="2024.10" + DOCKER_TAG="2025.03" fi if [ -z ${CONTAINER_NAME+z} ]; then