problēma VHDL signāla piešķir vienu pin no daļa

A

ahmadagha23

Guest
Hi;
Es piešķirts signālu uz vienu pin no komponenta top-moduli.definējot šo komponentu es inicializēts, ka pin uz "0".
pēc noklusējuma, ka pin ir definēta kā "inout" tipa.Kaut kas imitē augstākajā modulī, ja signāla vērtību jāmaina uz "1", tas mainās uz "X".Kad es mainīt veidu, kas pin uz "" tipa tā darbojas taisnība.Es vēlos izmantot šo pin arī kā kas, tāpēc es to izmantot kā "inout".Faktiski tā ir puse no divvirzienu buferšķīdumā.
Vai jūs, lūdzu, guide me?mans kods ir VHDL.

Sveicieni

 
Kaut arī rakstiski ABL vienmēr cenšas vizualizēt to, ko jūsu kods būs raža sintēzi.

Par divvirzienu signālu, kas var vadīt un varētu braukt būtu kāda cita vadības signāls, kas norāda, kad darboties kā ieguldījumu un kad, kā output.if jūs dont ir šāds signāls, tad, ko jūs redzēsiet kā "X", jo tur būs divi vadītāji par pašu signālu. (viena no iekšpuses savu dizainu un citiem no ārpuses.)
Šeit ir jauka piemērs tipiska tristate buferšķīdumā.

Quote:BIBLIOTĒKA IEEE;

IZMANTOŠANA ieee.std_logic_1164.ALL;STRUKTŪRVIENĪBAS bidir IS

PORT (

bidir: INOUT STD_LOGIC_VECTOR (7 DOWNTO 0);

OE, CLK: IN STD_LOGIC;

INP: IN STD_LOGIC_VECTOR (7 DOWNTO 0);

izma: OUT STD_LOGIC_VECTOR (7 DOWNTO 0));

END bidir;ARHITEKTŪRA maxpld OF bidir IS

SIGNAL: STD_LOGIC_VECTOR (7 DOWNTO 0) - DFF ka veikalos

- Vērtība no ieejas.

SIGNAL b: STD_LOGIC_VECTOR (7 DOWNTO 0) - DFF ka veikalos

BEGIN - atsauksmes vērtību.

PROCESS (CLK)

BEGIN

IF CLK = "1" UN clk'EVENT TAD - Izveido flipflops

<= INP;

izma <= b;

END IF;

END PROCESS;

PROCESS (OE, bidir) - uzvedības pārstāvība

BEGIN - no tri-valstīm.

IF (OE = "0"), tad

bidir <= "ZZZZZZZZ";

b <= bidir;

VĒL

bidir <= a;

b <= bidir;

END IF;

END PROCESS;

END maxpld;

 
Es interpretēts iemesla dēļ: lai inout ostām, ir iekšējās un ārējās vadītājiem, kas strādā neatkarīgi.Tātad jums vajadzētu determin par katru iekšējo un ārējo valstis to vērtību un šīs vērtības nedrīkst būt konfliktu.Piemēram, kad es pievienoja assignement par "Z" vērtība iekšējā kodu norāda, ka inout tapas būtu drived ar ārējo vērtību tā strādāja patiesi.
process (clk_DIRn, aclk, bclk)
sākt
ja (clk_DIRn = "1"), tad
aclk <= bclk pēc Tbuff Tcable Tbuff;
bclk <= 'Z';
elsif (clk_DIRn = "0"), tad
bclk <= aclk pēc Tbkp;
aclk <= 'Z';
beidzas, ja;
gala procesa;

uz

 
Vai jūsu problēma atrisināta?
kas ir jūsu divvirzienu signāls?

 
jā to atrisināt.gan aclk un bclk ir divvirzienu.u var izskatīt tikai vienu no tiem.

 

Welcome to EDABoard.com

Sponsor

Back
Top