Ich weiß, dass Entitäten uneingeschränkte Array-Typen (wie STD_LOGIC_VECTOR
) in ihrer Portliste verwenden können, deren Größe automatisch angepasst wird, um dem in der Portzuordnung verbundenen Signal zu entsprechen, wenn sie instanziiert werden (und möglicherweise unterschiedliche Größen) für jede Instanziierung). Innerhalb der Entität können Attribute wie 'LENGTH
und ' HIGH
verwendet werden, um den tatsächlich instanziierten Bereich zu ermitteln.
Ich habe ein solches Objekt, nämlich ein paralleler -> serieller Wandler (akzeptieren Sie Eingaben jeder Größe, breitere Eingänge erfordern mehr Taktzyklen zum Ausspucken).
Ist es möglich, die Bereichsinferenz in umgekehrter Reihenfolge durchzuführen, d. h Bereich, der in einer Unterkomponente angegeben, auf ein nicht eingeschränktes Signal in der übergeordneten Komponente angewendet und von dort an andere Komponenten weitergegeben wird?
Weitere Details:
Meine Anwendung hat eine Nummer von Datenquellen-Unterkomponenten, die Datenströme unterschiedlicher Breite erzeugen, Arbitrierungslogik zum Abtasten und Serialisieren dieser Quellen im Round-Robin-Verfahren und Parallel-> Seriell-Konverter, die die eigentliche Serialisierung und Handshake mit der Bus-Arbitrierungslogik durchführen.
Im Moment Ich habe die Signalbreiten als Konstanten in einem Paket angegeben, aber dies bedeutet, dass ich jedes Mal, wenn sich ein Stream-Datenformat ändert, beide Quellen su ändern muss bKomponente und das Paket. Ich möchte wirklich, dass die Breite nur in der Quellkomponente angegeben wird, da sich die nachgeschalteten Komponenten an jede Breite anpassen.