problem v VHDL-signal umesti v eno od pin komponente

A

ahmadagha23

Guest
Hi;
I dodeli znak za eno pin od komponente v top-modul.pri določanju te sestavine sem initialized da pin na "0".
privzeto, da je pin definiran kot "InOut" tip.Medtem ko simulira v najvišji modul, ko bi vrednost signala spremembe "1", se spremeni v "X".Ko sem spremembo vrste, ki na pin "in" tip to res deluje.Želim uporabiti tudi kot da pin ven, tako da naj bi jo uporabljal kot "InOut".Dejansko je stran dvosmerne pufra.
Bi prosim vodič mi?moja številka je v VHDL.

S spoštovanjem

 
Med pisanjem v HDL vedno poskušali vizualizirati, kar vaš zbornik bo donos v sintezi.

Za dvosmerno signal, ki lahko pospešijo in se lahko vozi tam je kakšen drug signal nadzora, ki določa, kdaj, da deluje kot vhodni in ko so output.if vi dont življati kot signal, kaj potem boste videli kot 'X', ker bo dva voznika za isti signal. (eden od v vašem projektiranja in drugimi od zunaj.)
Tukaj je lep primer tipičen tristate pufra.

Citat:LIBRARY IEEE;

USE ieee.std_logic_1164.ALL;ENOTI bidir IS

PORT (

bidir: InOut STD_LOGIC_VECTOR (7 downto 0);

oe, CLK: IN std_logic;

INP: IN STD_LOGIC_VECTOR (7 downto 0);

paj: OUT STD_LOGIC_VECTOR (7 downto 0));

END bidir;ARHITEKTURA maxpld OF bidir IS

SIGNAL: STD_LOGIC_VECTOR (7 downto 0); - DFF, ki shrani

- Vrednost od vložka.

SIGNAL b: STD_LOGIC_VECTOR (7 downto 0); - DFF, ki shrani

BEGIN - feedback vrednost.

PROCES (CLK)

BEGIN

ČE CLK = '1 'AND clk'EVENT nato - Ustvarja flipflops

<= INP;

paj <= b;

END IF;

END PROCESS;

PROCES (oe, bidir) - Vedenjska zastopanje

BEGIN - od tri-držav.

IF (oe = '0 ') then

bidir <= 'ZZZZZZZZ';

b <= bidir;

ELSE

bidir <=;

b <= bidir;

END IF;

END PROCESS;

END maxpld;

 
I razume razloga za InOut pristanišča, je notranje in zunanje voznikov, ki samostojno delo.Torej morate dolo za vsakega od notranjih in zunanjih navaja svoje vrednote in te vrednote ne bi smelo biti v nasprotju.Na primer, ko sem dodal doznaka za "Z vrednosti" v notranje kode, da se mora InOut pin drived zunanji vrednost, ki jo resnično delovala.
proces (clk_DIRn, aclk, bclk)
začeti
if (clk_DIRn = '1 "), nato
aclk <= bclk po Tbuff Tcable Tbuff;
bclk <= 'Z';
elsif (clk_DIRn = '0 ') then
bclk <= aclk po Tbkp;
aclk <= 'Z';
end if;
koncu postopka;

s spoštovanjem

 
da je rešen.tako aclk in bclk so dvosmerno.u se lahko upoštevajo le ena od njih.

 

Welcome to EDABoard.com

Sponsor

Back
Top