|
# wbgen2 Documentation
|
|
# wbgen2 Documentation
|
|
|
|
|
|
|
|
|
|
# Introduction
|
|
# 1\. Introduction
|
|
|
|
|
|
In wbgen2 terminology, a ”slave core” is an HDL entity which is
|
|
In wbgen2 terminology, a ”slave core” is an HDL entity which is
|
|
connected to Wishbone bus on one side, and on the other side it provides
|
|
connected to Wishbone bus on one side, and on the other side it provides
|
... | @@ -34,7 +34,7 @@ signals: |
... | @@ -34,7 +34,7 @@ signals: |
|
|
|
|
|
![](/uploads/84b682a744ead2218666ab886efa09ee/slavecore.png)
|
|
![](/uploads/84b682a744ead2218666ab886efa09ee/slavecore.png)
|
|
|
|
|
|
# Input file syntax
|
|
# 2\. Input file syntax
|
|
|
|
|
|
In order to generate anything, wbgen2 requires a file (later referred as
|
|
In order to generate anything, wbgen2 requires a file (later referred as
|
|
*WB** file) with a description of what we want to have inside the slave
|
|
*WB** file) with a description of what we want to have inside the slave
|
... | @@ -68,7 +68,7 @@ General syntax of WB file looks like: |
... | @@ -68,7 +68,7 @@ General syntax of WB file looks like: |
|
|
|
|
|
More [WB-file-syntax-examples](WB-file-syntax-examples)
|
|
More [WB-file-syntax-examples](WB-file-syntax-examples)
|
|
|
|
|
|
## Common attributes
|
|
## 2.1. Common attributes
|
|
|
|
|
|
*Common attributes** apply for all blocks in the WB file. Currently
|
|
*Common attributes** apply for all blocks in the WB file. Currently
|
|
there are 3 common attributes (object name, description and prefixes -
|
|
there are 3 common attributes (object name, description and prefixes -
|
... | @@ -94,24 +94,25 @@ signal name of register "DDR" would be `gpio_ddr_o`. The format of |
... | @@ -94,24 +94,25 @@ signal name of register "DDR" would be `gpio_ddr_o`. The format of |
|
coding style. Note that you can provide either separate prefixes for
|
|
coding style. Note that you can provide either separate prefixes for
|
|
C/HDL languages `c_prefix`, `hd_prefix` a single `prefix` for both. |
|
|
C/HDL languages `c_prefix`, `hd_prefix` a single `prefix` for both. |
|
|
|
|
|
|
## Object-specific attributes
|
|
## 2.2. Object-specific attributes
|
|
|
|
|
|
Object-specific attributes apply only to blocks of certain type (for
|
|
Object-specific attributes apply only to blocks of certain type (for
|
|
example, **width** attribute applies only to RAM memory or **trigger**
|
|
example, **width** attribute applies only to RAM memory or **trigger**
|
|
attribute is valid only for interrupt block). Detailed descriptions are
|
|
attribute is valid only for interrupt block). Detailed descriptions are
|
|
provided in peripheral, register, RAM, FIFO and IRQ block sections.
|
|
provided in peripheral, register, RAM, FIFO and IRQ block sections.
|
|
|
|
|
|
# wbgen2 design blocks
|
|
# 3\. wbgen2 design blocks
|
|
|
|
|
|
There are 6 types of blocks:
|
|
There are 6 types of blocks:
|
|
|
|
|
|
- [**peripheral**](wbgen2-peripheral) - main block in file, containing
|
|
- [peripheral](wbgen2-peripheral) - main block in file, containing the
|
|
the description of entire Wishbone peripheral.
|
|
description of entire Wishbone peripheral.
|
|
- **reg** - describing a register
|
|
- [reg](wbgen2-reg) - describing a register
|
|
- **fifo** - describing a FIFO register
|
|
- [FIFO](wbgen2-fifo) - describing a FIFO register
|
|
- **ram** - describing a RAM memory block
|
|
- [RAM](wbgen2-ram) - describing a RAM memory block
|
|
- **irq** - describing an interrupt request line
|
|
- [IRQ](wbgen2-irq) - describing an interrupt request line
|
|
- **field** - describing a subfield inside **reg** or **fifo** block
|
|
- [field](wbgen2-field) - describing a subfield inside **reg** or
|
|
|
|
**fifo** block
|
|
|
|
|
|
## Peripheral attributes
|
|
## Peripheral attributes
|
|
|
|
|
... | | ... | |