FPGA学习杂记

FPGA学习杂记

  • for语句在RTL级编码中极少使用,原因是for循环会被综合器展开为所有变量情况的执行语句,每个变量单独占用寄存器资源,不能有效地复用资源,造成巨大的资源浪费。

  • if……else if……else语句是有优先级的,而case语句是平行的结构。建立优先级结构会消耗大量的组合逻辑,所以能使用case语句的地方尽量用case替代。

  • 同步时序电路

    1. 电路的核心逻辑用触发器实现;
    2. 电路的主要信号和输出信号等都是由时钟沿驱动触发器产生的
    3. 同步时序电路可以很好地避免毛刺;
    4. 有利于静态时序分析,验证时序性能;
    5. 利于器件移植。
  • 稳定可靠的数据采样必须遵从以下两个基本原则:

    1. 在有效时钟沿到达前,数据输入至少已经稳定了采样寄存器的setup时间之久,这条原则简称满足setup时间原则;
    2. 在有效时钟沿到达后,数据输入至少还将稳定保持采样寄存器的hold时间之久,这条原则简称满足hold时间原则。
  • reg型不一定综合成寄存器

    1. 一般来说,wire型指定的数据和网线通过组合逻辑实现,reg型的定义有可能只是纯组合逻辑。
      case(Addr)
          2'b00: Dout = Din[1:0];
          2'b01: Dout = Din[3:2];
          2'b10: Dout = Din[5:4];
          default: Dout = Din[7:6];
      endcase
  • 亚稳态

    如果触发器的setup和hold时间不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后较长一段时间内处于不确定的状态,这段时间内Q端产生毛刺并不断振荡,最终固定在某一电压值。

    亚稳态的危害主要体现在破坏系统的稳定性上。毛刺、振荡或固定的某一电压值可能会造成逻辑误判,使状态输出出错。只要系统中有异步元件,亚稳态就无法避免。

  • 模块复用

    模块复用or逻辑复制属于速度or面积的问题。简单地从组合逻辑上来说,当时序满足要求的情况下,一般采用模块复用的方式节省面积,相反当时序紧张时,采用逻辑复制的方式提高速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值