mixed VHDL und Verilog

Gast #418376
Lesenswert?
• ▲
▼
Hallo,

ich vermute, dass mein Simulationswerkzeug (Xilinx ISE 8.2.) einen Bug
hat, und inout Ports nicht richtigt handhabt.

Der Beispielcode:

In Verilog geschriebenes modul "Test" hat inout-port "sig1" uns
setzt diesen auf 'Z'. Testbench (VHDL) drumherum setzt eben dieses
Signal auf '1', aber in "Test" kommt das nicht an.


Mache ich etwas falsch, oder ist es mein Werkzeug?
Angehängte Dateien:
Gast #418378
Lesenswert?
• ▲
▼
Ne, das ist ja nur die Portzuweisung, wenngleich ich ebenfalls der
Ansicht bin, daß eine Zuweisung dieser Art nur verwirrt: In-zuweisungen
sollten sich von Out-zuweisungen in der Pfeilrichtung unterschieden. Das
tut VHDL aber nicht - ein Umstand den ich schon vor über 10 Jahren
angemeckert habe. Aber wer hört schon auf mich ...

Diese Zeile ist also ok. Aber das Submodule macht so keinen Sinn:
Sicher sollte erst da interne Signal gesetzt, dann dem nach aussen
gehenden zugewiesen werden. Wenn es Dir aber um das wire geht, hast Du
im Modelsim gfs das faslche Signal genommen: Man sollte immer zusehen,
daß signale und port pins  NICHT denselben Namen haben. Das ist sonst
nicht nur nutzlose Info, sondern noch verwechslungsgefährdend.

Daher nochmal anhand von 3 Beispielen für Top-SubModuel und Signal:

Port-Pins immer so deklarieren, daß klar wird, was dieser pin in diesem
Modul macht (IO), z:B.  "sram_data_io" , "i2C_adr_in" oder
"strt_module_in" (IO)

Die korespondieren Signale in den Top- oder Submodulen dann kohärent
oder komplmentät- je nach Sinn, hier also
"sram_data_out", "i2c_adr_make" oder "start_module".

Die verbindenen Signal immer so, daß erkennbar ist, von wo das Signal
wohin läuft, also
"s_ram_bus" (bidirketional) "adr_i2ctoRom" (vom I2C-Controller zum
ROM) und "CTRL2MOD" also Startsignal vom Controller zum Modul.
Gast #418380
Lesenswert?
• ▲
▼
Hallo,

das die Signalbenennung so nicht richtig Sinn macht gebe ich gerne zu.

Ich wollte nur moeglichst kurzen Code haben, bei dem mein Problem,
auftaucht. Konkret also, dass das Top-Modul sig1 auch '1' setzt, das
aber im Sub-Modul nie ankommt.

Ich habe keine Erfahrung mit Verilog, moechte aber ein DDR-RAM Model
benutzen... und das ist dummerweise in Verilog.

Ich habe mir das Modell jetzt so umgepatched, dass es nur reine "in"
und "out" ports benutzt, und niemals "inout", da "inout"
(scheinbar) nicht funktioniert.


Und das problem tritt schon bei dem kleinen Beispielcode oben auf....


  j.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren