使用D触发器设计一个11001序列检测器介绍

合集下载

数字逻辑实验 8_序列检测器

数字逻辑实验 8_序列检测器

实验八序列检测器的设计与仿真一、实验要求1.用VHDL语言设计一个Mealy机以检测“1101001”序列;2.用VHDL语言设计一个Moore机以检测“1101001”序列;3.在文本编辑区使用VHDL硬件描述语言设计逻辑电路,再利用波形编辑区进行逻辑功能仿真,以此验证电路的逻辑功能是否正确。

二、实验内容用VHDL语言设计各一个mealy和moore状态机测试“1101001”位串的序列检测器,并通过仿真波形验证设计的功能是否正确。

三、实验过程由于在报告1中已经详尽描述了如何使用Quartus 2建立逻辑原理图和使用VHDL语言实现元件功能,所以本次的实验报告中便不再赘述上述内容,报告将主要就VHDL 语言描述实现元件的功能的过程进行阐述。

1.Mealy机选择File→New,弹出新建文本对话框,在该对话框中选择VHDL File并单击OK按钮,进入文本编辑窗口,输入VHDL代码。

library ieee;use ieee.std_logic_1164.all;entity melay isport(clk,rst,d: in std_logic;z: out std_logic);end melay;architecture arc of melay istype state_type is(s0,s1,s2,s3,s4,s5,s6);signal state: state_type;beginprocess(clk,rst)beginif rst= '1' thenstate<=s0;elsif (clk'event and clk ='1') thencase state is --1101001when s0 =>if d='1' thenstate<=s1;elsestate<=s0;end if;when s1=>if d='1' thenstate<=s2;elsestate<=s0;end if;when s2=>if d='0' thenstate<=s3;elsestate<=s2;end if;when s3=>if d='1' thenstate<=s4;elsestate<=s0;end if;when s4=>if d='0' thenstate<=s5;elsestate<=s1;end if;when s5=> --1101001if d='0' thenstate<=s6;elsestate<=s1;end if;when s6=>if d='1' thenstate<=s0;elsestate<=s0;end if;end case;end if;end process;process(state,d)begincase state iswhen s6=>if d='1' thenz<='1';elsez<='0';end if;when others=>z<='0';end case;end process;end arc;保存文件并编译,选择菜单File→New,选择Vector Waveform File新建波形图,添加节点,参数设置为:End Time=2us, Grip size=50ns。

《数字电路与数字逻辑》练习题

《数字电路与数字逻辑》练习题

《数字电路与数字逻辑》练习题《数字电路与数字逻辑》练习题一一、填空1.将下列二进制数转为十进制数(1001011)B =()D (11.011)B =()D2.将下列有符号的十进制数转换成相应的二进制数真值、原码、反码和补码(+122)=()真值=()原码=()反码=()补码3.把下列4个不同数制的数(376.125)D 、(110000)B 、(17A)H 、(67)O (按从大到小的次序排列()>()>()>()。

将下列各式变换成最简与或式的形式=+B AB ()=+AB A ()=++BC C A AB ()4.将下列二进制数转为十进制数(101000)B =()D (11.0101)B =()D5.将下列十进制数转为二进制数,八进制数和十六进制数(0.8125)=()B =()O =()H(254.25)=()B =()O =()H6.将下列有符号的十进制数转换成相应的二进制数真值、原码、反码和补码(+125)=()真值=()原码=()反码=()补码(—42)=()真值=()原码=()反码=()补码7.逻辑函数 C A CD AB F ++=的对偶函数 F '是__________________________;其反函数F 是_________________________。

8.当j i ≠时,同一逻辑函数的最小项=?j i m m _________;两个最大项=+j i M M ___________。

9.(43.5)10=(_________)2=(_________)16。

10.n个输入端的二进制译码器,共有_________个输出端,对于每一组输入代码,将有_________个输出端具有有效电平。

11.将下列二进制数转为十进制数(1010001)B=()D(11.101)B=()D12.将下列有符号的十进制数转换成相应的二进制数真值、原码、反码和补码(+254.25)=()真值=()原码=()反码=()补码13.把下列4个不同数制的数(76.125)D、(27A)H、(10110)B、(67)O按从大到小的次序排列()>()>()>()。

1011序列检测器

1011序列检测器

综合设计性实验报告题目:学生姓名:学号:班级:指导教师:学期:2010——2011第2学期目录一基本知识点 (1)二实验器件 (1)三设计思路 (1)四设计过程 (2)(一)三位二进制减法计数器(无效状态000,001)(二)5五引脚功能 (9)六逻辑电路图: (11)七实验结果波形图 (12)八设计心得体会 (12)一基本知识点1、掌握时序电路的设计方法和步骤2、掌握触发器的设计与应用3、掌握移位寄存器的原理与应用4 熟悉集成电路的引脚排列;5 掌握芯片的逻辑功能及使用方法;6 了解序列产生及检测器的组成及工作原理7 会在EWB软件上进行仿真;二实验器件1、移位寄存器74LS194 1片2、负边沿JK触发器74LS112 1片3四输入与非门74LS20 1片4、六输入非门74LS05 1片5 电源一个6 地线一个7 与门,或门,非门若干个8 时钟脉冲一个三设计思路1作原始状态表。

根据给定的电路设计条件构成原始状态表和状态转化图2状态表的简化。

原始状态表通常不是最小化状态表,它往往包括多余的状态,因此必须首先对它进行简化。

3状态分配。

即对简化后的状态给以编码。

这就要根据状态数确定触发器的数量并对每个状态指定一个二进制数构成的编码。

4根据给定的电路设计条件选择触发器根据5 作激励函数和输出函数。

根据选用的触发器激励表和电路的状态表,综合出电路中各触发器的激励函数和电路的输出函数。

⑸6画逻辑图,并检查自启动功能四设计过程(一)101101001信号发生器的设计设计一个信号序列发生器,在产生的信号序列中,含有“1011”信号码,要求用一片移位寄存器,生成信号序列“10110100”,其中含有1011码,其设计按以下步骤进行:、、1本实验所用仪器为移位寄存器74LS194,确定移存器的位数n。

因M=9,故n≥4,用74LS194 的四位。

2确定移存器的九个独立状态。

将序列码101101001按照每四位一组,划分为九个状态,其迁移关系如下所示:3作出状态转换表及状态转换图如下:4 画出状态转化图5 根据以上转化图,画出卡诺图6 利用以上卡诺图将化简,得到D0 =/Q3/Q0+/Q3Q2/Q17根据74LS194功能,将D0作为输入,在Q0端即得到所要的101101001 序列.(二)101101001序列信号检测器的设计用负边沿J-K触发器74LS112,设计一个“1011”序列检测器。

vhdl eda 序列信号发生器与检测器设计

vhdl eda 序列信号发生器与检测器设计

实验三序列信号发生器与检测器设计一、实验目的1.学习一般有限状态机的设计;2.利用状态机实现串行序列的输出与序列的检测。

3.继续学习优化设计。

二、内容与要求利用状态机设计实现实现串行序列的输出与序列的检测,具体要求:1.先设计序列发生器产生序列0111010011011010;2.再设计一个序列信号检测器,若系统检测到串行序列11010则输出为“1”,否则输出为“0”,并将检测到的11010数目显示出来;3.对所设计的电路进行波形仿真和硬件测试;4.整个工程采用顶层文件+底层模块的原理图或文本的设计思路。

三、设计思路/原理图根据实验要求,先设计序列发生器产生序列:0111010011011010;再设计检测器,检测串行信号:11010,若检测到11010信号,则输出“1”,没有检测到则输出“0”,并且将检测到的信号的显示出来。

为简化设计,整个工程采用顶层文件+底层模块的设计方法。

1.序列信号发生器序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号。

利用状态机设计,首先定义一个数据类型FSM_ST它的取值为st0到st15的16个状态。

REG s0 s1 s2 s3 s4 s5 s6 s7 Q 0 1 1 1 0 1 0 0 REG s8 s9 s10 s11 s12 s13 s14 s15 Q 1 1 0 1 1 0 1 0 2、序列检测器序列检测器设计的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及序列,直到在连续的检测中收到的每一位码都与预置码相同。

在此,必须利用状态转移图。

定义预置信号D=“11010”,电路需要分别不间断记忆:初始状态、1、11、110、1101、11010共六种状态,状态转移图:3、计数模块利用序列检测器产生的信号(1和0)作为计数器模块的时钟信号,产生的信号0、1变化,形成类似的CLK信号,实现计数模块计数。

计数模块设计可采用前面的实验二设计。

数字逻辑复习题

数字逻辑复习题

数字逻辑复习题《数字逻辑》复习资料⼀.选择题:1.下列数码均代表⼗进制数6,其中按余3码编码的是()。

A)0110 B)1100 C)1001 D)01012.已知逻辑函数Y=AB+A?B+?A?B,则Y的最简与或表达式为()。

A)A B)A+?A?B C)A+?B D)A+B3.对于J-K触发器,若J=K,则可完成()触发器的逻辑功能。

A)R-S B)D C)T;D)J-K4.下列四个数中,最⼤的数是()。

A)(AF)16 B)(001010000010)8421BCDC)(10100000)2 D)(198)105.逻辑变量的取值1和0可以表⽰()。

A)开关的闭合、断开B)电位的⾼、低C)真与假D)电流的有、⽆6.在何种输⼊情况下,“或⾮”运算的结果是逻辑0。

()A)全部输⼊是0 B)全部输⼊是1C)任⼀输⼊为0,其他输⼊为1 D)任⼀输⼊为17.对于T触发器,若原态Q n=0,欲使新态Q n+1=1,应使输⼊T=()。

A)0 B)1 C)Q D)不确定8.下列触发器中,克服了空翻现象的有()。

A)边沿D触发器B)]主从RS触发器;C)同步RS触发器D)主从JK触发器;9.卡诺图上变量的取值顺序是采⽤()的形式,以便能够⽤⼏何上的相邻关系表⽰逻辑上的相邻。

A)⼆进制码B)循环码C)ASCII码D)⼗进制码10.表⽰任意两位⽆符号⼗进制数需要()⼆进制数。

A)6 B)7 C)8 D)911.余3码10001000对应的2421码为()。

A)01010101 B)10000101 C)10111011 D)1110101112.补码1.1000的真值是()。

A)+1.0111 B)-1.0111 C)-0.1001 D)-0. 100013.标准或-与式是由()构成的逻辑表达式。

A)与项相或B)最⼩项相或C)最⼤项相与D)或项相与14.下列四种类型的逻辑门中,可以⽤()实现三种基本运算。

A)与门B)或门C)⾮门D)与⾮门15.实现两个四位⼆进制数相乘的组合电路,应有()个输出函数。

1011序列发生器与检测器

1011序列发生器与检测器

1011序列发生器与检测器---------时序逻辑课程设计学院:自动化工程学院摘要:该设计实现的是串行序列信号1011的发生与检测。

设计通过移位寄存器74194的环形移位功能实现1011序列的循环发生,74194的串并转换功能实现1011序列的检测。

达到了课题要求。

关键词:74194芯片、环形移位、串并转换、一:设计思路及分析1011序列检测与发生器的实现可分为两部分:第一部分为1011序列发生器;第二部分为1011序列检测器。

1.1011序列发生器:通过之前对组合逻辑电路的学习,我发现要实现1011序列的产生有多种方法。

方法1:使用多路复用器的数据选择功能,将1011序列作为并行数据输入多路复用器的数据输入端,再使用一个计数器由计数器控制多路复用器依次选择1,0,1,1这四个输入数据作为输出,将1011序列串行输出,并使计数器重复计数以使1011序列重复产生。

具体的电路如下:从设计可以看出,这种1011序列发生器使用了两块芯片和一个三输入与非门,并且这种设计使74*163芯片和74*151芯片的扇入不能得到充分利用,并不是很好的设计。

方法2:运用第八章移位寄存器的知识,我们可以通过分析状态图来利用移位寄存器完成1011序列发生器。

通过模仿书本例子设计的1000序列发生器。

我做了如下设计:使用移位寄存器芯片74*194,将初始值设为1011,而后开始移位,当QB,QC,QD都为1时,下一输入为0。

并将QB,QC,QD的与非作为下一输入。

以此实现1011序列的产生,并用QA作为序列发出端。

如图,初始时,RESET为1,使ABCD载入,而后RESET为0,开始移位进行环形计数,并由QD输出1011序列。

2.、1011序列检测器1011序列检测器的实现依然可以用移位寄存器完成。

通过74194进行串并转换,将串行数据转换为并行数据以对数据的四位进行检测。

移位寄存器在左移时输入端为SLSI端,当控制端S1=1,S0=0时,74194为左移位模式,QD*=SLSI,QC*=QD,QB*=QC,QA*=QB。

《数字电路与数字逻辑》练习题

《数字电路与数字逻辑》练习题

《数字电路与数字逻辑》练习题一一、填空1.将下列二进制数转为十进制数(1001011)B =()D (11.011)B =()D2.将下列有符号的十进制数转换成相应的二进制数真值、原码、反码和补码(+122)=()真值=()原码=()反码=()补码3.把下列4个不同数制的数(376.125)D 、(110000)B 、(17A)H 、(67)O (按从大到小的次序排列()>()>()>()。

将下列各式变换成最简与或式的形式=+B AB ()=+AB A ()=++BC C A AB ()4.将下列二进制数转为十进制数(101000)B =()D (11.0101)B =()D5.将下列十进制数转为二进制数,八进制数和十六进制数(0.8125)=()B =()O =()H(254.25)=()B =()O =()H6.将下列有符号的十进制数转换成相应的二进制数真值、原码、反码和补码 (+125)=()真值=()原码=()反码=()补码(—42)=()真值=()原码=()反码=()补码7.逻辑函数C A CD AB F ++=的对偶函数F '是__________________________;其反函数F 是_________________________。

8.当j i ≠时,同一逻辑函数的最小项=⋅j i m m _________;两个最大项=+j i M M ___________。

9.(43.5)10=(_________)2=(_________)16。

10.n个输入端的二进制译码器,共有_________个输出端,对于每一组输入代码,将有_________个输出端具有有效电平。

11.将下列二进制数转为十进制数(1010001)B=()D(11.101)B=()D12.将下列有符号的十进制数转换成相应的二进制数真值、原码、反码和补码(+254.25)=()真值=()原码=()反码=()补码13.把下列4个不同数制的数(76.125)D、(27A)H、(10110)B、(67)O按从大到小的次序排列()>()>()>()。

序列检测器

序列检测器

1001序列检测器的设计一、设计要求设计一个二进制序列检测器,输出为1个二进制随机序列,要求检测序列为1001。

当输入为1001时,检测器输出脉冲信号为“1”,否则输出为“0”。

要求:1.用有限状态机设计;2.画出检测器框图(输入、时钟、复位、随机序列、输出、检测信号);3.分析过程并画出状态转移图。

二、设计过程1.有限状态机的设计有限状态机一般由四个部分组成(1)说明部分状态名定义:用type语句定义数据类型,元素为枚举型;状态变量:定义为信号,便于信息传递(2)主控时序进程:负责状态机运转,时钟驱动下负责状态转换(3)主控组合进程根据外部控制信号和(或)当前状态值,确定下一状态,确定对内、外输出控制信号的内容(4)辅助进程:配合状态机工作的组合进程或时序进程系统输入信号有三个变量,分别为复位信号Restart,时钟信号clk,输入信号din。

系统输出序列为result。

输入输出关系图如下:clkd_in2.状态转移图检测串行输入的d_in中的序列“1001”,当输入为1001时,检测器输出脉冲信号为“1”,否则输出为“0”。

因此,根据题意可以分为以下5个状态:idle:输入为0;S0:输入为1;S1:输入为10;S2:输入为100;S3:输入为1001;相关状态转移图如下:3.源程序本程序在 max+plus II软件平台编写和仿真。

源程序代码如下:Library ieee;Use ieee.std_logic_1164.ALL;ENTITY s5_machine ISPORT(clk, d_in : IN STD_LOGIC ;restart : IN BOOLEAN ;result: OUT STD_LOGIC) ;END ENTITY s5_machine;ARCHITECTURE activ OF s5_machine ISTYPE state IS (idle,s0, s1, s2, s3); -- 利用程序包定义数据类型SIGNAL present_state, next_state: state ;BEGINRestart_And_Switch: PROCESS(clk, restart) -- 第一个进程BEGINIF (restart) THEN -- 监测复位信号present_state<= idle;ELSIF (clk'EVENT AND clk ='1') THEN -- 监测时钟上沿present_state<= next_state;END IF;END processRestart_And_Switch;State_Decision: PROCESS(d_in,present_state) -- 第二个进程BEGINnext_state<= s0;IF (d_in = '0') THENCASE present_state ISWHEN idle=>next_state<=idle;WHEN s0 =>next_state<= s1;WHEN s1 =>next_state<= s2;WHEN s2 =>next_state<= idle;WHEN s3 =>next_state<=idle ;END CASE;ELSIF (d_in = '1')THENCASE present_state ISWHEN idle=>next_state<= s0;WHEN s0 =>next_state<= s0;WHEN s1 =>next_state<= s0;WHEN s2 =>next_state<= s3;WHEN s3 =>next_state<=s0;end case;END IF;END processState_Decision;Output_Decision:PROCESS(present_state)--第三个进程BEGINIF (present_state=s3) thenresult<='1';ELSEresult<='0';END IF;END processOutput_Decision;end ARCHITECTURE activ;三、仿真结果在本次仿真中,输入信号d_in为时钟信号的二分频后的信号11001100,从图示结果中可以看到,当输入序列为1001且复位信号restart为0时,输出信号result高电平,结果正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

讨论使用D触发器设计一个11001序列检测器,讨论序列可交迭(Overlap)检测和不可交迭检测在设计上的区别,讨论分别采用Mealy机设计和采用Moore机设计的区别,讨论未用状态的处理问题。

【要求】给出电路原理图或HDL代码,要求进行仿真,并给出仿真结果。

1.原件介绍D触发器(74LS74)、“与”门(74LS08)、“或”门(74LS32)、“非”门(74LS04),集成电路引脚2.设计思路根据要求,设计的序列检测器有一个外部输入x和一个外部输出Z。

输入和输出的逻辑关系为:当外部输入x第一个为"1",外部输出Z为"0";当外部输入x第二个为"1",外部输出Z为"0";当外部输入第三个x为"0",外部输出Z为"0",当外部输入第四个x为“0”,外部输出Z为0,当外部输入第五个x为“1”,输入X 0 1 1 1 0 0 1 0 1输出Y 0 0 0 0 0 0 1 0 0要判别序列检测器是否连续接收了"11001",电路必须用不同的状态记载外部输入x的值。

假设电路的初始状态为A,x 输入第一个"1",检测器状态由A装换到B,用状态B记载检测器接受了"11001"序列的第一个"1",这时外部输出Z=0;x输入第二个"1",检测器状态由B装换到C,用状态C记载检测器接了“11001”序列的第二个"1",外部输出Z=0;x输入第三个"0",检测器状态由C装换到D,外部输出Z=0;x输入第四个为“0”,检测器状态由D装换到E,外部输出Z=0;x输入第五个为“1”,检测器状态由E装换到F,外部输出Z=1。

然后再根据外部输入及其他情况时的状态转移,写出相应的输出。

以上分析了序列检测器工作,由此可画出原始状态图。

根据原始状态图可列出原始状态表。

状态转换表ABDCEF1\01\00\00\01\10\00\01\01\00\00\0ZZ=A 0'1'2Q Q Q Q2*='01'2'Q Q Q AQ1*=01'202Q Q Q Q AQ +'Q0*='0'1'01'2'210'Q AQ Q Q AQ Q Q Q A ++D2=Q2* D1=Q1* D0=Q0*3.未用状态关于未用状态涉及到了D 触发器自启动的检验:前一状态为 111时,Q3*=A ’; Q2*=0; Q1*=A,下一状态为有效状态。

前一状态为110时,Q3*=A; Q2*=1; Q1*=1,对A 值分类讨论: A=0,下一状态为有效状态;A=1,下一状态为111,再下一个状态为有效状态。

4.实际代码设计与仿真MOORE 机有交迭的程序设计library ieee;use ieee.std_logic_1164.all; entity schk isport(din,clk,rst:in std_logic; sout:out std_logic); end schk;architecture behave of schk istype states is(s0,s1,s2,s3,s4,s5); signal st,nst:states :=s0; begincom: process(st,din) begin case st iswhen s0=> if din='1' then nst <=s1;else nst <= s0; end if;when s1=> if din='1' then nst <=s2;else nst <= s0; end if;when s2=> if din='0' then nst <=s3;else nst <= s0; end if;when s3=> if din='0' then nst <=s4;else nst <= s0; end if;when s4=> if din='1' then nst <=s5;else nst <= s0; end if;when s5=> if din='1' then nst <=s2;else nst <= s0;end if;when others => nst <=s0; end case; end process;reg:process (clk,rst) begin--shixujinchengif rst='1' then st <=s0;elsif clk'event and clk='1' then st <= nst; end if;end process reg;sout <= '1' when st=s5 else '0';end behave;仿真结果小的体现了交迭mealy有交迭的程序设计library ieee;use ieee.std_logic_1164.all;entity schk2 isport(din,clk,rst:in std_logic;sout:out std_logic);end schk2;architecture behave of schk2 istype states is(s0,s1,s2,s3,s4,s5);signal st:states :=s0;beginprocess(clk,rst,st,din) beginif rst='1' then st <=s0; elsif clk'event and clk='1' then case st iswhen s0=> if din='1' then st <=s1; else st <= s0;end if; when s1=> if din='1' then st <=s2; else st <= s0;end if; when s2=> if din='0' then st <=s3; else st <= s0;end if; when s3=> if din='0' then st <=s4; else st <= s0;end if; when s4=> if din='1' then st <=s5; else st <= s0;end if; when s5=> if din='1' then st <=s2; else st <= s0;end if; when others => st <=s0;end case;if(st=s5) then sout<='1'; else sout <= '0';end if ; end if;end process;end behave;实现检测11001的图体现交迭的图Mealy机无交叠的library ieee;use ieee.std_logic_1164.all;entity schk2 isport(din,clk,rst:in std_logic;sout:out std_logic);end schk2;architecture behave of schk2 istype states is(s0,s1,s2,s3,s4,s5);signal st:states :=s0;beginprocess(clk,rst,st,din) beginif rst='1' then st <=s0; elsif clk'event and clk='1' then case st iswhen s0=> if din='1' then st <=s1; else st <= s0; end if;when s1=> if din='1' then st <=s2; else st <= s0; end if;when s2=> if din='0' then st <=s3; else st <= s0; end if;when s3=> if din='0' then st <=s4; else st <= s0; end if;when s4=> if din='1' then st <=s5; else st <= s0; end if;when s5=> if din='1' then st <=s0; else st <= s0; end if;when others => st <=s0;end case;if(st=s5) then sout<='1'; else sout <= '0';end if ; en d if;end process;end behave;体现没有交迭的Moore没有交迭的图library ieee;use ieee.std_logic_1164.all;entity schk isport(din,clk,rst:in std_logic;sout:out std_logic);end schk;architecture behave of schk istype states is(s0,s1,s2,s3,s4,s5);signal st,nst:states :=s0;begincom: process(st,din) begincase st iswhen s0=> if din='1' then nst <=s1;else nst <= s0; end if;when s1=> if din='1' then nst <=s2;else nst <= s0; end if;when s2=> if din='0' then nst <=s3;else nst <= s0; end if;when s3=> if din='0' then nst <=s4;else nst <= s0; end if;when s4=> if din='1' then nst <=s5;else nst <= s0; end if;when s5=> if din='1' then nst <=s0;else nst <= s0; end if;when others => nst <=s0;end case;end process;reg:process (clk,rst) begin--shixujinchengif rst='1' then st <=s0;elsif clk'event and clk='1' then st <= nst; end if;end process reg;sout <= '1' when st=s5 else '0';end behave;5.关于二者设计上的不同Mealy状态机与Moore有限状态机不同,Mealy有限状态机的输出不但与当前状态有关,而且与输入信号的当前值有关,所以在st的赋值上二者会有不同,Moore赋给nst(下一状态的),mealy给st。

相关文档
最新文档