如何让Xilinx XST与我的设计中的网络合并?

Mar*_*ata 3 verilog vhdl xilinx

我问并回答这个问题,以便将来再找到它...

如何让XST不要将两个逻辑上等效的网络合并为一个(这通常是节省资源的好主意,但从时序视图来看可能不是一个好主意)?

我有一个设计有2个计数器,由相同的clk驱动.XST将计数器的最低位合并为一个计数器,但这是一个问题,因为由于IOB放置约束,计数器需要在设计中分开.我需要计数器(特别是计数器的最低位)是不同的.

Mar*_*ata 6

您需要在RTL中设置网络上的2个约束.检查网络的综合报告,确保XST完成您想要的操作.

在Verilog

(* equivalent_register_removal="no" *)
(* keep="true" *)
reg  signal_name ;
Run Code Online (Sandbox Code Playgroud)

在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";
Run Code Online (Sandbox Code Playgroud)

  • 作为一个重要的注释,不同的综合工具具有不同的属性名称来执行相同的功能.因此,例如,如果您使用Synopsys Synplify进行合成,则需要使用不同的命名属性.这里的答案适用于XST. (3认同)