Forum: FPGA, VHDL & Co. Single-ended Signal aus zwei Signalen in FPGA


von avatar (Gast)


Lesenswert?

Hallo,

für ein Projekt muss ich zwei Signale im FPGA zu einem single-ended 
Signal "zusammenführen". Die Schaltung muss ohne CLK auskommen, 
gesampelt wird später.

Die Wahrheitstabelle sollte also wie folgt aussehen und im Prinzip die 
Funktion eines differenziellen Eingangsbuffers des FPGAs nachbilden:
1
| i | ib | O         |
2
|---+----+-----------|
3
| 0 |  0 | No Change |
4
| 0 |  1 | 0         |
5
| 1 |  0 | 1         |
6
| 1 |  1 | No Change |

Logischerweise wird dafür irgendeine Form von Speicher benötigt, was 
wiederum zu einem Looped Latch / zu einer Loop führt.

Nur ein Signal zu verwenden (eg. i oder ib) sorgt leider nicht dafür 
dass ein Ausfall einer der beiden Leitungen erkannt wird und ist daher 
keine Lösung.

Hat jemand eine Idee?

: Bearbeitet durch Moderator
von Bürovorsteher (Gast)


Lesenswert?

Halbgares Zeugs.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

avatar schrieb:
> Die Schaltung muss ohne CLK auskommen, gesampelt wird später.
Du hast keinen Takt? Oder du willst keinen Takt?
Wie schnell ändern sich diese Eingangssignale?

> Logischerweise wird dafür irgendeine Form von Speicher benötigt, was
> wiederum zu einem Looped Latch / zu einer Loop führt.
Zeig mal wo da eine Schleife gemeldet wird.
Für mich sieht das nach einem Latch aus, das mit 01 gesetzt und mit 10 
zurückgesetzt wrid. Ich sehe da keine Rückkopplung.
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
4
entity difflatch is
5
    Port ( p,n : in  STD_LOGIC;
6
             o : out STD_LOGIC);
7
end difflatch;
8
9
architecture Behavioral of difflatch is
10
begin
11
   o <= '1' when p='1' and n='0' else
12
        '0' when p='0' and n='1';
13
end Behavioral;
Und die Synthese "klappt" ja auch irgendwie.

> Hat jemand eine Idee?
Trotzdem ist das Latch-Zeugs mit vorgeschalteter Kombinatorik wildes 
Gefrickel.
Ich würde hier eher die Eingangssignale eintakten und dann "richtig" und 
taktsynchron verarbeiten. Mit einem Taktmanager/PLL/DLL kann man für 
dieses "lokale Problem" ja nötigenfalls eine recht hohe Taktfrequenz 
generieren.

: Bearbeitet durch Moderator
von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

avatar schrieb:
> | i | ib | O         |
> |---+----+-----------|
> | 0 |  0 | No Change |
> | 0 |  1 | 0         |
> | 1 |  0 | 1         |
> | 1 |  1 | No Change |

Sieht irgendwie stark nach NRZI aus? Willst du da den Takt 
rueckgewinnen?

von avatar (Gast)


Lesenswert?

> Du hast keinen Takt? Oder du willst keinen Takt?
> Wie schnell ändern sich diese Eingangssignale?
Ich will an der Stelle keinen Takt. Die eingehenden Signale sind sehr 
langsam < 1 Mbit.

> Zeig mal wo da eine Schleife gemeldet wird.
> Für mich sieht das nach einem Latch aus, das mit 01 gesetzt und mit 10
> zurückgesetzt wrid. Ich sehe da keine Rückkopplung.
Wollte wohl klüger sein als das Tool und die resultierende Gleichung 
wurde dann nicht in ein Latch, sondern in eine LUT + Loop synthetisiert. 
Peinlich.

> Trotzdem ist das Latch-Zeugs mit vorgeschalteter Kombinatorik wildes
> Gefrickel.
> Ich würde hier eher die Eingangssignale eintakten und dann "richtig" und
> taktsynchron verarbeiten. Mit einem Taktmanager/PLL/DLL kann man für
> dieses "lokale Problem" ja nötigenfalls eine recht hohe Taktfrequenz
> generieren.
Ich denke für derartig langsame Eingangssignale sollte es keine Probleme 
mit etwas kombinatorischer Logik geben, oder siehst du das anders?

Danke jedenfalls!

von avatar (Gast)


Lesenswert?

> Sieht irgendwie stark nach NRZI aus? Willst du da den Takt
> rueckgewinnen?

Ne, keine Taktrückgewinnung ;-)

von Uwe Bonnes (Gast)


Lesenswert?

RS-Flipflop?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Uwe Bonnes schrieb:
> RS-Flipflop?
Auch das ist im Grunde ein Latch. Das "Schlimme" an einem Latch ist 
übrigens nicht das Latch an sich, sondern hier die Kombinatorik, die vor 
dem Latch sitzt und dieses ansteuert.

avatar schrieb:
> Ich denke für derartig langsame Eingangssignale sollte es keine Probleme
> mit etwas kombinatorischer Logik geben
Einen Glitch kann es schon geben, wenn nur 1 Pegelwechsel am Tag 
stattfindet.

> Die eingehenden Signale sind sehr langsam < 1 Mbit.
Vermutlich pro Sekunde?
Was spricht dann dagegen, eine Taktdomäne mit 10...100MHz aufmachen, die 
Signale einzutakten und ordentlich und sachgerecht zu verarbeiten?

: Bearbeitet durch Moderator
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
Noch kein Account? Hier anmelden.