在以下代碼中,我已將cipher_temp2初始化爲整數值1.但是,當我模擬我的代碼時,我將cipher_temp2的值初始化爲0而不是。我無法弄清楚我出錯的地方。信號無法初始化爲VHDL中的整數值
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity ciphercalculation is
Port (Msg_temp2 : in integer;
cipher : out integer);
end ciphercalculation;
architecture Behavioral of ciphercalculation is
CONSTANT e1: std_logic_vector(0 TO 2) := ('1', '0', '1');
CONSTANT Pk:integer:=377;
CONSTANT le:integer:=2;
Signal cipher_temp2:integer:=1;
begin
process(cipher_temp2,Msg_temp2)
begin
for i in 0 to le loop
if (e1(i)= '0') then
cipher_temp2<=((cipher_temp2*cipher_temp2) mod Pk);
else
cipher_temp2<=((cipher_temp2*cipher_temp2) mod Pk);
cipher_temp2<=((cipher_temp2*Msg_temp2)mod Pk);
end if;
end loop;
cipher<=cipher_temp2;
end process;
end Behavioral;
發佈一個演示這個的最小測試臺。另外提及您正在使用的模擬器/版本。在ghdl中我看到它被初始化爲1.然後激活這個過程,它將它設置爲340,然後是0,都是0 ms。 –
http://imgur.com/a/B2Lgj這裏是模擬的截圖。我使用了Vivado 2014.4 –
而且這並不會讓你看到你需要看到的東西,正如我解釋的那樣。 –