This is the place to go if you are a new user or prospective user and want to learn more about Bluespec and Bluespec SystemVerilog.
For an overview of Bluespec, see our Product information.
Learning Bluespec
Designing with Bluespec
Here we provide an overview of some basic concepts in Bluespec SystemVerilog. See the BSV Reference Manual and the Training Resources for more detailed discussion.
Basic Concepts
Overview of a BSV program- Data Types
- Bluespec provides a strong, static type-checking environment. Every variable and every expression has a type. Variables must be assigned values which have compatible types. Type checking, which occurs before program elaboration or execution, ensures that object types are compatible and that needed conversion functions are valid for the context.
- Interfaces
-
Bluespec interfaces provide a means to group wires into bundles with
specified uses, described by methods. Interfaces specify which methods a module provides, they do not say anything about the implementation of the methods.
- Modules
- A module consists of three things: state, rules that operate on that state, and the module's interface to the outside world (surrounding hierarchy). A module definition specifies a scheme that can be instantiated multiple times.
- Rules
- Rules are used in Bluespec SystemVerilog to describe how data is moved from one state to another.
Logic Representation
The following two sections describe how sequential and combinational logic is defined Bluespec SystemVerilog and how it differs from Verilog.
Guiding the Compiler
You can guide the compiler through either flags during compilation or by specifying attributes in the BSV source code.
- Compiler Flags
- Compiler flags are available to both guide the compiler in some of its decisions as well as to control the compiler output, providing information to help you understand the results of the compilation.
- Attributes
- Attributes are specified within the BSV source code to control decisions made by the compiler. Attributes are used to specify generated names, add comments and guide or constrain scheduling decisions.