Forum: FPGA, VHDL & Co. D-Flip Flop: Daten werden nicht übernommen


von Karlheinz (Gast)


Angehängte Dateien:

Lesenswert?

An den Osc-Pin ist ein 10 MHz Oszillator angeschlossen. Die 10 MHz 
werden durch 2 geteilt werden und dann den Clockeingängen zugeführt. Das 
Teilen durch 2 funktioniert -  die Clockeingänge reagieren aber nicht 
auf die durch 2 geteilte Frequenz. Delay1A sollte das Signal von Tx1 
übernehmen.

Wo liegt mein Fehler?

Im Anhang ist das Simulationsergebnis und hier kommt das 'Programm':


Device   F1502plcc44;

PIN 13 = Tx1 ;

NODE Delay1A ;
NODE Delay1B ;

NODE Clock ;

PIN 9 = Osc ;

Clock.CK = Osc ;

Clock.D  = !Clock ;

Delay1A.CK = Clock ;
Delay1B.CK = Clock ;

Delay1A.D  = Tx1 ;
Delay1B.D = Delay1A ;

end ;

von Karlheinz (Gast)


Lesenswert?

Sind denn alle CPLD Experten im Urlaub?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Bin zwar kein Experte aber...
Ich glaub viele haben einfach das Problem:
- Sie kenne den Chip nicht (F1502 hab ich noch nie was von gehört)
- Entwicklungsumgebung (WinCULP? Die meisten nutzen wohl ISE/Modelsim 
oder Altera equivalent)
- Verwendete Beschreibungssprache (Was ist das? Vieleicht ein paar 
Komentare im Quellcode)

von Karlheinz (Gast)


Lesenswert?

Hier die Kommentare:

Programmierumgebung ist WinCupl von Atmel. Die Sprache nennt sich Cupl.

Das D-FF Clock soll die 10 MHz durch 2 teilen.

Die D-FFs Delay1A bzw. Delay1B sollen dann mit den 5 MHz betrieben 
werden und das Signal Tx1 verzögern (Simulation siehe ersten Beitrag).


Device   F1502plcc44;                /* ATF1502AS von ATMEL */

PIN 13 = Tx1 ;

NODE Delay1A ;                      /* D-Flip Flop 1. Delay   */
NODE Delay1B ;                      /* D-Flip Flop 2. Delay   */

NODE Clock ;                        /* D-Flip Flop als Teiler */

PIN 9 = Osc ;                       /* Eingang 10 MHz         */

Clock.CK = Osc ;                    /* 10 MHz vom Pin 9       */

Clock.D  = !Clock ;                 /* */

Delay1A.CK = Clock ;                /* 5 MHz vom D-FF Clock  */
Delay1B.CK = Clock ;                /* dito                  */

Delay1A.D  = Tx1 ;                  /* Tx1 1. Delay          */
Delay1B.D = Delay1A ;               /* Tx1 2. Delay          */

end ;

von Karlheinz (Gast)


Lesenswert?

Einen Workaround habe ich immerhin gefunden:

Wenn ich das durch 2 geteilte Signal erst auf einen Pin ausgeben und 
dann wieder auf die .CK Eingänge gebe - funktioniert es.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Na das ist ja keine Lösung... Können die Atmel Tools eine Art 
Schaltplan/RTL View generieren? Vieleicht sieht man da was drauf.

von Karlheinz (Gast)


Lesenswert?

Nein leider nicht. WinCupl besteht aus dem Compiler und dem Simulator. 
Das war es. RTL = Right To Leave?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

RTL = Register Transfer Level :)
Gehts den auch auf der Harware nicht? Vieleicht spinnt nur der Simulator 
in diesem Punkt.

von Karlheinz (Gast)


Lesenswert?

Ohne Workaround geht auch die Hardware nicht.

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.