Fpga 强制ISE合成工具合成信号

Fpga 强制ISE合成工具合成信号,fpga,xilinx-ise,Fpga,Xilinx Ise,在Xilinx ISE(使用VHDL语言)中,我定义了以下信号: signal counter : integer range 0 to 24_000_000; signal chTriger : std_logic :='0'; 并编写了以下代码: process_counter: process(clk) begin if ( clk'event and clk = '1') then if (counter < 8192) then counte

在Xilinx ISE(使用VHDL语言)中,我定义了以下信号:

signal  counter  : integer range 0 to 24_000_000;
signal  chTriger : std_logic :='0';
并编写了以下代码:

process_counter: process(clk)
begin 
  if ( clk'event and clk = '1') then
    if (counter < 8192) then
        counter  <= counter + 1;
        chTriger <= not chTriger;
    end if;
  end if;
end process process_counter;`
process\u计数器:进程(clk)
开始
如果(clk'事件和clk='1'),则
如果(计数器<8192),则

计数器输出
chTriger
到FPGA上的外部引脚。那么它就不能被优化了


由于
chTriger
依赖于
计数器
,因此
计数器
也不会被优化掉。

请通读Xilinx约束指南 特别是综合约束。 有一种叫做“保持”


一般来说,只要你知道你能做什么(不能做什么),浏览它是一个非常有用的文档

我做到了,但芯片范围内没有触发!此外,我想在芯片范围内实现许多信号,不适用于将它们定义为输出。将调试所需的管脚放在输出上是个坏主意。在许多情况下,你不会有足够的引脚-这就是为什么我们使用ChipScope而不是真正的逻辑分析仪。它对信号的定时有着巨大的影响。从问题中不清楚这是一个仅调试的信号-整个<代码>计数器正在被优化掉,这意味着它的输出目前还没有连接到任何有意义的东西-这也会对定时产生巨大的影响。如果还没有实现将要驱动的
计数器
,那么临时驱动一个测试点是有用的-在这种情况下,这可能有用,也可能不有用,但没有足够的信息来判断。(如果受到适当约束,任何时间问题都应该出现在静态时间分析中)。(只是要明确一点——我确实同意接受的答案)我的问题的完美答案:您还应该在合成选项中将“保持层次结构”设置为
soft
rebuilded
。。