状态机的设计祥解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
根据给出的状态转移图设计。 注意:复位有效时,每个状态下的输出都为0,只要转换到某个状态时,相应状态下的输出为1 s2:begin next_state=(ina)?s3:s0; out=0; end s3:begin next_state=(ina)?s3:s0; out=1; end endcase end endmodule 如果采用一位hot编码,仅改动参数设置的两行程序。采用一个always模块描述,改动部分的程序如下 parameter s0 = 3b0001,s1 =3b0010,s2 =3b0100,s3=3b1000; reg[0:3] state; 例 仲裁器电路的设计 目的是产生控制信号将给定系统中共享资源合理地分配给多 个设备使用。每次只允许一个设备能使用该共享资源。假设 系统的所有信号仅能在时钟正跳变沿时刻改变。每个设备都 提供一个输入信号给仲裁器,该输入信号叫做请求信号,仲 裁器发给每个设备单独一个输出信号,称作认可信号。某设 备通过设置请求信号来申请使用资源。只要共享资源未被占 用,仲裁器 应对所有发出的请求信号都予以考虑。基于优先 级方案,仲裁器从中选择一个发出请求信号的设备并输出其 认可信号。一旦该设备使用资源完成后,它应撤回请求信号 假设系统有八台设备,分别称为设备1,设备2 ,设备3。。 。设备8。请求信号被命名为r1、r2 、r3。。r8,认可信号被 叫做g1、g2 和g3。。。g8。设备被分配为不同的优先级,例如 设备1的优先级最高,设备2 的优先级其次,设备8 的优先级最 低。因此,若有多个设备同时发出请求信号,则仲裁器将把认 可信号发给提出请求的设备中优先级最高的设备。 ADC0809 工作时序和芯片引脚示意图 例6 ADC0809 采样控制器 信号说明 START:转换启动控制信号,高有效 ALE:模拟信号输入选通端口地址锁存信号,上升沿有效。 EOC:一旦START启动,其状态信号EOC即为低电平,表示进入转换状态转换时间约为100us,转换结束,变为高电平 OE:转换结束后,外部控制可使OE由低电平变为高电平(输出有效)此时,0809输出数据总线D[7:0]从高阻变为输出数据 控制ADC0809采样状态图 采样状态机结构框图 为了方便仿真观察,输出口增加了内部锁存信号LOCK_T ADC0809采样状态机工作时序 三个过程块的状态机表述方法 直接输出型编码表述方法 直接输出型编码状态时序图 用宏定义语句定义状态编码 第一个模块把4位的并行数据转换成一定协议的串行数据流;第二个模块接收串行数据流,并把它转换为相应16位信号线的高电平 例7 并行数据流转换为一种特殊串行数据流模块的设计 串行数据符合以下协议: 有限状态机设计的一般步骤: ??????????????1)??逻辑抽象,得出状态转换图 ????????????2)??状态化简 ??????????3)??状态分配 在触发器资源丰富的FPGA或ASIC设计中采用独热编码(one-hot-coding)既可以使电路性能得到保证又可充分利用其触发器数量多的优势,也可以采取输出编码的状态指定来简化电路结构,并提高状态机的运行速度。 4) 选定触发器的类型并求出状态方程、驱动方程和输出方程。 ??5)???按照方程得出逻辑图 1 、采用独热码设计状态机 2、用case,casex或casez语句建立状态机的模型,将最后一个分支default的状态变量设为‘bx 3、设置一个异步或同步复位端。 4、状态机应有唯一的时钟触发 5、采用电路图输入方法或实例引用方法设计异步状态机 6、Verilog HDL中,状态必须明确赋值,通常使用参数 (parameters)或宏定义(define)语句加上赋值语句来实现 使用参数(parameters)语句赋状态值见下例: parameter state1 = 2 h1, state2 = 2 h2; ... current_state = state2; //把current state设置成 2h2 ... 使用宏定义(define)语句赋状态值见下例: `define state1 2 h1 `define state2 2 h2 ... current_state = `state2; //把current state设置成 2 h2 硬件数字技术排除毛刺 用于状态机和其它容易产生毛刺或电平抖动的电路。需要在键输入口/状态机中或特定系统模块的外部的输入或输出口增加这些电路。 1 延时方式去毛刺 2 逻辑方式去毛刺 3 定时方式去毛刺 1 延时方式去除毛刺 消除冒险竞争和毛刺现象,常用措施是使信号有微量 延时,传统数字电路设计技术中常

文档评论(0)

基本资料 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档