Modelsim - forcing signals to 'Z'

D

DonQ

Hi,

I've got a simple problem with Modelsim.
The relevant connections of my system look like that:


------------ ------------
| | | |
| | | |
| A-----+----B |
| | | | |
| Module1 | | | Module2 |
| | | | |
------------ | ------------
|
input to Module3


A and B are declared as inout in Module1 and Module2 (it's a GPIO
pin).

Both Module1 and Module2 can drive the pin.
I can't change the code of Module2 and I can't tell it to stop driving
the pin (it drives it to '0').
But I want the pin to be driven only by Module1, so Module3 can see
the value driven by Module1.

What I tried is forcing (-freeze) signal B to 'Z', but it seems not to
work.
Any ideas why?
Can I do something else?

Thanks,
DonQ
 
C

Chuck Gales

Hi,

I've got a simple problem with Modelsim. The relevant connections of my
system look like that:


------------ ------------
| | | |
| | | |
| A-----+----B |
| | | | |
| Module1 | | | Module2 |
| | | | |
------------ | ------------
|
input to Module3


A and B are declared as inout in Module1 and Module2 (it's a GPIO pin).

Both Module1 and Module2 can drive the pin. I can't change the code of
Module2 and I can't tell it to stop driving the pin (it drives it to '0').
But I want the pin to be driven only by Module1, so Module3 can see the
value driven by Module1.

What I tried is forcing (-freeze) signal B to 'Z', but it seems not to
work.
Any ideas why?
Can I do something else?

Thanks,
DonQ
Why don't you OR the signals from Module1 and Module2 to the input of
Module3?? If Module2 is always 0, then Module3 will see only the value of
the signal from Module1??

Chuck
 
A

Amontec Team, Laurent Gauch

DonQ said:
Hi,

I've got a simple problem with Modelsim.
The relevant connections of my system look like that:


------------ ------------
| | | |
| | | |
| A-----+----B |
| | | | |
| Module1 | | | Module2 |
| | | | |
------------ | ------------
|
input to Module3


A and B are declared as inout in Module1 and Module2 (it's a GPIO
pin).

Both Module1 and Module2 can drive the pin.
I can't change the code of Module2 and I can't tell it to stop driving
the pin (it drives it to '0').
But I want the pin to be driven only by Module1, so Module3 can see
the value driven by Module1.

What I tried is forcing (-freeze) signal B to 'Z', but it seems not to
work.
Any ideas why?
Can I do something else?

Thanks,
DonQ

This is your JOB to fix A or B to 'Z, not Modelsim JOB.
But your modules need to know when there are output or tristate. You
have to do a control with an 'output enable' or other control
signal(chip select + read signal), like

-- example: A and B are 8-bit vector
A <= "00110011" WHEN (A_OE = '1') ELSE (OTHERS => 'Z');
B <= "11001100" WHEN (B_OE = '1') ELSE (OTHERS => 'Z');
-- works if B_OE <= not(A_OE);

Just try.

Laurent
www.amontec.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top