rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik heb een hoofdmenu "assignments" en een hoofdmenu "tools".
Onder assignments kan ik "pin planner" vinden en die heeft node name
helemaal leeg, alleen "<<new group>>" .
Onder tools zie ik "chip planner" met een zwart vierkant links in het midden. Als ik in het zwart click krijg ik rechts niets te zien, als ik op een blauw vierkantje click krijg ik LABX25_Y12 oid te zien.
Edit: Het lijkt er op dat ie m'n hele verilog file niet compileert: als ik daar onzin in type, dan krijg ik nog steeds 0 errors.
UPDATE: Ik ben een stap verder... Ik zat wat rond te clicken en zag op een bepaald moment: "Successfully started XXX", terwijl ik wist dat dit gelukt kon zijn. Blijkt dat ik de hele quartus verkeerd opstartte en hij diverse dingen niet kon vinden, maar... slecht geprogrammeerd dus "0 errors" ipv "1 fatal error: Cannot execute synthesizer" oid.
UPDATE: Ik heb blinky! Mijn bordje blijkt onboard leds te hebben, dus ik hoef niet mijn eigen printje met leds d'r op te gaan prikken. En het bordje is redelijk in het silkscreen gedocumenteerd. Er staat bij het kristal 50M 24/25 en ik kan dan pootje 24 als 50MHz klok input gebruiken. En bij de leds vond ik iets van 1-2-3-7-11 en dat zijn idd de pins die de leds besturen. Ik heb ook een paar schakelaars met nummertjes er naast.
Ik had wel problemen met de namaak USB blaster. De echte Altera lijkt het wel te doen. De 20 jaar oude namaak doet het wel. De pas gekochte niet.
Op maandag 24 november 2025 21:13:58 schreef rew:
Ik heb een hoofdmenu "assignments" en een hoofdmenu "tools".Onder assignments kan ik "pin planner" vinden en die heeft node name
helemaal leeg, alleen "<<new group>>" .Onder tools zie ik "chip planner" met een zwart vierkant links in het midden. Als ik in het zwart click krijg ik rechts niets te zien, als ik op een blauw vierkantje click krijg ik LABX25_Y12 oid te zien.
Edit: Het lijkt er op dat ie m'n hele verilog file niet compileert: als ik daar onzin in type, dan krijg ik nog steeds 0 errors.
UPDATE: Ik ben een stap verder... Ik zat wat rond te clicken en zag op een bepaald moment: "Successfully started XXX", terwijl ik wist dat dit gelukt kon zijn. Blijkt dat ik de hele quartus verkeerd opstartte en hij diverse dingen niet kon vinden, maar... slecht geprogrammeerd dus "0 errors" ipv "1 fatal error: Cannot execute synthesizer" oid.
UPDATE: Ik heb blinky! Mijn bordje blijkt onboard leds te hebben, dus ik hoef niet mijn eigen printje met leds d'r op te gaan prikken. En het bordje is redelijk in het silkscreen gedocumenteerd. Er staat bij het kristal 50M 24/25 en ik kan dan pootje 24 als 50MHz klok input gebruiken. En bij de leds vond ik iets van 1-2-3-7-11 en dat zijn idd de pins die de leds besturen. Ik heb ook een paar schakelaars met nummertjes er naast.
Ik had wel problemen met de namaak USB blaster. De echte Altera lijkt het wel te doen. De 20 jaar oude namaak doet het wel. De pas gekochte niet.
Welk bordje gebruik je ?
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Een aliexpress core board voor de kleinste cylcone IV. zo eentje
t.o.v. wat Free elektron aan het maken is:
* 5 ipv 8 leds
* 4 ipv 8 buttons
* geen encoders
* geen onboard programmer
* 6000 ipv 240 LEs.
* wel "block RAM"
* meer PLLs.
(als ik het goed heb).
De "minder buttons, leds en encoders" vind ik niet essentieel. De onboard programmer is wel belangrijk. Ook biedt de "wat snellere communicatie met PC" interessante mogelijkheden.
(Altijd al een 100MHz logic analyser willen maken in een FPGA. Dan is "wat RAM", (los in een chipje ipv de beperkte hoeveelheid IN de FPGA) ook nog nodig. Je streamt dan je datastroom door een compressor (bv RLE), slaat de stroom op in RAM en leest die over een hoge-bandbreedte kanaal uit naar de PC. )
Ik zie dat je 2 xtals onboard hebt, eentje van 50MHz op de pinnen 24/25 en eentje van 27 MHz op pinnen 90/91. Dat de clone programmer niet werkt had ik al veel gelezen. Ik denk dat het gewoon een kwestie is van de juiste driver te vinden. Je hebt gelukkig een originele maar een beginner zou hiermee snel kunnen vastzitten. Met je PLL's kun je toch een en andere extra clocks maken. De pcb zal wel een 2laags zijn vermoed ik. Op de hoogste freq zou dat nogal wat overspraak kunnen geven. Maar met zo een boardje kun je alles wat free_electon ons laat zien zeker starten. Goedkoper kan het niet.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik heb "kitt" nu ook gemaakt.
De draden van de oscilatoren naar de chip zijn nogal kort. Wat mij betreft is de bedoeling om op zeg 100mHz te kunnen draaien, dus met 10ns tijd-resolutie, maar niet om dan ook signalen te gaan maken die ook op die frequentie werken. Die 100MHz blijft dan voornamelijk binnen de chip.
Als ik het goed zie heb ik op de bovenkant mogelijk een bij nader inzien geen groundplane, op de onderkant (ook) niet. Dit doet mij vermoeden dat er twee binnen layers met een groundplane zullen zijn. 4 laags printjes kosten tegenwoordig ook niets meer.
Even tegen sterk licht houden, een 2 layer is meestal iets doorzichtig.
Ja 100 MHz voor een CPLD intern is geen probleem maar naar buiten toe zal dat met de stijg en valtijd iets te snel zijn. Ik ben wat aan het spelen met een oud MAX® II Micro Kit met een EPM2210 CPLD. Er zit een 50MHz oscillator op. Ik ga die eens op een output brengen en de scope even aanleggen. Ook wat testen maken met een rotary encoder. Vroeger was dit het beste boardje dat je kon kopen ( €68 ) met 2210 LE's en enormveel I/O pinnen. Ik heb er 5 van gekocht, er liggen er nu nog 3 op mijn tafel. Die hebben de progtool op de board, enkel USB aansluiten en je kunt werken.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik kan geloof ik met de drive strength kiezen voor "snel (fuck EMI)" of langzaam (minder uitstraling).
1 van mijn "kitt" ledjes zit op "101" volgens het bijschrift naast de connector. Quartus vind het geen goed plan dat ik daar een output op zet. Zou dat een fout in het bijschrift zijn, of in het hele PCB (als in, dat is geen GPIO die je naar buiten zou willen brengen.)
Ik vond geloof ik "nCE" als functie voor die pin.
Op dinsdag 25 november 2025 15:50:17 schreef rew:
Ik vond geloof ik "nCE" als functie voor die pin.
Ja dat kan een dual-purpose pin zijn die moet je als output zetten als je hardware het toelaat.
Zie: assignments/device en dan in device and pin option die dual-purpose pin als output instellen (dubbelklik in die balk en je ziet de optie).
Dat kan idd soms een lastige zijn om te vinden, ik heb het onlangs ook nog meegemaakt.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ha! Gaaf! Dat werkt.
NCEO wordt gebruikt voor het chainen van meerdere FPGAs die allemaal uit dezelfde flash chip geprogrammeerd moeten worden. Dat dit in quartus default op "programming pin" staat is begrijpelijk, anders werkt dit feature niet en krijgen ze er gezeik mee. (Ik vond dat ik het even moest opzoeken of ik er mee weg zou komen om dit op general purpose IO te zetten).
Gasten zoals ik die zetten het signaal op een andere pin en klaar.
Maar ik zou zoiets verwachten als een popup menutje als je op de pin clickt in de pin-planner. Maar dat is weer te makkelijk gedacht. En ondanks dat jou aanwijzingen 100% correct zijn, had ik "device" al weer gesloten: Dat kan hem niet zijn, het moet de pin planner of assignments editor zijn. Nope! Tweede keer zag ik hem wel.
Ik heb nu twee KITT modules ge-instantieerd, 1 op 15 signalen (van de 16 leds op mijn led-bordje: de 16e led zit op een NC pin op het FPGA bordje. Zo kan ik hem er in 1x op prikken, anders moet ik 17 kabeltjes gaan doorlussen). De ander op de 5 ingebouwde leds van het printje.
Blij dat het werkt!
Ik ben hier ook al bijna een dag een het proberen iets heel eenvoudig uit te werken met een rotary encoder en leds output. Vroeger ging zoiets bijna vanzelf. Nu werkt nog steeds niet. Met mijn 82+ ouderdom vergeet ik sneller dan ik onthoud. Maar nooit opgeven, morgen zie ik wel verder. Mijn 40 jaar diabetes is ook geen voordeel. Om 20H00 moet ik noodzakelijk naar bed...
Op dinsdag 25 november 2025 09:12:25 schreef rew:
Een aliexpress core board voor de kleinste cylcone IV. zo eentjet.o.v. wat Free elektron aan het maken is:
* 5 ipv 8 leds
* 4 ipv 8 buttons
* geen encoders
* geen onboard programmer
* 6000 ipv 240 LEs.
* wel "block RAM"
* meer PLLs.(als ik het goed heb).
De "minder buttons, leds en encoders" vind ik niet essentieel. De onboard programmer is wel belangrijk. Ook biedt de "wat snellere communicatie met PC" interessante mogelijkheden.
(Altijd al een 100MHz logic analyser willen maken in een FPGA. Dan is "wat RAM", (los in een chipje ipv de beperkte hoeveelheid IN de FPGA) ook nog nodig. Je streamt dan je datastroom door een compressor (bv RLE), slaat de stroom op in RAM en leest die over een hoge-bandbreedte kanaal uit naar de PC. )
Voor wie zijn/haar leesbril niet bij de hand heeft (Klikbaar):
Als er iets na vele uren niet werkt, ga gewoon gaan slapen. In je droom zie je het ganse programma verschijnen. De volgende morgen sta je op, start Quartus en oef, hebt je al eens de pinout toekenning goed bekenen? Ha natuurlijk niet. Blijkt nu dat ik een verkeerd pinnummer had ingegeven voor de rotary encoder.... Ja zo bleef hij terplaatse trappelen he.
Allez, we gaan weer verder met de kleine oefeningen. En ja ik wil nog steeds een CPLD boardje kopen maar dan wel met de 570. Als er zo enkele gebruikers zouden bijkomen zullen we veel mooie projecten zien verschijnen.
Hier mijn rotary encoder test. Uitgang zijn de 8 ledjes op de board, de ingangen zijn de CLK (bij mij is het 50MHz) en nog 2 pinnetjes ingang van de rotary encoder. Draaien aan de encoder is optellen of aftrekken volgens de draairichting. Quartus: 25.1std.0 Build 1129 10/21/2025 SC Lite Edition.
module encoder(
input CLK_50, // CLK_50MHz
input enc_p1, // pin enc_p1
input enc_p2, // pin enc_p2
output reg[7:0] leds // 8 leds output
);
reg [2:0] enc_p1_reg;
reg [2:0] enc_p2_reg;
reg enc_ena;
reg dir_sel;
reg [18:0] clk_deler;
reg CLK_1KHz;
always @(posedge CLK_50)
begin
clk_deler <= clk_deler+1;
if (clk_deler > 249999)
begin
CLK_1KHz <= !CLK_1KHz; // 1KHz clock
clk_deler <= 0;
end
end
always @(posedge CLK_1KHz)
begin
enc_p1_reg[2:0] <= {enc_p1_reg[1:0], enc_p1}; // inlezen encoder
enc_p2_reg[2:0] <= {enc_p2_reg[1:0], enc_p2};
enc_ena <= enc_p1_reg[1] ^ enc_p1_reg[2] ^ enc_p2_reg[1] ^ enc_p2_reg[2];
dir_sel <= enc_p1_reg[1] ^ enc_p2_reg[2];
if(enc_ena)
begin
if (dir_sel) // richting +
leds <= leds +1;
else // richting -
leds <= leds -1;
end
end
endmodule
En het rapport:
Top-level Entity Name encoder
Family MAX II
Device EPM2210F324C5
Timing Models Final
Total logic elements 41 / 2,210 ( 2 % )
Total pins 11 / 272 ( 4 % )
Total virtual pins 0
UFM blocks 0 / 1 ( 0 % )
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Waarom laat je de encoder-interpreter op "slechts" 1kHz lopen? Dat zal allicht werken voor de 12 stappen per omwenteling encoder die je met de hand bedient (zoals FE op z'n max-bordje wil zetten), maar ik heb gewerkt met een 10000 steps per omwenteling encoder (40000 als je iedere overgang telt). Origineel deed die 1 omwenteling per seconde. dus 100 microseconde per 4 counts. Ondertussen draait ie richting de 2 omwentelingen per seconde, dus maar slechts ongeveer 3 microseconde per kwart stap.
Die encoder-statemachine moet dus minstens 1000x sneller om dat ding bij te houden.
Iets andere soort encoder, maar werkt met precies dezelfde FPGA code, mits je niet te veel extra delers gaat toepassen..... Haal drie negens uit je code en hij zal 9 of 10 LE's minder gebruiken en nog steeds in jou testgeval werken, maar ook voor die heftige encoder....
Ja je hebt gelijk. Ik dacht laten we het kalm aan doen maar ondertussen had ik hem al op een veel hogere clock staan. Ik gebruik als test zo een eenvoudige encoder zoals op free_electron zijn boardje.
Update:
Ik heb hem nu direct aan de 50MHz clock gehangen. Vroeger werkte ik doorgaans op een 1MHz clock maar mijn encoders waren hoogstens 100 pulsen/toer. Nu nog 16LE's nodig. Direct met 50MHz clock.
Hier de verbeterde versie:
module encoder(
input CLK_50, // CLK_50MHz
input enc_p1, // pin enc_p1
input enc_p2, // pin enc_p2
output reg[7:0] leds // 8 leds output
);
reg [2:0] enc_p1_reg;
reg [2:0] enc_p2_reg;
reg enc_ena;
reg dir_sel;
always @(posedge CLK_50)
begin
enc_p1_reg[2:0] <= {enc_p1_reg[1:0], enc_p1}; // inlezen encoder
enc_p2_reg[2:0] <= {enc_p2_reg[1:0], enc_p2};
enc_ena <= enc_p1_reg[1] ^ enc_p1_reg[2] ^ enc_p2_reg[1] ^ enc_p2_reg[2];
dir_sel <= enc_p1_reg[1] ^ enc_p2_reg[2];
if(enc_ena)
begin
if (dir_sel) // richting +
leds <= leds +1;
else // richting -
leds <= leds -1;
end
end
endmodule
[Bericht gewijzigd door fotoopa op (48%)]
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
haha! een verbetering die -25 LE's kost! 
Je kan nog "commentaar" toevoegen.
ena is een signaal wat precies 1 klok hoog is als er een verandering is in 1 van de twee inputs en anders niet.
Je ZOU een paar register bitjes kunnen uitsparen door ipv de twee clocks vertraagd, de 1 klok vertraagd bitjes te pakken.
Als je de "1 klok vertraagd" inputs zou gebruiken naast de "huidige waarde" dan krijg je race condities, dat wil je niet. De garantie dat "ena" dan pre verandering precies 1x hoog is, die heb je dan niet meer.
De programmeer stijl om "dan maar een klok extra vertraagde versie" te gebruiken ipv het absolute minimum, daar kan ik achter staan. Je bespaart iets op het "denkwerk" en dat is het duurste in zo'n project.
[Bericht gewijzigd door rew op (89%)]
Kijk als we hier 20 nieuwe users CPLD/FPGA zouden hebben, kunnen we toch een zee van eenvoudige voorbeelden verwachten. Laat ze maar komen.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik wil mijn KITT wel posten, maar ik vind dat als je dit soort voorbeelden kant en klaar aangeeft, dan copy-paste men het voorbeeld en leert weinig. Het zelf uitdenken van zoiets is waar je van leert. En het ledje heen-en-weer is dan een mooi zichtbare uitvoer, voor een leuk beginners-projectje.
Als beginner heb je kant en klare voorbeelden nodig. Vergeet niet dat je nog zoveel hindernissen moet doorlopen vooraleer je een klein programmatje door Quartus heen kunt downloaden naar een kant en klaar boardje. Arduino is zo veel meer gekent door de vele bestaande online voorbeelden. Als starter moet je eerst iets kunnen voelen dat werkt. Zoeken vanaf null geeft helaas bijna altijd opgeven.
benleentje
Golden Member
Op woensdag 26 november 2025 17:01:50 schreef rew:
Ik wil mijn KITT wel posten, maar ik vind dat als je dit soort voorbeelden kant en klaar aangeeft, dan copy-paste men het voorbeeld en leert weinig. Het zelf uitdenken van zoiets is waar je van leert. En het ledje heen-en-weer is dan een mooi zichtbare uitvoer, voor een leuk beginners-projectje.
In het begin heb je goede voorbeelden nodig. Zolas de hello world voor een CLPD
En je leert er veel van, hoe quartus werkt hoe je de programmer moet aansluiten hoe je het programma naar de CLPD moet downloaden.
En als je dat eenmaal gedaan hebt dan ga je kleine dingen in het programma aanpassen en kijken of die verandering ook echt doet wat je denkt dat het moet doen.
Je leert van dingen doen en ook van in het begin domweg kopiëren. Want ondanks dat je het gekopieerd heb moet je de rest van alle andere handelingen wel goed doen.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik heb twee software gasten die stage lopen. Die leren niets van dingen copieren. Vragen een dag later gewoon weer of ik het voor kan doen. Kunnen niet eens een file in de editor krijgen.
nonius
set SCE to AUX.
Ik heb twee software gasten die stage lopen. Die leren niets van dingen copieren.
Verschillende mensen leren op verschillende manieren. Ik ben in elk geval een 'kopieerder'....
"There are three kinds of men. The one that learns by reading. The few who learn by observation. The rest of them have to pee on the electric fence for themselves." Will Rogers
Op donderdag 27 november 2025 05:33:09 schreef rew:
Ik heb twee software gasten die stage lopen. Die leren niets van dingen copieren. Vragen een dag later gewoon weer of ik het voor kan doen. Kunnen niet eens een file in de editor krijgen.
En hebben ze al iets zinsvol gedaan zonder kopieren?
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Het lijkt er op dat "dingen met de handen maken" ze beter ligt. Dus printjes solderen e.d. gaat goed.
Van school moet ik "minstens 1x per week" een software opdracht geven. Ik denk dat dit een compromis is tussen: "minstens 4 dagen in de week met software bezig zijn" en bedrijven (zoals ik) die roepen, "maar dan doen ze helemaal niets nuttigs".