Ang problema sa VHDL-signal na nakatalaga sa isang pin ng isang bahagi

A

ahmadagha23

Guest
Hi;
Ako na nakatalaga sa isang senyas sa isang pin ng isang bahagi sa top-module.sa pagtukoy ng mga sangkap na-initialize ko na ang pin sa '0 '.
sa pamamagitan ng default na pin ay tinukoy bilang "inout" type.Habang ang pagtulad sa itaas module na kapag ang halaga ng signal ay dapat na baguhin sa "1", ang mga pagbabago sa "X".Kapag binago ko ang mga uri ng na-ipit sa "sa" type gumagana ito totoo.Gusto kong gamitin na pin din ng out, kaya ang dapat kong gamitin ito bilang "inout".Sa katunayan ito ay isang bahagi ng isang bidirectional buffer.
Maaari ninyo bang gabay sa akin?ang aking code ay sa VHDL.

Pagbati

 
Habang ang pagsulat sa HDL laging subukang visualise kung ano ang iyong code sa pagpunta sa ani sa pagbubuo.

Para sa isang bidirectional senyas na maaaring magmaneho at maaaring hinihimok ng may dapat sa ibang mga senyas control na kung saan tumutukoy kapag na kumilos bilang input at kapag ang bilang output.if dont kayo tulad signal pagkatapos ay kung ano ang makikita mo bilang 'X' dahil magkakaroon ng dalawang driver para sa parehong signal. (isa mula sa loob ng iyong mga disenyo at iba pang mula sa labas.)
dito ay isang magandang halimbawa ng mga tipikal na tristate buffer.

Quote:Library ieee;

PAGGAMIT ieee.std_logic_1164.ALL;Entity bidir AY

Port (

bidir: INOUT STD_LOGIC_VECTOR (7 DOWNTO 0);

oe, clk: SA STD_LOGIC;

inp: SA STD_LOGIC_VECTOR (7 DOWNTO 0);

outp: Out STD_LOGIC_VECTOR (7 DOWNTO 0));

END bidir;Architecture maxpld NG bidir AY

Isang senyas: STD_LOGIC_VECTOR (7 DOWNTO 0); - DFF na ang mga tindahan ng

- Na halaga mula sa input.

Signal b: STD_LOGIC_VECTOR (7 DOWNTO 0); - DFF na ang mga tindahan ng

Simulan - feedback halaga.

PROSESO (clk)

Simulan

KUNG clk = '1 'AT clk'EVENT pagkatapos - ay lumilikha ng flipflops

a <= inp;

outp <= b;

END KUNG;

END PROSESO;

PROSESO (oe, bidir) - pang-asal na representasyon

Simulan - ng tri-estado.

KUNG (oe = '0 ') at pagkatapos ay

bidir <= "ZZZZZZZZ";

b <= bidir;

Kung hindi

bidir <= isang;

b <= bidir;

END KUNG;

END PROSESO;

END maxpld;

 
Ako bibigyang-kahulugan ang mga dahilan: para sa mga "ports" na inout, diyan ay isang panloob at panlabas na mga driver sa trabaho na kung saan malaya.Kaya dapat mong determin para sa bawat isa sa mga panloob at panlabas na kalagayan na ang kanilang mga halaga at ang mga halagang ito ay hindi dapat magkaroon ng conflict.Halimbawa kapag ako ay idinagdag sa assignement ng 'Z' halaga sa panloob na code para sa estado na inout pin dapat drived sa pamamagitan ng panlabas na mga halaga na ito tunay na nagtrabaho.
proseso (clk_DIRn, aclk, bclk)
simulan
kung (clk_DIRn = '1 ') at pagkatapos ay
aclk <= bclk matapos Tbuff Tcable Tbuff;
bclk <= 'Z';
elsif (clk_DIRn = '0 ') at pagkatapos ay
bclk <= aclk matapos Tbkp;
aclk <= 'Z';
kung ang dulo;
dulo proseso;

pagbati

 
Ay ang iyong problema lutasin?
na kung saan ay ang iyong bidirectional signal?

 
yes ito lutasin.parehong aclk at bclk ay bidirectional.u maaaring isaalang-alang lamang ang isa sa kanila.

 

Welcome to EDABoard.com

Sponsor

Back
Top