版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.6.4.2 基于状态机的工程设计方法学习利用quartusII软件中的状态机编辑器设计一个1110010序列检测器。1建立工程文件工程文件的建立主要包括指定工程文件名称、选择添加的文件和库及选择目标器件3个过程。在quartusII菜单栏中选择FileNew Project Wizard,在弹出的图2.6.8对话框中输入新建工程所在的文件夹名称(exp_detect3)、工程名称(exp_detect3)和顶层实体名称(exp_detect3),然后点击Next,选择目标器件EPF10K20TC144-3,其他取系统默认设置,继续点击Next按钮,直至进入如图2.6.9所示的对话框,该对话
2、框可以查看设置信息是否正确。正确则单击Finish按钮,完成工程文件的建立。 图2.6.8 创建新工程文件1(指定工程文件名称) 图2.6.9 工程创建结束对话框2输入状态机 建立文件在quartusII菜单栏中选择FileNew,或单击工具栏中的按钮,在弹出的新建文件对话框中,选择State Machine File,单击OK按钮,进入如图2.6.10所示的状态机编辑器窗口。 图2.6.10 quartusII的状态机编辑窗口 创建状态机在quartusII的状态机编辑窗口的菜单栏中选择ToolsState Machine Wizard,弹出如图2.6.11所示的状态机创建向导选择对话框。在
3、该对话框中选择Edit an existing state machine design,点击OK按钮,进入如图2.6.12所示的状态机向导4步中的步骤1对话框。 图2.6.11 状态机创建向导选择对话框 状态机向导步骤1:在图2.6.12对话框中,选择复位Reset信号模式:同步(Synchronous)或者异步(Asynchronous),该序列检测器设计选择异步复位;选中复位信号Reset高电平有效(Reset is active-high);选中输出端的输出方式为寄存器方式(Register the output ports),点击Next按钮,进入状态机向导步骤2对话框如图2.6.1
4、3。 图2.6.12 状态机向导步骤1 状态机向导步骤2:状态转换在图2.6.13状态转换对话框中,在States栏中输入1110010序列检测器的状态名称s0、s1s7,在Input ports栏中输入该检测器状态机的输入时钟信号clock、复位信号reset以及串行数据输入信号din。在State transitions栏中依据该序列检测器设计的状态图依次输入各种状态转换,设置完后点击Next,进入状态机向导步骤3的对话框,如图2.6.14 图2.6.13 状态机向导步骤2(状态转换) 状态机向导步骤3:在图2.6.14所示对话框中,在Output ports栏下的Output Port
5、Name中输入该序列检测器设计的输出信号z,在Output State栏中选择Next clock cycle;在Action condition栏下的Output Port中输入该设计的输出信号z,在Output Value栏以及INState栏中输入该设计的检测结果1极其状态s7。设置完后点击Next进入如图2.6.15所示的状态机向导步骤4。 图2.6.14 状态机向导步骤3 状态机向导步骤4:在图2.6.15所示对话框中显示出状态机的设置情况。点击Finish,关闭状态机向导,生成所需的状态机,将该状态机的各状态位置做适当调整,得到我们所需的状态图,如图2.6.16。 图2.6.15
6、状态机向导步骤4 图2.6.16 利用状态机向导完成的状态图 保存文件单击菜单栏中的按钮,在弹出的“另存为|”对话框中,默认该设计文件为exp_detect3.smf,选中Add file to current project,点击保存按钮,完成文件保存。 生成对应的VHDL文件选择ToolGenerate HDL File,在弹出的对话框2.6.17中选择产生程序代码HDL语言的种类,选择VHDL,点击OK按钮,则自动生成对应的余状态机文件名相同的VHDL文本文件exp_detect3.vhd,在文本编辑窗口中打开该状态机的VHDL代码。 图2.6.17 生成HDL文件对话框基于状态机输入的
7、1110010序列检测器的VHDL代码:exp_detect3.vhdLIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY exp_detect3 ISPORT ( clock : IN STD_LOGIC; reset : IN STD_LOGIC := '0' din : IN STD_LOGIC := '0' z : OUT STD_LOGIC );END exp_detect3;ARCHITECTURE BEHAVIOR OF exp_detect3 IS TYPE type_fstate IS (s0,s1,s
8、2,s3,s4,s5,s6,s7); SIGNAL fstate : type_fstate; SIGNAL reg_fstate : type_fstate; SIGNAL reg_z : STD_LOGIC := '0'BEGIN PROCESS (clock,reg_fstate) BEGIN IF (clock='1' AND clock'event) THEN fstate <= reg_fstate; END IF; END PROCESS; PROCESS (fstate,reset,din,reg_z) BEGIN IF (rese
9、t='1') THEN reg_fstate <= s0; reg_z <= '0' z <= '0' ELSE reg_z <= '0' z <= '0' CASE fstate IS WHEN s0 => IF (din = '1') THEN reg_fstate <= s1; ELSIF (NOT(din = '1') THEN reg_fstate <= s0; - Inserting 'else' block
10、 to prevent latch inference ELSE reg_fstate <= s0; END IF; WHEN s1 => IF (din = '1') THEN reg_fstate <= s2; ELSIF (NOT(din = '1') THEN reg_fstate <= s0; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s1; END IF; WHEN s2 => IF (din = &
11、#39;1') THEN reg_fstate <= s3; ELSIF (NOT(din = '1') THEN reg_fstate <= s0; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s2; END IF; WHEN s3 => IF (NOT(din = '1') THEN reg_fstate <= s4; ELSIF (din = '1') THEN reg_fstate <
12、;= s2; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s3; END IF; WHEN s4 => IF (NOT(din = '1') THEN reg_fstate <= s5; ELSIF (din = '1') THEN reg_fstate <= s1; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <
13、= s4; END IF; WHEN s5 => IF (din = '1') THEN reg_fstate <= s6; ELSIF (NOT(din = '1') THEN reg_fstate <= s0; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s5; END IF; WHEN s6 => IF (NOT(din = '1') THEN reg_fstate <= s7; ELSIF
14、(din = '1') THEN reg_fstate <= s2; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s6; END IF; WHEN s7 => IF (din = '1') THEN reg_fstate <= s1; ELSIF (NOT(din = '1') THEN reg_fstate <= s0; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s7; END IF; reg_z <= '1' WHEN OTHERS => reg_z <= 'X' report "Reach undefined state" END CASE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026重庆青年镇招聘公益性岗位人员4人备考题库含答案详解(夺分金卷)
- 2026安徽马鞍山和县科技职业学校校园招聘2人备考题库及参考答案详解【能力提升】
- 2026浙江农林大学继续教育学院劳务派遣工作人员招聘1人备考题库含完整答案详解(历年真题)
- 2026西藏阿里地区日土县审计局招聘3名备考题库附完整答案详解(典优)
- 2026广东佛山三水区白坭镇岗头中心幼儿园春季招聘1人备考题库含答案详解【培优b卷】
- 2026河南安阳殷都区人民医院招聘卫生专业技术人员9人备考题库附答案详解(精练)
- 2026山东滨州市邹平市明集镇所属事业单位就业见习招募25人备考题库含答案详解(达标题)
- 2026年及未来5年市场数据中国老年地产行业市场深度分析及发展趋势预测报告
- 老年尿路感染的心理干预
- Barucainide-生命科学试剂-MCE
- 海宁市袁花镇梨园股份经济合作社海宁市动物无害化处理中心项目环评报告
- 三角函数与解三角形二轮复习
- 2025届高考语文复习:古代文化常识 练习题汇编(含答案)
- 2025年安徽国防科技职业学院单招综合素质考试题库及答案参考
- 2025年安徽水利水电职业技术学院单招职业适应性测试题库(含答案)
- 中国糖尿病防治指南(2024版)解读
- 《基于Java Web的公司员工信息系统设计与实现》8400字(论文)
- 【MOOC】管理会计工具与应用-江苏理工学院 中国大学慕课MOOC答案
- 《信息技术(基础模块)麒麟操作系统+WPSOffice(微课版)》全套教学课件
- 马尾神经综合征个案护理
- 2023年北京大学留学生入学考试英语试卷
评论
0/150
提交评论