「ps2c」入出力信号 (VHDL) を持つ「HostToDevice」というエンティティがあるとします。このエンティティでは、他のエンティティに制御させたいので、この信号を「Z」(高インピーダンス) に設定するだけです。
動作を確認するためにテスト ベンチを作成したところ、(私にとって) 奇妙なことが起こりました。テストベンチには、次のコードがあります。
ps2ctemp_process :process
begin
ps2ctemp <= '0';
wait for ps2c_period/2;
ps2ctemp <= '1';
wait for ps2c_period/2;
end process;
以降:
stim_proc: process
begin
ps2c <= ps2ctemp;
wait;
end process;
シミュレーション (動作) を実行すると、「ps2c」inout 信号はちょうど低く、ps2ctemp 信号のように変化しません。
代わりに、別の信号を使用せずに ps2c 信号を手動で駆動すると、正常に動作します。このような:
ps2c <= '1';
wait for 10 ns;
ps2c <= '0';
wait for 10 ns;
ps2c <= '1';