FPGA的复位操作

复位操作中所谓的“同步”、“异步”,指的是复位的执行与时钟 (CLK)是否同步,一般都是通过敏感列表中是否包含复位信号来判断。

平常我们所使用的复位方式:

1.首先,上电后肯定是要复位一下,不然仿真时会出现没有初值的情况;
2.最好有个复位的按键,在调试时按一下复位键就可以全局复位了;
3.有时会选择同步复位,也许是异步复位。

对于同步复位与异步复位,同步复位:复位信号和时钟同步,当时钟上升沿检测到复位信号,执行复位操作。——always@(posedge clk);异步复位:不受时钟影响,只要复位信号有效,就会进行复位。——always@(posedge clk or posedge rst)

结合同/异步复位各自的优点,一般设计中采用“异步复位-同步释放”方式,即:

1.复位信号的到来是随机的,不与时钟信号的同步;

2.而复位信号释放的时候受到时钟信号的同步。

同步复位的优点

可使所设计的系统成为100%的同步时序电路,这便大大有利于时序分析,而且综合出来的fmax一般较高,确保复位只发生在有效时钟沿:

1.可过滤掉高于时钟频率的rst信号毛刺;

2.有效防止rst信号不满足“Trecovery (recoverytime,恢复时间)”or“Tremoval(removal time消除时间)”而产生的亚稳态。

同步复位的缺点

复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位。同时还要考虑如: 时钟偏移、组合逻辑路径延时、复位延时等因素。

由于Xilinx目标库内的D触发器只有异步复位端口,如采用同步复位,就会耗费更多的逻辑资源 (每次增加一个LUT作为反相器)。

异步复位优点

由于大多数的厂商目标库内的触发器都有异步复位端口,可以节约逻辑资源。

异步复位缺点

1.复位信号容易受到毛刺的影响;

2.复位释放时刻恰在亚稳态窗口内时,不满足Trecovery (recovery time,恢复时间)”or“Tremoval(removal time,消除时间)”而产生的亚稳态。

当使用复位信号时,要考虑是否需要在运行期间重复进行复位操作。如果只需要在上电时进行一次复位,那么只需要在定义寄存器时设置初始值即可,无需引入其他复位信号。在Xilinx的FPGA中,建议使用高有效的复位信号,并采用异步复位同步释放的方式。此外,应将复位信号局部化,避免使用高扇出的全局复位。

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值