我有一个时钟门控方案,可以为组合逻辑设置多个时钟周期。
为此,有一个脉冲发生器,它每第n个时钟周期输出一个脉冲,该脉冲应该与每个受影响的寄存器ENA输入连接。
综合后,Quartus RTL技术查看器显示正确的电路综合(参见图像,时钟使能标记为红色)。这是一个全局启用树。
因此,我的VHDL代码已正确解释。
但是,技术查看器显示,启用信号并非在每种情况下都直接连接到每个寄存器的启用输入(由标记为红色的梳状逻辑生成的伪启用信号)。
我知道这种行为不一定是错误的,可能是由于优化所致。
尽管如此:
我希望将“全局”时钟使能信号直接扇出到每个受影响的寄存器ENA输入。可以以某种方式强迫Quartus这样做吗?
这将特别增加我的时间约束的鲁棒性;
如果存在直接的ENA扇出,则可以使用这种样式的多周期约束:
set_multicycle_path 6 -to [get_fanouts [get_pins <pulse generator output reg>] -through [get_pins -hierarchical *|*ena]] -end
-setupset_multicycle_path 5 -to [get_fanouts [get_pins <pulse generator output reg>] -through [get_pins -hierarchical *|*ena]] -end -hold
即递归地找到受影响的注册表。
注意:在我的系统时钟受任何组合逻辑影响的意义上,我不使用时钟门控。我的系统时钟直接连接到所有寄存器。