Signale am gegenseitigen Überschreiben hindern

Gast #1946435
Lesenswert?
• ▲
▼
Hi,
ich habe hier einige seriell angeordnete FPGAs, auf denen jeweils die 
gleichen Bitfiles geladen sind. Wenn die DLL auf einem dieser FPGAs 
locked, soll dies an einen weiteren FPGA weitergegeben werden. Das 
Problem ist, dass dieser weitere FPGA nur einen IN-Port für alle 
locked-Signale hat. Wie ist es möglich, dass sich die Locked-Status 
nicht gegenseitig überschreiben?
Einzige Möglichkeit, die FPGAs zu unterscheiden ist eine in der 
Umgebungshardware festgelegte ID.

So habe ich es ohne Erfolg versucht:
1
LOCKED <= s_locked when board_id = "11" else 'Z';
Moderator (Firma: Titel) Persönliche Seite #1946472
Lesenswert?
• ▲
▼
>  dass dieser weitere FPGA nur einen IN-Port für alle locked-Signale hat.
Wenn alle FPGAs hintereinander kommen, dann braucht doch ein jedes nur 1 
Eingang vom vorigen und 1 Ausgang zum nächsten.

> ich habe hier einige seriell angeordnete FPGAs, auf denen jeweils die
> gleichen Bitfiles geladen sind. Wenn die DLL auf einem dieser FPGAs
> locked, soll dies an einen weiteren FPGA weitergegeben werden. Das
> Problem ist, dass dieser weitere FPGA nur einen IN-Port für alle
> locked-Signale hat.
Könntest du das bitte in einer Skizze darstellen?
Gast #1946507
Lesenswert?
• ▲
▼
> LOCKED <= s_locked when board_id = "11" else 'Z';

Hm, die Beschreibung des Problems ist arg schwammig. Aber erstens willst 
du doch sicher wissen, ob alle FPGAs an der Leitung einen Lock haben.

Dann sollte es eher so laufen (wired and).

locked_out <= 'Z' when s_locked='1' else '0';

Und zweitens brauchst du an dem Eingangspin noch einen Pullup, sonst 
wabbert das zu sehr rum, wenn alle gelocked sind.
Moderator (Firma: Titel) Persönliche Seite #1947688
Lesenswert?
• ▲
▼
J.D. schrieb:
> Gibt es denn die Möglichkeit, einen PULLUP-Input zu instantiieren?
Ein Work-Around:
mach einen PullUp-Inout-Port und schreibe auf den ein 'Z':
1
  port ( pullupeingang : inout std_logic; ...
2
  :
3
  pullupeingang <= 'Z';  -- Inout wird nur als Eingang verwendet
4
  :
5
  eingang <= pullupeingang;
Und dann im UCF auf diesen Port einen Pullup konfigurieren...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren