我正在询问并回答这个问题,以便将来我可以再次找到它......
我如何防止 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";