触发器是FPGA中最为常见的物理单元。Xilinx FPGA中的触发器可配置为寄存器,也可配置为锁存器,前者为边沿敏感,后者为电平敏感。
Xilinx FPGA中的触发器如下图所示,其中包含4个输入端口和1个输出端口。输入端口中D为数据端口,SR为复位/置位端口,CE为使能端口。这里置位和复位共用一个端口,意味着触发器不能同时具有置位和复位功能。
当配置为寄存器时,有四种形式,如下表所示。可以看到复位和置位可以是同步也可以是异步,但建议采用同步(表中的名称称之为触发器的REF_NAME,打开综合后的设计在Property窗口中可看到)
这是因为异步复位/置位不受时钟控制,如果该信号出现毛刺会导致触发器误操作。此外,异步复位的释放可能会因为线延迟的不同又加上不受时钟控制而出现在不同时刻,从而导致控制电路部分例如状态机运行到无效状态或者不期望的状态,如下图所示。
从RTL代码角度来看,相应的同步复位与异步复位描述方式如下图所示。
上期内容:
下期内容:
高效使用触发器:触发器的初始值