aucun exemple de code pour le port bidirectionnel (inout)???

C

Childs

Guest
Yat-il un exemple de code pour utiliser un port bidirectionnel (inout)???Peut-être prendre pour exemple, comment l'utiliser pour une RAM avec un bus de données bidirectionnel.D'autres exemples sont les bienvenus aussi.Thx

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Salut,
code ci-dessous peuvent vous aider à comprendre les broches bidirectionnel.

module de haut
(
SysClk entrée,
entrée Sys_Rst,
inout I2c_Sda,
inout I2c_Scl
);

i2c_scl_out fil;
attribuer I2c_Scl = (i2c_scl_out == 1'b0)?1'b0: 1'bz;
i2c_scl_in fils = I2c_Scl;
i2c_sda_out fil;
attribuer I2c_Sda = (i2c_sda_out == 1'b0)?1'b0: 1'bz;
i2c_sda_in fils = I2c_Sda;

Composant instance
(//==============================
/ / Signaux Globle
. NSYSRESET (sys_reset_n), / / input
. SYSCLK (sys_clk), / / input
//-------------------------------------------
//==============================
/ / Les signaux I2C
. SDAI (i2c_sda_in), / / input
. SCLI (i2c_scl_in), / / input
. Sdao (i2c_sda_out), / / sortie
. SCLO (i2c_scl_out) / / sortie
//-------------------------------------------
);

endmodule

Hth

 
u peut expliquer ce qui est accompli par cette déclaration?

attribuer I2c_Scl = (i2c_scl_out == 1'b0)?1'b0: 1'bz;

Désolé parce que je ne suis tombé sur VHDL jusqu'ici, je suppose que c'est Verilog?Parce que cette déclaration ressemble à quelque chose en C.

 
Je ne connais ni VHDL (suis très lentement d'apprentissage!), Ni Verilog, mais je sais que C / C .En C C / la?opérateur (appelé un opérateur ternaire) fonctionne comme suit:

Code:

a = (condition)?
true: false;
 
Oui, la syntaxe est proche de Verilog en langage C dans de nombreuses régions, voici l'équivalent VHDL:
Code:

I2c_Sda <= '0 'QUAND i2c_sda_out = '0' ELSE 'Z';
 

Welcome to EDABoard.com

Sponsor

Back
Top