mikrocontroller.net

Forum: FPGA, VHDL & Co. AD-Wandler MP7684, CPLD XC9572-15, falling_edge()


Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

Ich habe in meiner Bastelkiste einen schnellen AD-Wandler MP7684 mit bis 
zu 20 MHz Abtastfrequenz und spiele mit dem Gedanken, auf einer 
Lochrasteplatine eine primitive "Speicher-Oszi" Schaltung 
zusammenzufrickeln. Die Steuerung des AD-Wandlers soll ein XC9572-15 
CPLD übernehmen.
Im Datenblatt des AD-Wandlers steht folgendes:
>> If another DFF follows the ADC, it is recommended that the system
>> latches the data at the negative going edge of the clock.
>> This will work at any frequency.
Also die Daten vom AD-Wandler muss man mit der fallenden Flanke 
übernehmen.

Ich habe folgenden VHDL Prozess testweise synthetisiert und im "RTL 
Schematics" geguckt, was dabei rauskommt:
    ADC_SAMPLE_PROCESS: process (CLK, RST) begin
        if falling_edge(CLK) then
            if RST = RST_ACTIVE then
                ADC_DATA_SYNC <= (others => '0');
            else
                ADC_DATA_SYNC <= ADC_DATA_RAW;
            end if;
        end if;
    end process ADC_SAMPLE_PROCESS;
Es sieht so aus, dass es zwischen dem CLK_I und dem CLK-Eingang des 
D-Registers (ADC_DATA_SYNC) einen Inverter gibt.
Das ist der Punkt, worüber ich nachdenke. Es gibt nämlich im Datenblatt 
des AD-Wandlers eine "Data Hold Time", die im Bereich von 13 bis 17 ns 
liegt. D.h. nach der fallenden Flanke gibt der AD-Wandler die Daten noch 
13 bis 17 ns lang aus, danach ändern sie sich.

Im Datenblatt zum CPLD gibt es folgende Werte
"GCK buffer delay" = 3 ns
"Combinatorial logic propagation delay" = 3 ns
"Register setup time" 3.5 ns
"Register hold time" 4.5 ns

In Summe 14 ns... also größer als die "Data Hold Time" des AD-Wandlers. 
Es würde also nicht funktionieren.
Meine Frage dazu wäre, ob meine Rechnung stimmt? Ist es richtig, die 
"Combinatorial logic propagation delay" zu berücksichtigen (wegen 
falling_edge() und dem zusätlichen Inverter)? Hat viellecht jemand einen 
Tipp/Kommentar für mich o.ä.?

Danke,
Alex

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.