序列信号检测器的设计与实现 数电实验报告

数字电路与逻辑计

实验报告

序列信号检测器的设计与实现

一、课题名称:

序列信号检测器的设计与实现

二、实验目的:

(1)熟悉用VHDL语言设计时序逻辑电路的方法;

(2)熟悉序列信号检测器的设计方法;

(3)了解状态机的设计方法。

三、实验所用仪器及元器件:

(1)计算机

(2)直流稳压电源

(3)数字系统与逻辑设计实验开发板

四、实验内容:

用VHDL语言设计实现一个序列信号检测器,当检测到“101”时,输出为“1”;其他情况时,输出为“0”,仿真验证其功能,并下载到实验板测试。

五、设计思路与过程:

第1步,画出原始状态图和状态表。根据任务书要求,设计的序列检测器有一个外部输入x和一个外部输出Z。输入和输出的逻辑关系为:当外部输入x第一个为“1”,外部输出Z为“0”;当外部输入x第二个为“0”,外部输出Z为“0”;当外部输入x第三个为“1”,外部输出Z才为“1”。假定有一个外部输入x序列以及外部输出Z 为:

输入x: 0 1 0 1 1 1 0 1 1 1 1 0 1

输出Z: 0 0 0 1 0 0 0 1 0 0 0 0 1

要判别序列检测器是否连续接收了“101”,电路必须用不同的状态记载外部输入x的值。假设电路的初始状态为A,x输入第一个值“1”,检测器状态由A装换到B,用状态B记载检测器接受了101序列的第一个值“1”,这时外部输出Z=0;x输入“0”,检测器状态由B装换到C,用状态C记载检测器接受了101序列的第二个值“0”,外

部输出Z=0;x输入第三个值“1”,检测器状态由C装换到D,外部输出Z=1。然后再根据外部输入及其他情况时的状态转移,写出相应的输出。以上分析了序列检测器工作,由此可画出图一所示的原始状态图。根据原始状态图可列出原始状态表,如表一所示。

0/0

图一原始状态图

表一:原始状态表

第2步,在对原状态表进行简化,从状态表就可以看出B 、D 两个状态为等价状态。从而可得简化后的状态表表二和状态图图二:

图二 简化状态图

表二:简化后的状态表

第3步,状态分配:

给A 分配编码00,B 分配01,C 分配11,则可得状态转移表三:

表三:简化后的状态转移表

第4步,选择存储器的类型,确定存储电路的激励输入: 选择使用D 触发器来完成此任务。

第5步,由上面可得状态方程激励方程和输出函数

状态方程1110

10

10n n n n n n

Q Q Q X Q X Q Q ++?=??

=+??

输出函数 10n n

Z

Q Q X

=

下面由方程可进一步写出VHDL 代码,来实现检测器的过程:

六、101检测器的VHDL 代码如下:

七、仿真波形图及仿真波形图分析:

仿真波形图分析:

根据检测器的要求,当输入信号为出现101时,则输出为1,由上图的仿真结果可以看出,输入的波形信号为:0101010101010101

由于使用的时D触发器,只有上升沿才是有效的,因此在时钟信号的上升沿输出才会发生变化。可得输出为:0001010101010101

所以此设计符合实验要求。

八、故障及问题分析:

1、在下载成功后,出现结果老是不对。

这是由于设计的代码是D触发器,所以只有在上升沿才是有效的,由于当时对整个操作还不是很熟悉,在演示的时候,没有弄出101的信号,所以导致设定的灯总是不亮,这时候就需要再次审视自己的代码,彻底搞清楚工作原理,从而正确的得出所需要的结果。

2、在编译的时候,最终出现的输出波形是全0.

这是由于自己所设定的时钟信号和输入信号之间的关系没有匹配好,适当的修改设定的周期,使其满足一定的关系,就可以解决这样的问题,如最终的仿真波形,这样就可以满足要求。

九、实验总结和结论:

通过为期四周的数电实验,我学到了很多,在每次的实验中都有不同的收获,第一次是利用Quartus II这个软件通过自己动手来完成初步的实验,这一次,我对这个软件有了初步的认识;第二次是通过编写VHDL语言来设计常用的组合逻辑电路从而完成实验设计,这使我对Quartus II有了更深一步的认识,原先以为它只可以画图来解决问题的,通过这次简单的实验,我体会到利用VHDL语言的妙处,它可以将很复杂的电路,用简简单单的几句代码来代替,大大节省下了时间和精力,通过这次实验,我对数电理论课上所学的一些基本的组合电路理解的更透彻了;第三次是利用VHDL语言来实现一些常用时序逻辑电路的设计,在做这次实验时,我们还没有完成数电时序逻辑电路部分的理论学习,心中开始有些抓瞎,可是经过史老师的细致讲解,我懂了很多,实验也进行的很顺利,而且通过此次实验,我在学习理论知识的时候显得如鱼得水,很快就掌握了。第四次实验我们进行了一个小测,并完成一次一般的时序逻辑电路的设计,通过这次实验,我真正体会到了所学的知识在实际生活中的作用,真的可以利用知识来解决问题。

总之,通过为期四周的数电实验,我收获的远远不是几次的实验经历,更是一种态度。通过实验,我认识到了知识的重要性,只有当所学的知识可以用来解决实际问题的时候,才是学到精处。我很庆幸我有这种体会,在以后的学习中,我会尽最大的努力,秉承这样的学习理念,好好地走下去,真正做到学为所用!

序列信号检测器

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合 设计□创新实验日期:实验成绩:实验三序列信号发生检测器 一、实验目的 1、学会运用VHDL语言设计方法构建具有一定逻辑功能的模块,并能运用图形设计方法完成顶层原理图的设计。 2、掌握脉冲序列检测器的主要功能 二、实验要求 1、设计一个序列信号发生器,用以产生输入序列“1101010011010101”由左开始。 2、设计一个序列检测器,用以检测输入序列,检测序列为10011 3、运用QuartusⅡ软件中的仿真功能对所设计的序列检测器的各个模块及顶层电路的功 能进行仿真分析。 三、设计过程 1,序列信号检测器设计原理: 序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的相同,则输出 1,否则输出 0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码与预置数的对应码相同。设计中一般采用状态机来实现。 2,模块设计: 根据层次化设计理论以及序列信号检测器的基本原理,本次设计的序列检测器采用自顶向下的思路可分为时钟输入模块、序列发生模块、序列检测模块、数码管动态扫描显示模块及LED状态转换显示模块,系统框图如下

序列信号检测器系统框图 3、使用文本设计底层文件,并生成相应元器件,再使用原理图设计顶层文件 四、实验步骤 1、顶层文件的设计 顶层原理图设计可以依据系统框图进行,时钟输入模块(clkdiv)、序列发生模块(fsq)、序列检测模块(jcq)、数码管动态扫描显示模块及LED状态转换显示模块(scan_led)、序列信号译码模块(czb) 2,各模块设计文件 ①时钟clkdiv: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DIV IS PORT(CLK : IN STD_LOGIC; CLK_DIV : OUT STD_LOGIC); END DIV; ARCHITECTURE RT1 OF DIV IS SIGNAL DA TA:INTEGER RANGE 0 TO 500;

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

讨论使用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”,外部输出Z为“1”。假定有一个外部输入x序列以及外部输出Z为: 输入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。然后再根据外部输入及其他情况时的状态转移,写出相应的输出。以上分析了序列检测器工作,由此可画出原始状态图。根据原始状态图可列出原始状态表。 状态转换表 A B D C E F 1\0 1\0 0\0 0\0 1\1 0\0 0\0 1\0 1\0 0\0 0\0

数电实验报告 计数器

实验报告 实验七计数器原理测试及其设计 2.7.1 实验目的 1.掌握中规模集成计数器74LS160、74LS161、74LS163的逻辑功能及使用方法。 2.掌握同步清零与异步清零的区别及74LS160计数器的级联方法。 3.学习用中规模集成计数器设计任意进制计数器。 2.7.2 实验仪器设备与主要器件 实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。 74LS160,74LS161和74LS163。 2.7.3 实验原理 计数器的功能是记录输入脉冲的个数。他所能记忆的最大脉冲个数称为该计数器的模。计数器不仅能统计输入脉冲的个数,还可以用作分频、定时、产生节拍脉冲等。根据进位方式,可分为同步和异步两类。根据进制,可分为二进制、十进制和任意进制等。根据逻辑功能,可分为加法计数器、减法计数器和可逆计数器等。根据电路集成度,可分为小规模集成计数器和中规模集成计数器。 2.7.4 实验内容 1.分别用74LS161和74LS163设计模13计数器,采用清零法实现,并用数码管显示实验结果。 设计思路:74LS161是十六进制计数器,所以我在它计数到13(1101)清零就行了,再利用二进制数与BCD码对应关系,即利用74LS283的逻辑功能使数码管显示实验结果。计数时电路状态转换关系: 0000→0001→0010→0011→0100→0101→0110→0111→1000→1001→1010→1011→1100→0000

设计思路:74LS163接法与74LS161基本一样,只是163的清零信号是12不是13,如图: 2.设计一个用3位数码管指示的六十进制计数器,并用三只开关控制计数器的数据保持、计数及清零功能。 设计思路:用Cr=0控制计数器清零,用EP*ET=0控制计数器数据保持,用高低电平和CP脉冲进行与运算控制计数器计数功能。U1的清零信号是在计数到6时,U1清零的同时U3开始计数,这样就能实现用3位数码管指示的六十进制计数器。如图:

设计一个1010的序列检测器

二、设计一个1010的序列检测器,检测到1010时输出为“1”否则为“0”,用D触发器实现。 第一步:根据要求进行逻辑抽象,得出电路的原始状态转换图和状态转换表。 取输入数据变量为X,检测的输出变量为Z, 该同步时序逻辑电路的功能是检测输入序列是否为1010,一旦输入序列出现一个1就记下来,因为这个1可能是1010序列的第一个1,;接着看输入是否为0,因为10是序列1010的前两位;其次再看输入是否为1,因为101是1010序列的前三位;最后再输入一个0,输出则为1,因为出现了一个1010序列,泽电路必须记住1,10,101,1010四种输入情况,每一种输入情况应与电路的一个状态相对应。 根据题意,设电路随机的输入和输出序列为: X:0 1 0 1 0 0 0 1 0 1 0 1 0…… Z: 0 0 0 0 1 0 0 0 0 0 1 0 0…… 该电路仅有一个输入端,每个现态有两个可能转移方向,设电路初态为S0,当X=0时,电路仍处在状态S0,当输入一个1以后的状态为S1,输入10以后的状态为S2,输入101以后的状态为S3,输入1010以后的状态为S4。以S n表示电路的现态,S n+1表示电路的次态。 由此得出原始状态转换图和原始状态转换表:

第二步:状态化简: 依据状态等效条件判断得出S0和S4在相同的输入条件下,它们转换到相同的次态去,且有相同的输出,故S0和S4等效,经分析比较,找出最大等效类:{S1},{S2},{S3},{S0,S4}。 由此得出化简的状态转换图和最简状态表: 第三步:状态编码: 最贱状态表共有四种状态,可用两位二进制代码来表示,设状态变量为Q1,Q2,依据状态编码原则,确定S0=00,S1=01,S2=11,S3=10四种状态,其编码后的状态转换图和状态转换表:

数电实验报告

数字逻辑与数字电路实验报告 实验名称简易迷宫游戏

一、设计课题的任务要求 题目:简易迷宫游戏 设计并实现一个简易迷宫游戏机。 【基本要求】: 1、用8×8 点阵进行游戏显示。 2、迷宫游戏如图1 所示,采用双色点阵显示,其中红色LED 为迷宫墙壁,绿色LED表示人物。通过BTN0~BTN3 四个按键控制迷宫中的人物进行上下左右移动,使人物从起始点出发,走到迷宫的出口,游戏结束。 3、普通计时模式:通过按键BTN7 启动游戏,必须在30 秒内找到出口,否则游戏失败。用两个数码管进行倒计时显示。游戏胜利或者失败均要在8×8 点阵上有相应的画面出现。 4、迷宫中的人物在行走过程中,如果碰到墙壁,保持原地不动。 【提高要求】: 1、多种迷宫地图可以选择。 2、在计时的基础上增加计步的功能,每按一次控制按键步数加1,碰壁不计算步数,计步结果用数码管显示。 3、为游戏增加提示音乐,在不同时间段采用不同频率的信号控制蜂鸣器发声报警。 4、增加其他游戏模式。 5、自拟其它功能。 二、系统设计(包括设计思路、总体框图、分块设计) 设计思路: 依据题目要求,在实验中需要使用到8*8双色点阵输出迷宫图案,使用数码管输出计步步数和倒计时时间,使用蜂鸣器发出警报。由于实验要求需要使用到大量的按键输入。所以需要在输入输出模块中需要按键消抖模块。实验的输出模块共有点阵输出模块,数码管输出模块,蜂鸣器输出模块,在数码管和点阵输出中需要使用到扫描输出的概念。在游戏进行中需要实时判断并且记录人的位置,需要进行记时,计步,所以在整个系统中需要使用状态机进行当前状态转换,控制整个程序。所以在核心实现模块中包括行走模块,状态输出模块,计步模块,计时模块。 输入部分:消抖模块 时钟部分:多级分频器 控制部分:倒计时器,计步器,行走模块,状态机

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-计数器及应用161

广东海洋大学学生实验报告书(学生用表) 实验名称 课程名称 课程号 学院(系) 专业 班级 学生姓名 学号 实验地点 实验日期 实验4 计数器及其应用 一、实验目的 1、熟悉中规模集成计数器的逻辑功能及使用方法 2、掌握用74LS161构成计数器的方法 3、熟悉中规模集成计数器应用 二、实验原理 计数器是典型的时序逻辑电路,它是用来累计和记忆输入脉冲的个数.计数是数字系统中很重要的基本操作,集成计数器是最广泛应用的逻辑部件之一。计数器种类较多,按构成计数器中的多触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器;根据计数制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能计数器等。本实验主要研究中规模十进制计数器74LS161的功能及应用。 1、中规模集成计数器 74LS161 是四位二进制可预置同步计数器,由于它采用4 个主从JK 触发器作为记忆单元,故又称为四位二进制同步计数器,其集成芯片管脚如图1所示: 管脚符号说明:电源正端Vcc ,接+5V ;异步置零(复位)端Rd ;时钟脉冲CP ;预置数控制端 A 、B 、C 、D ;数据输出端 QA 、QB 、QC 、QD ;进位输出端 RCO :使能端EP ,ET ;预置端 LD ; 图1 74LS161 管脚图 GDOU-B-11-112

该计数器由于内部采用了快速进位电路,所以具有较高的计数速度。各触发器翻转是靠时钟脉冲信号的正跳变上升沿来完成的。时钟脉冲每正跳变一次,计数器内各触发器就同时翻转一次,74LS161的功能表如表1所示: 表1 74LS161 逻辑功能表 2、实现任意进制计数器 由于74LS161的计数容量为16,即计16个脉冲,发生一次进位,所以可以用它构成16进制以内的各进制计数器,实现的方法有两种:置零法(复位法)和置数法(置位法)。 (1) 用复位法获得任意进制计数器假定已有N进制计数器,而需要得到一个M进制计数器时,只要M<N,用复位法使计数器计数到M时置“0”,即获得M进制计数器。 (2) 利用预置功能获M进制计数器置位法与置零法不同,它是通过给计数器重复置入某个数值的的跳越N-M个状态,从而获得M进制计数器的,如图所法。置数操作可以在电路的任何一个状态下进行。这种方法适用于有预置功能的计数器电路。图2是上述二种方法的原理示意图。 图2(a) 图2(b) 三、实验内容与步骤 1、测试74LS161的逻辑功能。 2、在熟悉74LS161逻辑功能的基础上,利用74LS161设计9进制计数器。 附图74ls00和74ls20

序列检测器的设计实验报告

班级:生物医学工程141班姓名:刘玉奔学号:6103413018 设计性实验项目名称序列信号发生和检测器设计 (一)实验目的 1、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法; 2、学习有限状态机法进行数字系统设计; 3、学习使用原理图输入法进行设计。 (二)设计要求 完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现一个串行序列信号发生器和一个序列信号检测器的功能,具体要求如下: 1、先用设计0111010011011010序列信号发生器,其最后6BIT数据用LED显示出来; 2、再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“11010”则 输出为“1”,否则输出为“0”; 3、检查检测01011,即将发生的序列最后五位改为01011,为0111010011001011 (三)主要仪器设备 1、微机1台 2、QuartusII集成开发软件1套 3、EDA实验装置1套 (四)实验步骤 主要有三个模块 1:一个设计序列信号发生器 2:一个设计序列信号检测器 3:综合两个设计,通过对模块的调用达到最终效果 (五)实验数据 --设计时间:2016.10.29 --设计者:刘玉奔 --设计内容:1、先用设计0111010011001011序列信号发生器,其最后6BIT数据用LED 显示出来; --2、再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“01011”则输出

为“1”,否则输出为“0”; --序列信号发生器部分 LIBRARY IEEE;--声明IEEE库 USE IEEE.STD_LOGIC_1164.ALL;--允许使用IEEE中程序包STD_LOGIC_1164 ENTITY serialsignalgenerator IS PORT(CLK,RST:IN STD_LOGIC; CO:OUT STD_LOGIC; LED0,LED1,LED2,LED3,LED4,LED5:OUT STD_LOGIC); END behav; 得到symbol file: 序列信号检测器: LIBRARY IEEE;--声明IEEE库 USE IEEE.STD_LOGIC_1164.ALL;--允许使用IEEE中程序包STD_LOGIC_1164 ENTITY serialsignaltest IS PORT(CLK,DIN,CLR:IN STD_LOGIC; SS:OUT STD_LOGIC; LED0,LED1,LED2,LED3,LED4:OUT STD_LOGIC);

序列检测器实验报告

序列检测器设计 实验内容: 设计一个1110010序列检测器,即检测器检测到序列1110010时,输出为1,否则输出为0。 输入信号:一个时钟输入信号clk; 一个输入端x以输入序列来检测; 一个输入y用来选择是检测序列1110010或是检测自己输入的序列;一个输入k(7..0)用来输入想要检测器检测的序列; 输出信号:一个7位输出信号q,用来输出正在检测的7位序列;一个1位输出信号unlk,当被检测序列符合时,输出unlk为1否则为0; 中间信号:再定义两个7位的中间信号a和combination; 执行操作:在上升的时钟沿时候,将从x输入的序列赋给7位a,在y等于1的情况下,令中间信号combination为1110010,否则,在y等于0的情况下,令中间信号combination为从k输入的七位长序列。最后把a的值赋给q,如果a与combination输出unlk等于1否则等于0。 (1)序列检测器语言设计: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; USE IEEE.STD_LOGIC_ARITH.ALL;

entity xulie2 is port ( clk,x:in std_logic; y:in std_logic; k:in std_logic_vector(7 downto 1); unlk:out std_logic; q:out std_logic_vector(7 downto 1)); end xulie2; architecture art of xulie2 is signal a:std_logic_vector(7 downto 1); signal combination: std_logic_vector(7 downto 1); begin process(clk) begin if clk'event and clk='1' then a<=a(6 downto 1)&x; if y='1' then combination<="1110010";

序列检测器的一种简化实现算法

第8卷第6期石家庄学院学报Vol.8,No.62006年11月JournalofShijiazhuangUniversityNov.2006序列检测器的一种简化实现算法 李俊红,解建军 (河北师范大学数学与信息科学学院,石家庄050016) 摘要:分析了序列检测器的内部原理,给出它的一种新硬件实现.利用它无需对状态图进行状态化简,极大地简化了时序线路的设计.最后结合具体实例说明了该设计思想的详细步骤和具体实现方法. 关键词:子串;主串;序列检测器 中图分类号:TP16文献标识码:A文章编号:1673-1972(2006)06-0063-03 1序列检测器原理 序列检测是指将一个指定的序列从数字流中识别出来,或在主串中查询相应子串,一般可以通过软件方法或时序电路即硬件方法实现.有关软件实现方法的研究可参见文献[1],本文主要针对时序电路进行讨论.用硬件方法实现序列检测器时,检测器中存储模式串,主串可以通过输入端流入检测器[2,3].在主串的输入过程中,检测器可以动态检测子串.检测器利用时序线路记忆已检测出的有效序列,并与自身所含的模式串进行比对,若检测成功,输出端自动输出成功标记[4].设计一个“11100”序列检测器,当识别到一组序列时,输入一个高电平.由于采用时序线路,主串的内容应每给一个上升沿或下降沿输入一位,具体应视所选触发器类型而定. 我们提出一种新硬件实现方法,在该方法中对每一个状态都根据实际意义给予特殊的含义,具体含义在后面的实例中再加以说明,由于不存在重复状态,故最终的状态图不用化简. 序列检测器的初态是指被检序列的第一位出现前的特定状态,此状态后如果输入的代码对检测有效(即被测序列的第一位),则相应次态为新的状态(第2个状态,它记住了被测序列的第一位),否则相应次态仍为初态.第2个状态是指被检序列的第一位出现后的特定状态,此状态后如果输入的代码对检测有效,(即被测序列的第2位)则相应次态为新的状态(第2个状态,它记住了被测序列的前2位),否则判断最近输入的代码是否是被检序列的第一位,是则相应次态仍为第2个状态,否则相应次态为初态.以次类推,第i个状态记住了被检序列的前i-1位,相应次态确定方法如下: 假设序列长度为n,当i<n时,如果第i个状态后输入的一位代码是被检序列的第i位,则次态为新的状态(记住了被检序列的前i位),否则次态按如下规则选择:从初态开始输入的i位代码中如果其中的后i-j位为被检序列的前i-j位,则次态为第i-j+1个状态(j=1,2,...,i-1,找到次态即停止),否则次态为初态.此时所有的外输出均为‘0’. 当i=n时,第n个状态已经记住了被检序列的前n-1位,此状态后输入的一位代码如果是被检序列的第n位,则外输出为‘1’,否则外输出为‘0’,其次态按如下规则选择:从初态开始输入的n位代码中如果其中的后n-j位为被检序列的前n-j位,则次态为第i-j+1个状态(j=1,2,...,n-1,找到次态即停止),当j=n时,次态为初态. 按上述方法构造的原始状态转移图中恰好含n个状态,且每个状态都有确定的含义,避免了其设计过程中,构造原始状态转移图繁杂,化简原始状态转移图麻烦的弊端,设计时既逻辑清晰,又不用化简,从而极大地简化了该类线路的设计. 收稿日期:2005-12-09 基金项目:河北省石家庄市科学研究与发展计划项目(05213570);河北师范大学青年基金资助(L2005Q02) 作者简介:李俊红(1971-),女,山西运城人,河北师范大学数学与信息科学学院讲师,硕士,研究方向:并行逻辑模拟,计算机系统结构.

数电实验实验报告

数字电路实验报告

实验一 组合逻辑电路分析 一.试验用集成电路引脚图 74LS00集成电路 74LS20集成电路 四2输入与非门 双4输入与非门 二.实验内容 1.实验一 自拟表格并记录: 2.实验二 密码锁的开锁条件是:拨对密码,钥匙插入锁眼将电源接通,当两个条件同时满足时,开锁信号为“1”,将锁打开。否则,报警信号为“1”,则接通警铃。试分析密码锁的密码ABCD 是什么? X1 2.5 V A B C D 示灯:灯亮表示“1”,灯灭表示“0” ABCD 按逻辑开关,“1”表示高电平,“0”表示低电平

ABCD 接逻辑电平开关。 最简表达式为:X1=AB ’C ’D 密码为: 1001 A B C D X1 X2 A B C D X1 X2 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 三.实验体会: 1.分析组合逻辑电路时,可以通过逻辑表达式,电路图和真值表之间的相互转换来到达实验所要求的目的。 2.这次试验比较简单,熟悉了一些简单的组合逻辑电路和芯片 ,和使用仿真软件来设计和构造逻辑电路来求解。 实验二 组合逻辑实验(一) 半加器和全加器 一.实验目的 1. 熟悉用门电路设计组合电路的原理和方法步骤 二.预习内容 1. 复习用门电路设计组合逻辑电路的原理和方法步骤。 2. 复习二进制数的运算。 3. 用“与非门”设计半加器的逻辑图。 4. 完成用“异或门”、“与或非”门、“与 非”门设计全加器的逻辑图。 5. 完成用“异或”门设计的3变量判奇 电路的原理图。 三.元 件参考 U1A 74LS00D U1B 74LS00D U1C 74LS00D U1D 74LS00D U2A 74LS00D U2B 74LS00D U2C 74LS00D U3A 74LS20D X1 2.5 V X2 2.5 V VCC 5V A B C D

序列检测器

目录 第一章设计方案.........................................................1 1.1设计任务..........................................................1 1.2设计要求..........................................................1 1.2.1整体功能要求.................................................1 1.2.2测试要求.....................................................1 第二章设计思路.........................................................2 2.1数字频率计介绍....................................................2 2.2设计原理..........................................................2 2.2.1频率测量的基本原理...........................................2 2.2.2整体方框图及原理.............................................2 2.2.3序列器结构框图...............................................2 第三章模块介绍.........................................................4 3.1顶层文件模块......................................................4 3.1.1顶层文件原理.................................................4 3.1.2顶层文件模块verilog语言描述程序.............................4 3.2伪随机序列发生器模块..............................................4 3.2.1伪随机序列发生器.............................................4 3.2.2伪随机序列发生器原理.........................................5 3.2.3伪随机序列发生器模块verilog语言描述程序.....................6 3.3序列检测器模块....................................................7 3.3.1序列检测器原理...............................................7 3.3.2序列检测器模块verilog语言描述程序...........................7 第四章序列检测器的实现.................................................8 4.1序列检测器的verilog语言程序描述及仿真............................8 4.1.1序列检测器的verilog语言程序描述.............................8 4.1.2序列检测器的波形仿真.........................................9 4.2 设计中遇到的问题与解决方法.......................................10 4.2.1设计中遇到的问题.............................................10 4.2.2解决方法.....................................................10 第五章设计小结.........................................................11 5.1 心得体会..........................................................11

实验六 序列信号发生器与序列信号检测器的设计1

实验六、序列信号发生器与序列信号检测器的设计 一、实验目的 1、掌握序列发生器和检测器的工作原理; 2、初步学会用状态机进行数字系统设计。 二、实验要求 1、基本要求 1)设计一个“10001110”序列发生器; 2)设计一个“10001110”序列的检测器。 2、扩展要求 1)设计一个序列发生器,将8 位待发生序列数据由外部控制输入进行预置,从而可随时改变输出序列数据。 2)将8 位待检测预置数由按键作为外部输入,从而可随时改变检测密码。写出该检测器的VHDL 代码,并进行编译下载测试。 3)如果待检测预置数以右移方式进入序列检测器,写出该检测器的VHDL 代码(两进程符号化有限状态机)。 三、实验原理 1、序列发生器原理 在数字信号的传输和数字系统的测试中,有时需要用到一组特定的串行数字信号,产生序列信号的电路称为序列信号发生器。 本实验要求产生一串序列“10001110”。该电路可由计数器与数据选择器构成,其结构图如图6-1所示,其中的锁存输出的功能是为了消除序列产生时可能出现的毛刺现象: 图6-1 序列发生器结构图 2、序列检测器的基本工作过程: 序列检测器用于检测一组或多组由二进制码组成的脉冲序列信号,在数字通信中有着广泛的应用。当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。状态图如图6-2所示:

110序列检测器的设计及仿真实现

题目:设计110序列检测器,当输入信号时输 出,否则 一、设计思路 我们采用Moore机完成这个功能。对于触发器的选择,为了简便我们选用D触发器以及基本的门电路完成基本设计。 二、时钟同步状态机 1根据题目要求我们得到下面的状态图 状态表示的意义Q X=0 X=1 输出Z 等待1的出现 A A B 0 出现1 B A C 0 出现11 C D C 0 出现110 D A B 1 * Q 2 转移输出表 01 Q Q输入X 输出Z X=0 X=1 00 00 01 0 01 00 11 0 11 10 11 0

10 00 01 1 01Q Q * * 3 状态图如图: 通过卡诺图化简可得 转移方程: 00111=Q Q Q Q X Q X * * += 输出方程:01 Z Q Q ? = 我们选择D 触发器作为记忆电路部分 由D 触发器的特征方程: Q D * = 得激励方程: 00111D =Q Q Q X D X += 三、V erilog 程序如下: module shiyan2 (clk,x,z); input clk,x; output z; wire[1:0] state;

wire[1:0] excite; nextlogic u1(x,state,excite); statememory u2(clk,excite,state); outputlogic u3(state,z); endmodule module statememory (clk,d,q); input clk; input[1:0] d; output[1:0] q; reg[1:0] q; always @ (posedge clk) begin q <= d; end endmodule module nextlogic (x,q,d); input x; input[1:0] q; output[1:0] d; assign d[0]=(q[1]&q[0])|(q[1]&x); assign d[1]=x; endmodule

数电实验报告实验六计数译码显示综合实验整理版.docx

数电实验报告 实验六 计数、译码、显示综合实验 姓名: 学号: 班级: 院系: 指导老师: 2016年

目录 实验目的: (22) 实验器件与仪器: (22) 实验原理: (33) 用同步清零端或置数端置零或置数构成N进制计数器 (33) 用同步清零端或置数端置零或置数构成N进制计数器 (33) 实验内容: (44) 实验过程: (55) 实验总结: (66) 实验: 实验目的: 1.熟悉中规模集成电路计数器的功能及应用。 2.熟悉中规模集成电路译码器的功能及应用。 3.熟悉LED数码管及显示电路的工作原理。 4.学会综合测试的方法。 实验器件与仪器: 1.实验箱、万用表、示波器。

2.74LS160、74LS48、74LS20 实验原理: 对于计数规模小的计数器,我们使用集成触发器来设计计数器,但是如果计数器的模数达到十六以上(如六十进制)时,如果还是用集成触发器来设计的话,电路就比较复杂了。在这种情况下,我们可以用集成计数器来构成任意进制计数器。利用集成计数器的清零端和置数端实现归零,从而构成按自然态序进行计数的N进制计数器的方法。 用同步清零端或置数端置零或置数构成N进制计数器用这种方法的实现步骤如下: 1)写出状态S N-1的二进制代码。 2)求归零逻辑,即求同步清零端或置数控制端信号的逻辑表达式 3)画连线图 用同步清零端或置数端置零或置数构成N进制计数器用这种方法的实现步骤如下: 1)写出状态S N得二进制代码 2)求归零逻辑,即求异步清零端或置数控制端信号的逻辑表达式

3)画连线图 在集成计数器中,清零、置数均采用同步方法的有74LS163;均采用异步方法的有74LS193、74LS197、74LS192;清零采用异步方法、置数采用同步方法的有74LS161、74LS160;有的只具备异步清零功能,如CC4520、74LS190、74LS191;74LS90则具有异步清零和异步置9功能。 实验内容: 1.用集成计数器74LS160分别组成8421码十进制和六进制计数器, 然后连接成一个60进制计数器(6进制为高位,10进制位低位)。 使用实验箱上的LED译码显示电路显示(注意高低位顺序及最高位的处理)。用函数发生器的低频连续脉冲(调节频率为1-2Hz)作为计数器的计数脉冲。通过数码管观察计数、译码、显示电路的功能是否正确。 2.设计一个时间计数器,具有分钟和秒计时功能的计数器。

8位序列检测器的设计

八位序列检测器设计 摘要:序列检测器多用于通信系统中对禁用码的检测,或者是对所需信号的提取,即一旦检测到所需信号就输出高电平,这在数字通信领域有广泛的应运。本文介绍了一种采用单片PGA 芯片进行脉冲序列检测器的设计方法,主要阐述如何使用新兴的EDA 器件取代传统的电子设计方法,利用FPGA 的可编程性,简洁而又多变的设计方法,缩短了研发周期,同时使设计的电路体积更小功能更强大。本次课程设计设计出能够检测序列“”的序列检测器,并以此来描述序列检测器的设计过程和基于FPGA 的软件仿真。最后通过QuartusII 的波形输出对设计方案进行检测,在硬件调试经检测输出正确设计符合要求。 关键词: VHDL 序列检测QuartusⅡFPGA Abstract:Sequence detector system used for communication on the detection code disabled, or is the extraction of the desired signal, that is, once detected, the required high output signal, which in the broad field of digital communications to be transported. This paper presents a single FPGA chip with the detector pulse sequence design method, mainly on how to us e new device to replace the traditional EDA electronic design, the use of FPGA's programmability, concise and changing the design method shortens the development cycle, while allowing smaller circuit design and more powerful. The curriculum is designed to detect sequence "" sequence detectors, and detector in order to describe the sequence of the design process and FPGA- based software simulation. Finally, the output of the waveform QuartusII design testing, debugging the hardware design has been tested and meet the requirements of the correct output. Keywords:VHDL Sequence detection QuartusⅡFPGA

北邮-数电实验报告

北邮-数电实验报告

数字电路实验报告 学院:信息与通信工程 专业:信息工程 班级:2013211125 学号:2013210681 姓名:袁普

②:仿真波形图以及分析 波形图: 波形分析:通过分析ab ci三个输入在8中不同组合下的输出,发现与全加器的真值表吻合,说明实现了全加器的逻辑功能。同时看见波形中出现了毛刺(冒险),这也与事实一致。 ③:故障及问题分析 第一次在做全加器的时候发现找不到已经生成的半加器模块,后来发现是因为在建立工程时这两个项目没有建在同一个文件夹里,在调用的时候就找不到。后来我将全加器工程建在同一个文件夹里解决了此问题。

实验二:用VHDL设计和实现组合逻辑电路 一:实验要求 ①:用VHDL设计一个8421码转换为格雷码的代码转换器,仿真验证其功能。 ②:用VHDL设计一个4位二进制奇校验器,要求在为奇数个1时输出为1,偶数个1时输出为0,仿真验证其功能。 ③:用VHDL设计一个数码管译码器,仿真验证其功能,下载到实验板测试,要求用拨码开关设定输入信号,数码管显示输出信号,并且只使一个数码管有显示,其余为熄灭状态。 二:故障及问题分析 在刚开始实现让一个数码管显示的时候,我本来准备再设置6个输入和输出,通过实验板上的拨码来输入信息分别控制不同的数码管的的开闭状态,但是后来发现这样效率很低而且实验板上的拨码开关数量根本不够。在老师的提醒下,我最终在VHDL里直接增加了一个向量输出”011111”来直接控制cat0~5六个管脚,从而达到了实验的要求。

实验三:用VHDL设计和实现时序逻辑电路 一:实验要求 ①:用VHDL语言设计实现一个8421十进制计数器,要求有高电平复位功能,仿真验证其功能。 ②:用VHDL语言设计实现一个分频系数为12,输出为占空比50%方波的分频器,有高电平复位功能,仿真验证其功能。 ③:将(1),(2)和数码管译码器三个电路进行连接,仿真验证其功能,并下载到实验板进行测试,要求第三个数码管显示数字。二:报告内容 ①实验三(3)模块端口说明及模块代码 模块一:div12为一个有高电平复位功能的分频系数为12的分屏器,其输出是一个占空比50%的方波。此模块输入连接一个时钟输入,即可在输出端得到一个周期更大的方波输出。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity div12 is port( clear,clk:in std_logic; clk_out:out std_logic ); end div12; architecture struct of div12 is signal temp:integer range 0 to 5; signal clktmp:std_logic; begin process(clk,clear) begin if(clear='1') then

实验三_用状态机实现序列检测器的设计

实验三用状态机实现序列检测器的设计 一、实验目的: 用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。 二、原理说明: 序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出a,否则输出b。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。例3-1描述的电路完成对序列数"11100101"的。当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“a”,否则仍然输出“b”。 【例3-1】 //顶层文件: module XULIEQI(clk,reset,din8,LED7S); input clk; input reset; input [7:0] din8; output [6:0] LED7S; wire [3:0] AB; xulie u1 (clk, din8, reset, din); schk u2 (din,clk,reset,AB); decled7s u3 (AB,LED7S); endmodule //前端预置8位数据输入: module xulie(clk, din8, reset, din); input clk; input[7:0] din8;

input reset; output din; parameter s0 = 3'b000, s1 = 3'b001, s2 = 3'b010, s3 = 3'b011, s4 = 3'b100, s5 = 3'b101, s6 = 3'b110, s7 = 3'b111; reg[2:0] cur_state,next_state; reg din; always @ (posedge clk or negedge reset) if(!reset) cur_state <= s0; else cur_state <= next_state; always @ (cur_state or din8 or din ) begin case (cur_state) s0 : begin din <= din8[7]; next_state <= s1; end s1 : begin din <= din8[6]; next_state <= s2; end s2 : begin din <= din8[5]; next_state <= s3; end s3 : begin din <= din8[4]; next_state <= s4; end s4 : begin din <= din8[3]; next_state <= s5;

相关文档
最新文档