Op 28 december 2006 22:00:54 schreef fotoopa:
@free_electron,
Ik heb het ganse topic eens rustig gelezen en moet toegeven dat het schrijven van zo een boek heel veel inspanning vraagt. Ook niet te onderschatten is de grondige technische kennis die hiervoor nodig is en die je blijkbaar grondig beheerst. Proficiat met dit mooie initiatief!
kzit halverwege nu ... 
tegen eind maart zou die moeten af zijn. ik ben hem aant herlezen van voor af aan en stukken aant toevoegen , verpaatsen en dergelijke om er een duidelijker lijn in te steken.
Quartus
ik heb daar niet lang moetne over nadeneken. op het werk geruik ik zowel quartus als ISE ( van zie-links ... )
quartus is veeeel makkelijker om mee te beginnen. de drempel is een stuk lager en twerkt vlotter ook.
bovendien heb je schea/verilog/vhdl/ahdl mogelijkheden en kan je alles door elkaar gebruiken.
en de grote dooddoener is dat de ganse ttl ( 74xx) familie erin zit. dat maakt dat voor mensen die met ttl en cmos spelen de overgang naadloos wordt ; effe je schema met de vertrouwde blokken intekenen en go.
Dekoders worden heel veel in AHDL gemaakt maar dit kan evengoed in VHDL of verilog. Terwijl vb een 7 segment dekoder een simple lookup tabel is, terug in AHDL.
awel dat doe ik nu ook zie. je kunt gewoon een table maken in ahdl zonder vele tralala errond en -waf- decoder is klaar... maar das het enige waar ik ahdl nog voor gebruik.
[/quote]Wat ik echter heel belangrijk vind in het ontwerp is de methode om synchroon te werken
[/quote]
na de asynchrone tellers ( die moet je even meegeven om de boel compleet te houden ) verlaat ik die asynchrone wereld. ik gebruik in de rest van het boek alleen nog synchroon spul. ( je kan wel verschillende klokdomains gebruiken maar binnen 1 domain loopt alles synchroon. veeeeel voorspelbaarder. )
trouwens ik besteed vele aandacht aan delay in poorten. zo is de 4x4 multiplier ( met poorten gemaakt, dus niet sequenteele maar volledig combinatorisch ) leuk om te zien hoe die uitgangen 'dansen' voordat de echte waarde er staat.
en dan maak ik de multiplier via een LUT. -waf- 100 keer sneller en geen gedans meer.
das een zwaar punt in gans het boek : het leren 'anders' denken. veel dingen die je oplost met een combinatorisch blok zijn veel sneller te implementeren door middel van LUT ( look-up table). maar helaas kan dat alleen in FPGA. die techniek is niet toepasbaar ( toch niet praktisch , je hebt veel te veel chipjes nodig) op klassiek logica
ditto voor het maken van 'vreemde' tellers bijvoorbeeld 1-3-4-6-7-9-0-2-5-8
begin maar hoor. ik leg die method ook uit maar tis veeeeeel simpeler om een gewone simepel teller te maken met 4 flipflops en daar ene lut achter te plakken. in een minut ben je klaar. tegen dat je de logica uitgebvlooid hebt om een teller in die sequence te laten tellen ..... ben je een halve dag verder. en dan komt er een ambetanterik af . oei 'tmoest 7-6-9 zijn ... whaaaaaaaaaa....
Met dat lut mechanisme: twee cijferkes omdraaien, kladedder: klaar.
Ik gebruik heel veel de wizard, zoals op dit voorbeel van een PWM.
hmmm dat ontbrak nog.. kzal maar een paar hoofdstukken bijschrijven over de wizard zeker ... 
[/quote]Zo zou ik nog een heleboel kleine deelschakelingen kunnen geven zoals vb het klaviertje van 16 toetsen in een 4x4 matrix.
[/quote]
dat gebeurt ook in het boek. in plaats van 'onnozele' voorbeelden geef ik direct practische voorbeelden.
aan het eind van het verhaal heb je dan een hoop blokken die je zo kunt gebruiken , waaronder een keyboard scanner , een display multiplex driver en nog ene nest ander spul.
er wordt veel aandacht besteed aan het modulair maken van ene ontwerp.
bij het werken met een FPGA hoef je niet op ene poortje meer of minder te kijken. die dingen zijn 1) grooot genoeg en 2) de synthesizer minimaliseert alles toch .
ik leg in het begin KV en QM uit alsook booleaanse logica ( daar begin ik mee ) en als laatste zinn van dat hoofdstuk staat er ; als je met FPGA werkt mag je dit allemaal terug vergeten. de synthesizer doet dat veel beter, veel sneller, en vooral veel foutlozer dan jij dat ooit gaat kunnen. dus tek het u niet aan als het niet helemaal duidelijk is.
er wordt ook aandacht besteed aan het leren 'denken' in termen van poorten. met name ands- vervangen door NOR's en schuiven van invertertekens en dergelijke. met ander woorden pratische machismen om het denken eenvoudiger te maken.
ik persoonlijk haat et werken met geinverteerde en niet geinverteerde signalen. die ingang s actief laag , die actief hoog en op den duur is het zo een soep ... zet daar om te beginnen direct een inverter en maak alles 1 active-level. dat werkt een stuk vlotter. en opnieuw de synthesizer werkt dat direct weg. trouwnes wat er uiteindelijk IN de fpga staat is soms heeeel verschillend van wat je daar getekend hebt. maar het doet wel het zelfde.
enfin. genoeg geklets. k'ga verder gaan schrijven. er van profiteren van de 3 dagen dat ik thuis ben om er nog ene hoofdstuk of 2 uit te persen voor dat we 2007 zijn 