已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA技术实用教程 第9章有限状态机设计 设计实例 在时分通信系统中 设计一个巴克码识别器 当串行数据流中出现1110010 七位巴克码 时 输出识别信号 保证时分通信系统中的帧同步 设计要求 状态分析 根据设计要求 电路输入端S IN输入为随机串行数据流 七位巴克码组为1110010 为此可以选择S0 S1 S2 S3 S4 S5 S6共七个状态 当电路处于状态S6时如果接收到的数据流出现一个 0 时状态转向S0 同时FD输出为 1 通信系统同步单元通过信号FD提取帧同步信号 原始状态图 原始状态表 简化后状态表 简化后状态图 程序代码 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYCHK2ISPORT CLK RESET INSTD LOGIC S IN INSTD LOGIC FD OUTSTD LOGIC ENDCHK2 ARCHITECTUREaOFCHK2ISTYPESTATE TYPEIS S0 S1 S2 S3 S4 S5 S6 SIGNALstate STATE TYPE BEGINPROCESS CLK RESET BEGINIFRESET 1 THENstateFDFD 0 IFS IN 1 THENstate S2 ELSESTATE S0 ENDIF 接下页 接上页WHENS2 FDFDFDFDIFS IN 0 THENstate S0 FD 1 ELSESTATE S2 ENDIF ENDCASE ENDIF ENDPROCESS ENDa 9 1一般有限状态机的设计 9 1 1用户自定义数据类型定义语句 TYPE语句用法如下 TYPE数据类型名IS数据类型定义OF基本数据类型 或TYPE数据类型名IS数据类型定义 以下列出了两种不同的定义方式 TYPEst1ISARRAY 0TO15 OFSTD LOGIC TYPEweekIS sun mon tue wed thu fri sat 9 1一般有限状态机的设计 9 1 1用户自定义数据类型定义语句 TYPEm stateIS st0 st1 st2 st3 st4 st5 SIGNALpresent state next state m state 布尔数据类型的定义语句是 TYPEBOOLEANIS FALSE TRUE TYPEmy logicIS 1 Z U 0 SIGNALs1 my logic s1 Z 9 1一般有限状态机的设计 9 1 1用户自定义数据类型定义语句 子类型SUBTYPE的语句格式如下 SUBTYPE子类型名IS基本数据类型RANGE约束范围 SUBTYPEdigitsISINTEGERRANGE0to9 9 1 2为什么要使用状态机 9 1一般有限状态机的设计 有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点 状态机的结构模式相对简单 状态机容易构成性能良好的同步时序逻辑模块 状态机的VHDL表述丰富多样 在高速运算和控制方面 状态机更有其巨大的优势 就可靠性而言 状态机的优势也是十分明显的 9 1 3一般有限状态机的设计 9 1一般有限状态机的设计 1 说明部分 2 主控时序进程 图9 1一般状态机结构框图工作示意图 ARCHITECTURE ISTYPEFSM STIS s0 s1 s2 s3 SIGNALcurrent state next state FSM ST 3 主控组合进程 9 1 3一般有限状态机的设计 控组合进程的任务是根据外部输入的控制信号 包括来自状态机外部的信号和来自状态机内部其它非主控的组合或时序进程的信号 或 和 当前状态的状态值确定下一状态 next state 的取向 即next state的取值内容 以及确定对外输出或对内部其它组合或时序进程输出控制信号的内容 4 辅助进程 例9 1 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYs machineISPORT clk reset INSTD LOGIC state inputs INSTD LOGIC VECTOR 0TO1 comb outputs OUTINTEGERRANGE0TO15 ENDs machine ARCHITECTUREbehvOFs machineISTYPEFSM STIS s0 s1 s2 s3 SIGNALcurrent state next state FSM ST BEGINREG PROCESS reset clk BEGINIFreset 1 THENcurrent state s0 ELSIFclk 1 ANDclk EVENTTHENcurrent state next state ENDIF ENDPROCESS COM PROCESS current state state Inputs 接下页 9 1 3一般有限状态机的设计 BEGINCASEcurrent stateISWHENs0 comb outputscomb outputscomb outputscomb outputs 14 IFstate inputs 11 THENnext state s3 ELSEnext state s0 ENDIF ENDcase ENDPROCESS ENDbehv 接上页 图9 2例9 1状态机的工作时序图 9 1 3一般有限状态机的设计 4 辅助进程 用VHDL设计状态机 AD574A采样控制状态机 VHDL综合器易于优化 易构成性能良好的时序逻辑模块 结构模式简单 层次分明 易读易懂 易排错 运行模式类似于CPU 易于进行顺序控制 利用同步时序和全局时钟线可实现高速FSM 高可靠性 非法状态易控制 为什么要使用状态机 9 2Moore型有限状态机的设计 9 2 1三进程有限状态机 CECSRCK12 8A0工作状态0XXXX禁止X1XXX禁止100X0启动12位转换100X1启动8位转换1011X12位并行输出有效10100高8位并行输出有效10101低4位加上尾随4个0有效 表9 1AD574逻辑控制真值表 X表示任意 9 2 1三进程有限状态机 图9 3AD574工作时序 9 2 1三进程有限状态机 图9 4AD574工作时序 9 2 1三进程有限状态机 图9 5采样状态机结构框图 例9 2 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYAD574ISPORT D INSTD LOGIC VECTOR 11DOWNTO0 CLK STATUS INSTD LOGIC 状态机时钟CLK AD574状态信号STATUSLOCK0 OUTSTD LOGIC 内部锁存信号LOCK的测试信号CS A0 RC K12X8 OUTSTD LOGIC AD574控制信号Q OUTSTD LOGIC VECTOR 11DOWNTO0 锁存数据输出ENDAD574 ARCHITECTUREbehavOFAD574ISTYPEstatesIS st0 st1 st2 st3 st4 SIGNALcurrent state next state states st0 SIGNALREGL STD LOGIC VECTOR 11DOWNTO0 SIGNALLOCK STD LOGIC BEGINK12X8 1 LOCK0 LOCK COM1 PROCESS current state STATUS 决定转换状态的进程接下页 9 2 1三进程有限状态机 BEGINCASEcurrent stateISWHENst0 next statenext stateIF STATUS 1 THENnext statenext statenext statenext stateCSCSCSCSCSCS 1 A0 1 RC 1 LOCK 0 其它情况返回初始态接下页 接上页 ENDCASE ENDPROCESSCOM2 REG PROCESS CLK 时序进程BEGINIF CLK EVENTANDCLK 1 THENcurrent state next state ENDIF ENDPROCESSREG LATCH1 PROCESS LOCK 数据锁存器进程BEGINIFLOCK 1 ANDLOCK EVENTTHENREGL D ENDIF ENDPROCESS Q REGL ENDbehav 接上页 9 2 1三进程有限状态机 图9 6AD574采样状态机工作时序 9 2 1三进程有限状态机 例9 3 COM PROCESS current state STATUS BEGINCASEcurrent stateISWHENst0 next statenext stateIF STATUS 1 THENnext statenext statenext statenext state st0 ENDCASE ENDPROCESSCOM PROCESSREG时序进程 PROCESSCOM组合进程 PROCESSLATCH锁存器 current state next state LOCK 状态机FSM FPGA CPLD CLK CSA0RCK12 8STATUSD 11 0 AD574 Q 11 0 模拟信号输入 采样数据输出 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYAD574ISPORT D INSTD LOGIC VECTOR 11DOWNTO0 CLK STATUS INSTD LOGIC CS A0 RC K12X8 OUTSTD LOGIC Q OUTSTD LOGIC VECTOR 11DOWNTO0 ENDAD574 ARCHITECTUREbehavOFAD574ISTYPEstatesIS st0 st1 st2 st3 st4 SIGNALcurrent state next state states SIGNALREGL STD LOGIC VECTOR 11DOWNTO0 SIGNALLOCK STD LOGIC BEGINCOM PROCESS current state STATUS BEGINCASEcurrent stateISWHENst0 CSCSCS 0 A0 0 RC 0 LOCK 0 IF STATUS 1 THENnext state st2 ELSEnext state st3 ENDIF WHENst3 CSCSnext state st0 ENDCASE ENDPROCESSCOM REG PROCESS CLK BEGINIF CLK EVENTANDCLK 1 THENcurrent state next state ENDIF ENDPROCESSREG LATCH PROCESS LOCK BEGINIFLOCK 1 ANDLOCK EVENTTHENREGL D ENDIF ENDPROCESS Q REGL ENDbehav K12X8 1 状态机VHDL源程序 状态机RTL电路图 状态机工作时序图 状态2 等待 9 2 2单进程Moore型有限状态机 例9 4 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYMOORE1ISPORT DATAIN INSTD LOGIC VECTOR 1DOWNTO0 CLK RST INSTD LOGIC Q OUTSTD LOGIC VECTOR 3DOWNTO0 ENDMOORE1 ARCHITECTUREbehavOFMOORE1ISTYPEST TYPEIS ST0 ST1 ST2 ST3 ST4 SIGNALC ST ST TYPE BEGINPROCESS CLK RST BEGINIFRST 1 THENC ST ST0 Q 0000 ELSIFCLK EVENTANDCLK 1 THEN接下页 CASEC STISWHENST0 IFDATAIN 10 THENC STIFDATAIN 11 THENC STIFDATAIN 01 THENC STIFDATAIN 00 THENC STIFDATAIN 11 THENC STC ST ST0 ENDCASE ENDIF ENDPROCESS ENDbehav 接上页 图9 7例9 4状态机综合后的RTL电路模块图 9 2 2单进程Moore型有限状态机 9 2 2单进程Moore型有限状态机 图9 8例9 4单进程状态机工作时序 9 2 2单进程Moore型有限状态机 图9 9对应于例9 4的2进程状态机工作时序图 9 3Mealy型有限状态机的设计 例9 5 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYMEALY1ISPORT CLK DATAIN RESET INSTD LOGIC Q OUTSTD LOGIC VECTOR 4DOWNTO0 ENDMEALY1 ARCHITECTUREbehavOFMEALY1ISTYPEstatesIS st0 st1 st2 st3 st4 SIGNALSTX states BEGINCOMREG PROCESS CLK RESET BEGIN 决定转换状态的进程IFRESET 1 THENSTX ST0 ELSIFCLK EVENTANDCLK 1 THEN 接下页 CASESTXISWHENst0 IFDATAIN 1 THENSTXIFDATAIN 0 THENSTXIFDATAIN 1 THENSTXIFDATAIN 0 THENSTXIFDATAIN 1 THENSTXSTXIFDATAIN 1 THENQIFDATAIN 0 THENQIFDATAIN 1 THENQIFDATAIN 0 THENQ 11011 ELSEQ 01001 ENDIF WHENst4 IFDATAIN 1 THENQQ 00000 ENDCASE ENDPROCESSCOM1 ENDbehav 接上页 图9 10例9 5状态机工作时序图 例9 6 MEALY2LIBRARYIEEE MEALYFSMUSEIEEE STD LOGIC 1164 ALL ENTITYMEALY2ISPORT CLK DATAIN RESET INSTD LOGIC Q OUTSTD LOGIC VECTOR 4DOWNTO0 ENDMEALY2 ARCHITECTUREbehavOFMEALY2ISTYPEstatesIS st0 st1 st2 st3 st4 SIGNALSTX states SIGNALQ1 STD LOGIC VECTOR 4DOWNTO0 BEGINCOMREG PROCESS CLK RESET 决定转换状态的进程BEGINIFRESET 1 THENSTXIFDATAIN 1 THENSTXIFDATAIN 0 THENSTXIFDATAIN 1 THENSTXIFDATAIN 0 THENSTXIFDATAIN 1 THENSTXSTX st0 ENDCASE 接下页 ENDIF ENDPROCESSCOMREG COM1 PROCESS STX DATAIN CLK 输出控制信号的进程VARIABLEQ2 STD LOGIC VECTOR 4DOWNTO0 BEGINCASESTXISWHENst0 IFDATAIN 1 THENQ2 10000 ELSEQ2 01010 ENDIF WHENst1 IFDATAIN 0 THENQ2 10111 ELSEQ2 10100 ENDIF WHENst2 IFDATAIN 1 THENQ2 10101 ELSEQ2 10011 ENDIF WHENst3 IFDATAIN 0 THENQ2 11011 ELSEQ2 01001 ENDIF WHENst4 IFDATAIN 1 THENQ2 11101 ELSEQ2 01101 ENDIF WHENOTHERS Q2 00000 ENDCASE 接下页 IFCLK EVENTANDCLK 1 THENQ1 Q2 ENDIF ENDPROCESSCOM1 Q Q1 ENDbehav 接上页 图9 11例9 6状态机工作时序图 9 4状态编码 9 4 1状态位直接输出型编码 表7 2控制信号状态编码表 每一位的编码值都赋予了实际的控制功能 即 CS current state 4 A0 current state 3 RC current state 2 LOCK current state 1 例9 7 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYAD574AISPORT D INSTD LOGIC VECTOR 11DOWNTO0 CLK STATUS INSTD LOGIC OUT4 OUTSTD LOGIC VECTOR 3DOWNTO0 Q OUTSTD LOGIC VECTOR 11DOWNTO0 ENDAD574A ARCHITECTUREbehavOFAD574AISSIGNALcurrent state next state STD LOGIC VECTOR 4DOWNTO0 CONSTANTst0 STD LOGIC VECTOR 4DOWNTO0 11100 CONSTANTst1 STD LOGIC VECTOR 4DOWNTO0 00001 CONSTANTst2 STD LOGIC VECTOR 4DOWNTO0 00000 CONSTANTst3 STD LOGIC VECTOR 4DOWNTO0 00100 CONSTANTst4 STD LOGIC VECTOR 4DOWNTO0 00110 SIGNALREGL STD LOGIC VECTOR 11DOWNTO0 SIGNALLK STD LOGIC BEGINCOM1 PROCESS current state STATUS 决定转换状态的进程 接下页 BEGINCASEcurrent stateISWHENst0 next statenext stateIF STATUS 1 THENnext statenext statenext statenext state st0 ENDCASE OUT4 current state 4DOWNTO1 ENDPROCESSCOM1 REG PROCESS CLK 时序进程BEGINIF CLK EVENTANDCLK 1 THENcurrent state next state ENDIF ENDPROCESSREG LK current state 1 LATCH1 PROCESS LK 数据锁存器进程BEGINIFLK 1 ANDLK EVENTTHENREGL D 接下页 ENDIF ENDPROCESS Q REGL ENDbehav 接上页 图9 12例9 7状态机工作时序图 9 4 2顺序编码 表9 3编码方式 例9 8 SIGNALCRURRENT STATE NEXT STATE STD LOGIC VECTOR 2DOWNTO0 CONSTANTST0 STD LOGIC VECTOR 2DOWNTO0 000 CONSTANTST1 STD LOGIC VECTOR 2DOWNTO0 001 CONSTANTST2 STD LOGIC VECTOR 2DOWNTO0 010 CONSTANTST3 STD LOGIC VECTOR 2DOWNTO0 011 CONSTANTST4 STD LOGIC VECTOR 2DOWNTO0 100 9 4 3一位热码编码 One hotencoding 图9 13一位热码编码方式选择窗 状态机编码方式设置 9 5状态机剩余状态处理 表9 4剩余状态 例9 9 TYPEstatesIS st0 st1 st2 st3 st4 st ilg1 st ilg2 st ilg3 SIGNALcurrent state next state states COM PROCESS current state state Inputs 组合逻辑进程BEGINCASEcurrent stateIS 确定当前状态的状态值 WHENOTHERS next state st0 ENDcase 例9 10 alarm st0AND st1ORst2ORst3ORst4ORst5 OR st1AND st0ORst2ORst3ORst4ORst5 OR st2AND st0ORst1ORst3ORst4ORst5 OR st3AND st0ORst1ORst2ORst4ORst5 OR st4AND st0ORst1ORst2ORst3ORst5 OR st5AND st0ORst1ORst2ORst3ORst4 状态机 实验 1 实验目的 用状态机实现序列检测器的设计 并对其进行仿真和硬件测试 实验9 1用状态机实现序列检测器的设计 2 实验原理 序列检测器的工作原理已在习题7 3中作了说明 实验 实验9 1用状态机实现序列检测器的设计 3 实验内容1 仔细完成习题7 3的全部内容 利用MAX plusII对例7 11进行文本编辑输入 仿真测试并给出仿真波形 了解控制信号的时序 最后进行引脚锁定并完成硬件测试实验 建议用键7 PIO11 控制复位信号CLR 键6 PIO9 控制状态机工作时钟CLK 待检测串行序列数输入DIN接PIO10 左移 最高位在前 指示输出AB接PIO39 PIO36 显示于数码管6 下载后 按实验板 系统复位 键 用键2和键1输入2位十六进制待测序列数 11100101 按键7复位 平时数码6指示显 B 4 按键6 CLK 8次 这时若串行输入的8位二进制序列码 显示于数码2 1和发光管D8 D0 与预置码 11100101 相同 则数码6应从原来的B变成A 表示序列检测正确 否则仍为B 实验 实验9 1用状态机实现序列检测器的设计 4 实验内容2 根据习题7 3中的习题要求3 提出的设计方案重复以上实验内容 将8位待检测预置数由键4 键3作为外部输入 从而可随时改变检测密码 5 实验思考题 如果待检测预置数必须以右移方式进入序列检测器 写出该检测器的VHDL代码 两进程符号化有限状态机 并提出测试该序列检测器的实验方案 6 实验报告 根据以上的实验内容写出实验报告 包括设计原理 程序设计 程序分析 仿真分析 硬件测试和详细实验过程 实验 实验9 2用状态机对ADC0809的采样控制电路实现 1 实验目的 学习用状态机对A D转换器ADC0809的采样控制电路的实现 2 实验原理 ADC0809的采样控制原理已在习题7 6中作了详细说明 3 实验内容 利用MAX plusII对例7 12进行文本编辑输入和仿真测试 给出仿真波形 最后进行引脚锁定并进行测试 硬件验证例7 12电路对ADC0809的控制功能 实验 实验9 2用状态机对ADC0809的采样控制电路实现 测试步骤 根据附图1 12 建议引脚锁定为 START接PIO34 OE接PIO35 EOC接PIO8 ALE接PIO33 状态机时钟CLK接clock0 PIN2 可选 65536Hz 或更高 ADDA接PIO32 ADDB和ADDC都接GND ADC0809的8位输出数据线接PIO23 PIO16 锁存输出Q显示于数码8 数码7 PIO47 PIO40 设目标器件是EPF10K10 建议选择实验电路结构图NO 5 即结构图NO 5A 附图1 12 由该图可见 ADC0809的转换时钟CLK已经事先接有750KHz的频率 将实验系统左下角选择插针处的 转换结束 和 A D使能 用跳线幅短接 下载目标文件后 可用螺丝刀旋转实验系统左下角的电位器 以便为ADC0809提供变化的待测模拟信号 这时数码管8和7将显示ADC0809采样输出并被锁存的数字值 16进制 实验板中ADC0809电路原理图 注意与目标器件的连接方法 选择实验电路模式5 根据此表锁定引脚 ADC0809 0809将0 5V输入模拟电压通过FPGA中的状态机转换输出为16进制数 9D 旋转此电位器可改变0809的输出 注意转换输出已改变为 7C 注意 此项实验必须将此2拨码向下拨 功能请参考使用说明 实验结束后 将它们向上拨回原位 实验 实验9 2用状态机对ADC0809的采样控制电路实现 4 实验思考题 在不改变原代码功能的条件下将例7 12表达成用状态码直接输出型的状态机 5 实验报告 根据以上的实验要求 实验内容和实验思考题写出实验报告 实验 实验9 3含有FIFO存储器的A D采样控制电路设计 1 实验目的 掌握LPM模块VHDL元件定制 调用和使用方法 熟悉含有LPM模块的VHDL电路描述程序的设计 编译和硬件实验流程 了解HDL文本描述与原理图混合设计方法 注 本实验应在完成第8章的学习后进行 2 实验原理 在第8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科研道德遵守声明书7篇范文
- 北师大版七年级生物下第四单元第8章 人体的营养第1节 人类的食物两课时教学设计
- 办公用品下单催办函(8篇)
- 奋斗青春(教学设计)初三下学期教育主题班会
- 高规格产品承诺函7篇
- 第一单元 第7课时 比身高(教学设计)四年级数学下册同步高效课堂系列(北师大版)
- 新型口罩生产线的设备调试确认函3篇
- 商标注册申请确认函(4篇)
- 2026年全国注册测绘师之测绘综合能力考试知识串联题(详细参考解析)
- 建筑工程施工质量验收方案手册
- 2026山东济南市劳服中心劳务派遣人员招聘备考题库及答案详解一套
- 安徽省省十联考2026届高三最后一卷政治试卷
- 辽宁省丹东市2024-2025学年高一下学期期末教学质量监测语文试卷(有答案)
- 小红书种草营销师(初级)认证考试题库(附答案)
- DL-T692-2018电力行业紧急救护技术规范
- 办公楼消防安全培训课件
- F6系列中文使用说明书
- 医学细胞生物学全册课件
- 初二地理、生物会考综合试题(含答案)-地理生物,综合题
- 钢结构施工测量方案
- 688太和_职位评估工具介绍(共32张)(PPT 32页)
评论
0/150
提交评论