DonQ wrote:
> 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