- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
2020浙江省线下一流课程——数字电路与数字逻辑问题:计数器、序列信号发生器、状态机有什么区别?5.6同步状态机设计①设定状态;②根据要求画出状态图,必要时应进行状态化简;③列出状态表;④确定状态方程组和输出方程;⑤将状态方程和所选用的触发器的特性方程进行比较得到驱动方程;⑥根据驱动方程画出逻辑电路图;⑦检查自启动。例1:设计一个串行数据检测器,当串行数据X出现011时,电路输出Y为1。时钟周期T1T2T3T4T5T6T7T8T9T10T11T12T13T14T15X010110010111010Y0000010000010005.6同步状态机设计解:输入端X:串行随机信号输出端Y:当X出现011序列时,Y=1;否则Y=0(1)状态定义S0状态:初始状态。该状态可以理解为时序电路处于复位时的状态。如果接收到1个1,那么状态仍为S0,因为要检测的数据是从0开始的。S1状态:已接收到1个0;S2状态:已接收到01;S3状态:已接收到011。5.6同步状态机设计(2)画出状态转换图S0状态:初始状态;S1状态:已接收到1个0;S2状态:已接收到01;S3状态:已接收到011。5.6同步状态机设计状态编码S000S101S210S311(3)列出状态真值表YX=0X=100010000101100100111011010015.6同步状态机设计(4)求触发器的状态方程和输出函数YX=0X=100010000101100100111011010015.6同步状态机设计(5)画逻辑电路图(6)电路仿真5.6同步状态机设计(1)状态转换图例2:将上例描述的串行数据检测器设计成米里型状态机。时钟周期T1T2T3T4T5T6T7T8T9T10T11T12T13T14T15X010110010111010Y0000100000100005.6同步状态机设计(2)状态真值表5.6同步状态机设计(3)状态方程和输出方程5.6同步状态机设计(4)仿真结果5.6同步状态机设计5.6同步状态机设计moduleMOORE(CP,X,Y); inputCP,X; outputY;regY;reg[1:0]CURRENT_STATE;reg[1:0]NEXT_STATE;parameterS0=2b00;//状态编码parameterS1=2b01;parameterS2=2b10;parameterS3=2b11;always@(CURRENT_STATEorX)begincase(CURRENT_STATE)S0:beginY=1b0;if(X==1b1)NEXT_STATE=S0;elseNEXT_STATE=S1;end摩尔型状态机也可以用下面的VerilogHDL代码5.6同步状态机设计S1:beginY=1b0;if(X==1b1)NEXT_STATE=S2;elseNEXT_STATE=S1;endS2:beginY=1b0;if(X==1b1)NEXT_STATE=S3;elseNEXT_STATE=S1;endS3:beginY=1b1;if(X==1b1)NEXT_STATE=S0;elseNEXT_STATE=S1;endalways@(posedgeCP)beginCURRENT_STATE=NEXT_STATE;end endmodule*************2020浙江省线下一流课程——数字电路与数字逻辑*************
文档评论(0)