【发布时间】:2017-06-23 08:47:27
【问题描述】:
我正在尝试使用 vivado 设计一个 AXI_master 外设。我在vivado菜单中使用了axi外设生成器,修改了生成的vhdl代码。
在 vhdl 代码中有一个函数 clogb2 用以下代码声明:
function clogb2 (bit_depth : integer) return integer is
variable depth : integer := bit_depth;
variable count : integer := 1;
begin
for clogb2 in 1 to bit_depth loop -- Works for up to 32 bit integers
if (bit_depth <= 2) then
count := 1;
else
if(depth <= 1) then
count := count;
else
depth := depth / 2;
count := count + 1;
end if;
end if;
end loop;
return(count);
end;
这在模拟(GHDL)中有效,但在综合中失败并出现错误:
[Synth 8-403] 循环限制 (65538) 超出
我尝试使用以下 tcl 命令增加 vivado 中的循环限制:
set_param synth.elaboration.rodinMoreOptions "rt::set_parameter max_loop_limit <X>"
正如here 所解释的那样,但是 vivado 以无限时间合成并且永远不会完成。 你知道如何解决这个问题吗?
【问题讨论】: