Tried it, not good.
I need my RTL to "see" (register back) a '1' when it itself drives the output to 'Z' and no other signal on the bus pulls it to '0'.
For examle:
-- we drive an inout port to 'Z' somewhere in our RTL code
inout_port <= 'Z'
-- we register back the inout_port in a synchronous process to see its value
registered_inout_port <= inout_port;
I want to see the "registered_inout_port" in the waveform as '1' when no other signal pulls it down to '0'.
but with what you suggested - it shows 'H' instead of '1'...
Resolution function...anyone?
'H' doesn't have the same effect as '1'.
inout_signal = 'H' isn't the same as inout_signal = '1'
what if I don't have access to the RTL .vhd ?
pull_up: process(test_bench_signal_connected_to_dut_open_drain)
begin
-- The output from this process will be latched to '1' or 'Z'
if test_bench_signal_connected_to_dut_open_drain = 'Z' then
test_bench_signal_connected_to_dut_open_drain <= '1';
else if test_bench_signal_connected_to_dut_open_drain = 'X' then
test_bench_signal_connected_to_dut_open_drain <= 'Z';
end if;
end process pull_up;
then why not just connect the inout_signal to '1'?'
A '1' and a 'Z' driven together will give '1'.
One more thing to try in the test bench (I have not tested it):
pull_up: process(test_bench_signal_connected_to_dut_open_drain)
begin
-- The output from this process will be latched to '1' or 'Z'
if test_bench_signal_connected_to_dut_open_drain = 'Z' then
test_bench_signal_connected_to_dut_open_drain <= '1';
else if test_bench_signal_connected_to_dut_open_drain = 'X'
or test_bench_signal_connected_to_dut_open_drain = 'U' then
test_bench_signal_connected_to_dut_open_drain <= 'Z';
end if;
end process pull_up;
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?