VHDL ModelSim Hjælp

A

adamsogood

Guest
Hej,

Jeg har problemer når jeg kører VHDL simulering på ModelSim.Problemet er, at nogle signaler ikke initialiseret korrekt (fordi det er en stor konstruktion, så jeg kan ikke tildele den oprindelige værdier til de enkelte signaler).Den uninitialized signaler kan tildele 'X' og 'U' værdier og forårsage, at nogle uventede simulation resultater.Jeg forsøger at finde ud af, hvilke uninitialized signal er ballademager.Men ModelSim ikke gav meget run time tip.

nogen idé?
Tak,

adam

 
Det
er dit job som HDL designer til at initialisere de nødvendige signaler.Størrelsen af det design, bør ikke påvirke din evne til at initialisere de nødvendige signaler.Afhængigt af design og din simulation mål, nogle signaler, kan det være nødvendigt at initialiseret, og andre bevidst uninitialized.Fra simulator synspunkt, initialiseres signaler og uninitialized signaler både er acceptable, så det kan ikke rigtig hjælpe dig med fejlfinding.

 
Jeg er enig med den foregående post.It er den faste praksis, der skal følges.
men du kan kende førere af et særligt signal i runde vindue ved at højreklikke på sin wave.Once du kender alle førere af dit signal under analysen kan du initialisere dem efter behov.og simulere design igen at forvente en ordentlig results.But dette ikke er en god praksis.

hilsen
Kishor.

 
De har enten initialisere dem i dit design eller i runde form vindue selv eller i dit testbench ...

 
dit design skal have nogle komponenter, og du bruger dem i din top-modulet.
første bør du være sikker på, at disse komponenter er skrevet korrekt.definere nye projekter i modelsim og skrive testbenches at sikre.Jeg tror, du kan gøre nogle fejl i disse komponenter.

 
ModelSim faktisk kræver initialisering af alle interne signal om, at ikke afhænger reset eller et andet signal.E. g.hvis du har en simpel frekvens dividere tæller, i de fleste tilfælde ville det ikke have brug for en initialisering i en reel hardware design.Det kunne starte med en vilkårlig værdi, desuden ville det faktisk have en veldefineret maskinelt på reset tilstand i de fleste FPGA familier.Men ModelSim ikke kender til standard el-staterne, indeholder signalet til 'X' og tælleren vil aldrig give nogen output, medmindre du indstiller den til en defineret værdi.

.

Hvis en asynkron reset er ikke beregnet til et bestemt signal, der giver en første værdi i signal definition ville være nok,
f.eks signal count: usigneret (3 downto 0): = (andre =>'0 ');.
 
Hej folkens,

Tak for alle dine svar.Faktisk er problemet resultater fra 'X' / 'U' signal opgaver, men de 'X' / 'U' er ikke er forårsaget af ukorrekt initialisering.det drejer sig om de bidirektionale signaler.

Jeg er at designe et DDR2 memory controller.I den øverste top design, der er en havn signal kaldes DDR2_DQSp.Det er en tovejskommunikation data stroboskopeffekt signal deles af både læser og skriver.

Denne port signal er angivet som følger:
DDR2_DQSp: inout std_logic_vector ((DQS_WIDTH-1) downto 0);

I testbench, denne port signalet er hooked op til Micron Verilog Simuleringsmodel.Inde i den udformning, den blev drevet af signaler som følger:
DDR2_DQSp <= ddr2_dqs_int;

signalet ddr2_dqs_int er drevet af et tovejskommunikation port signal fra et sub-komponent (et hierarki niveau under den øverste top design).Efter at se bølgeform, jeg fandt ud af, at DDR2_DQSp bliver 'x'.....

Så, jeg tilsluttet DDR2_DQSp direkte til tovejskommunikation port signal i sub-komponent, problemet er væk.

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Smile" border="0" />
Kort sagt, den tovejskommunikation havn signaler skal behandles ordentligt, ellers modelsim vil køre den til 'X'Tak

 
or it's verilog equivalent for bidirectional ports of submodules.

Det kan være nødvendigt at tilføje en ekstra initialisering til: = (andre => 'Z'),
eller det
er verilog svarende til tovejskommunikation havne i submodules.I VHDL, det kan indgå i havnen definition.Det
er ikke påkrævet for syntese, men for ModelSim.

 

Welcome to EDABoard.com

Sponsor

Back
Top