如果我有一个类似下面那个依赖于常量参数的操作,编译器会看到这个if语句总是第一种情况,因此会优化它吗?
entity Thing is
generic(
constant N : integer := 32;
constant M : integer := 24
);
...
architecture behaviour of Thing is
...
process(clk)
begin
if(rising_edge(clk)) then
...
if N > M then
-- do a thing
else
-- do a different thing
end if;
...
end if;
end process;
end behaviour;
答案 0 :(得分:2)
在我使用的任何综合工具中,任何常量(包括generics
)都会在设计中传播,以便产生最简单的输出。这对性能有好处。