1、电子与通信工程系,上节回顾,稍复杂的时序电路 三态、双向端口、总线的描述方法完全赋值if (control=0) then x = q ; q = “ZZZZZZZZ“;else q = in1; x =“ZZZZZZZZ“;,电子与通信工程系,实验3,实验5-3 设计含异步清零和同步使能的加法计数器 学习使用SIGNALTAPII,电子与通信工程系,电子与通信工程系,如何Debug硬件电路,简单电路-万用表,电压电流 数字设计 示波器 价格从几千到几万乃至十几万逻辑分析仪 价格达几万乃至几十万,电子与通信工程系,逻辑分析仪,逻辑分析仪与示波器相同,是通过采集指定的信号,并通过图形化的方式展示
2、给开发人员,开发人员根据这些图形化信号按照协议分析出是否出错。板级调试时逻辑分析仪几乎是必须设备泰克和安捷伦公司是这个市场上的佼佼者Quatus内置软逻辑分析仪,利用FPGA上的存储器进行采样,电子与通信工程系,SIGNAL TAPII用法 (P111),FILE-NEW-Other Files -SignalTapII File,电子与通信工程系,右上方选择硬件,与下载程序时下 载线的选择相同,电子与通信工程系,单击,改名,电子与通信工程系,在这里双击 左键调出 Node Finder,电子与通信工程系,单击此处可全屏,电子与通信工程系,Signal Configuration 请参考右图设
3、置,然后保存,电子与通信工程系,此处需保证使用刚才存盘的设置文件,电子与通信工程系,点此开始分析,当触发条件满足时逻辑分析仪开始捕捉信号,点此可以结束分析,重新综合,下载至开发板,电子与通信工程系,14,3.5 有限状态机设计,3.5.1 一般有限状态机的相关语法,3.5.1.1 用户自定义数据类型定义语句,TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 ; 或 TYPE 数据类型名 IS 数据类型定义 ;,TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ; TYPE week IS (sun,mon,tue,wed,thu,fri,sat)
4、 ;,TYPE语句用法如下:,以下列出了两种不同的定义方式:,(课本P195),电子与通信工程系,15,TYPE BOOLEAN IS (FALSE,TRUE);,TYPE my_logic IS (1 , Z , U , 0 ); SIGNAL s1 : my_logic; s1 = Z;,布尔数据类型的定义语句是:,SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围;,SUBTYPE digits IS INTEGER RANGE 0 to 9;,子类型SUBTYPE的语句格式如下:,电子与通信工程系,16,3.5.1.2 为什么要使用状态机, 有限状态机克服了纯顺序方式控
5、制不灵活的缺点。, 状态机的结构模式相对简单。, 状态机容易构成性能良好的同步时序逻辑模块。, 状态机的VHDL表述丰富多样。, 在高速运算和控制方面,状态机更有其巨大的优势。, 可靠性而言有优势,电子与通信工程系,17,3.5.1.3 一般有限状态机的设计,1. 说明部分,2. 主控时序进程,一般状态机结构框图工作示意图,ARCHITECTURE .ISTYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; .BEGIN,电子与通信工程系,18,3. 主控组合进程(状态译码进程),主控组合进程的任务是根据
6、外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其它非主控的组合或时序进程的信号),或(和)当前状态的状态值确定下一状态(next_state)的取向,即next_state的取值内容,以及确定对外输出或对内部其它组合或时序进程输出控制信号的内容。,4. 辅助进程,电子与通信工程系,19,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY s_machine ISPORT ( clk,reset : IN STD_LOGIC;state_inputs : IN STD_LOGIC_VECTOR (0 TO 1);comb_output
7、s : OUT INTEGER RANGE 0 TO 15 ); END s_machine; ARCHITECTURE behv OF s_machine ISTYPE FSM_ST IS (s0, s1, s2, s3); SIGNAL current_state, next_state: FSM_ST; BEGIN,电子与通信工程系,20,主控时序进程,REG: PROCESS (reset,clk) BEGINIF reset = 1 THEN current_state = s0; ELSIF clk=1 AND clkEVENT THEN current_state = next_
8、state; END IF;END PROCESS;,电子与通信工程系,21,COM:PROCESS(current_state, state_Inputs) BEGINCASE current_state IS WHEN s0 = comb_outputs comb_outputs comb_outputs comb_outputs = 14;IF state_inputs = “11“ THEN next_state = s3; ELSE next_state = s0; END IF;END case;END PROCESS; END behv;,主控组合进程,电子与通信工程系,22,上
9、例状态机的工作时序图,front,电子与通信工程系,23,QUARTUS II 生成的状态机,电子与通信工程系,作业:设计一个 “111”序列检测器,用来检测串行二进制序列,要求每当连续输入3个(或3个以上)1时,检测器输出为1,否则输出为0。其典型输入序列如下: 输入x:0111011110 输出z:0001000110,电子与通信工程系,FSM分类,Moore型:输出信号仅与现态相关 Mealy型:输出信号与现态和输入相关,DFFs,Output Comb. Logic,Feedback Comb. Logic,DFFs,Output Comb. Logic,Feedback Comb. Logic,Moore,Mealy,现态,次态,输入,输出,现态,次态,输出,输入,