1 / 63

EDA 技术 实用教程

EDA 技术 实用教程. 第7章 有限状态机设计. 7.1 一般有限状态机的设计. 7.1.1 用户自定义数据类型定义语句. TYPE 语句用法如下: 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) ;. 7.1 一般有限状态机的设计.

isha
Download Presentation

EDA 技术 实用教程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EDA技术实用教程 第7章 有限状态机设计

  2. 7.1 一般有限状态机的设计 7.1.1 用户自定义数据类型定义语句 TYPE语句用法如下: 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) ;

  3. 7.1 一般有限状态机的设计 7.1.1 用户自定义数据类型定义语句 TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ; SIGNAL present_state,next_state : m_state ; 布尔数据类型的定义语句是: TYPE BOOLEAN IS (FALSE,TRUE) ; TYPE my_logic IS ( '1' ,'Z' ,'U' ,'0' ) ; SIGNAL s1 : my_logic ; s1 <= 'Z' ;

  4. 7.1 一般有限状态机的设计 7.1.1 用户自定义数据类型定义语句 子类型SUBTYPE的语句格式如下: SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围; SUBTYPE digits IS INTEGER RANGE 0 to 9 ;

  5. 7.1 一般有限状态机的设计 7.1.2 为什么要使用状态机  有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。  状态机的结构模式相对简单。  状态机容易构成性能良好的同步时序逻辑模块。  状态机的VHDL表述丰富多样。  在高速运算和控制方面,状态机更有其巨大的优势。  就可靠性而言,状态机的优势也是十分明显的。

  6. 7.1 一般有限状态机的设计 7.1.3 一般有限状态机的设计 1. 说明部分 ARCHITECTURE ...IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; ... 2. 主控时序进程 图7-1一般状态机结构框图工作示意图

  7. 7.1.3 一般有限状态机的设计 3. 主控组合进程 控组合进程的任务是根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其它非主控的组合或时序进程的信号),或(和)当前状态的状态值确定下一状态(next_state)的取向,即next_state的取值内容,以及确定对外输出或对内部其它组合或时序进程输出控制信号的内容。

  8. 7.1.3 一般有限状态机的设计 4. 辅助进程 【例7-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 clk'EVENT THEN current_state <= next_state; END IF; END PROCESS; COM:PROCESS(current_state, state_Inputs) 接下页

  9. 接上页 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 PROCESS; END behv;

  10. 7.1.3 一般有限状态机的设计 4. 辅助进程 图7-2 例7-1状态机的工作时序图

  11. 用VHDL设计状态机 ——AD574A采样控制状态机

  12. 为什么要使用状态机?  VHDL综合器易于优化  易构成性能良好的时序逻辑模块  结构模式简单、层次分明、易读易懂、易排错 利用同步时序和全局时钟线可实现高速FSM  运行模式类似于CPU,易于进行顺序控制  高可靠性,非法状态易控制

  13. 7.2 Moore型有限状态机的设计 • 7.2.1 三进程有限状态机 表7-1 AD574逻辑控制真值表(X表示任意) CE CS RC K12/8 A0 工 作 状 态 0 X X X X 禁止 X 1 X X X 禁止 1 0 0 X 0 启动12位转换 1 0 0 X 1 启动8位转换 1 0 1 1 X 12位并行输出有效 1 0 1 0 0 高8位并行输出有效 1 0 1 0 1 低4位加上尾随4个0有效

  14. 7.2.1 三进程有限状态机 图7-3 AD574工作时序

  15. 7.2.1 三进程有限状态机 图7-4 AD574工作时序

  16. 7.2.1 三进程有限状态机 图7-5 采样状态机结构框图

  17. 7.2.1 三进程有限状态机 【例7-2】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD574 IS PORT (D :IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK ,STATUS : IN STD_LOGIC;--状态机时钟CLK,AD574状态信号STATUS LOCK0 : OUT STD_LOGIC; --内部锁存信号LOCK的测试信号 CS,A0,RC,K12X8 : OUT STD_LOGIC; --AD574控制信号 Q : OUT STD_LOGIC_VECTOR(11 DOWNTO 0)); --锁存数据输出 END AD574; ARCHITECTURE behav OF AD574 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; BEGIN K12X8 <= '1'; LOCK0 <= LOCK ; COM1: PROCESS(current_state,STATUS) --决定转换状态的进程 接下页

  18. 接上页 BEGIN CASE current_state IS WHEN st0 => next_state <= st1; WHEN st1 => next_state <= st2; WHEN st2 => IF (STATUS='1') THEN next_state <= st2; ELSE next_state <= st3; END IF ; WHEN st3=> next_state <= st4; WHEN st4=> next_state <= st0; WHEN OTHERS => next_state <= st0; END CASE ; END PROCESS COM1 ; COM2: PROCESS(current_state) --输出控制信号的进程 BEGIN CASE current_state IS WHEN st0=> CS<='1'; A0<='1';RC<='1';LOCK<='0'; --初始化 WHEN st1=> CS<='0'; A0<='0';RC<='0';LOCK<='0'; --启动12位转换 WHEN st2=> CS<='0'; A0<='0';RC<='0';LOCK<='0'; --等待转换 WHEN st3=> CS<='0'; A0<='0';RC<='1';LOCK<='0'; --12位并行输出有效 WHEN st4=> CS<='0'; A0<='0';RC<='1';LOCK<='1'; -- 锁存数据 WHEN OTHERS=>CS<='1'; A0<='1';RC<='1';LOCK<='0';--其它情况返回初始态 接下页

  19. 接上页 END CASE ; END PROCESS COM2 ; REG: PROCESS (CLK) -- 时序进程 BEGIN IF ( CLK'EVENT AND CLK='1') THEN current_state <= next_state; END IF; END PROCESS REG; LATCH1 : PROCESS (LOCK) -- 数据锁存器进程 BEGIN IF LOCK='1' AND LOCK'EVENT THEN REGL <= D ; END IF; END PROCESS ; Q <= REGL; END behav;

  20. 7.2.1 三进程有限状态机 图7-6 AD574采样状态机工作时序

  21. 7.2.1 三进程有限状态机 【例7-3】 COM: PROCESS(current_state,STATUS) BEGIN CASE current_state IS WHEN st0=> next_state <= st1; CS<='1'; A0<='1';RC<='1';LOCK<='0'; WHEN st1=> next_state <= st2; CS<='0'; A0<='0';RC<='0';LOCK<='0'; WHEN st2 => IF (STATUS='1') THEN next_state <= st2; ELSE next_state <= st3; END IF ; CS<='0'; A0<='0';RC<='0';LOCK<='0'; WHEN st3=> next_state <= st4; CS<='0'; A0<='0';RC<='1';LOCK<='0'; WHEN st4=> next_state <= st0; CS<='0'; A0<='0';RC<='1';LOCK<='1'; WHEN OTHERS => next_state <= st0; END CASE ; END PROCESS COM ;

  22. FPGA/CPLD LOCK 状态机FSM PROCESS COM 组合进程 PROCESS REG 时序进程 current_state PROCESS LATCH 锁存器 next_state AD574 CLK CS A0 RC K12/8 STATUS D[11..0] 模拟信号输入 Q[11..0] 采样数据输出

  23. 状态机VHDL源程序 END IF ; WHEN st3=> CS<='0'; A0<='0'; RC<='1'; LOCK<='0'; next_state <= st4; WHEN st4=> CS<='0'; A0<=’1'; RC<='1'; LOCK<='1'; next_state <= st0; WHEN OTHERS => next_state <= st0; END CASE ; END PROCESS COM ; REG:PROCESS (CLK) BEGIN IF ( CLK'EVENT AND CLK='1') THEN current_state <= next_state; END IF; END PROCESS REG; LATCH:PROCESS (LOCK) BEGIN IF LOCK='1'AND LOCK'EVENT THEN REGL <= D ; END IF; END PROCESS ; Q <= REGL; END behav; K12X8 <= ‘1’ ; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD574 IS PORT(D :IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK ,STATUS : IN STD_LOGIC; CS,A0,RC,K12X8 : OUT STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(11 DOWNTO 0)); END AD574; ARCHITECTURE behav OF AD574 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL current_state, next_state: states ; SIGNAL REGL :STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; BEGIN COM:PROCESS(current_state,STATUS) BEGIN CASE current_state IS WHEN st0 => CS<='1'; A0<='0'; RC<='0'; LOCK<='0'; next_state <= st1; WHEN st1=> CS<='0'; A0<='0'; RC<='0'; LOCK<='0'; next_state <= st2; WHEN st2=> CS<='0'; A0<='0'; RC<='0'; LOCK<='0'; IF (STATUS='1') THEN next_state <= st2; ELSE next_state <= st3;

  24. 状态机RTL电路图

  25. 状态机工作时序图 状态2:等待

  26. 7.2.2 单进程Moore型有限状态机 【例7-4】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MOORE1 IS PORT (DATAIN :IN STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,RST : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END MOORE1; ARCHITECTURE behav OF MOORE1 IS TYPE ST_TYPE IS (ST0, ST1, ST2, ST3,ST4); SIGNAL C_ST : ST_TYPE ; BEGIN PROCESS(CLK,RST) BEGIN IF RST ='1' THEN C_ST <= ST0 ; Q<= "0000" ; ELSIF CLK'EVENT AND CLK='1' THEN 接下页

  27. 接上页 CASE C_ST IS WHEN ST0 => IF DATAIN ="10" THEN C_ST <= ST1 ; ELSE C_ST <= ST0 ; END IF; Q <= "1001" ; WHEN ST1 => IF DATAIN ="11" THEN C_ST <= ST2 ; ELSE C_ST <= ST1 ;END IF; Q <= "0101" ; WHEN ST2 => IF DATAIN ="01" THEN C_ST <= ST3 ; ELSE C_ST <= ST0 ;END IF; Q <= "1100" ; WHEN ST3 => IF DATAIN ="00" THEN C_ST <= ST4 ; ELSE C_ST <= ST2 ;END IF; Q <= "0010" ; WHEN ST4 => IF DATAIN ="11" THEN C_ST <= ST0 ; ELSE C_ST <= ST3 ;END IF; Q <= "1001" ; WHEN OTHERS => C_ST <= ST0; END CASE; END IF; END PROCESS; END behav;

  28. 7.2.2 单进程Moore型有限状态机 图7-7 例7-4状态机综合后的RTL电路模块图

  29. 7.2.2 单进程Moore型有限状态机 图7-8 例7-4单进程状态机工作时序

  30. 7.2.2 单进程Moore型有限状态机 图7-9 对应于例7-4的2进程状态机工作时序图

  31. 7.3 Mealy型有限状态机的设计 【例7-5】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MEALY1 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0)); END MEALY1; ARCHITECTURE behav OF MEALY1 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN --决定转换状态的进程 IF RESET ='1' THEN STX <= ST0; ELSIF CLK'EVENT AND CLK = '1' THEN 接下页

  32. CASE STX IS WHEN st0 => IF DATAIN = '1' THEN STX <= st1; END IF; WHEN st1 => IF DATAIN = '0' THEN STX <= st2; END IF; WHEN st2 => IF DATAIN = '1' THEN STX <= st3; END IF; WHEN st3=> IF DATAIN = '0' THEN STX <= st4; END IF; WHEN st4=> IF DATAIN = '1' THEN STX <= st0; END IF; WHEN OTHERS => STX <= st0; END CASE ; END IF; END PROCESS COMREG ; COM1: PROCESS(STX,DATAIN) BEGIN --输出控制信号的进程 CASE STX IS WHEN st0 => IF DATAIN = '1' THEN Q <= "10000" ; ELSE Q<="01010" ; END IF ; WHEN st1 => IF DATAIN = '0' THEN Q <= "10111" ; ELSE Q<="10100" ; END IF ; WHEN st2 => IF DATAIN = '1' THEN Q <= "10101" ; ELSE Q<="10011" ; END IF ; WHEN st3=> IF DATAIN = '0' THEN Q <= "11011" ; ELSE Q<="01001" ; END IF ;

  33. 接上页 WHEN st4=> IF DATAIN = '1' THEN Q <= "11101" ; ELSE Q<="01101" ; END IF ; WHEN OTHERS => Q<="00000" ; END CASE ; END PROCESS COM1 ; END behav; 图7-10 例7-5状态机工作时序图

  34. 【例7-6】 MEALY2 LIBRARY IEEE; --MEALY FSM USE IEEE.STD_LOGIC_1164.ALL; ENTITY MEALY2 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0)); END MEALY2; ARCHITECTURE behav OF MEALY2 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; SIGNAL Q1 : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN COMREG : PROCESS(CLK,RESET) --决定转换状态的进程 BEGIN IF RESET ='1' THEN STX <= ST0; ELSIF CLK'EVENT AND CLK = '1' THEN CASE STX IS WHEN st0 => IF DATAIN = '1' THEN STX <= st1; END IF; WHEN st1 => IF DATAIN = '0' THEN STX <= st2; END IF; WHEN st2 => IF DATAIN = '1' THEN STX <= st3; END IF; WHEN st3=> IF DATAIN = '0' THEN STX <= st4; END IF; WHEN st4=> IF DATAIN = '1' THEN STX <= st0; END IF; WHEN OTHERS => STX <= st0; END CASE ; 接下页

  35. END IF; END PROCESS COMREG ; COM1: PROCESS(STX,DATAIN,CLK) --输出控制信号的进程 VARIABLE Q2 : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN CASE STX IS WHEN st0 => IF DATAIN = '1' THEN Q2 := "10000" ; ELSE Q2 := "01010" ; END IF ; WHEN st1 => IF DATAIN = '0' THEN Q2 := "10111" ; ELSE Q2:="10100" ; END IF ; WHEN st2 => IF DATAIN = '1' THEN Q2 := "10101" ; ELSE Q2:="10011" ; END IF ; WHEN st3=> IF DATAIN = '0' THEN Q2 := "11011" ; ELSE Q2:="01001" ; END IF ; WHEN st4=> IF DATAIN = '1' THEN Q2 := "11101" ; ELSE Q2:="01101" ; END IF ; WHEN OTHERS => Q2:="00000" ; END CASE ; 接下页

  36. 接上页 IF CLK'EVENT AND CLK = '1' THEN Q1<=Q2; END IF; END PROCESS COM1 ; Q <= Q1 ; END behav; 图7-11 例7-6状态机工作时序图

  37. 7.4 状态编码 7.4.1 状态位直接输出型编码 表7-2 控制信号状态编码表 每一位的编码值都赋予了实际的控制功能,即: CS = current_state(4) ; A0 = current_state(3) ; RC = current_state(2) ; LOCK = current_state(1) 。

  38. 【例7-7】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD574A IS PORT ( D : IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK ,STATUS : IN STD_LOGIC; OUT4 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(11 DOWNTO 0) ); END AD574A; ARCHITECTURE behav OF AD574A IS SIGNAL current_state, next_state: STD_LOGIC_VECTOR(4 DOWNTO 0 ); CONSTANT st0 : STD_LOGIC_VECTOR(4 DOWNTO 0) := "11100" ; CONSTANT st1 : STD_LOGIC_VECTOR(4 DOWNTO 0) := "00001" ; CONSTANT st2 : STD_LOGIC_VECTOR(4 DOWNTO 0) := "00000" ; CONSTANT st3 : STD_LOGIC_VECTOR(4 DOWNTO 0) := "00100" ; CONSTANT st4 : STD_LOGIC_VECTOR(4 DOWNTO 0) := "00110" ; SIGNAL REGL : STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL LK : STD_LOGIC; BEGIN COM1: PROCESS(current_state,STATUS) --决定转换状态的进程 接下页

  39. BEGIN CASE current_state IS WHEN st0 => next_state <= st1; WHEN st1 => next_state <= st2; WHEN st2 => IF (STATUS='1') THEN next_state <= st2; ELSE next_state <= st3; END IF ; WHEN st3=> next_state <= st4; WHEN st4=> next_state <= st0; WHEN OTHERS => next_state <= st0; END CASE ; OUT4 <= current_state(4 DOWNTO 1); END PROCESS COM1 ; REG: PROCESS (CLK) -- 时序进程 BEGIN IF ( CLK'EVENT AND CLK='1') THEN current_state <= next_state; END IF; END PROCESS REG; LK <= current_state(1) ; LATCH1 : PROCESS ( LK ) -- 数据锁存器进程 BEGIN IF LK='1' AND LK'EVENT THEN REGL <= D ; 接下页

  40. 接上页 END IF; END PROCESS ; Q <= REGL; END behav; 图7-12 例7-7状态机工作时序图

  41. 7.4.2 顺序编码 表7-3 编码方式 【例7-8】 ... SIGNAL CRURRENT_STATE,NEXT_STATE: STD_LOGIC_VECTOR(2 DOWNTO 0 ); CONSTANT ST0 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000" ; CONSTANT ST1 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "001" ; CONSTANT ST2 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "010" ; CONSTANT ST3 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "011" ; CONSTANT ST4 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "100" ;

  42. 7.4.3 一位热码编码(One-hot encoding) 状态机编码方式设置 图7-13 一位热码编码方式选择窗

  43. 7.5 状态机剩余状态处理 表7-4 剩余状态

  44. 【例7-9】 ... TYPE states IS (st0, st1,st2,st3,st4,st_ilg1,st_ilg2,st_ilg3); SIGNAL current_state, next_state: states; ... COM:PROCESS(current_state, state_Inputs) -- 组合逻辑进程 BEGIN CASE current_state IS -- 确定当前状态的状态值 ... WHEN OTHERS => next_state <= st0; END case; 【例7-10】 ... alarm <= (st0 AND (st1 OR st2 OR st3 OR st4 OR st5)) OR (st1 AND (st0 OR st2 OR st3 OR st4 OR st5)) OR (st2 AND (st0 OR st1 OR st3 OR st4 OR st5)) OR (st3 AND (st0 OR st1 OR st2 OR st4 OR st5)) OR (st4 AND (st0 OR st1 OR st2 OR st3 OR st5)) OR (st5 AND (st0 OR st1 OR st2 OR st3 OR st4)) ;

  45. 状态机

  46. 实 验 实验7-1 用状态机实现序列检测器的设计 (1)实验目的: 用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。 (2)实验原理: 序列检测器的工作原理已在习题7-3中作了说明。

  47. 实 验 实验7-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。

  48. 实 验 实验7-1 用状态机实现序列检测器的设计 (5)实验思考题: 如果待检测预置数必须以右移方式进入序列检测器,写出该检测器的VHDL代码(两进程符号化有限状态机),并提出测试该序列检测器的实验方案。 (4)实验内容2: 根据习题7-3中的习题要求3,提出的设计方案重复以上实验内容(将8位待检测预置数由键4/键3作为外部输入,从而可随时改变检测密码)。 (6)实验报告: 根据以上的实验内容写出实验报告,包括设计原理、程序设计、程序分析、仿真分析、硬件测试和详细实验过程。

  49. 实 验 实验7-2 用状态机对ADC0809的采样控制电路实现 (1)实验目的:学习用状态机对A/D转换器ADC0809的采样控制电路的实现。 (2)实验原理:ADC0809的采样控制原理已在习题7-6中作了详细说明。 (3)实验内容:利用MAX+plusII对例7-12进行文本编辑输入和仿真测试;给出仿真波形。最后进行引脚锁定并进行测试,硬件验证例7-12电路对ADC0809的控制功能。

More Related