基于算法的状态机.doc

基于算法的状态机.doc

ID:58863242

大小:120.00 KB

页数:5页

时间:2020-09-22

基于算法的状态机.doc_第1页
基于算法的状态机.doc_第2页
基于算法的状态机.doc_第3页
基于算法的状态机.doc_第4页
基于算法的状态机.doc_第5页
资源描述:

《基于算法的状态机.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、11.1.4 基于算法状态机(ASM)图的设计1.算法状态机图算法状态机图是时序状态机功能的一种抽象,是模拟其行为的关键工具,类似于软件流程图。但是显示的是计算动作的时间顺序,以及在状态机输入影响下发生的时序步骤。ASM图描述的是状态机的行为动作,而不是存储组件所存储的内容。在描述时序状态机的行为方面,以及设计状态机来控制数据信道方面,ASM图是非常有用的。ASM图由如图11-9所示的基本元素组成:状态框、条件输出或寄存器操作框及判决框。  ASM图的基本单元是ASM块,如图11-10所示。它包含一个状态框、一个可选的判决框和在分支信道上放置的条件框。ASM块图等同于状态机的时序。对一个给定的

2、ASM图,用状态转移图也可以表示同样的信息。  两种类型的状态机(米利型和摩尔型)都可以用ASM图表示。摩尔型状态机的输出常常在状态框中列出。条件输出放置在条件框中,条件框中还可以表示状态转移时的寄存器操作。在数据信道中的判决框隐含了优先权解碼。2.算法状态机和数据信道图状态机的一个重要应用就是控制时序状态机数据信道上的寄存器操作,而该时序状态机已被划分为控制器和数据信道。控制器可以用ASM图来描述,然后将ASM图连接到所控制的数据信道上。当控制器的状态沿着通道发生转移时,通过标注每个通道来指出那些在相关数据信道单元中所发生的寄存器操作。以这种方式连接到数据信道的ASM图,就称为算法状态机和数

3、据信道(AlgorithmStateMachineandDatapath,ASMD)图。通过把时序状态机数据信道的设计从控制器的设计中分离出来,并在两个单元之间保持清晰的联系,使得ASMD图能够阐明时序状态机的设计方法。与状态转移并行发生的寄存器操作是在图的通道上标注的,而不是在通道上的条件框中标注的。下面通过一个具体的实例,来展示基于ASMD图的时序状态机的设计。该实例是一个并行输入和输出的二级流水线2:1抽取器。该简单功能的抽取器用于数字信号处理,可以实现把数据从高速时钟率降到低速时钟率。2:1抽取器的实现框图如图11-11所示,整个数据字能以流水线内容填充到内存的速率或者以某些处理器速率

4、的2倍速率传送到流水线。   图11-12给出了二级流水线2:1抽取器的ASMD图。状态机具有同步复位到空闲状态S_IDLE功能,一旦En信号有效则状态机从S_IDLE状态转到S_1状态,同时将数据加载到移位寄存器{P1,P0}中。在下一个时钟周期,状态机进入S_FULL状态。然后等待Load信号,一旦有效则将输入数据加载到移位寄存器中,同时状态机转到S_1状态。   基于ASMD图的二级流水线2:1抽取器程序代码如下所示,仿真波形见如图11-13所示。1.module decimator(clk, rst, En, Load, Data, Dout); 2.parameter   S_IDL

5、E = 2'b00, 3.S_1 = 2'b01, 4.S_FULL = 2'b10, 5.S_WAIT = 2'b11; 6. 7.input  clk, rst, En, Load; 8.input [7:0] Data; 9.output[7:0] Dout; 10. 11.reg [7:0]  P0, P1, Dout; 12.reg [1:0]  state; 13.always @(posedge clk)begin 14.if(rst)begin 15.state <= S_IDLE; 16.P1 <= 8'h00; 17.P0 <= 8'h00; 1.end 2.else ca

6、se(state) 3.S_IDLE:if(En) begin  4.state <= S_1; 5.P1 <= Data; 6.P0 <= P1; 7.end 8.S_1: begin  9.state <= S_FULL; 10.P1 <= Data; 11.P0 <= P1; 12.end 13.S_FULL:if(Load) begin  14.    if(En)begin 15.state <= S_1; 16.P1 <= 8'h00; 17.P0 <= 8'h00; 18.end 19.else begin 20.state <= S_IDLE; 21.P1 <= 8'h00; 

7、22.P0 <= 8'h00; 23.end 24.Dout <= P0; 25.end 26.else begin 27.state <= S_WAIT; 28.end                  29.S_WAIT:if(Load) begin  30.if(En)begin 31.state <= S_1; 32.P1 <= Data; 33.P0 <= P1; 34.end 35.e

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。