abs-tudelft / abs-tudelft/tydi

Requirements when C<5, Dimensionality = 0 and Throughput > 1

Open
#226 0 comments 0 reactions 0 assignees View on GitHub
🐬 specification
Dominant language
Rust
Stars
15
Forks
5
PR merge metrics
No merged PRs in 30d

Description

## Background

https://abs-tudelft.github.io/tydi/specification/physical.html#signal-omission

Specifies that:
* `stai` is contingent on C≥6∧N>1
* `endi` is contingent on (C≥5∨D≥1)∧N>1
* `strb` is contingent on C≥7∨D≥1

## Potential Issue

As a result of these requirements, a Stream with C<5, D=0 and element lanes N>1 should not have an `endi` signal.
This means that all lanes in a transfer _must_ be valid, as there is no way to set individual lanes as being inactive.

## Suggested Fix

The current specification implies that any transfer with C<5, D=0, N>1 must consist of Q elements where `Q mod N = 0`.

It is not clear whether this is intentional, I can think of two other ways in which to make behavior consistent:
1. N>1 is contingent on D>0∨C≥5 - i.e., it is not allowed to transfer multiple elements at the same time except in a list or at higher complexities.
2. `endi` is solely contingent on N>1 - i.e., it is always allowed to transfer multiple elements, and `endi` can be used to encode lane validity when sequences do not align to the number of element lanes.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.