- 1. Introduction
- Getting started
- 2. Installation
- 3. Editor Setup
- The Spade language
- 4. Blinky
- 4.1. Blinky (for software people)
- 4.2. Blinky (for hardware people)
- 5. Common Language Constructs
- 5.1. Basic Expressions
- 5.2. Spicy Expressions
- 5.3. Variables
- 5.4. Units
- 6. Pipelines
- 6.1. Pipelines (for software people)
- 6.2. Pipelines (for hardware people)
- 7. Simulation and Testing
- 8. Ports and Wires
- 9. Interfacing with Verilog
- Example projects
- 10. Sample project: ws2128 RGB LED driver
- 10.1. Creating a Project
- 10.2. Led Protocol Overview
- 10.3. Driver Interface
- 10.4. State Machine
- 10.5. Testing the State Machine
- 10.6. Output generation
- 10.7. Testing in hardware
- Language & Tool References
- 11. Language Reference
- 11.1. Items
- 11.1.1. Units
- 11.1.2. Type Declarations
- 11.2. Statements
- 11.3. Expressions
- 11.3.1. Blocks
- 11.3.2. If
- 11.3.3. Match
- 11.3.4. Instantiation
- 11.3.5. Indexing
- 11.3.6. Stage References
- 11.4. Patterns
- 11.4.1. Refutability
- 11.5. Type system
- 11.5.1. Primitive Types
- 11.5.2. Generics
- 11.5.3. Ports and Wires
- 11.6. Dynamic Pipelines
- 11.7. Binding
- 11.8. Constructs by syntax
- 12. Swim
- 12.1. Installing Swim
- 12.2. Using Swim
- 12.3. Custom Subcommands
- 12.4. Project Configuration
- 12.5. Plugin Configuration
- 13. Compiler Internals
- 13.1. Naming
- 13.2. Type Representation