EDA-第7讲-状态机的设计(选讲)_第1页
EDA-第7讲-状态机的设计(选讲)_第2页
EDA-第7讲-状态机的设计(选讲)_第3页
EDA-第7讲-状态机的设计(选讲)_第4页
EDA-第7讲-状态机的设计(选讲)_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

有限状态机设计一、为什么要使用有限状态机,什么是状态机二、有限状态机的分类及表示三、有限状态机的设计举例四、有限状态机的状态编码五、有限状态机的多余状态为什么要使用状态机

有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。

状态机的结构模式相对简单。

状态机容易构成性能良好的同步时序逻辑模块。

状态机的VHDL表述丰富多样。

在高速运算和控制方面,状态机更有其巨大的优势。

就可靠性而言,状态机的优势也是十分明显的。回忆计数器设计设计一电路,包含模4计数器,和译码输出模块。计数器的输出(Present_value)从0到3循环;当计数值为2时,译码输出(DataOut)为“1”,否则输出“0”。Regs+1ClkPresent_valueQ(n)Next_valueQ(n+1)译码DataOutZ(n)Regs+1ClkPresent_valueQ(n)Next_valueQ(n+1)译码DataOutZ(n)00/001/010/111/0Regs+/-1ClkPresent_valueQ(n)Next_valueQ(n+1)译码DataOutZ(n)00/001/010/111/0扩展一个输入端din,当din=1时计数器递增计数;当din=0时计数器递减计数。dinDin=1Din=1Din=1Din=1Din=0Din=0Din=0Din=0Regs+/-1ClkPresent_valueQ(n)Next_valueQ(n+1)译码DataOutZ(n)再将计数器修改成一个状态转换器,状态为S0,S1,S2,S3。每个状态的取值根据具体情况而定。比如S0=00,S1=11,S3=01,S4=10。dinDin=1Din=1Din=1Din=100/001/010/111/0Din=0Din=0Din=0Din=0Regs译码ClkPresent_valueQ(n)Next_valueQ(n+1)译码DataOutZ(n)再将计数器修改成一个状态转换器,状态为S0,S1,S2,S3。每个状态的取值根据具体情况而定。比如S0=00,S1=11,S3=01,S4=10。dinDin=1Din=1Din=1Din=1S0/0S1/0S2/1S3/0Din=0Din=0Din=0Din=0Regs译码ClkPresent_stateQ(n)Next_stateQ(n+1)译码DataOutZ(n)dinDin=1Din=1Din=1Din=1S0/0S1/0S2/1S3/0Din=0Din=0Din=0Din=0现在我们得到了一个比较通用的时序电路,这种电路统称为状态机(StateMachine)。语音信箱控制系统用于控制对语音信箱的有关操作,允许用户发送信息、重阅信息、存储信息和擦除信息,状态转移图如图。状态机的应用1、语音信箱控制系统设计一个空调系统的有限状态自动机,它的两个输入端TEMP_HIGH和TEMP_LOW分别与传感器相连,用于检测室内温度。如果室内温度正常,则TEMP_HIGH和TEMP_LOW均为‘0’。如果室内温度过高,则TEMP_HIGH为‘1’,TEMP_LOW为‘0’。如果室内温度过低,则TEMP_HIGH为‘0’,TEMP_LOW为‘1’。根据TEMP_HIGH和TEMP_LOW的值来判断当前的状态(太热TOO_HOT,太冷TOO_COLD或适中JUST_RIGHT),并决定HEAT和COOL的输出值。状态机的应用2、空调系统状态机(STATEMACHINE)可以说是一个广义时序电路,触发器,计数器,移位寄存器都算是它的特殊功能的一种.

在电子设计自动化应用当中,状态机经常是担任CPU的功能,从某种意义上讲状态机的应用让系统具有了智能化的功能.

传统的逻辑电路设计在描述状态机的表示上,以状态图(STATEDIAGRAM)方式最为清晰且容易理解.根据输入,输出及状态关系,状态图可以分为:1.状态&输出(输出仅与状态有关)2.输入&状态&输出(输出与状态输入有关)有限状态机可以高效的用来实现控制功能。状态机可以分为两种基本类型:Mealy型状态机和Moore型状态机。

Moore型状态机的输出仅是当前状态的函数,属于同步输出状态机。

Mealy型状态机的输出是当前状态和输入信号的函数,不依赖时钟的同步,属于异步输出状态机。状态机分类

数字系统控制单元通常用有限状态机(FSM)建模。Moore型的输出只是当前值的函数;Mealy型的输出为当前值和输入值的函数。模型如图所示。Moore型Mealy型状态机的表示方法1方法一:状态转换表输入当前状态下一状态输出0000001010000000…………状态机的表示方法2方法二:算法流程图方法与软件程序的流程图类似状态转换表和算法流程图都不适合复杂系统的设计状态机的表示方法3方法三:状态转换图状态1状态4状态2状态3入/出入入入/出/出/出Moore条件控制定序直接控制定序状态机的表示方法3方法三:状态转换图状态1状态4状态2状态3入/出入入入/出/出/出/出Mealy条件控制定序直接控制定序状态机的代码实现状态寄存器输出译码下一状态译码clk时序进程组合进程1.说明部分2.时序进程ARCHITECTURE

...

IS

TYPE

ST

IS(s0,s1,s2,s3);

SIGNALcurrent_state,next_state:

ST;...3.组合进程在时钟信号的作用下,负责状态的转换。4.辅助进程根据输入信号和当前状态的取值(current_state)确定下一状态(next_state)的取值,确定输出或产生内部其它组合进程或时序进程所需的控制信号。配合时序进程或组合进程工作的数据锁存器等进程。有限状态机的程序构成用户自定义数据类型定义语句TYPE语句用法如下:TYPE

数据类型名IS

数据类型定义OF

基本数据类型;或TYPE

数据类型名IS

数据类型定义;以下列出了两种不同的定义方式:TYPEst1ISARRAY(0TO15)OFSTD_LOGIC;TYPEweek

IS(sun,mon,tue,wed,thu,fri,sat);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';状态机的设计举例例子:设计一个二进制序列检测器,当检测到10110序列时,就输出1(一个时钟周期的脉冲)。其他情况下输出0。规定检测到一次之后,检测器复位到最初始的状态,重新从头检测。如下所示:输入:01101101101100输出:00000001000001状态转换图设计(Moore)10110S0/0S1/0S2/0S3/0S4/0S5/1Reset11001101001010110s1s2s3s4s5s0问题1:如何保证状态机在初始时状态为s0?问题2:在状态机跑飞,即脱离有效状态(s0—s5)时,如何使状态机能恢复工作Sx/0波形波形如下图所示问题:如果需要将输出脉冲往前推一个时钟周期,该如何修改设计?1011010110s1s2s3s4s5s0输入时钟输出当前状态发现当当前壮态为s4,并且输入为0时,输出为1。状态转换图设计(Mealy)S0S1S2S3S4S5Reset100110100101sX/0/0/0/0/0/0/0/0/0/1/0/01011010110s1s2s3s4s5s0/00/1s0状态机的代码实现状态定义ArchitecturertlofSynis…-- 其他信号定义。TypeSynFsmStateis(s0,s1,s2,s3,s4,s5);SignalSynCst,SynNst:SynFsmState;Begin…--结构体。Endrtl;状态机的代码实现状态寄存器进程描述状态寄存器输出译码下一状态译码clk状态机的代码实现状态寄存器进程描述状态寄存器输出译码下一状态译码当前状态输出下一状态输入时钟clk状态寄存器进程描述Process(clk,Reset)Beginif(Reset=‘1’)then

SynCst<=S0;--初始状态。

elsif(clk’eventandclk=‘1’)then

SynCst<=SynNst;--状态转换。

endif;Endprocess;状态机的代码实现状态转换进程描述状态寄存器输出译码下一状态译码当前状态输出下一状态输入时钟clk状态转换进程描述Process(SynCst,din)BegincaseSynCstiswhens0=>whens1=>…

whens5=>…Endcase;Endprocess;

if(din=‘1’)then

SynNst<=s1;else

SynNst<=s0;endif;

whenothers=>

SynNst<=s0;状态机的代码实现输出进程描述状态寄存器输出译码下一状态译码当前状态输出下一状态输入时钟clk输出进程描述Process(SynCst)BegincaseSynCstiswhens0=>

whens1=>…whens5=>…whenothers=>

Endcase;Endprocess;MooreMealyDout<=‘0’;Dout<=‘0’;Dout<=‘0’if(din=‘1’)thenelseendif;,din)状态机设计小结Moore机的输出z仅是当前状态q的函数;而Mealy机的输出z是q和输入a的函数;Mealy机的输出z可以比Moore机早一个时钟周期;Mealy机中,输入端的干扰容易被传播到输出端,而Moore机则不会。这是Moore机比Mealy机稳定的地方。状态机设计小结记得使用others来包含所有的“无效态”,以保证状态机的安全运作。任何状态,任何条件下,都应该对“次态”和所有的输出z赋值,以避免生成锁存

下面采用状态机设计一个一位比较器,比较两个一位串行二进制数n1,n2的大小,二进制数序列由低位向高位按时钟节拍逐位输入。分析:两数比较有三种结果:

n1=n2设为状态s1;输出为y=00;

n1>n2设为状态s2;输出为y=10;

n1<n2设为状态s3;输出为y=01;输入有四种情况,分别为00,01,10,11。

1.

双进程有限状态机描述如下:

LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;

entitystateis port(n1,n2,clk:instd_logic; y:outstd_logic_vector(1downto0)); endstate;architecturestamachofstateistypestatypeis(s1,s2,s3);--自定义statype类型

signalpresent_state,next_state:statype;signaln:std_logic_vector(1downto0);begin n<=n1&n2;

sta_com:process(present_state,n)begin casepresent_stateis whens1=>y<=”00”;--现态为s1时,输出”00” if(n=”10”)thennext_state<=s2;--输入为”10”,次态为s2

elsif(n=”01”)thennext_state<=s3;--输入为”01”,次态为s3 elsenext_state<=s1;endif;whens2=>y<=”10”; if(n=”01”)thennext_state<=s3;

elsif(n=”00”orn=”11”)thennext_state<=s1; elsenext_state<=s2; endif;whens3=>y<=”01”; if(n=”10”)thennext_state<=s2;

elsif(n=”00”orn=”11”)thennext_state<=s1; elsenext_state<=s3; endif;endcase;endprocesssta_com;

state_clk:process(clk)--第二个进程确定转换时刻为上升沿

begin if(clk’eventandclk=’1’)then present_state<=next_state; endif; endprocessstate_clk; endarchitecturestamach;architecturestamachofstateis typestatypeis(s1,s2,s3);--自定义statype类型

signalstate:statype;signaln:std_logic_vector(1downto0);begin n<=n1&n2; process(clk,n) begin ifrising_edge(clk)thencasestateis whens1=>if(n=”10”)thenstate<=s2;--根据不同的输入改变state的状态

elsif(n=”01”)thenstate<=s3; elsestate<=s1; endif;2.单进程状态机结构体描述如下:hens2=>if(n=”01”)thenstate<=s3;

elsif(n=”00”orn=”11”)thenstate<=s1; elsestate<=s2; endif; whens3=> if(n1=’1’andn2=’0’)thenstate<=s2;

elsif(n=”00”orn=”11”)thenstate<=s1; elsestate<=s3; endif; endcase; endif; endprocess; withselect--根据state的不同状态决定不同的输出值

y<=”00”whens1,“01”whens2,“10”whens3; endbehave;

architecturestamachofstateissignalstate:std_logic_vector(1downto0);--不采用自定义类型,直接对state编码

constants1:std_logic_vector(1downto0):=”00”;constants2:std_logic_vector(1downto0):=”01”;constants3:std_logic_vector(1downto0):=”11”;signaln:std_logic_vector(1downto0);begin n<=n1&n2; process(clk,n) begin ifrising_edge(clk)then

3.状态编码描述风格casestateiswhens1=>if(n=”10”)thenstate<=s2;--根据不同的输入改变state的值

elsif(n=”01”)thenstate<=s3; elsestate<=s1;endif;

whens2=> if(n=”01”)thenstate<=s3;

elsif(n=”00”orn=”11”)thenstate<=s1; elsestate<=s2; endif;whens3=> if(n1=’1’andn2=’0’)thenstate<=s2;

elsif(n=”00”orn=”11”)thenstate<=s1; elsestate<=s3; endif; endcase; endif; endprocess; y<=state; endbehave;状态:S0表示初态,S1表示投入5角硬币,

S2表示投入1元硬币,S3表示投入1元5角硬币,

S4表示投入2元硬币输入:state_input(0)投入1元硬币,

state_input(1)投入5角硬币输出:comb_outputs(0)输出货物,

comb_outputs(1)找5角零钱例1:投入1元5角硬币输出货物,投入2元硬币输出货物并找5角零钱的自动售货机。根据需求列写状态图。S0/00S2/00S1/00S3/10S4/11011000000110000110000110000110状态/输出输入信号状态:S0、S1、S2、S3、S4;输入:state_inputs输出:comb_outputs;输出仅与状态有关LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmoore1ISPORT(clk,reset:INSTD_LOGIC;state_inputs:INSTD_LOGIC_VECTOR(0TO1);comb_outputs:OUTSTD_LOGIC_VECTOR(0TO1));ENDmoore1;ARCHITECTUREbehvOFmoore1IS

TYPEFSM_STIS(s0,s1,s2,s3,s4);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)

BEGINCASEcurrent_stateIS

WHENs0=>comb_outputs<="00";IFstate_inputs="00"THENnext_state<=s0;ELSIFstate_inputs="01"THENnext_state<=s1;ELSIFstate_inputs="10"THENnext_state<=s2;ENDIF;

WHENs1=>comb_outputs<="00";IFstate_inputs="00"THENnext_state<=s1;ELSIFstate_inputs="01"THENnext_state<=s2;ELSIFstate_inputs="10"THENnext_state<=s3;ENDIF;

WHENs2=>comb_outputs<="00";IFstate_inputs="00"THENnext_state<=s2;ELSIFstate_inputs="01"THENnext_state<=s3;ELSIFstate_inputs="10"THENnext_state<=s4;ENDIF;组合进程Moore型状态机

WHENs3=>comb_outputs<="10";IFstate_inputs="00"THENnext_state<=s0;ELSIFstate_inputs="01"THENnext_state<=s1;ELSIFstate_inputs="10"THENnext_state<=s2;ENDIF;

WHENs4=>comb_outputs<="11";IFstate_inputs="00"THENnext_state<=s0;ELSIFstate_inputs="01"THENnext_state<=s1;ELSIFstate_inputs="10"THENnext_state<=s2;ENDIF;ENDCASE;

ENDPROCESS;

ENDbehv;投入2元硬币S0→S2→S4投入1元5角硬币S0→S1→S2→S3清零信号Si→S0自动售货机moore1.vhd仿真波形:St0St2St1St31/000000/010101/001000/011101/000100/01100St40/000011/010110/000111/01101单端输入1→0→1→0→1时,状态依次改变,5位输出依次从0→1→2→3→4变化,否则对应输出为10,11,12,13,14。输出与状态和输入有关。状态输入/输出例2实现给定Mealy型状态机的状态图。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=>STX<=st1;WHENst1=>STX<=st2;WHENst2=>STX<=st3;WHENst3=>STX<=st4;WHENst4=>STX<=st0;WHENOTHERS=>STX<=st0;ENDCASE;ENDIF;ENDPROCESSCOMREG;COM1:PROCESS(STX,DATAIN)BEGIN--决定输出信号的进程

CASESTXISWHENst0=>

IFDATAIN='1'THENQ<="00000";ELSEQ<="01010";ENDIF;WHENst1=>

IFDATAIN='0'THENQ<="00001";ELSEQ<="01011";ENDIF;

WHENst2=>

IFDATAIN='1'THENQ<="00010";ELSEQ<="01100";ENDIF;WHENst3=>

IFDATAIN='0'THENQ<="00011";ELSEQ<="01101";ENDIF;

WHENst4=>

IFDATAIN='1'THENQ<="00100";ELSEQ<="01110";ENDIF;

WHENOTHERS=>Q<="11111";ENDCASE;ENDPROCESSCOM1;ENDbehav;Mealy型状态机系统复位输出随输入改变时钟到来,状态及输出改变仿真波形看出:输出信号不稳定。可以在程序中将输出信号锁存后再输出,参考程序mealy2.vhd。Mealy型状态机mealy1.vhd仿真波形:LIBRARYIEEE;USEIEEE.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'THENSTX<=ST0;ELSIFCLK'EVENTANDCLK='1'THENCASESTXISWHENst0=>STX<=st1;WHENst1=>STX<=st2;WHENst2=>STX<=st3;WHENst3=>STX<=st4;WHENst4=>STX<=st0;WHENOTHERS=>STX<=st0;ENDCASE;ENDIF;ENDPROCESSCOMREG;COM1:PROCESS(STX,DATAIN,CLK)--决定输出信号的进程BEGINCASESTXISWHENst0=>IFDATAIN='1'THENQ1<="00000";ELSEQ1<="01010";ENDIF;WHENst1=>IFDATAIN='0'THENQ1<="00001";ELSEQ1<="01011";ENDIF;WHENst2=>IFDATAIN='1'THENQ1<="00010";ELSEQ1<="01100";ENDIF;WHENst3=>IFDATAIN='0'THENQ1<="00011";ELSEQ1<="01101";ENDIF;WHENst4=>IFDATAIN='1'THENQ1<="00100";ELSEQ1<="01110";ENDIF;WHENOTHERS=>Q1<="11111";ENDCASE;IFCLK'EVENTANDCLK='1'THENQ<=Q1;ENDIF;ENDPROCESSCOM1;ENDbehav;输出信号锁存系统复位输出只在时钟边沿处改变从仿真波形看到输出信号稳定。Mealy型状态机修改程序mealy2.vhd仿真波形:mealy2.vhd比mealy1.vhd的描述滞后一个时钟周期。用文字符号定义状态变量的符号化状态编码。例如:moore.vhd、mealy1.vhd、mealy1.vhd根据设计需要,人为设定非符号状态编码,且将状态编码作为输出信号。例如:ad574a.vhd由综合器自动选择编码状态编码通常可以有几种方式:

CE CSRCK12/8A0 工作状态

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 01 低4位加上尾随4个0有效AD574时序图AD574真值表

AD574采样控制状态机结构图可以将两个组合进程合并为一个进程,将状态编码设计成输出信号。

CSA0RCK12/8STATUSD[11..0]AD574模拟信号输入PROCESSREG时序进程PROCESSCOM组合进程PROCESSLATCH锁存器current_statenext_stateLKCLKQ[11..0]采样数据输出AD574采样控制状态机结构图AD574采样控制状态图状态状态编码out4(3~0)功能说明STCSA0RCLKBST011100初态ST100001启动转换ST200000若测得status=1,转下一状态ST300100输出转换后的数据ST400110产生LK边沿,将转换数据锁存

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;ARCHITECTUREbehavOFAD574AIS

SIGNALcurrent_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_state<=st1;WHENst1=>next_state<=st2;WHENst2=>IF(STATUS='1')THENnext_state<=st2;ELSEnext_state<=st3;ENDIF;WHENst3=>next_state<=st4;WHENst4=>next_state<=st0;WHENOTHERS=>next_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;正在转换转换数据转换结束顺序编码格雷编码ONE-HOT编码S0=“00”S0=“00”S0=“0001”S1=“01”S1=“01”S1=“0010”S2=“10”S2=“11”S2=“0100”S3=“11”S3=“10”S3=“1000”......SIGNALCRURRENT_STATE,NEXT_STATE:STD_LOGIC_VECTOR(1DOWNTO0);CONSTANTS0:STD_LOGIC_VECTOR(2DOWNTO0):="00";CONSTANTS1:STD_LOGIC_VECTOR(2DOWNTO0):="01";CONSTANTS2:STD_LOGIC_VECTOR(2DOWNTO0):="10";CONSTANTS3:STD_LOGIC_VECTOR(2DOWNTO0):="11";......状态机编码方式设置一位热码编码(One-hotencoding)的设置打开编译窗口,选择assign/globalprojectlogicsynthesis...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;如:有效状态st0~~st4;无效状态st_ilg1~

st_ilg3多余状态的产生、问题及其处理方法

功能要求:主辅十字路口,分别有红、黄、绿和左转弯灯,等待时间,系统复位控制。灯持续时间及其要求如下:主路灯辅路灯持续时间RYGLRYGL(S)0010100050010010005100110001510000010401000010051000100110状态机设计举例:实用交通灯设计。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.ST

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论