Hallo,

Ik ben sinds zeer kort bezig met het programeren van FPGA.
Ik heb aan de hand van de bijzonder verhelderende uitleg van madwizard zijn voorbeeld pwm schakeling in Quartus-II 6.1 ingeklopt. Het compileren gaat zonder errors, wel een aantal warnings. Deze warnings hebben betrekking op pin assignments..
Nu wil ik de schakeling gaan simuleren. Hiervoor heb ik in processing 'generate functional Simulation netlist" gebruikt die netjes aangeeft dat de betreffend file gemaakt is. Als ik die file in Assignments-Settings-Simulation input wil invoeren kan ik deze file nergens vinden.. En kan dus niets simuleren.
Wat doe ik verkeerd? Voor alle duidelijkheid ik ben een absolute starter en heb alleen een redelijke programeer ervaring.

Alvast bedankt,
André

Op 8 februari 2007 14:03:38 schreef maxxam:
Het compileren gaat zonder errors, wel een aantal warnings. Deze warnings hebben betrekking op pin assignments..

Ik kreeg alleen 2 warnings over undefined clocks, maar die pin assignment warnings zouden kunnen komen door het device wat je gekozen hebt.

Nu wil ik de schakeling gaan simuleren. Hiervoor heb ik in processing 'generate functional Simulation netlist" gebruikt die netjes aangeeft dat de betreffend file gemaakt is. Als ik die file in Assignments-Settings-Simulation input wil invoeren kan ik deze file nergens vinden.. En kan dus niets simuleren.

Dit is de input van je simulatie en die moet je zelf maken. Je moet namelijk wat input hebben om output te genereren. Makkelijkst gaat dit via de simulator tool (processing, simulator tool). Daar is het vakje simulation input waarschijnlijk leeg. Als je dan onderin op de knop 'open' drukt opent ie de simulatie input. Omdat je die nog niet hebt zal je een nieuw leeg bestand krijgen (vwf) met een naam Waveform1.vwf of iets dergelijks. Hier kun je een aantal inputs opgeven in het linkervlak, en in het rechtervlak de signalen 'tekenen'. Indien nodig kun je via 'Edit, end time' de tijdsspan wat groter maken. In de toolbar links staan allerlei handige tools om snel waveforms te maken zoals een clock e.d.

Als je een input file gemaakt heb, sla deze dan op in je projectmap. Ga vervolgens weer naar de simulator tool en geef die file op als simulation input. Klik start, dan even wachten en daarna op report. Je krijgt dan een lijstje met de inputs die je zelf gemaakt hebt plus de bijbehorde outputs.

Hier is de simulatie input die ik gebruikte:
Test.zip

Bedankt voor je, wederom, heldere uitleg. Maar wat gebeurt er eigenlijk als ik 'generate functional Simulation netlist' toepas?
Overigens de link naar je voorbeeld werkt niet..

Groet,
Andre

Op 8 februari 2007 14:33:34 schreef maxxam:
Bedankt voor je, wederom, heldere uitleg. Maar wat gebeurt er eigenlijk als ik 'generate functional Simulation netlist' toepas?

Dit is volgens mij alleen nodig voor de functionele simulatie, dus de simulatie die alleen kijkt naar functionaliteit maar niet naar de timing van de signalen. Ik denk niet dat je dit hoeft te doen voor de standaard simulatie (met timing). Ik compileer alles gewoon altijd met Ctrl+L, daarna kun je direct een simulatie uitvoeren.

Overigens de link naar je voorbeeld werkt niet..

Link is gefixt.

waarom maken jullie alles zo moeilijk ?

als je circuit klaar is klik je op compile (die purperen pijl op de toolbar) , en laat dat ding zijn werk doen.

dan File - new file en kies VWF ( vector waveform file )
dat scherm bestaat uit een waveform viewer met links ene kolom met pinnanmen ( nu nog leeg )
in die kolom : klik met rechter muistoets en selecteer 'insert node'
er floept een venstertje open. rechtsboven staat daar een knop 'node finder'
klik daarop : je krijgt alle nodes te zien in de linkerkolom.
tussne de twee ko,ommen staat een dubbele pijkl ">>" klik daarop om ze allemaal in de rechter kolom te mikken.
klik ok en klaar.
al uw signalen staan in de vwf.

save die vwf , tegen wat golfvormkes en klik dan op die toolbar op die blauwe pijl met dat blokgolfje ernaast.

makkelijkste manier om waveforms te tekenen :
rechts klikken op ene node : je kan dan 'overwrite with ' en een ganse waslijst dingen. das makkelijk evoor clocks en andere reptetitieve dinges.

en grafisch is dit tooltje het makkelijkst :


--\/--
--/\--

dat symbooltjes staat links in de toolbar ( derde of 4e van boven geloof ik )

das een 'overwriter'.

als je daarmee een blok aanwijst met allemaal hetzelfde niveau dan inverteert dat ding dat nieveau

als je ene blok aanwijst dat bijvoorbeeld hoog begint en laag eindeigt dan wordt gans dat blok de beginwaarde .

als je ene blok aangeeft wat begint en eindigt op het zelfde niveau ( en ondertussen verandert ) dan wordt gans dat blok gelijk aan de beginwaarde.

je moet daar eens mee spelen. tduurt 2 minuten voor je doorhebt hoe het werkt , maar tis razend handig

Bedankt, ik ga me er eens op storten. Ben benieuwd..