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
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
> 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 ;-)
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
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.
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.
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.
;-)
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.
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).
@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
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.
> 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.
>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.
@ 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
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 ;)
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.
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.
@ 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
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.
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.
@ 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:
1
GREEN<=1;
2
:
3
IFRowCounter=100THEN
4
GREEN<=2;
5
:
6
ENDIF;
7
IFLineCounter=100THEN
8
GREEN<=3;
9
:
10
ENDIF;
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]
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
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.
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.
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.
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 :)
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 :)
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 ;)
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
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.
@ 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
"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. :-)
@ 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
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 :-)
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,...
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.
@ 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
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?
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.
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/minilog80_s.png
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,...
Müßte es nicht (angenommen getakteter Prozess) so ausssehn in C:
1
TEMP_GREEN=1;
2
:
3
IF(RowCounter==100){
4
TEMP_GREEN=2;
5
:
6
}
7
IF(LineCounter==100){
8
TEMP_GREEN=3;
9
:
10
}
11
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.
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.
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.
1
Summary
2
Design Name minilog
3
Fitting Status Successful
4
Software Version J.33
5
Device Used XC9572-7-TQ100
6
Date 7- 8-2009, 10:39AM
7
8
RESOURCES SUMMARY
9
Macrocells Used 39/72 (55%)
10
Pterms Used 102/360 (29%)
11
Registers Used 29/72 (41%)
12
Pins Used 53/72 (74%)
13
Function Block
14
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.
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
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)
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"
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.
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:
1
waituntilrising_edge(clk_80);
2
countUP<='0';
3
:
4
sample<=clk_int&sample(2downto1);
5
caseclk_divis
6
when"00"=>-- AVR gibt den Takt vor!
7
-- Flanken Erkennung steigende Flanke am clk_int
8
ifsample="110"then
9
countUP<='1';
10
endif;
Das solltest du auch nochmal ansehen:
1
-- Takt ungeteilt
2
when"11"=>
3
divider<=0;
4
countUP<='1';
In diesem Fall ist countUP immer '1', das bringt dich dann dort in
Schwierigkeiten:
1
ifcountUP='1'then
2
RAM_WE<='0';
3
endif;
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.
1
Port(...
2
RAM_WE:outSTD_LOGIC;
3
:
4
signalRAM_WEint:STD_LOGIC;
5
:
6
ifcountUP='1'then
7
RAM_WEint<='0';
8
endif;
9
endprocess;
10
11
RAM_WE<=RAM_WEintandclk80;
Aber das wird eine Simulation ans Tageslicht befördern ;-)