mikrocontroller.net

Forum: FPGA, VHDL & Co. wie groß muß das CPLD ungefähr sein ?


Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

die Schaltung des LA vom Micha könnte gut einen CPLD vertragen, um die 
Logik etwas zu reduzieren.

Beitrag "8 Kanal 50Ms/s AVR Logic-Analyzer"

Wie groß müßte das CPLD sein ? 9572, 9536 oder 144 ?
Kann man das so pauschal schätzen ?

Danke

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, dazu nimmt man das Design in die ISE rein, stellt beim Typ auf 
95xx Auto und lässt es durchrechnen. Am Ende spuckt ISE aus, wieviele 
Makrozellen das Ding benötigt, folglich welcher Chip genommen werden 
muss. Das geht auch mit der kostenlosen WebPack Version. Dann simuliert 
man das ganze, bis die Logik korrekt läuft. Dazu braucht´s erst keine 
Hardware. Die kauft man dann, wenn man das Design grob fertig hat

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie groß müßte das CPLD sein ? 9572, 9536 oder 144 ?
Erster Schritt: Ein- und Ausgänge abzählen
Zweiter Schritt: Flip-Flops und andere Speicherglieder zählen

> 9572, 9536 oder 144 ?
Es gibt nicht nur Xilinx CPLDs...

BTW:
Man könnte sich einen Oszillator sparen, wenn auch ein unsymmetrischer 
20MHz Takt ausreichen würde (und so wie die Schaltung aussieht würde er 
das). Das kostet dann in der einfachsten Version (Schieberegister) 
allerdings 6 FFs ;-)

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na mal schauen was ISE Webpack so her gibt. Macht ja nur Sinn, wenn die 
Erfassung per Schaltplan möglich wäre und entsprechende Symbole 
verfügbar sind. Lattice läßt sich ja auch symbolisch erfassen ( Gatter, 
Zähler etc.)
Das Design per VHDL zu erfassen bin ich nicht in der Lage. Würde mit 
Zeichnen aber auch nur Sinn machen, wenn der CPLD bezahlbar zB.5€ wäre.
Wenn dafür einer für 10 oder 15€ gebraucht würde, ist der Aufwand 
daneben. Deswegen die Frage.

Danke

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stephan Henning schrieb:
> na mal schauen was ISE Webpack so her gibt. Macht ja nur Sinn, wenn die
> Erfassung per Schaltplan möglich wäre und entsprechende Symbole
> verfügbar sind. Lattice läßt sich ja auch symbolisch erfassen ( Gatter,
> Zähler etc.)

Das geht auf jeden Fall. Wenn man will, kann man das ganze Design als 
Schematic erstellen.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wenn der CPLD bezahlbar zB.5€ wäre.
Auf jeden Fall fliegen dann die 5V CPLDs aus dem Rennen:
XC 9572-15 TQ100  Xilinx CPLDs  12,75 €

Mehr Chancen hast du bei den 3,3V-Typen:
XC 95144XL TQ100   High-Performance CPLDs  6,60 €  
XC 9572XL  TQ100   High-Performance CPLDs  3,65 €
Quelle: Angelika

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tja es ist wie immer.... der Bedarf regelt den Preis.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, die einzigen getakteten Elemente da drin sind die Adresszähler, 
also 12 Bit gerade mal. Dazu brauchts 12 Makrozellen. Der Rest ist 
Kombinatorik...der billige 9572XL im PLCC84 Gehäuse reicht zumindest von 
den Makrozellen her locker. Anschlüsse müsste man mal durchzählen.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stephan Henning schrieb:
> tja es ist wie immer.... der Bedarf regelt den Preis.
Hier regelt offenbar eher der Preis den Bedarf:
>> ... wenn der CPLD bezahlbar zB.5€ wäre. Wenn dafür einer
>> für 10 oder 15€ gebraucht würde, ist der Aufwand daneben.
 ;-)

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 95XL sind übrigens 5V IO-tolerant, muss man also nur einen 3,3V 
Regler für die Betriebsspannung anbauen.

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Stephan Henning schrieb:
>> tja es ist wie immer.... der Bedarf regelt den Preis.
> Hier regelt offenbar eher der Preis den Bedarf:
>>> ... wenn der CPLD bezahlbar zB.5€ wäre. Wenn dafür einer
>>> für 10 oder 15€ gebraucht würde, ist der Aufwand daneben.
>  ;-)

Jein, Arbeitszeit im Privaten Bereich.... ist ja eh Hobby.
Dafür würde sich beim Layouten so einiges sparen lassen, hoffe ich.
Bei 15€ für den CPLD und noch etwas Kleingeld für den JTAG würde ich 
dann aber schon überlegen.

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte mich erstmal in VHDL und das CPLD-Design einarbeiten (kenne 
mich damit überhaupt noch nicht aus). Dazu habe ich mir jetzt erstmal 
das Pollin-CPLD-Board bestellt.

Mein erstes größeres Projekt soll dabei ein LA sein, da mir der 
Logicport einfach zu teuer ist (nicht im Sinn von unverschämt, sondern 
eher im Sinne meines Geldbeutels).

Daher besteht auch Interesse an dieser Projektidee. Auf dem Polin-Board 
wird ein XC95144 (keine Ahnung, welche Geschwindigkeit - werde ich erst 
in den nächsten Tagen erfahren) verwendet.

MiniLA verwendet einen XC95288 (also doppelt so groß) und ich weiß 
(noch) nicht, ob das Design da hinein passt. Ich werde aber mal die Tips 
dieses Threads als Trockenübug ausprobieren. Ich gehe aber davon aus, 
dass ich auf die Nase falle (wegen zu wenig Platz).

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christian,
lesen bildet. (nicht böse gemeint ) Aber,..
Der Mini LA ist nicht der von unserem Micha.
Der Mini La ist ein 32 Kanal 100 MS aus dem Netz, open Sorce und wurde 
hier gepimt. Der Wigbert hat mit dem andern Micha (oder der selbe ? ) 
einen Bausatz draus geacht. Es gibt noch einen Thraed hier wo es um den 
144 von Pollin geht. Die versuchen damit in richtung LA was zu machen.
Dort wärst Du richtig.
Der vom Micha ist ein 8 Kanal mit max. 50MS und hat weder mit dem einen 
noch mit dem anderen was zu tun. Mich stört nur die ganze diskrete 
Logik.
Ist nicht Soooooo viel, macht aber das Layout unnötig aufwendig. 
Deswegen will ich mal schauen os es Sinn macht die zu verpacken

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wow, 5 Gb Software zur Installation... das ist 4 Mal Win XP ohne alles.
Ich bin beeindruckt und enttäuscht.
Ich hatte gehofft dem Micha etwas Arbeit abnehmen und Erleichterung 
anbieten zu können. Ich wurde doch arg enttäuscht.
Eine Schemaitische Erfassung der Funktion war ja damals ( vor 2000) mit 
"gallileo" schon möglich. Was mich "Heute" empfängt ist ja eigentlich 
nichts anderes. Nur das damals die Software auf eine CD passte. Heute 
passt sie gerade so auf eine DVD und kann auch nicht viel mehr. ( meine 
eigene Meinung, als nicht VHDL Experte der kleine Logikschaltungen 
vereinfachen möchte.
Ich will ein Schieberegister nehmen und bekomme 16 Stück angeboten. Doch 
nirgends ein Bezug auf "reale" Hadrware ala 74165 oder 74161. Nichts. Es 
sei denn, was ein SR8LE ist, gehört Heute zur Allgemeinbildung.
Ich hatte gehofft die Schaltung vom Michael mit etwas Aufwand in ISE zu 
zeichnen und heraus zu bekommen, ob es sich lohnt. Ich stellte fest:
Nach mehreren Wochen bis Monaten, möglicher Weise.
Schade eigentlich.
Dabei hat VHDL ja eigentlich viel gemeinsam mit ASM,C und Basic.

Da passe ich, ist für mich den Aufwand nicht wert.
Ich denke der Micha ist da doch wesentlich konsequenter als andere.
Er nimmt Lochratser.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Dabei hat VHDL ja eigentlich viel gemeinsam mit ASM,C und Basic.
Da muß ich jetzt aber doch einschreiten... ;-)

VHDL ist eine System- bzw. Hardwarebeschreibungssprache. Die 
Schnittmenge mit irgendwelchen Software-Programmiersprachen liegt hier 
bestenfalls in der Verwendung des ACSII-Zeichensatzes.

> Es sei denn, was ein SR8LE ist, gehört Heute zur Allgemeinbildung.
Nein, aber es gibt Datenblätter, in denen das beschrieben ist. Genauso 
wie es Datenblätter gibt, in denen das Verhalten von 74xx Bausteinen 
beschrieben ist. Aber es wäre ausgekochter Stumpfsinn, in einem 
CPLD/FPGA Gatter der 74xx Reihe nachzubilden.

> Da passe ich, ist für mich den Aufwand nicht wert.
Schade (für dich)  :-(
Du sperrst dich da selber aus einer hochinteressanten Technik aus.

Autor: pfft.. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn dafür einer für 10 oder 15€ gebraucht würde, ist der Aufwand
daneben. Deswegen die Frage.


Bei einem Stueck ist diese frage eh irrelevant. Kauf dir ein Eis und 
vergiss das Ganze.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Stephan Henning (stephan-)

>wow, 5 Gb Software zur Installation... das ist 4 Mal Win XP ohne alles.
>Ich bin beeindruckt und enttäuscht.

Nimm die alte 4.2 oder 6.3, die reichen DICKE!

>Ich will ein Schieberegister nehmen und bekomme 16 Stück angeboten. Doch
>nirgends ein Bezug auf "reale" Hadrware ala 74165 oder 74161. Nichts. Es

Vergiss bei CPLDs die alten TTL ICs. Du bekommst REINE Gatter und 
Schieberegister, viel besser.

>Dabei hat VHDL ja eigentlich viel gemeinsam mit ASM,C und Basic.

Kaum, das sieht nur so aus.

MfG
Falk

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, über den Button Symbol Info bekommst du direkt zum Schematic 
Symbol das PDF Datenblatt aufgerufen. Sooo schwer ist das nicht. Und bau 
ja kein asynchrones Design ;)

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
auch wenn ich mich nu was weit ausm fenster lehne ...

ich hab ein fpga board gebaut mit welchem sich ebenfalls ein la 
realisieren ließe, und ich denke der aufwand dürfte auch nicht allzu 
groß sein (bis auf die beschaffung der teile, die bekommt man nicht ganz 
so einfach, außer man bestellt bei digikey, da gibts alles benötigte).
eckdaten des boards :

 - spartan 3-400
 - 1mb sram (66/100mhz)
 - avr (mega644p)
 - 2 uarts

eigentlich ist das board als audio-board konzipiert, und von daher gibt 
es noch :

 - audio-codec
 - midi-schnittstelle

das board ließe sich ohne weiteres zweckentfremden. aber bevor es soweit 
wäre präsentier ich ohnehin erstmal das (fertige) audio-board. da gibt 
es dann noch die schmankerl :

 - 128x64 grafik display mit touch
 - i2c eeprom
 - dataflash (2mbyte)

in einer nächsten verion (schon in grober planung) kommt dann noch usb 
und ne sd karte mit drauf (evtl auch ein größerer prozessor, richtung 
arm7 oder xmega und evtl sdram)

aber werde mich zu gegebener zeit in einem gesonderten thread nochmal zu 
wort melden.

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nun, das mit den Datenblättern klingt ja interesant. Das schaue ich mir 
doch glatt mal an. Wenigstens Versuchsweise.

@Lothar und Falk,

warum seht ihr so wenig Gemeinsamkeiten mit C, ASM und Basic ??
Was ist das denn das hier: ( aus dem Forum hier )

  GREEN <= "000010";
        RED <= "000000";
        BLUE <= "000000";
        IF RowCounter=100 THEN
          RED <= "111111";
          GREEN <= "000010";
          BLUE <= "000000";
        END IF;
        IF LineCounter=100 THEN
          GREEN <= "000010";
          RED <= "000000";
          BLUE <= "111111";
        END IF;

Wenn nicht C ?
Sind doch nur Zustandsbeschreibungen von Ports die von einem Zähler ( 
Rowcounter und Linecounter) abhängig sind. Ließt sich wie C. Dabei kann 
ich nur ASM und Basic. Sicher gibt es wesentlich komplexere Geschichten.
Ich habe auch keinen "Windows Assi" erwartet der mich fragt was ich 
machen will und an die Hand nimmt. Ich schau mir das mit den 
Datenblättern mal an. Villeicht wird ja doch noch was draus. Wäre ja eh 
nur Ergeiz. Verdiene meine Brötchen mit anderen Sachen. Und zu Hause 
fällt mir nichts ein wozu man ein FPGA brauchen könnte.

@pfft,
nein ich kaufe kein Eis, gehe nicht über Los und ziehe auch keine 1000€ 
ein. Wenn Du gelesen hättest, wäre Dir aufgefallen das es hier um den LA 
Entwurf vom Micha geht und nicht um EIN Stück. Das könnte für die 
Forumuser die kleine Version des MiniLa werden. Nicht jeder braucht 32 
Kanäle bei 100MS.  Ich wollte versuchen meinen Beitrag dazu zu leisten 
obwohl ich nicht so fit bin wie Du offensichtlich zu sein scheinst.
Meine letzte programmierbare Logik habe ich 1995 für einen 22V10 auf dem 
Amiga mit einer Software von Maxon gemacht. Nobody is perfect.
Ich hoffe du verzeihst meinen Bildungsrückstand.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Stephan Henning (stephan-)

>warum seht ihr so wenig Gemeinsamkeiten mit C, ASM und Basic ??

Weil sie nicht da sind, wenn man VHDL versteht.

>Was ist das denn das hier: ( aus dem Forum hier )

Zuweisungen sind trivial. Die SCHEINBAR sequentielle Abarbeitung von If 
Then wird am Ende in Hardware aber PARALLEL ausgeführt, mit einigen 
Konseqeunzen, über die ein "mal fix" auf VHDL umgeschulter Softwerker 
gern stolpert. ;-)

>Wenn nicht C ?

VHDL sieht eher nach Pascal aus.

MFG
Falk

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stephan Henning schrieb:
> @Christian,
> lesen bildet. (nicht böse gemeint ) Aber,..
> Der Mini LA ist nicht der von unserem Micha.
Habe ich auch nie behauptet. Es ging mir hier vor allem um den 
Vorschlag, für den 50MS-LA einen XC95144 zespektive das Pollin-Board zu 
verwenden.

> Der Mini La ist ein 32 Kanal 100 MS aus dem Netz, open Sorce und wurde
Das ist mir klar.

> hier gepimt. Der Wigbert hat mit dem andern Micha (oder der selbe ? )
> einen Bausatz draus geacht. Es gibt noch einen Thraed hier wo es um den
> 144 von Pollin geht. Die versuchen damit in richtung LA was zu machen.
> Dort wärst Du richtig.
Kenne ich, muß aber nicht die einzige Quelle für gute Ideen sein.
Ich möchte lernen (ja, das tue ich auch durch lesen). Daher sehe ich mir 
gerne mehrere Ideenansätze an.

> Der vom Micha ist ein 8 Kanal mit max. 50MS und hat weder mit dem einen
> noch mit dem anderen was zu tun. Mich stört nur die ganze diskrete
> Logik.
> Ist nicht Soooooo viel, macht aber das Layout unnötig aufwendig.
> Deswegen will ich mal schauen os es Sinn macht die zu verpacken
Und genaus aus diesem Grund schreibe (und lese) ich hier mit - da die 
notwendige Logik nicht so "kompliziert" ist, wie die von miniLA. Ist für 
den Anfang besser, als gleich den miniLA zu verstehen und dann auf 8 bit 
zu kastrieren.

Den letzten Satz schrieb ich auch nur als Zukunftsvision. Als Erklärun, 
wieso ich hier gerne den XC95144 sehen würde.

Ich hoffe, jetzt sind alle Klarheiten bedeitigt und die Gemüter wieder 
beruhigt.

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stephan Henning schrieb:
> Da passe ich, ist für mich den Aufwand nicht wert.
Schade, wäre ein schönes Anschauungobjekt für mich gewesen.

Mache ich vielleicht doch selber (mit teilweisem Händchenhalten der hier 
Anwesenden). Daraus könnte sich aber auch was anderes entwickeln; muss 
also nicht Michas LA sein.
Da ich noch nie etwas mit VHDL zu tun hatte, kann sich das aber
hinziehen. Ich werde erstmal das Buch "VHDL-Synthese" von 
Reichard/Schwarz durcharbeiten. Eventuell fällt da ja das bischen Logik 
für diese LA ab.

Dazu dann aber einen eigenen Thread (bzw den über den Pollin LA).

> Ich denke der Micha ist da doch wesentlich konsequenter als andere.
Wieso? Er hat das gemacht, was er kann. Handfeste Logik, wie ich sie 
auch kenne.

> Er nimmt Lochratser.
Ich möchte hier gerne virtuelle Lochraster verwenden. Die Kosten und der 
Aufwand ist dabei eher zweitrangig. Ich will daraus lernen und das kann 
durchaus mehr Wert sein.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Stephan Henning (stephan-)
> warum seht ihr so wenig Gemeinsamkeiten mit C, ASM und Basic ??
Weil die Denkweise eine komplett andere sein muß, um zu einem 
lauffähigen, sinnvollen und schönen Design zu kommen.
Um nur mal dein kopiertes Beispiel kurz aufzugreifen:
        GREEN <= 1;
        :
        IF RowCounter=100 THEN
          GREEN <= 2;
          :
        END IF;
        IF LineCounter=100 THEN
          GREEN <= 3;
          :
        END IF;
Wenn der RowCounter und LineCounter gerade mal gleichzeitig 100 erreicht 
haben, dann ist z.B. das Signal  GREEN sofort 3. Die Zwischenstände 1 
und 2 werden in diesem Fall nicht auftauchen bzw. zugewiesen.
Auf einem uC wäre ja GREEN erst 1, dann ein paar Prozessortakte später 
2, um später zum Schluss erst 3 zu werden.

EDIT:
> Ließt sich wie C.
Eher wie ein BASIC-Derivat...
In C sähe das so aus:
[l]
        GREEN = 1;
        :
        IF (RowCounter==100) {
          GREEN = 2;
          :
        }
        IF (LineCounter==100) {
          GREEN = 3;
          :
        }
[/c]

Autor: Stephan Henning (stephan-)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so ich habe mich mal versucht.
Wie sagte Falk:
> über die ein "mal fix" auf VHDL umgeschulter Softwerker..

Könnte das so was werden ??
Frequenzeilerkette geht auf den Mux
dann 1 FF mit CE ( Artikel Takterzeugung ) der den Takt für den Zähler 
macht.

Oder liege ich völlig daneben ??

Danke

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So macht man das nicht. Man verwendet immer den gleichen Takt und gibt 
nur die CE entsprechend in Abständen frei. Die CE-Signale kann man mit 
einem Zähler erzeugen.

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so stehts hier geschrieben :
http://www.mikrocontroller.net/articles/Taktung_FPGA/CPLD
> "Clock Enable"
der org. Takt wird nicht weiter benötigt. Er wird nur geteilt
und entspr. des Mux auf den Zähler gelegt. Sozusagen ein 
"programmierbarer Teiler" und ein Zähler.

Autor: Thomas R. (tinman) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Stephan Henning schrieb:
> Hallo Leute,
>
> die Schaltung des LA vom Micha könnte gut einen CPLD vertragen, um die
> Logik etwas zu reduzieren.
>
> Beitrag "8 Kanal 50Ms/s AVR Logic-Analyzer"
>
> Wie groß müßte das CPLD sein ? 9572, 9536 oder 144 ?
> Kann man das so pauschal schätzen ?
>
> Danke

Da ich faul bin habe es im Quartus gemacht - für den MAX II 240 den ich 
hier habe es gemacht.

54 pins werden benötigt und bei dem MAX II 31 LEs. Es passt auch in den 
alten EPM7064 PLCC84 ( 5V device ), dann aber 43 LEs.

Auf Xilinx umgerechnet wird also der 9572 reichen, vq100 gehäuse.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ja gruselig...beim Quartus gibts auch diese TTL Grab-Geschichte? Oh 
weh oh weh. Sollte man vielleicht mal eher in VHDL 
schreiben....erleichtert auch die Simulation. Ich mach ja auch einiges 
in Schematic bei Xilinx, aber sowas haarsträubendes dann auch nicht :)

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian R. schrieb:
> Ist ja gruselig...beim Quartus gibts auch diese TTL Grab-Geschichte? Oh
> weh oh weh. Sollte man vielleicht mal eher in VHDL
> schreiben....erleichtert auch die Simulation. Ich mach ja auch einiges
> in Schematic bei Xilinx, aber sowas haarsträubendes dann auch nicht :)

hehe, ja es gibt beides - wie schmeatic und die max plus2 librarys ( TTL 
like ).

Hier gings jetzt um 'design' der 1:1 den ttl original entspricht - für 
jeden der VHDL nicht kennt.

Damit ist sowas in 10 min fertig - ohne simulation :)

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas R. schrieb:

> Hier gings jetzt um 'design' der 1:1 den ttl original entspricht - für
> jeden der VHDL nicht kennt.
>
> Damit ist sowas in 10 min fertig - ohne simulation :)

Och, wie uncool ;)

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
toll, und was ist jetzt mit meiner Idee ??
"Clock Enable" oder was oder wie ??

@Thoams, du bist gemein, ich quäle mich hier mir generischen Symbolen..
Und Quartus kann das mit "echten" TTL.  .... gut zu wissen. :-)

und Ihr coolen Jungs, wie schauts aus ??
Passt es ?? Oder nicht ?

Falk?? Andreas ??

der Comparator ist auch fertig kommt dann auch hier her.

Danke

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stephan Henning schrieb:
>
> Jein, Arbeitszeit im Privaten Bereich.... ist ja eh Hobby.
> Dafür würde sich beim Layouten so einiges sparen lassen, hoffe ich.
> Bei 15€ für den CPLD und noch etwas Kleingeld für den JTAG würde ich
> dann aber schon überlegen.

http://shop.ebay.com/merchant/scottjoh

ich habe schon mehrmals Xilinx sachen bei den gekauft, er hat gerade 6 
xc9572XL-7C für 7 $ + 7$ versand. Dann hast du für 10 eur gleich 6 stk.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Stephan Henning (stephan-)

>toll, und was ist jetzt mit meiner Idee ??
>"Clock Enable" oder was oder wie ??

Passt so nicht.

>und Ihr coolen Jungs, wie schauts aus ??

Schlecht ;-)

>Passt es ?? Oder nicht ?

Nein.

Auf deine MUX müssen folgende Signale

Für geteilte Takte, musst du per Logik ein CE mit der Länger eines 
Systemtaktes erzeugen. Wie? Ganz einfach. Am Ausgang deiner Mux kommt 
ein FF, aber mit dem Dateneingang an die Mux, gataktet vom Systemtakt. 
Über ein logische Verknüpfung von Musausgang(=FF-Eingang) und FF-Ausgang 
kann man die Flanke des Taktes erkennen, sprich

CE = FF_E & !FF_A

Für vollen Takt muss eine Dauer 1 erzeugt werden, die musst du dann noch 
in diese Logik reinfummeln

CE = (FF_E & !FF_A) | (!MUX_A & !MUX_B & !MUX_C)

Um das ganze noch ein wenig in Richtung Max. Takt zu trimmen packt man 
hinter dieses CE noch ein FlipFlip zu Timingauffrischung (Pipelining). 
Dieses gepufferte CE geht dann an deinen Zähler. Der Eingang D0 der MUX 
ist dann ungenutzt.

MFG
Falk

Autor: J.H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Nimm doch die alte ISE"

Das habe ich schon so oft gelesen, daß Version 4 (?) alles hat was man 
für cpld und Spartan3 braucht und die eben NICHT Gigabyte groß ist. Die 
neuen Ise stürzen bei mir zudem häufig mal ab beim installieren (bzw 
fressen sich fest) - und letztens sogar beim deinstallieren.

Und so oft hab ich schon gesucht und gesucht.

Wenn mir einer sagen könnte, wo ich eine brauchbare alte Version, die 
nciht so riesig ist noch bekomme, wäre ich wirklich dankbar. Und ich 
denke das geht wohl mehreren so die sie nciht mehr auf der Platte haben 
aus früheren Tagen. :-)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  J.H. (Gast)

>"Nimm doch die alte ISE"

Nehm's nen Alten . . . ;-)

>Das habe ich schon so oft gelesen, daß Version 4 (?) alles hat was man
>für cpld und Spartan3 braucht und die eben NICHT Gigabyte groß ist. Die

Nein, die 4.2 kann kein Spartan3, das kann erst die 6.3. Die ist aber 
auch noch human.

>Und so oft hab ich schon gesucht und gesucht.

Gabs bis vor einiger Zeit bei Xilinx.

http://ece.wpi.edu/courses/ee3801/main.html

Hier hab ich es mal runtergeladen, aber mein Vista meine, das wäre keine 
gültige 32 Bit Anwendung. Downloadfehler oder Vista-Gezicke?

>nciht so riesig ist noch bekomme, wäre ich wirklich dankbar. Und ich

Suche nach Webpack und 6.3. Denk dran, du braucht leider auch den 
Spervice Pack 3 dafür, welcher grösser ist als das Original :-0
Aber mit ~200MB immer noch human.

MFG
Falk

Autor: J.H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke dir!

Werde den download probieren und dann auch etwas zu Vista Gezicke sagen 
können. Ich hoffe ja doch noch, daß das (inzwischen?) klappen wird.

Was da jetzt genau Gigabyte Weise Platz verschlingt weiß wahrscheinlich 
nicht mal Xilinx selber oder?

Aber soll wieder on topic gehen :-)

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ich muss zugeben, die 11.2 (System Edition) läuft super. Paar 
kleinere Bugs, aber da gibts immer einen WorkAround. Absturz hatte ich 
keinen. XP und Vista, je 32 Bit klappt jedenfalls sehr gut. Erstaunlich 
bei einer so frischen Version,...

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jo ich habe jetzt die 6.3. Deutlich schlanker !! Und reicht.
Die 4.x hatte ich kurz drauf, da habe ich aber die Shematic nicht 
gefunden, es sei denn sie war da noch nicht erfunden.
Na dann, es geht weiter.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Stephan Henning (stephan-)

>jo ich habe jetzt die 6.3. Deutlich schlanker !! Und reicht.

Wo hast du die runtergeladen? Bei Xilinx ist die nicht mehr zu finden 
:-(

MFG
Falk

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
> @  Stephan Henning (stephan-)
>
>>jo ich habe jetzt die 6.3. Deutlich schlanker !! Und reicht.
>
> Wo hast du die runtergeladen? Bei Xilinx ist die nicht mehr zu finden
> :-(
>
> MFG
> Falk

ehm, wie wärs mit :

http://www.xilinx.com/webpack/classics/wpclassic/index.htm

und dann noch für Spartan XL / Classics gibts :

http://www.xilinx.com/tools/classics.htm

Autor: J.H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Empfiehlt es sich, auf 8.2 oder 9.1 zu setzen? Das wäre ja für Spartan 
3Es Vorraussetzung.

Im Blick auf Größe und zuletzt natürlich auch Bugs/Stabilität?

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
J.H. schrieb:
> Empfiehlt es sich, auf 8.2 oder 9.1 zu setzen? Das wäre ja für Spartan
> 3Es Vorraussetzung.
>
> Im Blick auf Größe und zuletzt natürlich auch Bugs/Stabilität?

siehe

http://www.mikrocontroller.net/articles/Xilinx_ISE...

und

http://www.xilinx.com/ise/products/classics/parts_list.htm

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
J.H. schrieb:
> Empfiehlt es sich, auf 8.2 oder 9.1 zu setzen? Das wäre ja für Spartan
> 3Es Vorraussetzung.
>
> Im Blick auf Größe und zuletzt natürlich auch Bugs/Stabilität?

Wenn, dann die 9.2.0.4 die lief sehr stabil. Ich hab trotzdem jetzt die 
11.2 hab dazu auch mal was in den Artikel geschrieben.

Autor: Stephan Henning (stephan-)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so, der Micha hat das Design geändert, von daher wird es für mich hoffe 
ich doch etwas "einfacher"...

http://www.avr.roehres-home.de/logikanalyzer/pic/m...

anbei die "neue" Idee

Links sind die beiden FF welche die 80 MHz teilen.
Die und die 80 Mhz gehen auf den Mux.
Vom Mux dann auf das FF "refresh"..hoffe ich...
Rechts der Zähler für die RAM´s und der Inverter für den "W" vom 74151.
Ich hoffe ich habe es...
Wenn das jetzt so geht, versuche ich den Komparator..
Es fehlt noch einiges, aber wenn das hier schon nicht geht,...

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> In C sähe das so aus:
>
>         GREEN = 1;
>         :
>         IF (RowCounter==100) {
>           GREEN = 2;
>           :
>         }
>         IF (LineCounter==100) {
>           GREEN = 3;
>           :
>         }
> 
Müßte es nicht (angenommen getakteter Prozess) so ausssehn in C:
TEMP_GREEN = 1;
:
IF (RowCounter==100) {
    TEMP_GREEN = 2;
:
}
IF (LineCounter==100) {
   TEMP_GREEN = 3;
:
}
GREEN = TEMP_GREEN;

Dann gäbe es (im Ergebnis) auch keine Zwischenstufen und die lezte 
Zuweisung gewinnt ;)

Ansosnten würde ich das Design einfach in VHDL versuchen umzusetzen, das 
ist am Anfang etwas gewöhnungsbedürftig dürfte aber gerade zur 
Beschreibung einfacher Logik leichter umzusetzen sein als irgenwelche 
Primitiven per Hand zu verdrahten.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaja, schon.
Die Frage war aber, ob sich C und VHDL nicht zum Verwechseln ähnlich 
sähen?
Und ich habe da nur die anderen Syntaxelemente der if-Abfrage 
aufgeführt.
>> C:     if (a==b) {...};
>> VHDL:  if (a=b) then ... end if;
Und da kann ich, abgesehen vom if, kaum Gemeinsamkeiten im 
verwendenten ASCII-Raum erkennen ;-)


BTW:
> Müßte es nicht (angenommen getakteter Prozess) so ausssehn in C:
Solange ich nicht weiß, woher diese beiden Counter kommen, bringt auch 
die temporäre Variable nichts. Wenn die Counter nämlich von ausserhalb 
(ISR) geändert werden (können), dann hat auch dein Beispiel eine 
Definitionslücke.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast recht :-\ Naja bin noch nicht so fit leider in VHDL :)
Zumal bei VHDL ja auch die runde Klammer noch weggelassen werden kann 
...

Autor: Läubi .. (laeubi) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mal versucht das ganze in VHDL zu beschreiben. Das einzige was 
fehlt ist noch das der Takt vom AVR vorgegeben wird, da weiß ich nicht 
wie man da am besten die Flankenerkennung macht.
Ansonsten ist das VHDL, das ISE Projekt und die Summary HTML Dateien im 
ZIP enthalten.
Bitte nicht hauen wenn es noch nicht ganz optimal ist, simmulieren müßte 
man das ganze wenn der AVR Clock drinne ist auch noch mal.
Summary
 Design Name   minilog 
 Fitting Status   Successful 
 Software Version   J.33 
 Device Used   XC9572-7-TQ100  
 Date    7- 8-2009, 10:39AM 

RESOURCES SUMMARY
Macrocells Used  39/72  (55%)
Pterms Used    102/360  (29%)
Registers Used   29/72  (41%)
Pins Used        53/72  (74%)
Function Block 
Inputs Used     79/144  (55%) 
Passt also noch ganz gut rein, ggf. könnte man sogar ein SPI Interface 
noch vorsehen um das RAM auszulesen.

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Läubi,
welche Version hast Du genommen ?? Meine 6.3i will das nicht laden.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ISE 9.1 mach einfach ein neues Projekt und stell den  XC9572-7-TQ100 
als Target ein. dann Add existing Source und die VHDL Datei dazu.

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Läubi,
jo, hatte es inzwischen schon selbst heraus gefunden.
Da muß man sich nur noch Gedanken mit der Pinzuweisung machen.
Die 84 Pin Version reicht ja auch aus.
Hast Du das über die Shematic erfasst oder nur in HDL ??
Wenn der CPLD den Adresszähler bis A14 haben soll (32kx8 RAM )
dann müßte doch nur die Zeile geändert werden, oder?

> generic(addresswidth : integer := 12; datawidth : integer := 8);
Aus der 12 einfach ne 14 und gut ?

Danke

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hab ich in VHDL geschrieben.
> Aus der 12 einfach ne 14 und gut?
jupp dann hast du von A0...A14, aber wie gesagt ist noch nicht getestet 
und das externe Clocking durch den AVR fehlt noch. (und irgenwie hab ich 
noch nicht rausgefunden wo er einem die Maximale Taktrate angibt)

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Läubi .. schrieb:
> und das externe Clocking durch den AVR fehlt noch. (und irgenwie hab ich
> noch nicht rausgefunden wo er einem die Maximale Taktrate angibt)

ich denke, was Du suchst findest Du unten bei "Optional Implementation 
Tools"

Autor: Läubi .. (laeubi) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab mal versucht die Flankenerkennung dazuzupacken, und ein UCF erzeugt 
was einen minimalen Takt von 83,33... MHz fordert, das scheint er noch 
ganz gut zu packen.
Vieleicht mag ja trozdem mal einer von der versierteren Leuten 
drüberschauen.
*************************  Mapped Resource Summary  **************************

Macrocells     Product Terms    Function Block   Registers      Pins           
Used/Tot       Used/Tot         Inps Used/Tot    Used/Tot       Used/Tot       
42 /72  ( 58%) 112 /360  ( 31%) 93 /144 ( 65%)   32 /72  ( 44%) 54 /72  ( 75%)

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wird so nicht gehen:
  wait until rising_edge(clk_80);
  countUP <= '0';
  :
    sample <= clk_int & sample (2 downto 1);
    case clk_div is
    -- AVR gibt den Takt vor!
    when "00" => 
        -- Flanken Erkennung wenn 3x hinteinander
        -- eine logische 1 und vorher ein Low Pegel
        if clk_int = '1' and sample = "110" then
           countUP <= '1';
        else
        -- Reset bei logisch 0 am 
        -- manuellem Clock Eingang
           sample  <= (others => '0');
        end if;
Denn die meiste Zeit ist hier die else erfüllt. Das Schieberegister 
sample wird also immer zurückgesetzt. Und weil es dann wieder ungleich 
"110" ist, wird es beim nächsten Takt wieder zurückgesetzt....
Machs einfach so:
  wait until rising_edge(clk_80);
  countUP <= '0';
  :
    sample <= clk_int & sample (2 downto 1);
    case clk_div is
    when "00" =>  -- AVR gibt den Takt vor!
        -- Flanken Erkennung steigende Flanke am clk_int
        if sample = "110" then
           countUP <= '1';
        end if;


Das solltest du auch nochmal ansehen:
      -- Takt ungeteilt
      when "11" =>
         divider <= 0;
         countUP <= '1';
In diesem Fall ist countUP immer '1', das bringt dich dann dort in 
Schwierigkeiten:
      if countUP = '1' then
         RAM_WE <= '0';
      end if;
Denn WE wird zwischen dem Umschalten der Adressen nicht mehr inaktiv, es 
werden also eigentlich keine Daten geschrieben, weil es keine steigende 
Flanke am RAM WE-Pin mehr gibt.
Ein böser (aber evtl. wirksamer) Trick wäre, in diesem Fall das 
original-Taktsignal mit zum WE dazu zu ver-UND-en. Dann bekommst du 
wieder einen Pegelwechsel.
  Port (...
      RAM_WE     : out STD_LOGIC;
   :
signal  RAM_WEint  : STD_LOGIC;
   :
      if countUP = '1' then
         RAM_WEint <= '0';
      end if;
   end process;

   RAM_WE <= RAM_WEint and clk80;    

Aber das wird eine Simulation ans Tageslicht befördern ;-)

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.