シミュレーション中に、時間値 7.5 ns、15 ns、22.5 ns などで A、B、および Y の値を返したいと考えています。以下は、これまでに実装したコードです (for ループ用)。数学的には理にかなっていますが、7.5 ns、30 ns、67.5 ns、120 ns の時間で値を返しています....コードのどこが間違っているのかわかりません。これを実装するためのより良い方法を知っていますか?
constant InputPeriod : time := 15 ns;
----------------------------------
TEST:process
variable n : integer range 1 to 9;
begin
for I in 0 to 4 loop
wait for (n * (InputPeriod / 2));
report "A: " & std_logic'image(A);
report "B: " & std_logic'image(B);
report "Y: " & std_logic'image(Y);
n := n + 2;
end loop;
report "Test Completed";
wait;
end process TEST;