bet pvz kodas dvikrypčiu uosto (Inout)?

C

Childs

Guest
Ar yra koks nors kodas pavyzdys naudotis dvikrypčiu uosto (Inout)?Gal imtis, pavyzdžiui, kaip jį naudoti autobusų RAM su dvikrypčiu duomenis.Visi kiti pavyzdžiai yra sveikintinas, kaip gerai.Thx

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Labai laimingas" border="0" />
 
Sveiki,
Toliau kodą gali padėti jums suprasti dvipusį kaiščių.

modulis viršų
(
pirkimo SysClk,
pirkimo Sys_Rst,
Inout I2c_Sda,
Inout I2c_Scl
);

viela i2c_scl_out;
priskirti I2c_Scl = (i2c_scl_out == 1'b0)?1'b0: 1'bz;
viela i2c_scl_in = I2c_Scl;
viela i2c_sda_out;
priskirti I2c_Sda = (i2c_sda_out == 1'b0)?1'b0: 1'bz;
viela i2c_sda_in = I2c_Sda;

Instancijos Componant
(//==============================
/ / Globle signalai
. NSYSRESET (sys_reset_n) / / input
. SYSCLK (sys_clk) / / input
//-------------------------------------------
//==============================
/ / I2C signalai
. SDAI (i2c_sda_in) / / input
. SCLI (i2c_scl_in) / / input
. QINGDAO (i2c_sda_out), / / išvesties
. SCLO (i2c_scl_out) / / išvesties
//-------------------------------------------
);

endmodule

HTH

 
gali ir paaiškinti, kas atlieka šį pareiškimą?

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

Atsiprašome, nes aš tik atėjo per VHDL iki šiol, manau, kad tai yra Verilog?Kadangi šis teiginys atrodo kažkas C.

 
Aš žinau, nei VHDL (esu labai lėtai mokytis!), Nei Verilog, bet aš žinau, C / C .C / C ?operatorius (vadinamasis trijų komponentų operatorius) veikia taip:

Kodas:

= (sąlyga)?
tiesa: false;
 
Taip, Verilog sintaksė netoli C kalba daugelyje, čia VHDL lygi:
Kodas:

I2c_Sda <= '0 ', kai i2c_sda_out = '0' ELSE 'Z';
 

Welcome to EDABoard.com

Sponsor

Back
Top