gpt4 book ai didi

vhdl - TimeQuest 中关于 VHDL 代码的“无报告路径”

转载 作者:行者123 更新时间:2023-12-05 01:29:43 25 4
gpt4 key购买 nike

我正在 Altera Quartus 13.1 中编写一些代码,但我无法在 TimeQuest 中检查我的实体的 Fmax。我收到“没有报告路径”。代码如下:

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 中运行良好,并给出了很好的结果。

最佳答案

看起来您的设计中没有用于注册路径的寄存器,因此 TimeQuest 无法报告 Fmax。要报告 Fmax,您必须告诉它 I/O 信号和 clk 之间的关系(使用 set_input_delay 和 set_output_delay)。或者,如果您首先注册您的输入(例如通过添加 FirstHalfReg <= FirstHalf ),您应该看到寄存器到寄存器、路径,并且应该获得这些内部路径的 Fmax。

关于vhdl - TimeQuest 中关于 VHDL 代码的“无报告路径”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26654400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com