【发布时间】:2012-06-20 17:41:41
【问题描述】:
我正在询问并回答这个问题,以便我以后可以再次找到它......
如何防止 XST 将两个逻辑等效的网络合并为一个(这通常是节省资源的好主意,但从时序角度看可能不是一个好主意)?
我有一个设计有 2 个由同一个 clk 驱动的计数器。 XST 将计数器的最低位合并为一个计数器,但这是一个问题,因为在设计中,由于 IOB 布局限制,需要将这些计数器分开。我需要计数器(特别是计数器的最低位)是不同的。
【问题讨论】:
我正在询问并回答这个问题,以便我以后可以再次找到它......
如何防止 XST 将两个逻辑等效的网络合并为一个(这通常是节省资源的好主意,但从时序角度看可能不是一个好主意)?
我有一个设计有 2 个由同一个 clk 驱动的计数器。 XST 将计数器的最低位合并为一个计数器,但这是一个问题,因为在设计中,由于 IOB 布局限制,需要将这些计数器分开。我需要计数器(特别是计数器的最低位)是不同的。
【问题讨论】:
您需要在 RTL 中的网络上设置 2 个约束。检查您的网络的综合报告,以确保 XST 符合您的要求。
在 Verilog 中
(* equivalent_register_removal="no" *)
(* keep="true" *)
reg signal_name ;
在 VHDL 中
signal signal_name : std_logic;
attribute equivalent_register_removal: string;
attribute equivalent_register_removal of signal_name : signal is "no";
attribute keep:string;
attribute keep of signal_name :signal is "true";
【讨论】: