abs-tudelft / abs-tudelft/tydi

Transferring empty outer lists at lower complexities

Ouverte
#224 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
🐬 specification
Langage dominant
Rust
Étoiles
15
Forks
5
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

## Background

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

> [C<4] It is illegal to assert a `last` bit for dimension j without also asserting the `last` bits for dimensions j′
> [C<4] It is illegal to assert the last bit for dimension 0 when the respective data lane is inactive, except for empty sequences.

The first rule suggests that at C<4, and (as an example) D=3, it is not possible to assert `last="100"` or `last="110"`, or `last="010"`).

## Issue

This means that at C<4, it is illegal to transfer empty outer lists, which in turn means that Stream complexity has an effect on the _kinds of data_ transferred.

For instance, the example given in the last signal description for C≥8, D=2
`["Hello", "World"], ["Tydi", "is", "nice"], [""], []`
makes use of an empty outer list (the last element, `[]`). This requires asserting `last="10"`.

## Suggested Fix

It is not clear whether this is intentional. However, I am of the opinion that Stream properties should not affect the kind of data which can be transferred.

As such, I recommend amending the first rule in the Background section of this issue to also include an exception for empty sequences.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Review the Tydi specification document linked in the issue, focusing on the physical layer and last signal rules. Examine the codebase for implementations of stream complexity handling and last bit assertions. Look for test cases involving empty outer lists and varying complexities to understand current behavior. Determine where rule amendments would be applied in the specification or code.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
rust
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.