vhdl - 如何防止 Xilinx XST 从我的设计中合并网络?

标签 vhdl verilog xilinx

我提出并回答这个问题是为了以后能再次找到它...

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

我的设计有 2 个由同一个时钟驱动的计数器。 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";

关于vhdl - 如何防止 Xilinx XST 从我的设计中合并网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11125142/

相关文章:

verilog - 就像 c 中的#if,在 verilog 中是否有 `if

linux - 从zynqmp上传fpga代码到外设

vhdl - 在哪里强制 xilinx ISE 使用 block 内存?

vhdl - 在单周期数据路径中加载半字和加载字节

audio - 使用VHDL更改音频的位深以使用编解码器

syntax - 在非时钟信号上使用上升沿是不好的做法吗?还有其他选择吗?

verilog - 以 $ 开头的 "functions"被称为什么?在哪里可以获得它们的完整列表?

verilog 始终、开始和结束评估

vhdl - 明确定义如何在 Xilinx XST 工具中使用 LUT 和切片?

generics - 使用泛型的通用 MUX 和 DEMUX