Tutorial: Eerste verilog program met Quartus.

Op 22 januari 2009 19:43:14 schreef free_electron:
... Tel het aantal toetsaanslagen die nodig zijn. Het enige wat ik aan vhdl leuk vind is dat het case insensitive is ( dat haat ik dan weer aan verilog)

Daar ben ik het nou juist niet mee eens, ik vind de case gevoeligheid geweldig omdat ik dan bewust de zelfde identifier in vol upper en lowercase kan gebruiken. Ik gebruik UPPERCASE om de module poorten te definieren. Zie ik gelijk overal in de source dat het om een externe module aansluiting gaat.

Juist omdat je nie van kloppen houd zou je dat aan moeten spreken:

code:

module Iets( input [7:0] A)

reg [7:0] a; //het zelfde ding als A gebufferd in ene reg

always @ (posedge CLK) a <= A;

Goed, ik gebruik dat niet vaak, maar het is alleen maar onhandig om voor een 'locale' variabele (reg/wire) een andere naam of uitgebreidere naam moet gaan verzinnen omdat er geen case sensitivity zou zijn.

In elk geval, geef mij maar Verilog, daar ben ik nu eenmaal mee begonnen en zit voor mijn gevoel ook wat dichter op gate nivo. Systemverilog neemt je helemaal veel klopwerk uit handen met die 'interface' construct.

Maar alas, om on topic te blijven.. de reden waarom men niet veel projectjes met al die CPLD/FPGA bordjes voorbij ziet komen is waarschijnlijk omdat het allemaal van tijdelijke aard is. Je bouwt wat om uit te proberen, werkt 't - leuk, de ervaring opgedaan. Afbreken en als de zin er is weer eens iets nieuws uitproberen. Je maakt er niet echt permanente projecten mee.

En juist omdat het allemaal van tijdelijke aard is, rijst de vraag, wat moet je nou met zo'n bordje tenzij je bepaalde concepten wil uitproberen. Mijn Cyclone III starter kit gebruik ik nu ook voor een testproject van tijdelijke aard. Ik heb er onlangs een VGA ramdac unit bijbesteld aan te sluiten met Santa Cruz interface, had ik ook wel weer een HSMC -> Santacruz adapter voor nodig maar die goedkoop kunnen krijgen bij Terasic. En ben nu bezig een videoprocessor aan het uitwerken. Het is meer voor de fun en uitdaging om zoiets te bouwen en werkend te krijgen, dan dat ik op een zelfgebouwde videoprocessor zit te wachten. Een beetje in lijn van een LCDtje aansturen met een AVR.

Recentelijk was ik met een SRAM controller begonnen en die leek prima te werken, totdat ik een test statemachine voor dat ding maakte.. eerst hele ram vullen met een test patroon, dan met burst read weer uitlezen en kijken of het aan het patroon voldeed. Kwam ik er dus achter dat 'ie niet altijd door de test heen kwam. Timings aan zitten te passen en rommelen, grenzen opzoeken en uiteindelijk werkend gekregen :) 200MHz stabiel, liep een paar uur te testen. Geweldig spul ;) 'k ben benieuwd tot hoever ik die S-RAM kan overclocken maar da's voor een andere keer om te proberen <g>

[Bericht gewijzigd door MagicBox op 15 september 2009 00:07:09 (12%)]

De reden waarom men niet veel projectjes met al die CPLD/FPGA bordjes voorbij ziet komen is waarschijnlijk omdat het allemaal van tijdelijke aard is. Je bouwt wat om uit te proberen, werkt 't - leuk, de ervaring opgedaan. Afbreken en als de zin er is weer eens iets nieuws uitproberen. Je maakt er niet echt permanente projecten mee.

Ik heb hier toch al 5 definitieve projecten waar telkens een FPGA of CPLD board inzit. Vooral het type MAX II nano CPLD boardje is uitstekend geschik voor heel wat toepassingen. Voor iets grotere projecten gebruik ik de DE1 board.

Recente toepassingen worden naast de CPLD of FPGA board aangevuld met bijkomende AVR controllers om vooral analoge deeltjes te verwerken of kleinere deelprojectjes op te nemen in het geheel. CPLD-FPGA delen verzorgen dan altijd de meest hardware kritische delen waarbij ook vrij veel I/O pinnen nodig zijn. Dus ja permanente projecten worden hier wel degelijk gemaakt!

Wat voor projecten dan?

Ik heb zo onderhand een groot deel van de mogelijkheden van PICs wel verkend volgens mij, ik merk dat er steeds meer herhaling in m'n PIC projecten komt. Ik wil dus beginnen met FPGA's om daar weer nieuwe dingen bij te leren. Ik heb echter het probleem dat ik niet echt toepassingen kan verzinnen waar ik perse een FPGA voor nodig heb, wat niet met een PIC kan.

Ik zit er aan te denken om zo'n DE0 boardje te bestellen.

Op 15 september 2009 09:50:32 schreef fotoopa:
[...]
Ik heb hier toch al 5 definitieve projecten waar telkens een FPGA of CPLD board inzit. Vooral het type MAX II nano CPLD boardje is uitstekend geschik voor heel wat toepassingen. Voor iets grotere projecten gebruik ik de DE1 board.

Recente toepassingen worden naast de CPLD of FPGA board aangevuld met bijkomende AVR controllers om vooral analoge deeltjes te verwerken of kleinere deelprojectjes op te nemen in het geheel. CPLD-FPGA delen verzorgen dan altijd de meest hardware kritische delen waarbij ook vrij veel I/O pinnen nodig zijn. Dus ja permanente projecten worden hier wel degelijk gemaakt!

Ik denk dat jij één van de weinige uitzonderingen bent dan.. :) Jij gebruikt de bordjes dus echt als bouwstenen voor een project. Da's waarschijnlijk niet voor iedereen weggelegd dat zo te doen. Denk je zelf niet?

Ik gebruik een MAX II boardje voor om alle spots te regelen in de living van mijn zoon. Dit is echt op maat gemaakt wat mogelijkheden en eisen betreft. Werkt nu bijna 2 jaar zonder problemen. Er zijn 6 halogeenspots van 50W 12V.

Nog een MAX II boardje zit in mijn huidig toestel voor het fotograferen van vliegende inseten. Daar zijn bijna alle I/O pinnen gebruikt en zijn nog eens 2 AVR controller gebruikt.

Een DE1 board wordt gebruikt voor mijn highspeed fotografie experimenten. Die zit ingebouwd in een grotere bedieningskast en kan allerlei flitsen maar ook highpower magneten sturen. Daarin zitten fets in die tot 600V kunnen verdragen bij grote stromen.

Ik heb nog 2 andere oudere besturingen voor vliegende beestjes. Ieder jaar wordt een nieuwe versie gemaakt met meer mogelijkheden voortbouwend op de jaarlijkse ervaringen.

Zo ben ik opnieuw bezig met het sturen van heel veel flitsen in TTL mode waarbij ik zelf het juiste hoeveelheid licht kan instellen op mijn controller. Een deel van de flitsen worden wireless gestuurt op 868 Mhz via de RFM12B modules. Daarin zit ook een Atmega168 of Atmega328 De centrale module berekend alle timingen ook rekening houdend met de verschillende vermogens en gaat dan de flitsen sturen zodat ze allemaal centraal en gesynchroniseert staan. ook wordt rekening gehouden met de transmisie snelheid en de ontstane delay. Houd je hier allemaal geen rekening mee dan heb je dubble wazige beelden bij highspeed fotografie zoals mijn toepassingen.

Je ziet dit zijn vrij mooie projecten waar je u echt kunt mee uitleven.

Op 15 september 2009 09:59:31 schreef Neen:
Ik heb echter het probleem dat ik niet echt toepassingen kan verzinnen waar ik perse een FPGA voor nodig heb, wat niet met een PIC kan.

Wat dacht je van 50 PWM generatoren die onafhankelijk in te stellen zijn? Jij maakt het in PIC, ik in FPGA. Kijken welke het beste werkt :-)

@f_e hieronder: 50 leek me wel genoeg om het te winnen :-)

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
free_electron

Silicon Member

@flipflop. tzou zelfs in cpld kunnen. als je een maxII pakt met 144 poten krijg je er zelfs 100 in geramd...

die PIC moet zo hard nadenken dat hij waarschijnlijk ontploft...
die cpld doet dat gans dat pwm process met 1 clocktick ,telkens opnieuw...

@flipflop hierboven : zelfs met 10 software pwm;s drait die pic al zot.

[Bericht gewijzigd door free_electron op 15 september 2009 21:57:31 (13%)]

Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM

Zoiets is inderdaad wel de richting waar ik aan zat te denken.

http://www.youtube.com/watch?v=pHdAvMrkO0U

Ik heb het boek van free_electron in de bestelling staan, als die binnen is zal ik ook een boardje bestellen. Dan komen de ideeen wel. :)