注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
zl_felix的个人空间 https://home.eeworld.com.cn/space-uid-157982.html [收藏] [复制] [分享] [RSS]
日志

初学FPGA (4)不完整条件语句与时序电路(EEFPGA学习计划)

已有 4607 次阅读2012-1-13 12:27 |个人分类:FPGA学习

……

BEGIN

IF CLK’EVENT AND CLK=’1’

  THEN Q1<=D;

END IF;

不完整的条件语句:即在条件语句中,没有将所有可能发生的情况给出对应的处理方式。对于这种现象,VHDL综合器理解为:对于不满足的条件,跳过Q1<=D不执行,但是需要保持前一次时钟上升沿时Q1被更新的值。对于数字电路来说,保持一个值不变,就需要用到具有存储功能的元件,即引进时序元件保持Q1的值。

利用不完整的条件语句构成时序电路,是VHDL描述时序电路的重要途径,通常完整的条件语句只能构成组合逻辑电路。

但是必须要注意的是:在使用条件语句设计纯组合电路时,如果没有充分考虑电路可能出现的各种条件,则会导致不完整条件语句的出现,从而综合出设计者不希望的组合和时序电路的混合体。

举例说明:

现在要设计一个纯组合电路比较器,例4-1中在条件语句中漏掉了当a1=b1时做何操作的表述,结果导致了不完整条件语句的出现,于是综合器理解为当出现a1=b1时不做任何赋值操作,保持q1的值不变,即为q1配置一个寄存器,于是电路中被插入了不必要的时序元件,浪费了逻辑资源,降低了电路的工作速度。如图4-1

在例4-2改进程序中,ELSE q1<=’0’ 交代了a1b1时的情况,从而产生了图4-2所示的简洁的电路图。

 

发表评论 评论 (1 个评论)
回复 yanpei 2012-1-13 22:35

新电子杂志网址:javascript:;

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章