Forum: FPGA, VHDL & Co. Testbench für bidirectionale Leitung


von Joe (Gast)


Lesenswert?

Hallo,

ich lese gerade einen speziellen Chip mit Hilfe eines FPGAs aus. Er hat 
ein serielles Protokoll mit Chipselect, Clock und einer Datenleitung. 
Diese ist bidirektional. Ich schicke also ein Kommando hin und er 
schickt mir dann als Slave die gewünschten Daten zurück. Das 
rausschieben des Codeworts sieht ganz gut aus, ich hatte jetzt nur Lust, 
das einlesen auch mal zu überprüfen. Gibt es da eine einfache 
Möglichkeit? Ich möchte nur ungern, das Verhalten des Chips auch noch in 
VHDL abbilden...

Habe leider den Code nicht hier, der Ausgangsbuffer ist aber von der 
Form
1
  data_inout <= daten_raus when ( oe = '1' ) else  'Z';
2
  daten_rein <= data_inout;

Grüße
Joe

von Fitzebutze (Gast)


Lesenswert?

Hi,

damit's keine Kollisionen gibt, kannst Du statt '0' und '1' auch die 
schwachen Treibersignale 'H' und 'L' nutzen, ansonsten simuliert sich 
sowas wie normale I/Os. Ansonsten kannst du dir bei diversen 
i2c-Testbenches was abgucken.

von Schlumpf (Gast)


Lesenswert?

Na ja, da das Einlesen ja vermutlich synchron zum Takt erfolgt und somit 
der Slave ja die Daten synchron zum Takt ausgeben muss UND du auch DATEN 
einlesen willst, die irgendwo erzeugt werden müssen, wirst du nicht 
drumrum kommen, zumindest das Interface des Slave minimalistisch zu 
beschreiben.

von uwe (Gast)


Lesenswert?

Hm normnalerweise macht man sowas mit nem Open Collector Treiber, wenn 
man kein Datenrichtungsignal vorgegeben bekommt oder vorgen kann. Denn 
du kannst ja dein tristate Ausgang nicht steuern da dir das Out Enable 
Signal fehlt, und du kannst das IC nicht steuern da es ja auch nur 
CS,Clk und IO besitzt.
Also gibt keiner die Datenrichtung vor. Sowas macht man wie bei I2C mit 
OC Treiber und nen Pullup.

von berndl (Gast)


Lesenswert?

bau doch einfach einen Zaehler dazu. Wenn du anfaengst mit deinen 
Ausgangsdaten zaehlst du einfach die Takte/Bits mit und nach soundsoviel 
Bits schaltest du die Datenleitung auf 'Z'. Dein Counterpart macht genau 
das gleiche, nur umgekehrt (erst 'Z', dann Daten raustreiben)

von FPGA-Pongo (Gast)


Lesenswert?

Damit nimmt man aber die korrekte Funktion der Schaltung vorweg und das 
ist keine formell richtige Simulation. Wenn. dann eher mit den L+H und 
der rictigen Lib.

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.