02.01.2013 Aufrufe

Schaltungstechnik

Schaltungstechnik

Schaltungstechnik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

562 8 Analog/Digitale Schnittstelle<br />

Nach Betrachtung einer möglichen Realisierung eines A/D-Wandlers gemäß<br />

dem iterativen Wägeverfahren ist im Folgenden ein VHDL-AMS Modell aufgeführt,<br />

das ebenfalls auf dem Iterationsverfahren beruht. Als digitale Eingangssignale<br />

werden benötigt: Start für den Start der Wandlung und das Clock-Signal.<br />

Daneben stehen die analogen Eingangssignale: vin ist das zu konvertierende Eingangssignal,<br />

vdda und vssa sind die analogen Versorgungsspannungen, vrp und vrn<br />

sind analoge Referenzspannungen. Als Ergebnis erhält man das Digitalwort data<br />

mit dem Wandlungsergebnis und eoc als Steuersignal nach Abschluss der Wandlung.<br />

Die eigentliche Modellbeschreibung erfolgt durch den Iterationsalgorithmus<br />

definiert in dem Prozess mit dem Label conversion. Dazu werden im Prozess die<br />

Variablen th und v eingeführt. Dabei ist th das „Gewicht“ und v die zu wägende<br />

Größe.<br />

library ieee;<br />

use ieee.std_logic_1164.ALL;<br />

use ieee.math_real.ALL;<br />

entity adc is<br />

generic (g_vdda : real := 5.0); -- max. voltage at VIN<br />

port (signal Start : in std_logic; -- start conversion<br />

signal Clock : in std_logic; -- clock<br />

signal eoc : out std_logic; -- end of conversion<br />

signal data : out std_logic_vector(0 to 7); -- data out<br />

terminal<br />

vdda, -- positive supply<br />

vssa, -- negative supply<br />

vrn, -- negative reference<br />

vrp, -- positive reference<br />

vrn, -- negative reference<br />

vin : electrical); -- input signal<br />

end entity adc;<br />

architecture behave of adc is<br />

quantity q_conv across c_in through VIN to VRN; --input-signal<br />

quantity q_vrp across c_vrp through VRP to vssa;<br />

begin -- behave<br />

c_vrp == 0.0;<br />

c_in == 0.0;<br />

conversion : process<br />

variable th : real;<br />

variable v : real;<br />

begin<br />

eoc

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!