当前位置: 首页 > news >正文

高端文化网站模板如何把网站转网站

高端文化网站模板,如何把网站转网站,vs2013 网站开发,简洁轻便的wordpress主题1 二段式状态机 1.1 简介#xff1a; 二段式状态机#xff08;Two-phase state machine#xff09;是一种常见的状态机实现方式#xff0c;它将状态机的执行过程分为两个阶段#xff1a;第一段是组合逻辑#xff0c;用于确定下一个状态#xff1b;第二段是时序逻辑 二段式状态机Two-phase state machine是一种常见的状态机实现方式它将状态机的执行过程分为两个阶段第一段是组合逻辑用于确定下一个状态第二段是时序逻辑用于寄存状态。 1.2 实现步骤 定义状态编码首先需要定义状态机的所有可能状态并为每个状态分配一个唯一的编码。创建状态寄存器需要一个寄存器来存储当前的状态和下一个状态。编写状态转移逻辑这是状态机的第一段通常是一个组合逻辑块它根据当前状态和输入信号计算下一个状态。编写状态输出这是状态机的第二段通常是一个时序逻辑块它根据当前状态用always块中的非阻塞赋值输出信号。 1.3 例子 module fsm (input clk, // 时钟信号input rst_n, // 异步复位信号低电平有效input condition, // 控制状态转移的条件信号output reg action // 执行的动作 );// 定义状态参数 parameter S0 2b00; // 状态0 parameter S1 2b01; // 状态1 parameter S2 2b10; // 状态2// 寄存当前状态和下一个状态 reg [1:0] current_state, next_state;// 组合逻辑部分根据当前状态和输入条件计算下一个状态 always (*) beginnext_state current_state; // 默认保持当前状态case (current_state)S0: if (condition) next_state S1;S1: if (condition) next_state S2;S2: if (!condition) next_state S0;default: next_state S0;endcase end// 时序逻辑部分在每个时钟边沿根据下一个状态更新当前状态 always (posedge clk or negedge rst_n) beginif (!rst_n) begincurrent_state S0; // 异步复位状态机回到初始状态action 1b0; // 复位动作输出end else begincurrent_state next_state; // 更新状态// 根据当前状态设置动作输出case (current_state)S0: action 1b0;S1: action 1b1;S2: action 1bx; // 例如不确定状态下的输出default: action 1bx;endcaseend endendmodule在这个例子中状态机的状态转移和动作输出都是在组合逻辑和时序逻辑中分别定义的。current_state 和 next_state 是寄存器用于存储当前状态和下一个状态。condition 是一个输入信号用于控制状态转移的条件。action 是一个输出信号表示状态机在当前状态下应该执行的动作。 在组合逻辑部分使用一个总是块always (*)来计算下一个状态。在这个块中我们使用一个 case 语句来根据当前状态和输入条件来确定下一个状态。 在时序逻辑部分使用另一个总是块always (posedge clk or negedge rst_n)来在每个时钟边沿更新当前状态。在这个块中首先检查复位信号如果复位为低则将状态机重置为初始状态。否则将 current_state 更新为 next_state。然后使用另一个 case 语句来根据当前状态设置动作输出。 2 三段式状态机 2.1 简介 三段式状态机Three-phase state machine是一种更加模块化和可维护的状态机实现方式。它将状态机的执行过程分为三个阶段时序逻辑阶段在这个阶段当前状态被寄存以便在下一个时钟周期中使用。组合逻辑阶段在这个阶段基于当前状态和输入条件计算出下一个状态和输出。输出逻辑阶段在这个阶段将计算出的输出赋值给输出信号。 2.2 实现步骤 定义状态编码首先需要定义状态编码。一般是通过参数或常量来完成的。例如你可以定义一个3位的参数来表示不同的状态。声明状态和输出寄存器接下来需要声明用于存储当前状态和下一个状态的寄存器以及任何输出信号。时序逻辑部分在这一部分使用时序逻辑来在每个时钟边沿更新当前状态。这通常涉及到将下一个状态寄存器的值赋给当前状态寄存器。组合逻辑部分在这一部分使用组合逻辑来根据当前状态和输入条件计算下一个状态和输出。这通常是通过一个总是块always (*)和一个 case 语句来完成的。输出逻辑部分在这一部分使用时序逻辑来更新输出信号。这通常涉及到将计算出的输出赋值给输出信号。 2.3 例子 module fsm (input clk, // 时钟信号input rst_n, // 异步复位信号低电平有效input condition, // 控制状态转移的条件信号output reg action // 执行的动作 );// 定义状态参数 parameter S0 3b000; // 状态0 parameter S1 3b001; // 状态1 parameter S2 3b010; // 状态2 parameter S3 3b011; // 状态3 parameter S4 3b100; // 状态4// 寄存当前状态和下一个状态 reg [2:0] current_state, next_state;// 时序逻辑部分在每个时钟边沿寄存当前状态 always (posedge clk or negedge rst_n) beginif (!rst_n) begincurrent_state S0; // 异步复位状态机回到初始状态end else begincurrent_state next_state; // 更新状态end end// 组合逻辑部分根据当前状态和输入条件计算下一个状态和输出 always (*) beginnext_state current_state; // 默认保持当前状态action 1b0; // 默认输出为0case (current_state)S0: if (condition) beginnext_state S1;action 1b1;endS1: if (condition) beginnext_state S2;action 1b0;end else beginnext_state S0;action 1b0;endS2: if (condition) beginnext_state S3;action 1b1;endS3: if (condition) beginnext_state S4;action 1b0;end else beginnext_state S0;action 1b0;endS4: if (!condition) beginnext_state S0;action 1b0;enddefault: beginnext_state S0;action 1b0;endendcase end// 输出逻辑部分将计算出的输出赋值给输出信号 always (posedge clk or negedge rst_n) beginif (!rst_n) beginaction 1b0; // 异步复位输出为0end else beginaction action; // 在这里输出逻辑可以更复杂例如使用额外的组合逻辑end endendmodule在这个例子中定义了一个有三个状态的状态机每个状态都可以根据输入条件 condition 转移到另一个状态并且根据当前状态设置输出 action。 在时序逻辑部分使用一个总是块always (posedge clk or negedge rst_n)来在每个时钟边沿更新当前状态。如果复位信号为低则状态机被重置为初始状态 S0。 在组合逻辑部分使用另一个总是块always (*)来计算下一个状态和输出。在这个块中使用一个 case 语句来根据当前状态和输入条件来确定下一个状态和输出。 在输出逻辑部分再次使用时序逻辑来更新输出信号 action。 3 尽量用三段式编写代码 容易懂 好维护
http://www.zqtcl.cn/news/836979/

相关文章:

  • python做网站好处百度指数分析报告
  • 网站建设挣钱班级介绍网页制作模板
  • 工作室 网站建设app公司
  • 自己做的网站怎么在百度搜索到网页制作论文3000字
  • 如何网站托管中国跨境电商平台有多少
  • 手机p2p网站做平面设计兼职的网站有哪些
  • 贵金属网站建设唐山网站制作工具
  • 网站入门成都网站制作沈阳
  • 接做网站单子的网站做网站要会那些ps
  • 做盗市相关网站wordpress速度优化简书
  • 贵阳手机网站建设公司国内永久免费云服务器
  • 温州做网站定制哪家网络推广公司好
  • 招聘网站怎么做线下活动网站后台管理系统怎么开发
  • 西湖区外贸网站建设商梦建站
  • 网站首页设计注意斗蟋蟀网站建设
  • 石家庄网站建设远策科技网站建设公司人员配备
  • 手机怎么建网站链接专门做鞋子的网站吗
  • 网站建设设计作品怎么写网站建设 网站内容 采集
  • 自己做网站nas如何做网站大图片
  • 网站优化定做嘉兴模板建站代理
  • 南宁做网站比较好的公司有哪些花乡科技园区网站建设
  • 网站注册平台怎么注册申请空间 建立网站吗
  • 汕头住房与城乡建设网站做网站视频 上传到哪儿
  • 东莞网站关键词优化福建个人网站备案
  • 国外获奖flash网站泉州网站制作专业
  • 万网域名注册后如何做网站教学上海app开发和制作公司
  • 恩施网站建设公司个人网站怎么制作成图片
  • 泸州高端网站建设公司上海企业网站
  • wordpress 建站 知乎济南全包圆装修400电话
  • 织梦建设两个网站 视频影视公司宣传片