第5章-VHDL-状态机PPT
可编程逻辑器件及应用 ; 用VHDL可以设计不同表达方式和不同实用功能的有限状态机,这些有限状态机的VHDL描述都具有相对固定的语句和程序表达方式,只要我们把握了这些固定的语句表达部分,就能根据实际需要写出各种不同风格的VHDL有限状态机。 有限状态机可以描述和实现大部分时序逻辑系统。与基于VHDL的其他设计方案或者与使用CPU编制程序的解决方案相比,有限状态机都有其难以超越的优越性。;;;;应用VHDL设计有限状态机的具体步骤如下: (1) 根据系统要求确定状态数量、状态转移的条件和各状态输出信号的赋值,并画出状态转移图。 (2) 按照状态转移图编写有限状态机的VHDL设计程序。 (3) 利用EDA工具对有限状态机的功能进行仿真验证。;5.1 状态机设计相关语句 ;5.1 状态机设计相关语句 ;5.1 状态机设计相关语句 ;;5.1 状态机设计相关语句 ;;;5.1 状态机设计相关语句 ;; [例] PROCESS (reset,clk) BEGIN IF (reset = 1 ) THEN cur_st = st1; ELSIF (clk= 1 AND clk‘event ) THEN cur_st = next_st; END IF; END PROCESS;;5.1 状态机设计相关语句 ;;;;【例5-1】
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY s_machine IS
PORT ( clk,reset : IN STD_LOGIC;
state_inputs : IN STD_LOGIC_VECTOR (0 TO 1);
comb_outputs : OUT INTEGER RANGE 0 TO 15 );
END s_machine;
ARCHITECTURE behv OF s_machine IS
TYPE FSM_ST IS (s0, s1, s2, s3); --数据类型定义,状态符号化
SIGNAL current_state, next_state: FSM_ST;--将现态和次态定义为新的数据类型
BEGIN
REG: PROCESS (reset,clk) --主控时序进程
BEGIN
IF reset = 1 THEN current_state = s0;--检测异步复位信号
ELSIF clk=1 AND clkEVENT THEN
current_state = next_state;
END IF;
END PROCESS;
COM:PROCESS(current_state, state_Inputs) --主控组合进程
(接下页);BEGIN
CASE current_state IS
WHEN s0 = comb_outputs= 5;
IF state_inputs = 00 THEN next_state=s0;
ELSE next_state=s1;
END IF;
WHEN s1 = comb_outputs= 8;
IF state_inputs = 00 THEN next_state=s1;
ELSE next_state=s2;
END IF;
WHEN s2 = comb_outputs= 12;
IF state_inputs = 11 THEN next_state = s0;
ELSE next_state = s3;
END IF;
WHEN s3 = comb_outputs = 14;
IF state_inputs = 11 THEN next_state = s3;
ELSE next_state = s0;
END IF;
END case;
END PR
您可能关注的文档
最近下载
- 初中八年级体育与健康课全套教案(全).doc
- 学堂在线 雨课堂 学堂云 日语与日本文化进阶 期末考试答案.docx VIP
- 安徽机电职业技术学院分类考试校考往年真题.pdf VIP
- 急危重症患者的早期识别与评估.pptx VIP
- 华荣科技 最新版本的QJZ6磁力说明书 (1).doc VIP
- 2026年徐州生物工程职业技术学院单招《数学》试卷【原创题】附答案详解.docx VIP
- 2025年湖北国土资源职业学院单招职业技能考试题库附参考答案详解【轻巧.docx VIP
- DBJT14-067-2010旋挖钻孔灌注桩施工技术规程.pdf VIP
- 《职业卫生技术服务机构基本服务规范》.pdf VIP
- 成都天府新区宣传画册.pdf VIP
原创力文档

文档评论(0)