www.mikrocontroller.net

Forum: FPGA, VHDL & Co. AHDL- bidirektionale Leitung


Autor: Dimitri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey leute :)

brauche eure hilfe, hab folgendes problem:
- von einem DSP gehen die leitungen ins FPGA. FPGA ist wie eine pipe.


    ----------        ----------        --------------------
    |        |        |        |        | sonstige Logik,  |
    |   DSP  |==<==>==|  FPGA  |==<==>==| controller, MCU, |
    |        |        |        |        | etc...           |
    ----------        ----------        --------------------

- wie kann man in AHDL bidirektionale leitung realisieren?

Autor: TobiFlex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am besten in der Hilfe von Quartus nach "TRI Primitive" suchen.
Hier ist ein kurzer Beispielcode.
Viele Grüße
TobiFlex

SUBDESIGN tristate
(
  ...
  data[7..0]    :BIDIR;
  ...
)
VARIABLE
  t_data[7..0]  :TRI;
  ...
BEGIN
DEFAULTS
  t_data[].oe=GND;         --Bus tristate
  ...
END DEFAULTS;
  data[]=t_data[].out;
  IF Bedingung THEN
    t_data[].oe=VCC;     --Bus aktivieren
    t_data[].in=PAI[];   --Daten für Ausgang
  END IF;
  IF Bedingung THEN
    PBO[].ena=VCC;
    PBO[]=data[];        --data lesen
  END IF;
END;

Autor: Dimitri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey, danke man.

aber ich hab es nicht ganz verstanden was PAI[] und PBO[] bedeutet...


Autor: TobiFlex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PAI[] und PBO[] sind vom Namen her unwichtig. PAI[] steht für den Vector 
dessen Daten auf den Bus sollen und anhand von PBO[] sieht man wie die 
Daten vom Bus gelesen werden. PAI[] könnte also z.B auch IN[] oder 
beliebig anders heissen. Genauso PBO[].

Viele Grüße
TobiFlex

Autor: Dimitri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
alles klar, danke...

sitze irgendwie verplannt vor dem PC heute... ;)

Autor: Dimitri (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hey TobiFlex, brauch nochmal deine hilfe.

also, i habe folgendes code:

subdesign tri_dff
(
  wr, rd : input;
  data, datb : bidir;
)
variable
  tria, trib : tri;
begin
  DEFAULTS
    tria.oe=GND;         --Bus tristate
      trib.oe = gnd;
  END DEFAULTS;

  datb = tria.out;
  data = trib.out;

  if (wr & !rd) then
    tria.oe = vcc;
    tria.in = data;
  elsif (!wr & rd) then
    trib.oe = vcc;
    trib.in = datb;
  end if;
end;

aber irgendwie übernimmt er die ausgänge nicht, oder irre ich mich???

im anhang ist ein waveform...

Autor: TobiFlex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich lassen sich die Signale nicht mit sich selbst "tristaten". 
Nimm man extra INPUTs - dann sollte es klappen.

subdesign tri_dff
(
  wr, rd : input;
  data, datb : bidir;
  data_in, datb_in : input;

)
variable
  tria, trib : tri;
begin
  DEFAULTS
    tria.oe=GND;         --Bus tristate
      trib.oe = gnd;
  END DEFAULTS;

  datb = tria.out;
  data = trib.out;

  if (wr & !rd) then
    tria.oe = vcc;
    tria.in = data_in;
  elsif (!wr & rd) then
    trib.oe = vcc;
    trib.in = datb_in;
  end if;
end;

Autor: Dimitri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen vielen vielen dank für deine hilfe :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.