diff --git a/figures/HighTideFLOW.png b/figures/HighTideFLOW.png new file mode 100644 index 0000000..a0c65f5 Binary files /dev/null and b/figures/HighTideFLOW.png differ diff --git a/figures/final_placement_gemmini.png b/figures/final_placement_gemmini.png new file mode 100644 index 0000000..dbbd0c4 Binary files /dev/null and b/figures/final_placement_gemmini.png differ diff --git a/figures/final_placement_nvdla_partition_p.png b/figures/final_placement_nvdla_partition_p.png new file mode 100644 index 0000000..41d229a Binary files /dev/null and b/figures/final_placement_nvdla_partition_p.png differ diff --git a/figures/final_placement_sha3.png b/figures/final_placement_sha3.png new file mode 100644 index 0000000..44146ae Binary files /dev/null and b/figures/final_placement_sha3.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..58a8803 --- /dev/null +++ b/index.html @@ -0,0 +1,983 @@ + + + + + + HighTide — VLSI Design Benchmark Suite + + + + + + + + + +
+ +

HighTide

+

+ A diverse, actively maintained open-source VLSI benchmark suite spanning + multiple design languages and technology nodes, built on the OpenROAD RTL-to-GDSII flow. +

+
+ + + Get Started + + + + View on GitHub + +
+
+ + +
+
+

Why HighTide?

+

Existing benchmarks haven't kept pace with modern hardware diversity.

+
+
+

+ Evaluation of EDA tools, circuits, and systems often relies on outdated hardware benchmarks. + Existing benchmark designs are predominantly RISC-V CPUs, providing limited representation of + the diverse components found in modern heterogeneous SoCs—from ML accelerators and GPUs to + cryptographic engines and networking cores. +

+

+ The growing diversity of design languages poses an additional challenge. While designs exploiting + the parameterization capabilities of Chisel, Python-based generators, and SystemVerilog are + increasingly prevalent in the open-source community, the majority of benchmarks available to + suites remain Verilog-only snapshots—often never updated after their initial release. +

+

+ For designs actively receiving upstream updates, relying on stale static snapshots risks + producing results that no longer reflect a design's true complexity and structure. Models trained + on a narrow design set learn patterns specific to those designs, rather than generalizable circuit + behaviors. HighTide addresses these gaps with a benchmark suite that evolves alongside the + open-source hardware ecosystem. +

+
+
+
+

Design Diversity

+

Processors, accelerators, cryptographic engines, and networking cores—not just CPUs. Cell counts range from under 20k to over 1M.

+
+
+

Language Coverage

+

Designs originating from Verilog, SystemVerilog, Chisel, Python (LiteX), and migen, compiled down to Verilog for physical implementation.

+
+
+

Actively Tracked

+

Git submodules track upstream sources. CI/CD pipelines validate RTL compilation on each update before tagging a release.

+
+
+

Full-Flow Evaluation

+

End-to-end RTL-to-GDSII benchmarks exercising synthesis, floorplanning, placement, CTS, routing, and sign-off—not just point-tool targets.

+
+
+
+
+
+ + +
+
+

Key Features

+

Infrastructure designed for reproducibility, scalability, and continuous evolution.

+
+
+

Multi-Platform

+

Targets ASAP7 (7nm), NanGate45 (45nm), and SKY130HD (130nm) technology nodes, enabling cross-node design exploration and tool evaluation.

+
+
+

Built on OpenROAD

+

Leverages OpenROAD-flow-scripts for an open, reproducible RTL-to-GDSII flow. Designs run within a Docker image by default, eliminating manual tool installation.

+
+
+

Bazel Build System

+

Bazel integration partitions the flow into separate build targets, enabling incremental re-execution and remote caching to drastically reduce runtimes for large designs.

+
+
+

Versioned Releases

+

Tagged Git releases provide stable, versioned snapshots while regularly incorporating upstream changes through Git submodules for reproducible evaluation.

+
+
+

ML-Ready

+

Diverse designs with varying structural composition—sequential-heavy, combinational-heavy, macro-dense—provide rich training data for ML-driven EDA research.

+
+
+

Open Source

+

Fully open-source and designed to grow. Contribute new designs, improve existing configurations, or use the suite for your research.

+
+
+
+
+ + +
+
+

Design Portfolio

+

Hardware blocks typically found in commercial heterogeneous SoCs.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DesignDescriptionLanguagePlatforms
BlackParrotRISC-V multicore processor (single & quad core)SystemVerilogasap7
GemminiSystolic array matrix multiplication acceleratorChiselasap7
SHA3SHA-3 cryptographic hash acceleratorChiselasap7
CNNConvolutional neural network acceleratorVerilogasap7
NyuziProcessorGPGPU-style multicore vector processorSystemVerilog + asap7 + nangate45 +
MinimaxMinimal area RISC-V core (serially-fetched)Verilog + asap7 + nangate45 + sky130hd +
LFSR PRBS GenLFSR-based pseudo-random bit sequence generatorVerilog + asap7 + nangate45 + sky130hd +
LiteEthLightweight Ethernet core (6 MAC/PHY variants)Migen/LiteX + asap7 + nangate45 + sky130hd +
+
+
+
+ + +
+
+

Design Variation

+

+ Placement views illustrating the structural diversity across the suite—from + small combinational datapaths to large systolic arrays and macro-dense accelerators. +

+
+
+ SHA3 placement view +

SHA3

+

~15k cells · combinational-heavy datapath

+
+
+ NVDLA partition placement view +

NVDLA Partition

+

~150k cells · 84 memory macros

+
+
+ Gemmini placement view +

Gemmini

+

~570k cells · largest macro-free design

+
+
+
+
+ + +
+
+

How It Works

+

+ HighTide tracks upstream sources via Git submodules and regenerates Verilog from each design's + native language, or uses pre-processed RTL for immediate builds. +

+ HighTide workflow diagram +

+ Design update path (left) pulls upstream sources and regenerates Verilog from the design's + native language. Default path (right) runs pre-existing Verilog through the ORFS RTL-to-GDS flow. +

+
+
+ + +
+
+

AI-Assisted Suite Management

+

Claude Code skills that automate discovery, integration, and maintenance of benchmark designs.

+

+ HighTide includes a set of Claude Code + skills—AI-powered slash commands that automate the complex, multi-step processes involved in managing a + benchmark suite. These skills handle everything from searching the open-source hardware ecosystem for new + candidates to performing full RTL-to-GDSII integration of new designs, reducing what would take hours of + manual work to a single command. +

+
+
+
/find-designs
+

Discover New Benchmarks

+

+ Searches the open-source hardware ecosystem for designs that would strengthen the benchmark suite, + evaluates them against HighTide's selection criteria, and opens GitHub issues to propose additions. +

+
    +
  • Searches GitHub for synthesizable RTL across multiple HDLs
  • +
  • Evaluates license, activity, verification infrastructure, and complexity
  • +
  • Filters for diversity: new architectures, languages, and design categories
  • +
  • Opens structured GitHub issues with complexity estimates and conversion notes
  • +
  • Optionally focuses on a category (e.g., /find-designs accelerators)
  • +
+
+
+
/new-design
+

Integrate a New Design

+

+ Performs the full end-to-end process of adding a new open-source hardware design to the suite, + from submodule setup through RTL generation to flow configuration and testing. +

+
    +
  • Adds the upstream repo as a Git submodule
  • +
  • Creates setup scripts to compile from the design's native HDL to Verilog
  • +
  • Identifies embedded memories and generates FakeRAM black-box macros
  • +
  • Creates platform-specific config, constraints, and power delivery
  • +
  • Generates release RTL and tests the full RTL-to-GDSII flow
  • +
  • Ports across ASAP7, NanGate45, and SKY130HD technology nodes
  • +
+
+
+
/update-design
+

Track Upstream Changes

+

+ Audits all designs and tool dependencies for upstream updates, summarizes what changed, + and applies updates while maintaining flow compatibility. +

+
    +
  • Compares pinned submodule commits against upstream HEAD
  • +
  • Audits tool dependencies (sv2v, JDK, Python packages) for newer versions
  • +
  • Classifies changes as minor, moderate, or major with recommendations
  • +
  • Regenerates RTL, identifies new memories, and updates FakeRAM
  • +
  • Tunes flow parameters (utilization, timing, placement) when needed
  • +
  • Ports existing designs to additional technology platforms
  • +
+
+
+
+
+ + +
+
+

Quick Start

+

Get up and running in minutes with the Bazel flow.

+ +
+
1
+
+

Install Dependencies

+

You need Bazelisk and Docker on an Ubuntu machine.

+
# Install Bazelisk +sudo apt install perl +sudo wget -O /usr/local/bin/bazel \ + https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-amd64 +sudo chmod +x /usr/local/bin/bazel
+
+
+ +
+
2
+
+

Clone the Repository

+
git clone https://github.com/VLSIDA/HighTide.git +cd HighTide
+
+
+ +
+
3
+
+

Build a Design

+

Run the full RTL-to-GDSII flow for any design.

+
# Build a single design +bazel build //designs/asap7/lfsr_prbs_gen:lfsr_prbs_gen_final + +# Build all designs for a platform +bazel build //designs/asap7/... + +# Build everything +bazel build //designs/...
+
+
+ +
+
4
+
+

View Results

+

Check build summaries and QoR reports.

+
./tools/summary.sh
+
+
+
+
+ + + + + + diff --git a/lighthouse.png b/lighthouse.png new file mode 100644 index 0000000..1c35087 Binary files /dev/null and b/lighthouse.png differ diff --git a/lighthouse.svg b/lighthouse.svg new file mode 100644 index 0000000..fc996d1 --- /dev/null +++ b/lighthouse.svg @@ -0,0 +1,696 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file