反馈电路的综合
时间:10-02
整理:3721RD
点击:
我的电路带有一个反馈回路
模块的输出(寄存器输出)直接作为模块的输入(经过组合逻辑到输出寄存器)。
综合以后,进行门级仿真,总是发现setuphold time有问题,说有timing violation.
但我综合以后的slack time还是很大的。仿真用同样频率的clk。将时钟频率降到一半也不行,最后降到很低的时候,就没有这个问题了。
而且我发现这个问题就出现在反馈回路,我不知道这种反馈回路在综合的时候是否要有一些特殊考虑?
模块的输出(寄存器输出)直接作为模块的输入(经过组合逻辑到输出寄存器)。
综合以后,进行门级仿真,总是发现setuphold time有问题,说有timing violation.
但我综合以后的slack time还是很大的。仿真用同样频率的clk。将时钟频率降到一半也不行,最后降到很低的时候,就没有这个问题了。
而且我发现这个问题就出现在反馈回路,我不知道这种反馈回路在综合的时候是否要有一些特殊考虑?
反馈电路的综合
个人认为最好避免组合逻辑的直接反馈,最好通过一级触发器再反馈回来。
反馈电路的综合
其实这个反馈是没有什么问题的,因为你是寄存器的结果反馈回来的,不存在组合环问题。
但是你说的这个问题可能存在于你把输出反馈给输入了,这样综合起来比较麻烦,因为模块的port是自然的综合屏障;建议你把要反馈的信号在模块内部就反馈使用,然后同时再拉出去做输出,这样试试看有没有效果吧。
反馈电路的综合
不在内部反馈会有什么结果呢
把该信号在模块外部接到该模块的输入端
反馈电路的综合
不知道你综合的约束是如何加的?有没有把这条路径给set_false_path了?
另外你是只综合了这个模块?还是你的Slack time只是对这个模块综合的结果?如果这样,那么你输出和反馈再输入的端口就应该相应增加set_output_delay和set_input_delay。不过老扁给你的建议很好,避免你多设置这些约束。