Published February 27, 2026 | Version v1.1.0
Software Open

NullStarfish/HwOS: HwOS 1.1 : Ownership, Functional Hardware, and Zero-Bubble Concurrency

Authors/Creators

Description

🚀 Release Notes: HwOS v1.1.0 - The "Functional Hardware" & Observability Update

We are thrilled to announce the release of HwOS v1.1.0. This update represents a major paradigm shift in Thread-Level RTL (TL-RTL) design. We have moved away from rigid, explicit driver boundaries and fully embraced a bottom-up Ownership Model, Functional Hardware (HwFunction), and Semantic Observability.

This release equips designers with OS-level capabilities—including hardware garbage collection and time-travel debugging—without sacrificing a single cycle of performance.

🔥 Major Features & Architectural Shifts

1. Bottom-Up Ownership Model & ACL

We have deprecated the heavy PhysicalDriver abstraction. Instead, resources are now managed via a decentralized Ownership Model.

  • HwOwner Trait: Hardware logic agents (Threads/Daemons) now explicitly own physical resources and grant Access Control List (ACL) permissions to other agents.
  • Context-Gated Assignment (<==): A new physical assignment operator that automatically gates wire driving based on the thread's isActive state. If a thread dies, its physical assignments are safely severed.

2. Functional Hardware (HwFunction)

Hardware logic is no longer tightly coupled to the state machine container.

  • Treat your HardwareThread as the CPU and the HwFunction as the Program.
  • Hardware logic can now be passed around, nested, and invoked seamlessly using SysCall.Call(), enabling true functional RTL design.

3. HwOSgdb: Source-Level Semantic Debugger

Say goodbye to guessing FSM states from flat VCD waveforms. We've introduced HwOSgdb, an ncurses-based TUI debugger powered by SystemVerilog DPI-C and Verilator.

  • Dual-Track CallStack: The compiler now exports hwos.symbols, tracking both the macro-temporal stack (Thread calls) and the micro-combinational tree (Atomic unrolling).
  • Live Telemetry & Time-Travel: Step through your code cycle-by-cycle, scroll back through the History Buffer to pinpoint deadlocks, and view exact Step names and active drivers in real-time.

4. Hardware Garbage Collection (OS Reaper & HwLease)

Killing a hardware thread no longer results in permanent deadlocks over shared resources.

  • HwLease: Stateful resource locks (like Mutexes) are now formalized as contracts and registered into the thread's PCB (HwContext).
  • The OS Reaper: When a thread is terminated (SysCall.kill), the OS Reaper steps in, bypassing user-space ACLs using the privileged <==! operator to forcefully reclaim leases and tear down locks.

đź›  Compiler & Safety Upgrades

  • Zero-Bubble Next.hijack(): We've transformed FSM state transitions. hijack is now a powerful compiler-level metaprogramming directive. It intercepts AST generation during elaboration, inlining the next step's closure into the current cycle to achieve true 0-cycle, zero-bubble state transitions without runtime MUX overhead.
  • Context-Aware Safety (ContextScope): Hardware generation is now sandboxed into strict execution scopes (ThreadCtx, AtomicCtx, LogicCtx). The compiler will statically block you from writing PC-mutating sequential logic inside a pure combinational datapath, ensuring Correct-by-Construction hardware.
  • First-Class Lifecycle Delegation: Thread lifecycles are now treatable as standard hardware signals. Using grantLifecycle(), a parent can spawn a worker and hand over its execution control to a background OS scheduler or daemon logic.

📦 Standard Library (HwOS.stdlib)

HwOS 1.1.0 ships with a highly optimized, out-of-the-box concurrency standard library:

  • Mutex & Semaphore: Featuring distributed priority encoders for fair, multi-client lock arbitration.
  • WaitGroup: Utilizes concurrent adder-trees and single-cycle PopCount to safely synchronize multiple worker threads resolving in the exact same clock cycle.
  • Scoreboard & ScoreboardRegfile: A plug-and-play architectural component demonstrating how to completely decouple raw memory datapaths from complex RAW/WAW hazard scheduling logic.

⚠️ Breaking Changes

  • PhysicalDriver is deprecated. Migrate your resource wrappers to inherit from HwProcess and utilize the HwOwner API (own, grant).
  • Thread.start() and Thread.kill() have been moved to the globally accessible SysCall object (SysCall.start(target), SysCall.kill(target)).
  • Standard := assignments inside Step blocks should be replaced with <== to ensure lifecycle-gated safety, unless driving unmanaged combinational logic.

Files

NullStarfish/HwOS-v1.1.0.zip

Files (483.5 kB)

Name Size Download all
md5:2aac205abb289a2b4cd61a16729c62c5
483.5 kB Preview Download

Additional details

Related works

Software