还剩4页未读,继续阅读
文本内容:
实验六计数器与序列检测器的仿真
一、实验内容.用语言设计一个按余码顺序计数的计数器,并进行仿真与分析;1VHDL3用语言设计一个位串的序列检测器,并仿真与分析
二、
2.VHDL“1101001”实验要求进实验室前,请写一份预习报告;进实验室时经指导老师检查后,才可上机
1.操作预习报告内容有
2.用语言编写余码计数器程序;•I VHDL3用语言编写序列检测器程序・・VHDL“1101001”在文本编辑区使用硬件描述语言设计逻辑电路,再利用波形编辑区
3.VHDL进行逻辑功能仿真,以此验证电路的逻辑功能是否正确,最后在实验箱上进行下载验证实验结束前,由指导老师检查了仿真波形和实验箱上的实验结果后方可离开
4.
三、电路功能介绍、计数器1计数器一般来说,在状态图中包含有一个循环(见下图)的任何时钟时序电路都可称为计数器计数器的模是指在循环中的状态个数一个有勿个状态的计数器称为模计数器,有时也称为加分频计数器如果一0个计数器的模不是的黑,就会有多余状态,在正常工作时是不用这些状态的2最常用的计数器可能就是位二进制计数器这样的计数器有个触发器及n n2n种状态,这些状态的循环顺序是,日,其中,每一种状态都被0,1,2,・・・20,1,...O编码成对应的位二进制整数n行波计数器当某一位由变到这一位就会向高位产生一个进位,由低位10,到高位,每次传送一位,如触发器T同步计数器所有的触发器都共用一个信号,在经过仅仅加纳秒的延迟CLK后,所有的触发器的输出都同时变化,它包括两种结构同步串行计数器和同步并行计数器同步串行计数器采用一个主计数使能信号来实现控制每一个触发器
1.CNTEN T要发生翻转的充要条件是信号有效且所有的低阶计数位都为同步〃位二CNTEN1,4位二进制行波计袋器进制计数器的每一位都可以用一定数量的逻辑元件来实现,它的缺点是组合型的使能信号由最低位到最高位串行传送,如果时钟周期太短的话,计数器(最低LSB位)的变化可能来不及传送到(最高位)MSB00O1Q203带串彳亍1吏育巨邃辐白勺同步4彳立二进前J计数率同步并行计数器每一个输入都用一个专门的与门来驱动,这样,信
2.EN CNTEN号到达各个触发器的输入端只需要经过一级逻辑电路,它是最快的二进制计数EN器的结构形式带并行使能逻辐的同步4位二进制计数序列检测器
2.应用状态机的概念设计一个序列检测器,以序列检测器的设计为例1110010该序列检测器收到一组串行码()后输出检测标志为T,否则为为1110010
一、计数器语言实现
1.VHDLlibrary ieee;use ieee.std_logic_
1164.all;use ieee.std_logic_unsigned.all;entity countis」portclk,clr,en:in stdogic;a:out std_logic_vector3downto0;cout:out std_logic;end count;architecture bhvof countissignal b:std_logic_vector3downto0;beginprocessclk,clr,en,bbegin;ifclr^r then b=0011”elsifCclkevent andclk=T thenifen=T thenifbn1100,thenb=b+l;else b=n00Hn;end if;end if;end if;ifb=n1100n thencout=l;else cout=0;end if;a=b;end process;end bhv;波形仿真
2.
二、序列检测器实现
1.VHDLlibrary ieee;use ieee.std_logic_l
164.all;entity xulieisportclk,rst,d:in stdjogic;z:out stdjogic;end xulie;architecture bhvof xulieis状态定义一状态寄存type state_type iss0,sl,s2,s3,s4,s5,s6;--signal state:state_type;器begin--次态设置processclk,rstbegin异步重启if rst=T then state=sO;--二elsif clk^vent andelk T then根据判断状态转移case stateis--dwhen sO=if d-I1then state=s1;else state=sO;end if;when sl=if d=*r then state=s2;else state=sO;end if;when s2=if d=,0,thenstate=s3;else state=s2;end if;when s3=if d-V thenstate=s4;else state=sO;end if;when s4=if d=O thenstate=s5;else state=s2;end if;when s5=if d-Q1thenstate=s6;else state=s1;end if;when s6=if d-V thenstate=sO;else state=sO;end if;end case;end if;输出设置end process;--processstate,dbegincase stateiswhen s6=检测成功if d=Tthenzv=T;-1101001else z=O;end if;when others=z=0;end case;end process;end bhv;
200.p ns
400.p ns
600.p ns
800.p nsl.iValue aName0pselk dB0rst B0B1B
0.仿真
2.逻辑图3stateclki~dC^rstl{=zz~0序列检测器的机状态表:
4.Mealy现态次态/输出next_state/coutpresent_statecin=0cin=lSO SO/0SI/0SI SO/0S2/0S2SO/0S3/0S3S4/0S3/0S4S5/0SI/0S5SO/0S6/0S6SO/1S2/0。
个人认证
优秀文档
获得点赞 0