Testbench für bidirectionale Leitung

Gast #4145214
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
Gast #4145219
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.
Gast #4145485
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.
Gast #4146249
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.
Gast #4146369
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)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.