gdtyy

    1. 初学者疑惑:程序如何执行 6/9458 嵌入式系统 2007-08-06
      关于FPGA设计的书里有一些介绍。     系统上电后发出reset信号,使CPU进入“空闲”状态,从这个状态开始,依次进入取指-->译码-->执行状态,周而复始,CPU就开始工作了。             ----------        ----------        ----------        ----------     | 空闲态 |------->| 取指态 |------->| 译码态 |------->| 执行态 |-----     ----------        ----------        ----------        ----------    |                           ^                                             |                           |                                             |                           ---------------------<-------------------------     硬件状态是如何顺次变迁的呢?以“一热态位”状态机实现为例:                     rst                    ----------------   rst                  |                     |              |    |             ------------               |           ------------       ----<-| 组合逻辑 |<--            |     ----<-| 组合逻辑 |<--       |     ------------  |            |     |     ------------  |       |     -----------   |            |     |     -----------   |       |     | D触发器 |   |            |     |     | D触发器 |   |       ---->-|D       Q|--------->-------     ---->-|D       Q|----------->--------......             |         |                            |         |      clk -->|clk    Q~|--->“S0状态输出”   clk -->|clk    Q~|--->“S1状态输出”      rst -->|clr      |                     rst -->|clr      |             -----------                            -----------     系统上电后,rst有效,所有D触发器异步清零,也就是说所有状态输出都无效。     第一个时钟上升沿后,经过组合逻辑判断,只有第一个D触发器输出有效状态,Q~为0,使能第一个状态电路。     第二个时钟上升沿后,第一个D触发器就永远输出无效状态,除非rst重新激活,此时,第二个D触发器由于连接在其组合逻辑上的第一个D触发器上的Q~有效,所以它的输出状态S1有效,使能第二个状态电路。     依次类推,第三个时钟上升沿后,第二个D触发器输出失效,激活第三个,然后就这么顺次传递下去,硬件电路就实现了状态变迁。         硬件上实现了状态迁移逻辑后,就可以以此为最小逻辑设计按照状态变迁图设计CPU控制部件了。     下一状态取决于当前状态和输入条件。                           ------------           输入条件--->| 当前状态 |------->下一状态                       ------------     基于这个最小化的状态机硬件单元,再复杂的逻辑也可以实现,加上CPU时钟速度非常快,感觉就很神奇了。

最近访客

< 1/1 >

统计信息

已有35人来访过

  • 芯积分:--
  • 好友:--
  • 主题:--
  • 回复:1

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言