Hallo, in Anlehnung an den Thread Beitrag "Tristate nur in Top-Ebene?" wüsste ich gerne, wer in dieser Art seine Designs aufsetzt und das eine oder andere Feedback dazu abgeben kann? Es geht darum, sämtliche Treiber im top level zu beschreiben, um IO-Zellen von der Logik zu separieren. So hab ich das zumindest verstanden. Wie sieht das in der Praxis aus? Werden dann sämtliche Treiber manuell im Top Level instanziiert und das wars? Oder gibts noch andere Dinge auf die man achten muss?
guest schrieb: > wer in dieser Art seine Designs aufsetzt Ich. > und das eine oder andere Feedback dazu abgeben kann? Funktioniert gut. Oder wie wolltest du das Feedback? Wenn du inout quer über alle Module verwendest kannst du schnell mal eine "Buskollision" bekommen (es darf ja jedes Modul auf so einen Port schreiben), die der Synthesizer nicht auflösen kann. D.h. deine Treiberquellen können weit verstreut sein, das macht die Fehlersuche nicht einfach... Wenn du nur out und in Ports verwendest, dann muß dein Adressdecoder in 1 Modul zusammengefasst sein (das ist dann idR. das Top Modul oder irgendwas geradlinig darunter). Du siehst Überlappungen also sofort.
Wie setzt man das denn nun um? Muss ich da etwas manuell instanziieren? Oder reicht es wenn vom top level aus nur noch Signale vom Typ in und out in darunter liegende Hierachien geleitet werden?
guest schrieb: > Oder reicht es wenn vom top level aus nur noch Signale vom Typ in und > out in darunter liegende Hierachien geleitet werden? Ja. > Muss ich da etwas manuell instanziieren? Ja: den bidirektionalen Treiber eben...
1 | datain <= databus; |
2 | databus <= dataout when enableout='1' else (others=>'Z'); |
Und diese datain und dataout gibst du nach unten weiter.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.