Ik bespeur hier toch een voordeel van VHDL boven Verilog. In VHDL wordt dit al geregeld. Zodra iets gerelateerd is aan een klok, krijg je flipflops. Structs zitten volgens mij ook al standaard in VHDL. Zijn ze Verilog aan het opknappen zodat het op VHDL gaat lijken?
[Bericht gewijzigd door Nico.c op (15%)]
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Op 9 september 2007 17:00:34 schreef free_electron:
always @( posedge clk) begin Z <= y; end of dit always @( posedge clk) begin if (clk) Z <= y; else Z <=Z; end
Ok, de sysVerilog constructie is duidelijk. Je haalt de onzekerheid eruit.
Maar nu je voorbeeld. Beide gevallen zijn een FF, geen latch. Immers, een latch krijg je _alleen_ als je niet alle gevallen uitschrijft.
vb 1: op elke clk flank is er een assignment naar Z. Z is altijd gedefineerd, dus het is een FF.
vb 2: Is een beetje een vreemde, omdat je de clk weer in de combinatoriek opneemt. Foei! Maar het wordt ook in dit geval geen latch omdat in alle standen van clk Z gedefineerd is.
Je zou een latch krijgen in dit geval:
always @( posedge clk)
if (inA) Z <= y;
of:
always @( posedge clk)
if (inA) A <= y; else B <= y;
In het laatste geval krijg je zelfs 2 latches (of bedoelde je je 2e voorbeeld ook zo?).
@Nico: ik vraag me af of je gelijk hebt. Volgens mij is het ook in VHDL zo dat je een latch krijgt als je niet bij elke clk tick een assignment doet. Net als in mn voorbeeld hierboven. (al twijfel ik even of dat ook zo is als je 'event gebruikt, een latch is immers nivo gevoelig op z'n clk)
[Bericht gewijzigd door flipflop op (13%)]
Op 9 september 2007 18:53:52 schreef flipflop:Je zou een latch krijgen in dit geval:
always @( posedge clk) if (inA) Z <= y; of: always @( posedge clk) if (inA) A <= y; else B <= y;In het laatste geval krijg je zelfs 2 latches (of bedoelde je je 2e voorbeeld ook zo?).
Ik heb dit zopas getest in Quartus en met de RTL viewer nagezien en die gebruikt voor alle 3 de uitgangen een DFFE.
Geen latch te bespeuren....
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
grrr. tis alijd moeilijk om ene voorbeeld te vinden wat verkeerd kan gaan.
we proberen deze dan.
always @(clock) y = a;
wat wordt dat ?
een latch ? of wordt dat een combinatorisch ding (een bus met en enable ? ).... rarara .. stel dat die Y ene open drain uitgang is ..
always @(clock) y=a; else y=y;
soms heel verwarrend. het kwaad zit hem altijd in een klein staartje. ( let op dat ik geen <= gebruik maar ene blocking assignment ... )
in systemverilog is dat probleem weg.
je schrijft gewoon
always_comb
if(clock) y=a;
en het is combinatorisch.
always_latch
if (clock) y=a;
en het zit in een latch.
let ook op dat je in systemverilog geen sensitivity lijsten meer opgeeft. de synthesizer bouwt zelf de sensitivity op. ( nu kan dat omdat de synthesizer op voorhand weet wat voor vlees hij in dekuip heeft ( .. moet steken ..
)
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 9 september 2007 20:46:10 schreef fotoopa:
[...]Ik heb dit zopas getest in Quartus en met de RTL viewer nagezien en die gebruikt voor alle 3 de uitgangen een DFFE.
Geen latch te bespeuren....
haal de posedge eens weg. als je edge sensitivity hebt krijg je automatisch flipflops .
Op 9 september 2007 18:53:52 schreef flipflop:
@Nico: ik vraag me af of je gelijk hebt. Volgens mij is het ook in VHDL zo dat je een latch krijgt als je niet bij elke clk tick een assignment doet. Net als in mn voorbeeld hierboven. (al twijfel ik even of dat ook zo is als je 'event gebruikt, een latch is immers nivo gevoelig op z'n clk)
In VHDL is het veel eenduidiger:
architecture BEHAVIORAL of demo is
signal a: std_logic;
signal b: std_logic;
signal c: std_logic;
signal d: std_logic;
signal en: std_logic;
signal clk: std_logic;
begin
--flipflop
flipflopproc: process(clk)
begin
if rising_edge(clk) and en='1' then
a <=c;
end if;
end process;
--latch
latchproc: process(en)
begin
if en=1 then
b<=c;
end if;
end process;
--en een nog viezere latch
when en='1' then d<=c;
end BEHAVIORAL;
Dus je mijn vraag blijft:
- Wat is de reden waarom jullie nog niet gestart zijn met CPLD of FPGA ?
-------
Ben uberhaubt nog niet bezig met microcontrollers enzo.
Waarom ? Ziet er heel moeilijk uit, en zou zo op eerste oog
niet weten waar ik moet beginnen.
Tijd en geld speeld natuurlijk ook een rol 
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Prive ben ik nog niet gestart omdat ik nog geen goed adres heb waar ik tegen redelijke kosten (en dus ook geen extreme) verzendkosten) een FPGA kan kopen. Ik zoek een Xilinx Spartan2 of 3. Da's de enige reden.
Verder is het gewoon een taal leren, VHDL of Verilog, dus da's geen reden om ermee te beginnen. Dat geldt ook voor C of elke andere taal.
Nog even over mijn voorbeelden hierboven: [schaammode on] dat klopt niet helemaal. Wordt al gecorrigeerd door anderen, maar het verschil tussen FF en latch wordt uiteraard gemaakt door "posedge" of 'event. Je krijgt wel een latch als je combinatoriek beschrijft en de assignment wordt niet in alle gevallen gedaan. Dan krijg je een latch. Nico's verhaal is ok.
Verder staat me bij dat je in Synopsys ook een latch krijgt als je een signal vergeet op te nemen in de sensitivity list, maar ik kan zo niet verklaren waarom dat is. Kortom: het blijft zeker uitkijken.
[Bericht gewijzigd door flipflop op (45%)]
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
ik ben sinds vrijdag half begonnen (lees me aan het orienteren in de software), maar voor mij was de reden de hoge instapkosten van fpga's en cpld's.
in eerste instantie was dat ook het geval bij µC's en dat loopt nu ook goed.
maar al het begin is moeilijk
maar ben nu wel trotse eigenaar van een maxII DE-NANO board
Op 10 september 2007 19:49:00 schreef timmie:
maar al het begin is moeilijk
maar ben nu wel trotse eigenaar van een maxII DE-NANO board
Heb je al de quartus software geinstaleerd en een van de voorbeelden gecompileerd?
Voor xilinx CPLD moet je wel andere software tools downloaden (1.5Gb) en installeren. De verilog voorbeelden zouden in beide gevallen moeten werken mits natuurlijk device en I/O's en de juiste tools te gebruiken.
Schema entry is niet uitwisselbaar!
jovak
meten is weten, weten is meten, maar hoe kan je weten wat je allemaal moet meten en weten.
Op 10 september 2007 19:49:00 schreef timmie:
ik ben sinds vrijdag half begonnen (lees me aan het orienteren in de software), maar voor mij was de reden de hoge instapkosten van fpga's en cpld's.in eerste instantie was dat ook het geval bij µC's en dat loopt nu ook goed.
maar al het begin is moeilijk
maar ben nu wel trotse eigenaar van een maxII DE-NANO board
net als ik, vanavond even de software en alles getest. Had van het weekend niet echt de tijd gehad. 
Op 10 september 2007 19:58:01 schreef fotoopa:
[...]Heb je al de quartus software geinstaleerd en een van de voorbeelden gecompileerd?
Voor xilinx CPLD moet je wel andere software tools downloaden (1.5Gb) en installeren. De verilog voorbeelden zouden in beide gevallen moeten werken mits natuurlijk device en I/O's en de juiste tools te gebruiken.
Schema entry is niet uitwisselbaar!
Compileren van de teller met schemaentry werkt en downloaden werkt nu ook.
Had even problemen om de USB blaster aan het werk te krijgen, maar is gelukt.
[Bericht gewijzigd door jovak op (36%)]
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
blaster geen problemen mee gwoon inf toe wijzen.
alleen de software en hoe je moet beginnen is me niet duidelijk
jovak
meten is weten, weten is meten, maar hoe kan je weten wat je allemaal moet meten en weten.
Op 10 september 2007 21:31:33 schreef timmie:
blaster geen problemen mee gwoon inf toe wijzen.alleen de software en hoe je moet beginnen is me niet duidelijk
Zelfde probleem hier, maar ik ga morgen avond verder. en dan maar eens stap voor stap bij houden wat ik doe. Kan F_E of Fotoopa mee kijken 
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
jovak
meten is weten, weten is meten, maar hoe kan je weten wat je allemaal moet meten en weten.
Op 10 september 2007 22:54:56 schreef timmie:
zelfde idee hier.
heb nu wel eindelijk een licentie(die kreeg ik in eerste instanstantie niet:S)
Oh dat had ik al wel snel voorelkaar. half jaar geleden al eens geregistreerd om iets te doen met quartus. alleen is er toen niet van gekomen wegens gebrek aan hardware en tijd.
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
blijkbaar is het de eerste keren iets fout gegaan net kreeg ik hem binnen een halve minuut binnen dus
Ik stel voor als er vragen zijn rond het opstarten van Quartus of van de voorbeelden dit verder in de topic van "CPLD-FPGA eenvoudigevoorbeelden" verder te zetten. Hier in deze link
Dan worden die problemen meer gebundeld. Ik vermoed eens dat de FPGA printjes van xantus zullen geleverd zijn er daar nog meer nieuwe gebruikers en vragen zullen bijkomen.