Damn... ik moet wel iets heel erg fouts gedaan hebben, de code die ik hier boven gepost hebt doet het nu ineene maal wel?
Ik kon mijn "nieuwe" code niet meer stuk krijgen dus ging ik maar eens zien of de code die ik hier gepost had nog stuk wilde. Maar die werkt blijkbaar toch... ik ben met stomheid geslagen 
Op 25 november 2007 04:53:40 schreef free_electron:
in quartus zitten alle 74xx erin .. in xilinx niet. dus pech..
De hele 74xxx lib kun je downloaden van hun site *steekt tong uit*
free_electron
Silicon Member
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
Op 25 november 2007 13:33:18 schreef flipflop:
Free weet ook niet alles. (Ik ook niet overigens)
en ik ben de laatste om dat te beweren ook !
module shift_reg_3( //inputs
input clk,
input reset,
input input_data,
//outputs
output reg [63:0]led_select,
output reg [7:0]floor_select);
reg [2:0]floor_counter;
always@(posedge clk) begin
// concurrent statements
led_select <= led_select << 1; // deze schuift altijd
// behalve als deze zegt dattie iets anders moet :
if (led_select[63]) begin
led_select <= 64'd1; // 64 bit decimale waarde '1'
floor_counter <= floor_counter+1;
end
if(input_data) floor_select <= 8'b1 << floor_counter;
else floor_select <= 8'd0;
if(reset) begin
floor_counter <= 3'b0;
floor_select <= 8'b0;
led_select <= 64'd1;
end
end //end always
endmodule
probeer dat eens
free_electron
Silicon Member
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
Op 25 november 2007 16:13:01 schreef MagicBox:
[...]
De hele 74xxx lib kun je downloaden van hun site *steekt tong uit*
pakt schaar knipt tong af : maar ze zitten er niet standaard in ! dus : D'oh !
Op 25 november 2007 16:49:44 schreef free_electron:
[...]probeer dat eens
schaam... stuk simpeler dan die van mij en hij werkt nog ook
bedankt!
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Gelukkig kent ie wel Verilog 
Was niet negatief bedoeld hoor free. Ik reageerde op de opmerking "wacht maar tot het boek uit komt", zodat daarmee alle problemen zijn opgelost. Dat zal niet zo zijn. Het vraagt gewoon een stuk ervaring om digital design in HDL echt goed te doorzien. Daar helpt een boek niet bij.
free_electron
Silicon Member
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
Op 25 november 2007 17:50:32 schreef flipflop:
Gelukkig kent ie wel VerilogWas niet negatief bedoeld hoor free. Ik reageerde op de opmerking "wacht maar tot het boek uit komt", zodat daarmee alle problemen zijn opgelost. Dat zal niet zo zijn. Het vraagt gewoon een stuk ervaring om digital design in HDL echt goed te doorzien. Daar helpt een boek niet bij.
heel juist.
ik ben een paar chapters serieus aan het herwerken. ik leer ook nog alle dagen bij. vooral betreffende methodologie. je kan in verilog iets op wel 500 manieren doen maar slechts een paar zijn compact , slechts een paar anderen zijn goed leesbaar e nog een paar anderen zijn echt porteerbaar. de cross daartussen is vaak moeilijk.
ik heb er ook de 'ouwe' veriog compleet uitgegooid. ( 1995 standaard ) en kuis de boel op om alleen nog V2001 te doen. tis simpeler , properder en veel minder tikwerk ( wat weer minder kans op tikvauten geeft. ( tijd dat er eens iemand een spellchecker maakt voor verilog .. )
het schijnt dat er een goeie veilog en vhdl mode bestaat voor emacs. ik moet daar eens mee spelen...
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ja. Die verilog mode sprong bij mij vanzelf aan. Hij indenteert automatisch iets anders dan dat ik zou willen, maar er is aan te wennen. Hij gaat ook vanzelf naar de volgende regel als je de sluitende ; tikt. Verder doet ie iets met kleurtjes: keywords rood, commentaar blauw, woordje "reg" wordt lichtblauw. Heb ook wel eens iets in groen gezien, dacht ik, maar mischien was dat in C-mode... 
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Eh wat bedoel je?
Ik had alle input signalen gedefinieerd dus ik weet nog steeds niet hoe het komt....
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Tja. Je hebt IETS veranderd, wat je je niet meer kunt herinneren. Ik vermoed ... jij denkt van niet. OK. Case closed.
free_electron
Silicon Member
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
Op 26 november 2007 09:27:07 schreef rew:
Ja. Die verilog mode sprong bij mij vanzelf aan. Hij indenteert automatisch iets anders dan dat ik zou willen, maar er is aan te wennen. Hij gaat ook vanzelf naar de volgende regel als je de sluitende ; tikt. Verder doet ie iets met kleurtjes: keywords rood, commentaar blauw, woordje "reg" wordt lichtblauw. Heb ook wel eens iets in groen gezien, dacht ik, maar mischien was dat in C-mode...
tis een plugin voor emacs ( zit er niet standaard in )
ding heeft allerhade macros aan boord om overtollige begin-ends op te kuisen en prototyps voor vanalles en nog wat.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
kweenie, bij mij zat "verliog-mode" in een pakket genaamd "base-support"
dualix:~> dpkg -S /usr/share/xemacs21/xemacs-packages/lisp/prog-modes/verilog-mode.elc
xemacs21-basesupport: /usr/share/xemacs21/xemacs-packages/lisp/prog-modes/verilog-mode.elc
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Is zo'n "microsoft mode" niet erg irritant? Ik bedoel die automatische CRs en zo?
Ik gebruik zelf al jaren NEdit. Dat heeft ook syntax coloring, maar niet die automatische acties. Ik kan het aanbevelen. Onder windows gebuik ik Crimson Editor, maar dat heeft weer net een andere "feel" dan NE.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Als je het gebruikt zoals de maker het bedoeld heeft, werkt het prettig.
Maar inderdaad, ik tik graag de "end" voordat ik met de body begin. En dan krijg je "vanzelf" een lege regel zodra je met de body van een groepje klaar bent. Die moet dan weer weg.
't irriteert me niet genoeg om uit te gaan zoeken hoe ik het uit moet zetten. En het went.
Na een paar dagen ontwerpen en testen zijn we weer terug met een leuke toepassing.
Zopas is de basis afgewerkt van een project om meerdere halogeen spots van elk 50W via een afstandsbediening te regelen. In de toepassing zitten om te beginnen 6 spots maar die kunnen nog verder uitgebereid worden. Ook is het mogelijk om ze later te vervangen door leds uitvoering.
De afstandbediening bestaat uit een RF 433.92 MHz zender en een afzonderlijke kleine ontvanger module. Na wat zoekwerk op de web en na het opengooien van de afstandsbediening heb ik gezien dat de gebruikte chip van "MOSDESIGN SEMICONDUCTOR CORP." was. Na wat zoeken heb ik dan toch een leesbare datasheet gevonden waarbij de voornaamste specs vermeld stonden, voldoende om de signalen te dekoderen in mijn FPGA board. De signalen zien er zo uit:
Ze beschikken op deze manier over 3 state toestanden nl 0, 1, en open level waardoor het aantal beschikbare codes sterk toeneemt. De gebruikte chip is de M3E.
Een snel aangekochte ontvangermodule bij mijn lokale electroboer moest mij goede signalen geven. Maar buiten enkele kleine opschriften had ik geen enkele datasheet van die man gekregen. De inderhaast aangesloten module werkte echter niet naar behoren en de codes waren onstabiel. Na 2 dagen zoeken kwam ik dan toch op het idee om de voedingsspanning die ik op 5V genomen had op te drijven en toen bleek de module wel goed te werken, goede gevoeligheid en stabiele kodes. Al mijn datasheets die ik over de web gevonden had waren 5V versie's maar deze schijnt optimaal te werken bij 9V.
De datastream bestaat uit 12 bits code die telkens minimaal 4 keer herhaald wordt en tussendoor een synccode bevat die 4 bits duur heeft. Op de aangesloten logic analyser zie je dan zo een beeldje:
Vandaag heb ik dan maar de volledige routine geschreven en getest. Ik moet zeggen dat dit echt heel goed en stabiel werkt, je moogt om het even waar in een andere kamer de bediening indrukken en je code komt mooi op de display van de DE1 board. Ook heb ik een repeat functie gemaakt waarbij telkens een korte puls met de code beschikbaar is om vb een dimmerfunctie te gebruiken.
Zoals al mijn voorgaande voorbeeldjes staat ook dit project volledig beschreven bij mijn voorbeelden web pagina.
Deze volledige toepassing komt uiteindelijk in het kleine MAX II CPLD boardje van Terasic. De gebruikte fets zijn de IRF540 met 0.077 ohm RDSon. Per halogeenlamp zit er zo een fet. De voeding wordt geleverd door 2 bestaande transfo's elk 160W en die ik in 2 blokken bouw. via 2 bruggelijkrichters elk 30A maak ik de nodige 12V DC waar nog een 20.000 uF op staat. Volledig belast per 3 lampen (150W) leverd mij dit net 12V max op de lampen.
Volgens de toekenning van de kodes kan ik nu allerlei regelingen per spot voorzien met vooraf ingesteld waardes, gezamelijke waardes, langzaam aanleggen enz.
Oh vergeten:
Het volledig getest en werkende project voor de 433.92 ontvanger kun je hier downloaden terug als archieve file voor Quartus.
@fotoopa: die webpage van je wordt maar beter en beter 
@FE: is er al bekend wanneer het boek uitkomt? (dus hoeveel moet je nog?
)
free_electron
Silicon Member
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
Op 26 november 2007 19:45:54 schreef flipflop:
Onder windows gebuik ik Crimson Editor, maar dat heeft weer net een andere "feel" dan NE.
YES ! crimson editor. dat ding rules them all.
@eagle 666. zucht.. nog een honderdtal pagina's. en dan nog eens de boel 'overlezen' om er de kwakkels uit te halen. gelukkig heb ik ondertussen de NL spellchecker ...
Dat is nog genoeg werk zo naast het werk
. (die zucht omdat je de vraag alweer krijgt of omdat het nog zoveel werk is?
)
Ik heb de 433.92 Mhz RF dekoder nu ook gemaakt voor de Blue Bird FPGA board.
Het digitaal signaal die uit de ontvanger komt moet je aansluiten op CON20 (pin 17 van de SV1 20 pins connector. Omdat dit signaal bij mij tot 9V kon oplopen heb ik een weerstands deler gemaakt van GND-1K-2K-ontvanger en het knooppunt 1k-2k aan de FPGA con20 I/O pin gelegd. Hierdoor kan slechts 1/3 van de spanning op de I/O connector komen. Deze verhouding moet je aanpassen volgens het type ontvanger zodat je ingangsspanning niet boven de 3V3 kan komen.
De code wordt weergegeven op de 4x7 segments display.
Het digitaal inputsignaal wordt weergegeven door led16
Het repeat signaal wordt weergegeven door led15.
Deze archive versie kun je hier downloaden
Het kan zijn dat je de clk_rf moet aanpassen aan de clock van de afstandsbediening. Dit kan door de volgende routine aan te passen:
always @(posedge OSC)
begin
if (deler_rf == 225) deler_rf <= 0;
else deler_rf <= deler_rf + 1;
if (deler_rf == 110) clk_rf <= !clk_rf;
end
Indien je een waarde hoger dan 255 wilt gebruiken moet je ook de deler_rf aanpassen (staat nu op max 8 bit):
reg [7:0] deler_rf; // aanpassen volgens hoogste waarde.
Hierbij een foto van de opstelling:
Ohja, het programma geeft ook de druktoetsen en dipswitchen weer op de andere 14 leds zodat je ook dit programma kunt gebruiken om je FPGA boardje te testen indien nodig.
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
He, da's het klik-aan-klik-uit systeem niet? Heb je info over het protocol? Kan interessant zijn want ik heb dat systeem ook hier.
Dat protocol staat reeds in een van mijn voorgaande antwoorden nog op deze pagina. Het is idd compatibel met het klik-aan-klik-uit systeem. Zender komt uit de GB warenhuis, ontvanger vanbij de lokale electroboer.
Ook op mijn web voorbeelden staat alles in nog meer detail. (Zie link in mijn signature)
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Serway
If it wasn't for C, we'd be using BASI, PASAL and OBOL
Kan iemand aub uitleg geven ivm warnings bij Quartus:
(VHDL geschreven, voor een max3000A device)
Warning: Timing Analysis does not support the analysis of latches as synchronous elements for the currently selected device family
Warning: Found pins functioning as undefined clocks and/or memory enables
Info: Assuming node "clock" is an undefined clock
Info: Assuming node "w_n" is an undefined clock
Warning: Found 4 node(s) in clock paths which may be acting as ripple and/or gated clocks -- node(s) analyzed as buffer(s) resulting in clock skew
Info: Detected ripple clock "temp_clock[3]" as buffer
Info: Detected ripple clock "temp_clock[2]" as buffer
Info: Detected ripple clock "temp_clock[1]" as buffer
Info: Detected ripple clock "temp_clock[0]" as buffer
Eerste warning komt door het device - ok.
Maar hoe moet je dan quartus wijsmaken dat dat signaal een klok is?
En wat bedoelt Quartus met:
Info: Detected ripple clock "temp_clock[1]" as buffer
(het gaat om 4 pwm kanalen in een cpld aan de 8051 bus,
w_n staat voor write geïnverteerd en clock is de ingangsklok (4,096 MHz die ik dan deel door 16)).
In elk geval is de simulatie ok.
free_electron
Silicon Member
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
alles wat aan 'clkevent' hangt is een clock.
alles wat daar niet aan hangt is geen clock.
blijkbar heb je ergens een blok wat iets asynchroon kan doen.
post je source eens. zo kunnen we niks zien.