Wenn ich mit einem FF auf einen Ausgang gehe, gelangt das Signal an einen physikalischen Ausgangsbuffer. Bei einem bidirektionalen Pin kann ich den Ausgang ja wieder abfragen, im Gegensatz zu einem normalen Design, wo ich den Ausgang nur über ein Zwischensignal abfragen kann. Nun ist die Frage, wo die Information real abgegriffen wird? Ist es am Ausgang des FFs, vor dem Buffer, sodaß das Signal voll synchron im Design zur Verfügung steht oder ist es tatsächlich am Pin, womit ja eine erhebliche Verzögerung entsteht, man aber die Leitung sehen kann.
Am Pin, wenn das Port als inout deklariert ist.
Die Beschaltung dr I/O-Buffer findest du in jedem FPGA-Datenblatt. Normalerweise wird direkt am Eingang von aussen verzweigt in input und output.
An Pin wird schonmal gar nix abgegriffen. Dafür bräuchte es ja für jeden Pin einen zweiten Bondingdraht -> viel zu teuer. Wenn überhaupt, dann am Pad. Im FPGA-Editor von Xilinx kann man die Signalwege sehr schön sehen. Leider hab ich den hier nicht parat, so dass ich jetzt nicht nachsehen kann.
Wie waere es mit einem Blick in das Datenblatt und eventuelle Userguides?
>An Pin wird schonmal gar nix abgegriffen. Dafür bräuchte es ja für jeden >Pin einen zweiten Bondingdraht -> viel zu teuer. Wäre auch unnötig, da es zwei vollkommen parallel Drähte wären, wo doch einer reicht. Ein Verbindung zum Pin muss ja bestehen, weil sonst die Funktion "IN" nicht ginge. Und genau deshalb kann auch nicht vor dem Ausgangsbuffer abgegriffen werden, weil sonst der Input, die Wikrung des Pins nicht sehen würde. Klar, hat man dann mehr Verzögerung bei den Lese des OUTs, weil beide Buffer dazu kommen. Die sind aber schnell - die /Lauf-Schaltzeit hängt dann sogar mehr an dem, was aussen dran ist.
Sollte dem Problem nicht prinzipiell aus dem Weg gegangen werden, indem man, wenn man das Signal, was man rausgibt, braucht, ein Zwischensignal einführt? Damit ist man immer auf der sicheren Seite und kommt nie auf die bestimmt nicht so gute Idee, einen INOUT zu verwenden, nur weil man das Signal braucht.
Einen INOUT Port zuverwenden, nur weil man das Signal auch lesen muss, ist sowieso falsch. Dazu ist "buffer" gedacht, aber das wird nicht normalerweise nicht empfohlen.
> Dazu ist "buffer" gedacht, aber das wird nicht normalerweise nicht > empfohlen. Siehe die entsprechenden Warnings bei der Xilinx-Synthese
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.