INOUT satamassa testbench ongelma, Verilog

K

krivan

Guest
Kirjoitin testbench minun i2c koodi mutta se ei näytä toimivan.

Tässä moduulissa SDA on INOUT satamaan.

Kun testbench:

...
lanka SDA;

reg SDA_reg;
OE = 1;
...
antaa SDA = (OE == 1)?SDA_reg: 1'bz;
...

Olen aina kirjoittaa SDA_reg.Ongelmana on, että SDA aina pysyy Z ja se ei ole ladattu.Onko kukaan on ajatus siitä, mitä teen väärin?
Thx,
krivan

 
Oletko piirrettävä ulos SDA_reg vuonna simulaattorin ja on varma, että se ei ole undefined?

Mitä tapahtuu, jos muutat lausuman:
antaa SDA = (OE == 1)?SDA_reg: 1'b1;
Onko SDA mennä korkealla?

Jos muutat lausuman:
antaa SDA = (OE == 1)?SDA_reg: 1'b0;
Onko SDA mennä alhainen?

Olen yrittänyt saada milloin nämä väliaikainen koodi muutokset on ongelman.Voiko SDA todella hallinnassa, tai jotain muuta peittää ongelman.

 
hei,

Olen yrittänyt, mutta mitään ei ole tapahtunut.Tarkoitan, että SDA on vakio z-arvo, ei väliä, jos

antaa SDA = (OE == 1)?SDA_reg: 1'b0;

TAI

antaa SDA = (OE == 1)?SDA_reg: 1'b1;

Olen jo yrittänyt määritellä SDA_reg kuten tri-ja trireg mutta se oli turha ...

 
Olen joutunut saman ongelman käyttämällä kaksisuuntaiseen kuten Kirvan tekee.Let's do some looginen kamaa:
(1) InOut portti on kaksisuuntaisen satamaan, tarkoittaa se on panos-porttiin, joka on osa suunnittelua, mutta myös ulostuloportti joidenkin muiden osa suunnittelua, ja te kallistus antaa mitään arvoa suunnittelua ulostuloportti, koska niiden arvot ovat suoraan laskea arvo muiden tulo satamaan.
Sallikaa sanoa hyvin yksinkertainen, mutta examplary esimerkiksi täydellinen lisätoiminto, rakennepoliittisissa mallinnus.Kaikki me tiedämme, että koko lisätoiminto voidaan archieved jonka concat 2 puoli lisätoiminto, ulostulo signaali
1. puoli lisätoiminto on myös syöttämällä toisen puoli lisätoiminto, mutta emme voi antaa mitään arvoa tämän välituotekäyttönä (INOUT satama) , koska sen arvo on vetämänä 2 maailmanlaajuinen tuotantopanokset, sanoa ja b.
With ur tapauksessa, u on määritelty maailmanlaajuista tuloa (yksi ulottuvuus vain) ja antaa arvoa sille, mutta ei bidiectional yksi ....
Last edited by Atena
26. maaliskuu 2008 19:50, muokattu 1 kertaa yhteensä

 
Atena,

pahoillani, mutta en ole varma siitä, että ymmärsin oikein.Joten, sinä tarkoita, että [vuonna moduulin] SDA ja SCL olisi panos-ja ...
Atena wrote:

... antaa arvoa sille, mutta ei bidiectional yksi ....
 
Koska SDA jäi "z", tuntuu siltä, että joko testbench portti ongelma tai koko suunnittelu on juuttunut nollattu.
Minkä tason suunnittelua olet näyttämällä SDA on?Oletko näyttävä testbench signaali tai yhden alas sisällä todellisia logiikkaa.Haluan ajaa alas osaksi logiikkaa ja näyttö SDA, SDA_reg ja OE.Jos nämä ovat normaalia alemmalla tasolla, niin A hookup ongelma esiintyy testbench.Jos ne ovat huonoja alemmalla tasolla, niin logiikka on juuttunut nollata tai ei katso kelloa tai jotain vastaavaa.

Oletko varma, että sisälly kaikki se, mitä logiikka on simuloida?Esimerkiksi kanssa Xilinx, sinun on usein sisällyttää glbl.v.Tämä tiedosto sisältää "tavaraa", että saa suunnitella ulos nollattu.Vanhemmat malleja käytetään tarvitse sisältää käynnistys-tiedoston tai käynnistyksen estää.

Please
don't get hung up on INOUT osittain.Osoittamaan, onko INOUT on ongelman muuttamalla SDA tuotoksen vain ja onko "z" tulee hyvä logiikan tasolla.

 
En tarkoita, että sinun olisi parempi rikkoa suunnittelua osaksi useita submodules.Jokainen submodule sisältää vain syötön ja ulostulon satamiin, ei INOUT satamaan.The INOUT satama ei ole mitään, mutta johto kytkeä kunkin submodule vain ...Mistä minun mielestäni se on paras tapa välttää ongelma on HDL suunnittelu ...

 
Hi krivan, Voitko näyttää meille täydellinen moduuli, joka osoittaa ongelmaa?Se auttaisi keskusteluun.

 
Hi all,

Banjo:
kaikki [SDA_reg, SCL ,...] näyttää toimivan paitsi SDA.The SDA on juuttunut "z", joten en voi antaa panoksensa moduulin Pyydän i2c_slave_code3.
No ... Toivon, että olen kaiken simulaation.Olen uusi ModelSim [I työtä ModelSim] ja en ole kuullut tästä tiedosto glbl.v vielä.Aion tarkistaa ...
Olen yrittänyt asettaa SDA että "tuotos", mutta ongelma on sama.

Atena:
Ah, ok.Aion kokeilla sitä, kiitos.Onko "INOUT" todellakin vain "lanka", joka liittää "tuotantopanos" ja "tuotos"?Tarkoitan,
että on syntesoiduista tekijä oikeastaan vain lanka välillä INOUT ja tuotoksena submodules?

echo47:
Kyllä, olet oikeassa.Tässä on koodi, testbench.

Kiitos avustanne.
moduuli test_i2c_slave_code ();

lanka SDA;

reg SDA_reg;
reg SCL;
reg-P1, P2;
reg OE = 1;

reg aloittaa;i2c_slave_code3 u (SCL,
SDA,
P1,
P2
);

antaa SDA = (OE == 1)?SDA_reg: 1'bz;

alkuperäisen
aloittaa
start = 0;
SDA_reg = 1;
SCL = 0;
P1 = 0;
P2 = 1;
# 10
SDA_reg = 0;
start = 1;
# 1
SDA_reg = 1;
# 1
SDA_reg = 0;
# 1
SDA_reg = 1;
# 1
SDA_reg = 1;
# 1
SDA_reg = 0;
# 1
SDA_reg = 0;
# 1
SDA_reg = 1;
# 1
SDA_reg = 1;
# 1
SDA_reg = 0;
# 1
SDA_reg = 1;
# 1
SDA_reg = 1;
# 1
SDA_reg = 0;
# 1
SDA_reg = 0;
# 1
SDA_reg = 0;
# 1
SDA_reg = 1;
$ näyttö ( "x. bittinen");
loppu

alkuperäisen
aloittaa
@ (posedge start)
ikuisesti # 1 SCL =! SCL;
loppu
endmodule

 
Käyttämällä ModelSim SE 6.3e,
en katso ikuinen "z" valtion kuvailitte.

Minun oli pakko kommentoida ettei i2c_slave_code3 instantiation koska minulla ei ole, että moduuli.Ehkä että moduuli sisältää ongelma?
Anteeksi, mutta sinun on kirjautumistunnuksen nähdäksesi tämän liitäntävaatimuksia

 
Hmmm ... strage.Olen kokeillut sitä ilman i2c moduuli [kommentoi] ja saan saman tuloksen kuin sinä ... ehhh.

Kun i2c moduuli on SDA on INOUT joka siirretään sda_R [tämä on reg] seuraavasti

antaa SDA = (OE == 1)?sda_R: 1'bz;

missä

reg OE = 1;

Luin / kirjoittaa sda_R varauksista / komento rekisteriin.
Onko kenties reg - INOUT antaa väärin?

/ krivan

 
Koska se ei toimi alhaisempi kommentoi pois, uskon,
että sinulla on jonkinlainen bussi väite tai puute, joka pullup.The I2C tiedot linja on avoin valua järjestelmään.Onko sinulla pullup joka logiikka sijalla testbench?Jos ei, sitten ehkä alhaisempi yrittää tulostaa "1", joka tarkoittaa, että vain releases linjan.Kuitenkin ilman pullup, linja näyttää mennä korkea Z.

 
Olisi hyödyllistä nähdä kaikki lähdekoodia, jos se ei ole luottamuksellisia.

Teidän simulaattori näyttö, varmista, että et ole sekava kelluvan "z" valtio tuntemattoman "X" tilassa.Signaalin väite (kaksi kuljettajat taistelevat keskenään) voi johtaa siihen, että "x-tilassa.

Muuten, teidän testipenkki ei simuloida avoimen valua luonne I2C.On ajo SDA sekä korkea ja matala, mutta se olisi vain ajo se alhainen.Käytä jatkuva heikko pullup pitää signaali suuri, kun se ei ole ajetaan alhainen.

 

Welcome to EDABoard.com

Sponsor

Back
Top