笔记
高扇出
高扇出指的是一个逻辑单元驱动的逻辑单元过多。常见于寄存器驱动过多的组合逻辑单元。至于驱动多少逻辑单元算过多,需要根据工艺,后端实现情况以及芯片本身类型来决定。
一般来说如果驱动逻辑大于10K以上,算是比较多的了。
复位的方法
在使用复位信号时,考虑这个寄存器需不需要在运行过程中进行复位,如果只需要上电后复位一次,那只需在定义时写上初值即可,无需使用其他复位信号;在Xilinx的FPGA中尽量使用高有效的复位信号,采用异步复位同步释放的方式,并且要将复位信号局部化,避免使用高扇出的全局复位。
latch(锁存器)
锁存器、触发器和寄存器它们的英文分别为:Latch、Flip-Flop、Register。
FPGA中最小的单元是门电路,门电路又组成了锁存器,锁存器组成了寄存器。
在组合逻辑中,如果条件描述不全就会容易产生Latch:
- if语句中缺少了else语句
- case语句中没有给出全部的情况。
在时序电路的if语句中,及时没有else,也不会综合出Latch的。
为什么FPGA中还要保留?
- 首先就是因为FPGA电路的灵活性,保留Latch并不影响FPGA的资源,因为storage element可以直接被配置为Flip-Flop。其次就是有些功能是必须要使用Latch的,比如很多处理器的接口就需要一个Latch来缓存数据或地址。
- 最后要说明的一点是:锁存器虽然在FPGA中不怎么被使用,但在CPU中却很常见,因为锁存器比Flip-Flop快很多。