首页 > 编程知识 正文

vhdl的数据类型,vhdl进程是由什么组成

时间:2023-05-03 06:11:43 阅读:167072 作者:360

状态机描述通过状态转换图表示为1

圆内表示状态

箭头表示转换的方向

从上图可以看出,从0000 —1111开始不断地转换

二、Moore型状态机的弯折箭头表示输入信号

S0下面的0表示输出信号

意思是,如果当前状态为S0,输入为0,则下一状态为0,如果输入为1,则状态转移到S1。

模块模块(clk,din,op ) input clk,din; 输出reg op; reg [1:0] current_state,next_state; //内部状态信号//常数赋值语句parameter S0=2`b00,S1=2`b01,S2=2`b10,S3=2`b11; //第一个always进程/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *第一个always进程* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *当前状态=下一状态* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * else next_state=S1; end S1: //当前状态为S1时begin op=1; if(din--1) next_state=S1; else next_state=S2; end S2: //当前状态为S2时begin op=0; if(din--1) next_state=S2; else next_state=S3; end S3: //当前状态为S3时begin op=0; if(din--0) next_state=S3; else next_state=S0; end default: //返回初始状态begin op=0; next_state=S0; 端对端模块化状态机:以下状态仅由当前状态决定: 即,下一状态=f (现状,输入)、输出=f ) )现状);

三. Mealy型状态机Mealy型状态机:以下状态不仅与当前状态有关,还与当前输入值有关: 即,二次状态=f (现状,输入)、输出=f ) )现状,输入);

0/0左边的零表示输入信号右边的输出信号

也就是说,当前状态为S0,输入为0时输出为0,状态是原样还是S0? 如果输入是1,则该输出为1。

moduemealy(clk,op,din ) input clk,din; 输出reg op; reg current_stats,next_stats; parameter S0=2`b00,S1=2`b01,S2=2`b10,S3=2`b11; 如果没有提高/*********clk更新状态的这一步骤,next_stats就不会更新。 * * * * * * * * * * * */always @ (posedge clk (/end//第二always进程---复合电路Always@(current_statsordin ) begin case ) end else begin next_stats=S1; op=1; endends1:if(din==1) begin next_stats=S1; op=1; end else begin next_stats=S2; op=0; ends2:if(din==1) begin next_stats=S3; op=1; end else begin next_stats=S2; op=0; ends:if(din==1) begin next_stats=S0; op=1; end else begin next_stats=S3; op=0; end default ://返回初始状态begin op=0; next_stats=S0; 结束最终成本结束最终模式

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。