Xilinx FPGA设计与实践教程 教学课件 作者 赵吉成 第6 10章 第6章.pptVIP

Xilinx FPGA设计与实践教程 教学课件 作者 赵吉成 第6 10章 第6章.ppt

  1. 1、本文档共124页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图6-1 同步状态机框图 6.1.2 有限状态机的描述方式   常用的描述有限状态机的方法是状态转移图(State Transition Graph,STG)和算法状态机表(ASM chart)。这两种方法都是用来描述系统内部以及系统与周围接口信号的有效输入与状态转移关系的,其中状态转移图描述比较紧凑简洁,非常适合简单的应用,而算法状态图类似于软件流程图,适合描述复杂的状态转换和数据传输。   1.状态转移图   状态转移图是一种有向图,由节点和弧线组成。节点与时序状态机的状态一一对应,弧线为有向线,表示起点状态在输入信号的作用下可能发生的状态转移的条件,当条件满足时,触发起点状态跳转到新的状态。如图6-2(a)所示为一个简单的状态转移图节点,标注在弧线上的外部输入信号的逻辑表达式为状态跳转的条件。   摩尔状态机的输出值仅与当前状态有关,所以其值在节点圆中表示。而米利状态机的输出值与当前状态和外部输入都有关,为了简化状态图的分支,输出值随跳转条件一起在弧线上列举出来,如果没有列举,则输出值保持默认值。 图6-2 状态机符号描述   图6-3(a)所示为一个复杂的状态图,包含有三个状态、两个外部输入信号(a和b)、一个摩尔输出(y1)和一个米利输出(y0)。y1在状态机状态为s0和s1时逻辑输出;y0在状态为s0并且a和b信号为“11”时逻辑输出。 图6-3 状态机STG和ASM图描述   2.算法状态机图   算法状态机(Algorithmic State Machine,ASM)图是时序状态机功能的抽象表达方式,类似于软件流程图。该图在描述时序状态机的行为方面以及设计状态机来控制数据通道方面都是非常有用的。其描述主要由四部分组成:状态转移框、条件输出、寄存器操作框和判决框。状态转移框为状态机主体,对于摩尔状态机,其输出逻辑值在状态转移框中表示,并且仅有一条输出路径。对于米利状态机,条件判决框通过判断外部输入决定状态输出路径,它有两条输出路径,标记为T和F,分别对应外部输入条件为真和假两种情况下的输出路径。米利状态机的输出逻辑在条件判断框之后,表示在对应状态条件和外部条件同时满足的情况下,米利状态机才可输出。   状态转移图和ASM图之间可以灵活转换,如图6-2(a)和(b)及图6-3(a)和(b)所示,采用两种不同的描述方式描述同一个状态机。 6.1.3 有限状态机的HDL开发   1.状态机描述的编码方式   在状态机的描述中,为了更清楚地表示状态,一般采用带有意义的常数符号来定义状态参数。如图6-3所示的三个状态可以定义为   localparam[1:0] s0 = 2b00,    s1 = 2b01,    s2 = 2b10;   需要注意的是,状态机的定义用localparam或者parameter,不推荐使用define宏定义的方式。这是因为采用define宏定义在编译时会自动替换整个设计中所有的宏,而parameter仅仅定义模块内部的参数,定义的参数不会与模块外的其他状态机混淆。   状态机的编码方式很多,包括顺序编码、格雷玛(Gray Encoding)、一位热码(One-Hot Encoding)、BCD码等。虽然在综合过程中,综合工具可以辨别出状态机结构,并可以根据需求将这些状态机符号常数映射为各种二进制形式,但是在FPGA设计中,编码方式可影响状态机的执行效率和功能,所以建议读者在设计中根据不同的需求,选择不同的编码方式,具体请参考表6-1。   2.状态机HDL描述   状态机HDL描述包含三部分:同步时序描述状态转移、下一状态逻辑跳转产生、摩尔和米利逻辑输出。   【程序6-1】 三段式状态机描述。   module three_seg_fsm    (    input wire clk, reset,    input wire a, b,    output wire y0, y1    );    // 定义状态常数    localparam [1:0] s0 = 2b00,    s1 = 2b01,    s2 = 2b10;    // 信号声明    reg [1:0] state_reg, state_next;    // 状态机寄存器描述    always @(posedge clk, posedge reset)    if (reset)    state_reg = s0;    else    state_

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档