Skip to content

Commit

Permalink
occamy: Expose tc_sram configuration inputs per memory type (pulp-p…
Browse files Browse the repository at this point in the history
…latform/snitch#303)

* tc_sram: Add implementation key and IO

* vendor: Add `tech_cells_generic` patch

* cluster: Add, propagate configurable memory cut configuration ports

* doc: Regenerate schema-doc

* occamy: Extend wth SRAM config ports at top

* occamy: Connect CVA6 SRAM config

* occamy: Reorder, count memory config structs

* occamy+cluster: Further fixes

* cva6: Add SRAM config ports

* vendor: Add CVA6 patch

* tc_sram: Add implementation stubs to fpga module

* vendor: Add `tc_sram` FPGA patch
  • Loading branch information
paulsc96 committed Jul 11, 2023
1 parent 406f0b3 commit 73afccf
Show file tree
Hide file tree
Showing 14 changed files with 365 additions and 46 deletions.
88 changes: 70 additions & 18 deletions docs/schema-doc/occamy-properties-snitch-cluster-schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,26 @@ Base description of a Snitch cluster and its internal structure and configuratio

# Snitch Cluster Schema Properties

| Property | Type | Required | Nullable | Defined by |
| :------------------------------------------------ | :------- | :------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [name](#name) | `string` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-name.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/name") |
| [boot_addr](#boot_addr) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-boot_addr.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/boot_addr") |
| [cluster_base_addr](#cluster_base_addr) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-cluster_base_addr.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/cluster_base_addr") |
| [tcdm](#tcdm) | `object` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-tcdm.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/tcdm") |
| [addr_width](#addr_width) | `number` | Required | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-addr_width.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/addr_width") |
| [data_width](#data_width) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-data_width.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/data_width") |
| [dma_data_width](#dma_data_width) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-dma_data_width.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/dma_data_width") |
| [id_width_in](#id_width_in) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-id_width_in.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/id_width_in") |
| [dma_id_width_in](#dma_id_width_in) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-dma_id_width_in.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/dma_id_width_in") |
| [hart_base_id](#hart_base_id) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-hart_base_id.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/hart_base_id") |
| [mode](#mode) | `string` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-mode.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/mode") |
| [vm](#vm) | `string` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-vm.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/vm") |
| [dma_axi_req_fifo_depth](#dma_axi_req_fifo_depth) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-dma_axi_req_fifo_depth.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/dma_axi_req_fifo_depth") |
| [dma_req_fifo_depth](#dma_req_fifo_depth) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-dma_req_fifo_depth.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/dma_req_fifo_depth") |
| [timing](#timing) | `object` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-timing-and-latency-tuning-parameter.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/timing") |
| [hives](#hives) | `array` | Required | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-hives.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/hives") |
| Property | Type | Required | Nullable | Defined by |
| :------------------------------------------------ | :-------- | :------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [name](#name) | `string` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-name.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/name") |
| [boot_addr](#boot_addr) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-boot_addr.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/boot_addr") |
| [cluster_base_addr](#cluster_base_addr) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-cluster_base_addr.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/cluster_base_addr") |
| [tcdm](#tcdm) | `object` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-tcdm.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/tcdm") |
| [addr_width](#addr_width) | `number` | Required | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-addr_width.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/addr_width") |
| [data_width](#data_width) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-data_width.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/data_width") |
| [dma_data_width](#dma_data_width) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-dma_data_width.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/dma_data_width") |
| [id_width_in](#id_width_in) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-id_width_in.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/id_width_in") |
| [dma_id_width_in](#dma_id_width_in) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-dma_id_width_in.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/dma_id_width_in") |
| [hart_base_id](#hart_base_id) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-hart_base_id.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/hart_base_id") |
| [mode](#mode) | `string` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-mode.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/mode") |
| [vm](#vm) | `string` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-vm.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/vm") |
| [dma_axi_req_fifo_depth](#dma_axi_req_fifo_depth) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-dma_axi_req_fifo_depth.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/dma_axi_req_fifo_depth") |
| [dma_req_fifo_depth](#dma_req_fifo_depth) | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-dma_req_fifo_depth.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/dma_req_fifo_depth") |
| [sram_cfg_expose](#sram_cfg_expose) | `boolean` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-sram_cfg_expose.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_expose") |
| [sram_cfg_fields](#sram_cfg_fields) | `object` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-sram_cfg_fields.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_fields") |
| [timing](#timing) | `object` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-timing-and-latency-tuning-parameter.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/timing") |
| [hives](#hives) | `array` | Required | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-hives.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/hives") |

## name

Expand Down Expand Up @@ -391,6 +393,56 @@ The default value is:
3
```

## sram_cfg_expose

Whether to expose memory cut configuration inputs for implementation

`sram_cfg_expose`

* is optional

* Type: `boolean`

* cannot be null

* defined in: [Snitch Cluster Schema](snitch_cluster-properties-sram_cfg_expose.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_expose")

### sram_cfg_expose Type

`boolean`

## sram_cfg_fields

The names and widths of memory cut configuration inputs needed for implementation

`sram_cfg_fields`

* is optional

* Type: `object` ([Details](snitch_cluster-properties-sram_cfg_fields.md))

* cannot be null

* defined in: [Snitch Cluster Schema](snitch_cluster-properties-sram_cfg_fields.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_fields")

### sram_cfg_fields Type

`object` ([Details](snitch_cluster-properties-sram_cfg_fields.md))

### sram_cfg_fields Constraints

**minimum number of properties**: the minimum number of properties for this object is: `1`

### sram_cfg_fields Default Value

The default value is:

```json
{
"reserved": 1
}
```

## timing


Expand Down
15 changes: 15 additions & 0 deletions docs/schema-doc/snitch_cluster-properties-sram_cfg_expose.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Untitled boolean in Snitch Cluster Schema Schema

```txt
http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_expose
```

Whether to expose memory cut configuration inputs for implementation

| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------- |
| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [snitch_cluster.schema.json*](snitch_cluster.schema.json "open original schema") |

## sram_cfg_expose Type

`boolean`
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Untitled number in Snitch Cluster Schema Schema

```txt
http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_fields/additionalProperties
```



| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------- |
| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [snitch_cluster.schema.json*](snitch_cluster.schema.json "open original schema") |

## additionalProperties Type

`number`

## additionalProperties Constraints

**minimum**: the value of this number must greater than or equal to: `1`
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Untitled undefined type in Snitch Cluster Schema Schema

```txt
http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_fields/default
```



| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------- |
| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [snitch_cluster.schema.json*](snitch_cluster.schema.json "open original schema") |

## default Type

unknown
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Untitled undefined type in Snitch Cluster Schema Schema

```txt
http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_fields/propertyNames
```



| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------- |
| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [snitch_cluster.schema.json*](snitch_cluster.schema.json "open original schema") |

## propertyNames Type

unknown

## propertyNames Constraints

**pattern**: the string must match the following regular expression:

```regexp
^[A-Za-z_][A-Za-z0-9_]*$
```

[try pattern](https://regexr.com/?expression=%5E%5BA-Za-z\_%5D%5BA-Za-z0-9\_%5D\*%24 "try regular expression with regexr.com")
57 changes: 57 additions & 0 deletions docs/schema-doc/snitch_cluster-properties-sram_cfg_fields.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Untitled object in Snitch Cluster Schema Schema

```txt
http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_fields
```

The names and widths of memory cut configuration inputs needed for implementation

| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------- |
| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [snitch_cluster.schema.json*](snitch_cluster.schema.json "open original schema") |

## sram_cfg_fields Type

`object` ([Details](snitch_cluster-properties-sram_cfg_fields.md))

## sram_cfg_fields Constraints

**minimum number of properties**: the minimum number of properties for this object is: `1`

## sram_cfg_fields Default Value

The default value is:

```json
{
"reserved": 1
}
```

# undefined Properties

| Property | Type | Required | Nullable | Defined by |
| :-------------------- | :------- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Additional Properties | `number` | Optional | cannot be null | [Snitch Cluster Schema](snitch_cluster-properties-sram_cfg_fields-additionalproperties.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_fields/additionalProperties") |

## Additional Properties

Additional properties are allowed, as long as they follow this schema:



* is optional

* Type: `number`

* cannot be null

* defined in: [Snitch Cluster Schema](snitch_cluster-properties-sram_cfg_fields-additionalproperties.md "http://pulp-platform.org/snitch/snitch_cluster.schema.json#/properties/sram_cfg_fields/additionalProperties")

### additionalProperties Type

`number`

### additionalProperties Constraints

**minimum**: the value of this number must greater than or equal to: `1`
Loading

0 comments on commit 73afccf

Please sign in to comment.