Ich habe dieses Stück Code hier:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity first is
port(
a : in STD_LOGIC_VECTOR(3 downto 0);
b : in STD_LOGIC_VECTOR(3 downto 0);
result : out STD_LOGIC_VECTOR(3 downto 0);
clk : in STD_LOGIC
);
end first;
architecture behavioral of first is
begin
process(clk)
begin
result <= a + b;
end process;
end behavioral;
Wie kann ich in Quartus II der Software mitteilen, dass 'clk' eine Uhr sein soll, damit ich die maximale Frequenz (Fmax) herausfinden kann, mit der dieses Design ausgeführt werden kann? Immer wenn ich mein Design zusammenstelle, erhalte ich die Warnung „Keine Uhren im Design definiert“.
Das Problem ist, dass Sie eigentlich keine Uhr haben, oder genauer gesagt, keine Uhr verwendet wird . Überprüfen Sie Ihren Prozess:
process(clk)
begin
result <= a + b;
end process;
Dieser Prozess verwendet die Uhr nicht. Sie wollten wahrscheinlich dies tun:
process(clk)
begin
if rising_edge(clk) then
result <= a + b;
end if;
end process;
Dieser Code verwendet die Uhr und Quartus sollte dies melden.
Wenn dies Ihre oberste Ebene ist, hat sie keinen fmax-Wert für die Uhr, da sie keinen Register-zu-Register-Pfad hat. Ihre Eingangssignale a
und b
werden nicht registriert, daher das Fehlen eines Register-zu-Register-Pfads. Das kannst du ganz einfach lösen:
process(clk)
begin
if rising_edge(clk) then
a_r <= a;
b_r <= b;
result <= a_r + b_r;
end if;
end process;
Ihr Design hat ein Signal namens clk
, aber es wird nicht als Uhr verwendet. if(rising_edge(clk))
Sie sollten Anweisungen im Prozesshauptteil hinzufügen .
Sobald Sie Ihr Design ändern, erkennt Quartus, dass clk
es als Uhr verwendet wird, und Sie können mit Ihrer Fmax-Analyse fortfahren.
Sobald Sie eine Uhr in Ihre Logik aufgenommen haben (siehe andere Antworten), können Sie sich timequest ansehen, das Timing-Tool in Quartus. Sie können timequest verwenden, um eine sdc-Datei zu erstellen, um Ihr Design einzuschränken (oder Sie können eine manuell schreiben). Oft ist es sinnvoll, Quartus mitzuteilen, welche Fmax Sie benötigen, da es dann versuchen kann, dies zu erreichen.
Wenn Sie mehrere Uhren haben, ist dies besonders wichtig, da die Tools dann die Dinge priorisieren können, die auf Kosten der weniger kritischen Dinge schneller laufen müssen.
Paebbels
giliazz