2
我在Altera Quartus 13.1中寫了一些代碼,並且我無法在TimeQuest中檢查我的實體的Fmax。我得到'沒有路徑來報告'。代碼如下:在TimeQuest上沒有VHDL代碼的'沒有路徑報告'
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use IEEE.std_logic_unsigned.all;
library NTRU;
use NTRU.NTRU.all;
entity ModuloAdder is
port(
FirstHalf : in Int32 := 0;
SecondHalf : in Int32 := 0;
Start : in std_logic := '0';
clk : in std_logic;
Result : out Int32 := 0;
ReadyOut : out std_logic
);
end ModuloAdder;
architecture a1 of ModuloAdder is
begin
process(clk, Start, FirstHalf, SecondHalf)
variable sum: integer range 63 downto -63:=0;
begin
if clk'event and clk ='1' then
if Start = '1' then
sum := (FirstHalf + SecondHalf) mod 32;
if sum > 32 then
Result <= sum mod 32;
elsif sum < -3 then
Result <= sum+32;
else
Result <= sum;
end if;
ReadyOut <= '1';
else
ReadyOut <= '0';
Result <= 0;
end if;
end if;
end process;
end a1;
我的問題是爲什麼會出現此問題。當我將可變總和更改爲信號時,一切正常,但我希望在一個時鐘週期內完成。這段代碼在ModelSim中工作正常,並且給出了很好的結果。
綜合報告中是否有任何線索?另外,請仔細檢查處理敏感度列表... – 2014-10-30 13:36:04
我將clk添加到敏感度列表中,結果相同。合成報告僅顯示「Info(332142)」信息:在設計中找不到用戶受限制的基本時鐘。調用「derive_clocks -period 1.0」 '。 ,但在'時鐘'選項卡的TimeQuest中有我的時鐘。 – TheJeronimek 2014-10-30 13:53:09
現在「clk」在靈敏度列表中,其他應該是不必要的。我認爲Synth消息是說你需要給「clk」添加一個時間約束。 – 2014-10-30 14:33:51