Zuweisen Drähte tief in einem verschachtelten Satz von Modulen
-
24-09-2019 - |
Frage
Ich habe einen Draht, der über 4 Ebenen tief ist, und ich möchte wirklich nicht den Aufwand, es um die Hierarchie zu propagieren auf. Gibt es eine Möglichkeit, den Draht mit irgendeiner Art von Referenzierung zuweisen? Ich weiß, dass ich den Draht durch Eingabe zugreifen kann:
cca.cpu0.cca3_cpu.nc1_cp_checkpoint
und
assign cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
funktioniert nicht
Wer weiß, von irgendeiner Weise, es zu tun?
Lösung
Da Sie nicht genügend Code gezeigt haben, für alle, um Ihr Problem zu reproduzieren, noch haben Sie Details zu Ihrem Problem ergab, alles, was wir tun können, ist zu erraten.
Meine Vermutung ist, dass nc1_cp_checkpoint
als reg
in Ihrer cca3_cpu
Instanz deklariert wird. Sie können keinen Wert auf einen reg
unter Verwendung einer kontinuierlichen Zuordnung zuweisen. Versuchen Sie, eine verfahrens Zuordnung zu verwenden (innerhalb eines initial
oder always
Block), zum Beispiel:
initial begin
cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
end
Wenn das löst nicht das Problem:
- Alle anzeigen relevant Code
- Elaborate auf "nicht funktioniert". Zeigen Sie Ihre Fehlermeldung, falls vorhanden.
Update: Ein weiteres potenzielles Problem entsteht, wenn nc1_cp_checkpoint
ist ein kontinuierlich angetriebener wire
in Ihrer cca3_cpu
Instanz. In diesem Fall Ihr zweiter assign
verursachen könnte Streit, der den Wert go unbekannt (x
) machen würde. Sie könnten in der Lage sein, dieses Problem zu vermeiden force
und release
verwendet wird.
Andere Tipps
Von Ihrem Tag, scheinen Sie angibt, dass Sie VCS verwenden. Sind Sie ein immer:
Error-[XMRE] Cross-module reference resolution error
Cross module resolution failed, token BLAH'.
Originating module 'foo'. "foo.v", 666:
Das würde bedeuten, dass Ihr Pfad nicht korrekt ist.
Cross-Modul Referenzen funktionieren, aber sie können nicht aktiviert werden, wenn Sie Ihr Design zu synthetisierbaren Konstrukte sind einzuschränken. Look up "cross-Modul Referenz" in der VCS Bedienungsanleitung.