在Quartus®II软件版本2.1及以上包括上电不在乎导致注册一个“不关心”的逻辑电平(X),或最合适的设计逻辑电平上电逻辑选项。此选项对于允许编译器更改寄存器的上电电平以最小化设计区域非常有用。当发生这种类型的优化时,编译器将发出上面的消息以警告您,以防这种行为不受欢迎。
以前版本的Quartus II软件没有此选项。因此,在旧设计依赖寄存器加电到特定级别的某些情况下,您可能会看到设计综合方式的差异。 TTo恢复到2.1之前的Quartus II软件版本的上电行为,使用Quartus II软件版本2.1和2.2中的Assignment Organizer以及版本3.0及更高版本中的Assignment Ediotr来关闭此选项。
上电时不关心选项可能出现的优化示例:寄存器的D输入可能与VCC相关。如果关闭此选项,寄存器将上电至低电平(即使它在第一个时钟信号时变为高电平)。当该选项打开时,编译器可以在这种情况下将寄存器的上电值设置为高电平,因此可以选择优化寄存器并将寄存器的输出直接设置为VCC。
您的设计中可能出现的特定情况可能是一个错误信号,该信号上电为低电平并由某个内部逻辑设置为高电平,然后如上所述为DFF供电。如果误差信号变高一次,它将保持高电平。上电不关注选项可以假设寄存器上电并移除寄存器,将输出引脚设置为高值,这在这种情况下不是所需的行为。
要防止此优化,您可以关闭Power-Up Do not Care选项。或者,如果在HDL代码中指定了清除信号,即使选项打开,编译器也无法删除寄存器。为任何寄存器提供清零或复位信号是一种很好的设计方法,在这些寄存器中,您的设计依赖于特定的上电条件才能正常工作。
Power-Up Do not Care选项可能出现意外优化的另一个示例:实现状态机的case语句可能没有显式重置。也可能存在状态机无法逃脱的状态。 Quartus II编译器可以假设状态机在其中一个卡住状态下启动,然后可以优化设计中的状态机逻辑。最好的解决方案是遵循重置状态机的良好设计实践,并确保您可以逃离所有状态(如果它实现为编码而不是一个热点)。
没有回复内容