Hulp nodig op VHDL-code.

K

kokei74

Guest
hi, im volkomen nieuw voor VHDL en momenteel is leren nu.Ik probeer het creëren van een D flip-flop met mogelijk maken van een D flip-flop met behulp van een poort kaart.<img src="http://images.elektroda.net/48_1216784104.jpg" border="0" alt="Help needed on VHDL code." title="Hulp nodig op VHDL-code."/>hier is VHDL voor DFF

library IEEE;
gebruik ieee.std_logic_1164.all;

entiteit dfflop is
poort (D, klok: IN std_logic;
Q: OUT std_logic);
einde dfflop;

logica van de architectuur dfflop is
beginnen
proces (klok)
beginnen
indien clock'event en klok = '1 'THEN
Q <= D;
end if;
einde proces
einde logica;
Hier is VHDL voor DFF met mogelijk te maken.

library IEEE;
gebruik ieee.std_logic_1164.all;

entiteit DFF_en is
poort (EN, D0, C: IN std_logic;
Q0: OUT std_logic);

einde DFF_en;

logica van de architectuur DFF_en is
signaal p0: std_logic;

component dfflop
poort (D, klok: IN std_logic;
Q: OUT std_logic);
end component;

beginnen

p0 <= (NIET EN EN Q0) OF (NL-EN D0);

stage0: dfflop poort kaart (p0, C, Q0);

einde logica;

wanneer beginnen compilatie deze fout optreden.
Fout: VHDL Interface Verklaring fout in DFF_en.vhd (21): interface object "Q0" van out-modus niet kan worden gelezen.Verander object modus buffer of InOut.
Fout: Genegeerde bouwen logica op DFF_en.vhd (11) als gevolg van eerdere fouten

Please help me nagaan wat het probleem is.Thx

 
U krijgt deze fout, omdat je probeert om de output-poort Qo die niet is toegestaan te lezen.
Dit oplossen door het definiëren van een intern signaal ... hieronder is de code.

Code:library IEEE;

gebruik ieee.std_logic_1164.all;entiteit DFF_en is

poort (EN, D0, C: IN std_logic;

Q0: OUT std_logic);einde DFF_en;logica van de architectuur DFF_en is

signaal p0: std_logic;

signaal Q0_int: std_logic;component dfflop

poort (D, klok: IN std_logic;

Q: OUT std_logic);

end component;beginnenp0 <= (NIET EN EN Q0_int) OF (NL-EN D0);stage0: dfflop poort kaart (p0, C, Q0_int);

Q0 <= Q0_int;

einde logica;
 
Ik heb geprobeerd om gebruikt ur code maar fout nog steeds optreden.

Fout: Net "Q0 ~ 0", die fans naar "Q0", niet kunnen worden ondergebracht meer dan een waarde
Fout: Netto wordt gevoed door "kam ~ 0"
Fout: Netto wordt gevoed door "dfflop: stage0 | Q"

wat dus betekent dat?

 
Ik was vergeten om de Q0 veranderen Q0_int in de haven kaart ...Ik denk dat het zou nu moeten werken ..

 
haar werk prima.Thx a lot.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />maar misschien zal ik moeten helpen ur weer.Ater deze Ik wil deze DFF combineren om een register te creëren.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
hi again ..
veronderstellen wanneer NL = 1 de gegevens op 4-ingang is de overdracht in het register met de volgende positieve klok rand.wanneer NL = 0 de huidige waarde blijft in het register op de volgende positieve klok rand.Dus NL zal bepalen of de volgende puls aanvaardt nieuwe informatie of laat de informatie in het register.Van mijn simulatie waarom heeft de output 0100, 0101, 0110 deed `t gekomen na 0011, maar het overslaan van 0111 en veronderstellen wanneer EN = 0 na dat het 0111 moet bewaren tot de volgende positieve klok rand.<img src="http://images.elektroda.net/81_1216883534_thumb.jpg" border="0" alt="Help needed on VHDL code." title="Hulp nodig op VHDL-code."/> simulatieresultaat<img src="http://images.elektroda.net/31_1216883607_thumb.jpg" border="0" alt="Help needed on VHDL code." title="Hulp nodig op VHDL-code."/> VHDL voor het register

library IEEE;
gebruik ieee.std_logic_1164.all;

entiteit reg is

poort (A: IN std_logic_vector (3 Downto 0);
Load, clk: IN std_logic;
X: OUT std_logic_vector (3 Downto 0));

einde reg;

logica van de architectuur is reg

component DFF_en
poort (EN, D0, C: IN std_logic;
Q0: OUT std_logic);
end component;

beginnen

stage0: DFF_en poort kaart (A (0), Load, CLK, X (0));
stage1: DFF_en map van de havens (A (1), Load, CLK, X (1));
stage2: DFF_en map van de havens (A (2), Load, CLK, X (2));
stage3: DFF_en map van de havens (A (3), Load, CLK, X (3));

einde logica;

 
Ok ...!in je map van de havens u belasting in kaart gebracht als D0 input voor alle DFF ... Het moet een plaats ....
is het beter om gebruik genaamd port mapping vereniging om een beter inzicht in het begin van VHDL experimenten ....

 
voor haven-kaart kan u mij vertellen hoe de input positie?

stage0: DFF_en poort kaart (A (0), Load, CLK, X (0));
1e 2e 3e 4e

hoe te regelen input 1,2,3,4?

btw didt wat u bedoelt met "named port mapping vereniging"?

 
stage0: dff_en poort kaart
(NL => belasting,
D0 => A (0),
C => clk,
Q0 => X (0));enzovoort ....
Dit is wat wordt genoemd als de naam vereniging en degene die u gebruikt, is positionele vereniging ...

 
i see ..nu is het goed werken als ik WAN.THX

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />gebruik van deze naam associëren is veel eenvoudiger voor beginners ..

kan mij helpen creëren van een serieel-parallel-serieel en parallel registreren met behulp van deze DFF?
een blokschema misschien zodat ik kan werken aan de VHDL-code.Toegevoegd na 1 uur 3 minuten:dit is voor mijn vervolgverhaal - parallel registreren<img src="http://images.elektroda.net/14_1216974722.jpg" border="0" alt="Help needed on VHDL code." title="Hulp nodig op VHDL-code."/>VHDL-code

library IEEE;
gebruik ieee.std_logic_1164.all;

entiteit regsp is

poort (SI: IN std_logic_vector (3 Downto 0);
Load, clk: IN std_logic;
P: OUT std_logic_vector (3 Downto 0));

einde regsp;

logica van de architectuur regsp is
signaal s0: std_logic;
signaal S1: std_logic;
signaal S2: std_logic;

component dfflop
poort (D, klok: IN std_logic;
Q: OUT std_logic);
end component;

beginnen

stage0: dfflop poort kaart (D => SI, klok => clk, Q => S0);
stage1: dfflop poort kaart (D => S0, klok => clk, Q => s1);
stage2: dfflop poort kaart (D => s1, klok => clk, Q => s2);
stage3: dfflop poort kaart (D => s2, klok => clk, Q => P (3));

P (0) <= S0;
P (1) <= s1;
P (2) <= s2;

einde logica;

heb wat fout voor mijn seriële input logica type.Stel voor seriële in-het is als 1100 dan voor aangifte moet worden SI: IN std_logic_vector (3 Downto 0)?

 
Er zijn veel goede boeken en andere middelen beschikbaar zijn voor de basiskennis van digitale en VHDL ..... je moet verwijzen naar hen.Krijg je een FPGA board en beginnen experimenteren.
Als u geconfronteerd enig probleem dit forum kunnen u helpen ...
Happy codering.

 
ja ja zojuist verwarren over seriële input.nu begrijp alrdy.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />btw thx for ur help.Ik zeker nodig om te studeren meer over VHDL.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />

Toegevoegd na 20 minuten:Hi, annuleerteken u suggereren de beste FPGA board voor mij?
Ik denk dat ik zal 1 nodig voor mijn toekomstige project.

 
kokei74 wrote:

ja ja zojuist verwarren over seriële input.
nu begrijp alrdy.
<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
btw thx for ur help.
Ik zeker nodig om te studeren meer over VHDL.
<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />Toegevoegd na 20 minuten:
Hi, annuleerteken u suggereren de beste FPGA board voor mij?

Ik denk dat ik zal 1 nodig voor mijn toekomstige project.
 

Welcome to EDABoard.com

Sponsor

Back
Top