Wie mit (vorübergehend) ungenutzten Signalen umgehen

OP Moderator Persönliche Seite #6238822
Habe auf dem Eval-Board hier drei Toggle Switches, die ich für 
verschiedene Tests im Design benutzen möchte. Habe ich daher im Toplevel 
als Eingangssignale definiert, und in den device constraints an Pins 
zugewiesen.

Nun frage ich derzeit erst einmal nur eins dieser Signale ab. Da bekomme 
ich beim Generieren dann eine Warnung:
1
WARNING - Unable to find the instance/port 'switches[1]' in the constraint 'ldc_set_location -site {34} [get_ports {switches[1]}]'
2

3
WARNING - In the constraint 'ldc_set_location -site {34} [get_ports {switches[1]}]', the locate object is not specified
4

5
WARNING - Unable to find the instance/port 'switches[2]' in the constraint 'ldc_set_location -site {43} [get_ports {switches[2]}]'
6

7
WARNING - In the constraint 'ldc_set_location -site {43} [get_ports {switches[2]}]', the locate object is not specified

Pins 34 un 43 sind zugewiesen, aber nicht wirklich abgefragt derzeit, 
weshalb der Optimierer die entsprechenden Signale dann verwirft.

Gibt es in VHDL irgendeinen Weg, diesen Ports nun ein "don't care" oder 
so als Senke zuzuweisen, vergleichbar vielleicht mit dem "not used" ERC 
marker in einem EDA-Programm?
(Firma: www.elpra.de) Persönliche Seite #6238857
Geht es dir nur darum dass die Warnungen verschwinden, z.B. um einen 
sauberen Report zu haben? Dann kannst du Message Filters setzen um die 
Warnungen zu ignorieren/auszublenden.

Welche Toolchain verwendest du?

Kleiner Nachtrag:

Die VHDL Ebene ist da eigentlich nicht fuer verantwortlich. Du kannst 
allerdings keep/safe/don't touch Attribute setzen um zu verhindern dass 
die Signale wegoptimert werden.
OP Moderator Persönliche Seite #6238916
Tobias B. schrieb:
> Geht es dir nur darum dass die Warnungen verschwinden

Ja.

> Dann kannst du Message Filters setzen um die
> Warnungen zu ignorieren/auszublenden.

Gut, kann ich mir mal ansehen.

> Welche Toolchain verwendest du?

Da das ein iCE40UP ist, ist das Lattice Radiant.

> Kleiner Nachtrag:
>
> Die VHDL Ebene ist da eigentlich nicht fuer verantwortlich. Du kannst
> allerdings keep/safe/don't touch Attribute setzen um zu verhindern dass
> die Signale wegoptimert werden.

OK, aber das will ich ja eigentlich auch nicht. ;-) Ist ja völlig OK, 
dass die unbenutzten Signale wegoptimiert werden.
(Firma: www.elpra.de) Persönliche Seite #6239108
Lothar M. schrieb:
> Sieh es andersrum: ich habe noch kein halbwegs komplexes Design ohne
> Warnung hinbekommen. Du kannst diese Warnungen also einfach als "Übung
> für später" ansehen...

Deshalb gibt es die Message Filters. Damit kannt du gezielt die 
Warnungen ausblenden die du fuer ungefaehrlich eingestuft hast und ist 
daher das ideale Tool fuer Regressiontests. Oder wie willst du sonst 
einen Diff auf die Warnings machen wenn bei einem groesseren Design mal 
ein paar Tausend zusammenkommen?

Warnings einfach abzutun als "Übung für später" halte ich fuer 
hochgradig fahrlaessig und sollte gerade nicht einem Anfaenger empfohlen 
werden.
(Firma: www.elpra.de) Persönliche Seite #6239116
Jörg W. schrieb:
> OK, aber das will ich ja eigentlich auch nicht. ;-) Ist ja völlig OK,
> dass die unbenutzten Signale wegoptimiert werden.

Genau, das ist die richtige Einstellung. ;-)

Die Flags sind in der Regel da gut, wo man die Signale noch braucht nach 
dem Syntheseschritt, z.B. beim Instanzieren von Logic Analyzern.

Jörg W. schrieb:
> Da das ein iCE40UP ist, ist das Lattice Radiant.

Ok, das habe ich noch nicht benutzt und daher kein Beispiel parat. :-( 
Ich kann mir aber nicht vorstellen, dass es da keinen Filter gibt.
Persönliche Seite #6239675
Tobias B. schrieb:
> Die VHDL Ebene ist da eigentlich nicht fuer verantwortlich.

Leider! Ich hatte im Zuge der Definition von VHDL2008 seinerzeit damals 
mehrfach versucht, den Groschen einzuwerfen, ein funktionelles dont care 
einzuführen. Leider ohne Erfolg. Damit hätte man denselben Effekt, wie 
bei einem Schaltplan-tool, bei dem man unterscheidet, ob man eine 
Gehäuse, das einen Pin hat, gar keine keine Funktion vorliegt, oder man 
zwar eine Funktion hat, die man nur nicht verwendet. So muss man in VHDL 
beide Fälle mit derselben Vorgehensweise erschlagen, entweder alles auf 
INPUT oder TRISTATE oder es ignorieren zu lassen.

Ich empfehle generell die Methode 1, weil der Pin ja real da ist und 
irgendeine Art der Programmierung braucht. Also auf dem oberen Layer 
alles auf Tristate und dafür eben auch alles, was angeschlossen ist, 
verdrahten.

Die anderen Thematik, in einem nicht-physischen Design Signale offen zu 
lassen, kriegt man damit halt nicht hin. Das würde mein Konzept aber 
auch ermöglichen, Signale offen lassen zu können und dies als gewollt 
deklarieren zu können. Gerade heutzutage, wo viele mit Cores arbeiten, 
bei denen X-Funktion brach liegen und viel wegsynthetisiert wird, gibt 
es Hundertausende Warnings, die man so vermeiden könnte. Im Sinne einer 
Design-Validierung hätte das IMHO große Vorteile.
OP Moderator Persönliche Seite #6240026
Jürgen S. schrieb:
> Das würde mein Konzept aber auch ermöglichen, Signale offen lassen zu
> können und dies als gewollt deklarieren zu können.

Ja, das ist das, was ich mit dem Äquivalent eines "Unused pin ERC 
markers" (wir bei den EDA-Tools in der Regel als Kreuz dargestellt) 
meinte.

OK, so weiß ich zumindest, dass ich da nichts übersehen habe. Die 
message filters werde ich mal versuchen zu finden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.