Hallo Zusammen, Hätte da eine Frage... Habe ich einen XC3S400-4FT256C und programmiere in VHDL. Benutze zur Zeit meine I/Os nur als Single Ended. Wollte jetzt gerne auf Differential Signals umsteigen. Anscheinend reicht es nicht aus dass ich nur in der UCF Datei den IOSTANDARD = LVDS_25 setze... Bei der Suche auf Xilinx.com habe nur wenig Erfolg gehabt, bzw. verstehe ich nicht für was ich einen Buffer erzeugen muss. Ausserdem werden dort auf Instanzen OBUF_LDVS, INV, und OBUF_LVDS zurückgegriffen. Kann die aber doch nicht einfach als Black Boxes instanzieren?? Bei den Pins in meienm Target habe ich aufgepasst dass ich auch zwei Paare benutze. Bin mir auch nicht so wirklich sicher ob meine Hardware diesen Modus unterstützt. Das Datenblatt wiederspricht sich an einigen Stellen. Vielen Dank im vorraus.
Hallo Michi, so weit ich weis gibt es bei vielen neueren FPGAs PAD-Paare die dafür ausgelegt sind das zu machen was du willst. Zum beispiel das: OBUFTDS_inst : OBUFTDS generic map ( IOSTANDARD => "DEFAULT") port map ( O => O, -- Diff_p output (connect directly to top-level port) OB => OB, -- Diff_n output (connect directly to top-level port) I => I, -- Buffer input T => T -- 3-state enable input ); könnte dir helfen. Ist eine Vorlage von Xilinx im:VHDL\Device Primitive Instantation\FPGA\I/O Components\Output zu finden. Ich weis von einem Kollegen das die Typen im Namen hinten ...DS heissen. Leider gibt es die nicht für CPLDs, was mir helfen würde. Gruß, Ulrich
> XC3S400-4FT256C
Wenn es nicht unbedingt gleich ein Tristate LVDS-Ausgang sein muß:
1 | LVDSO_0 : OBUFDS |
2 | generic map (IOSTANDARD => "BLVDS_25") |
3 | port map ( I => lvdsout0, |
4 | O => lvdsout0_p, |
5 | OB => lvdsout0_n |
6 | );
|
Und in der UCF Datei:
1 | NET "lvdsout0_n" LOC = "W9" | IOSTANDARD = LVDS_25 ; |
2 | NET "lvdsout0_p" LOC = "V9" | IOSTANDARD = LVDS_25 ; |
LVDS-Eingänge dann z.B. über:
1 | -- Takt
|
2 | LVDS_CLOCK : IBUFGDS |
3 | port map ( O => lvdsclkin, |
4 | I => lvdsclkin_p, |
5 | IB => lvdsclkin_n |
6 | );
|
7 | |
8 | -- D0
|
9 | LVDS_0 : IBUFDS |
10 | port map ( O => lvdsin0, |
11 | I => lvdsin0_p, |
12 | IB => lvdsin0_n |
13 | );
|
Zur Simulation solltest du dann noch die Xilinx Primitives einbinden:
1 | -- Xilinx Primitives
|
2 | Library UNISIM; |
3 | use UNISIM.vcomponents.all; |
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.