Xilinx FPGA中的触发器也可配置为锁存器。当用做锁存器时,可以是LDCE(异步复位),也可以是LDPE(异步置位),LDCE和LDPE称之为锁存器的REF_NAME。
以LDCE为例,相应的RTL代码如下。不难得出结论,不完备的if语句和case语句都会导致锁存器的生成。实际上,锁存器可用带使能的触发器替换,从而使其在时钟控制下同步工作。
结合器件结构,以UltraScale和UltraScale Plus为例,尽管触发器可配置为锁存器,也可配置为寄存器,但是一旦当其配置为锁存器时,该触发器所在列将有一半触发器无法再配置为寄存器,这实际上造成了资源的浪费,如下图所示。
如果Vviado推断出锁存器,在其综合报告中会显示出来,如下图所示。图中的LDC即为锁存器。
结论
-对于寄存器,尽可能避免不必要的复位,如上电复位,数据路径流水寄存器的复位
-使用高有效且同步复位
-寄存器的初始值是可以在RTL代码中设定的
-不要使用既复位又置位的描述方式
-不完备的if或case语句会推断出锁存器
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有