The document discusses Bluespec, a hardware description language that combines features of Haskell and SystemVerilog assertions (SVA). Bluespec models all state explicitly using guarded atomic actions on state. Behavior is expressed as rules with guards and actions. Assertions in Bluespec are compiled into finite state machines and checked concurrently as rules. The document provides an example of using Bluespec to write functional and performance assertions for a cache controller design.
10. Bluespec -> Chip Extended Haskell TRS Verilog Or C RTL Synthesis Concurrency and atomicity Correct Programs TRS: Term Rewriting system RTL: Register transfer language.
11.
12.
13.
14.
15. Summary: Bluespec All state (e.g., Registers, FIFOs, RAMs, ...) is explicit. Behavior is expressed in terms of guarded atomic actions on the state: Rule: condition action Rules can manipulate state in other modules only via their interfaces. interface module
16.
17. Compiler model Compiler generates a scheduler to pick a non-conflicting subset of “ready” rules Muxing for each state element 1 n Modules (Current state) Modules (Next state) Rules n n guard action Scheduler 1 n 1 n “ CAN_FIRE” “ WILL_FIRE”