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

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

数字电路与逻辑设计实验

实验名称:序列信号检测器的设计与实现

学院: 信息与通信工程学院

班级: xxxxxxxxxx

学号: xxxxxxxxxx

班内序号: xx

姓名大学霸

一、实验课题

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

二、实验任务及设计要求

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

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

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

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

三、设计思路与过程

实验需要4个端口,时钟输入clk,数据输入d_in,输出f。根据老师的要求后面还加入了时钟显示clk_out来保证数据输入在时钟上升沿之前

1、设计思路

序列检测器有输入信号d_in和输出信号f。输入输出的的逻辑关系为:当外部输入x第一个为“1”,外部输出Z为“0”;当外部输入x第二个为“0”,外部输出Z为“0”;当外部输入x第三个为“1”,外部输出Z才为“1”。要判断输入序列中的一段是否为“101”,电路需要用不同的状态来标记。

假设电路的初始状态A,d_in输入第一个“1”,检测器状态由A转换到B,B代表101序列中的第一个“1”,输出为f=0,如果之后继续输入“1”还会保持在这个状态;d_in输入“0”,检测器由B转换到C,C代表101序列中的“0”,输出f=0;d_in输入第三个值“1”时检测到完整的101序列,输出f=1,同时因为输入为“1”,状态由C又转换回B;如果d_in输入第三个值为“0”,状态由C退回到初始状态A,输出f=0。以上为序列检测器的功能分析。由此可以画出序列检测器的状态图

状态表如下:

2、实验过程

(1) 用计算机QuartusII 9.0软件新建工程,新建VHDL,写入程序代码,运行调试直至编译成功。

(2) 新建波形仿真软件,设置endtime,输入输出信号,运行,观察仿真结果确认无误。

(3) 将实验板与计算机相连,设置管脚后再次编译工程。

(4) 下载至实验板,检查其功能准确无误。

四、VHDL代码

单进程状态机

P1:process(clk_tmp)—分频过后的时钟信号

begin

if (clk_tmp'event and clk_tmp='1')then

case state is

when A=>if(d_in='1')then state<=B;--A状态

else state<=A;

end if;

f<='0';

when B=>if(d_in='1')then state<=B;--B状态

else state<=C;

end if;

f<='0';

when C=>if(d_in='1')then state<=B;f<='1';--C状态

else state<=A;f<='0';

end if;

end case;

end if;

end process;

分频器:实验板提供的2Hz低频信号感觉还是有点快,所以自己加入了上节课用到的50M分频器,将时钟信号调整成1Hz,同时将时钟信号显示在实验板上,方便观测

p2:process(clk)

begin

if (clk'event and clk='1') then

if cnt=24999999 then

cnt<=0;

clk_tmp<= not clk_tmp;

else

cnt<=cnt+1;

end if;

end if;

end process;

clk_out<=clk_tmp;

完整的结构体定义

architecture mealy of d_101 is

type state_type is(A,B,C);

signal state:state_type;

signal cnt : integer range 0 to 24999999; signal clk_tmp : std_logic;

begin

P1:process(clk_tmp)

begin

if (clk_tmp'event and clk_tmp='1')then

case state is

when A=>if(d_in='1')then state<=B;

else state<=A;

end if;

f<='0';

when B=>if(d_in='1')then state<=B;

else state<=C;

end if;

f<='0';

when C=>if(d_in='1')then state<=B;f<='1'; else state<=A;f<='0';

end if;

end case;

end if;

end process;

p2:process(clk)

begin

if (clk'event and clk='1') then

if cnt=24999999 then

cnt<=0;

clk_tmp<= not clk_tmp;

else

cnt<=cnt+1;

end if;

end if;

end process;

clk_out<=clk_tmp;

end mealy;

五、仿真波形图及其分析

分析如下

如图所示,当输入信号序列d_in为010101101001010时,能检测到101的有010101101001010,其中第四个值“1”,为两个“101”信号所共用。此时输出信号检测的结果f为000101001000010,在第4,6,9,14个时钟周期检测到目标信号,仿真结果准确无误,说明实现了题目的要求,完成对101信号的检测。由于时钟是上升沿触发,检测器的状态不受干扰,工作稳定。

六、故障及问题分析

故障1、波形仿真的输出波形全是0

原因:输入信号与时钟信号之间没有匹配

解决方法:

要想让输入信号与时钟信号对应,适当的修改设定周期,使其满足一定的关系。把输入信号d_in周期设置成时钟信号clk周期的两倍,但发现输入信号为0101010……,不满足随机序列的形式,需要自己手动将d_in的一些部分单独置1或0,这样能更全面直观地检测其功能。

故障2、下载到实验板后出错

原因:设置管脚后没有编译

解决方法:在QuartusII9.0软件中设置管脚之后,再次编译工程无误后,下载到实验开发板上。

故障3、拨码输入信号跟不上时钟信号

原因:实验板提供的2Hz信号翻转太快

解决方法:我在原来设计的VHDL程序里加入50M分频器,让实际的时钟信号变为1Hz,这样拨动拨码开关的速度就能跟得上时钟改变了。实验中还用了发光二极管来显示当前时钟的状态,亮灭分别表示高低电平,可以根据二极管状态来判定时钟的上升沿,输入信号d_in仅在上升沿有效

七、总结和结论

总结了之前的两次VHDL实验得到的经验,这次小的综合实验感觉还挺顺利的。这次的实验需要我们了解有限状态机的相关知识,在实验之前我预习了实验教程P72~80关于状态机的设计步骤与实例,然后按照步骤完成实验的设计,掌握了这部分的知识,了解到状态机包括时序逻辑电路(存储部分)以及组合逻辑电路(控制部分)

进行VHDL实验,理论分析是十分重要的一环,只有逻辑分析透彻无误,才能用语言进行描述,进而用硬件实现。比如这个实验中,三个状态与转换关系的设计是实验的关键,用到了在数电理论课上学到的一般时序电路的设计知识,只有明白了实验背后的逻辑思想,才进行VHDL语言编写,仿真等等在这次实验中,我也发现了一些我的缺点,比如不够细心,VHDL代码调试中出现些小错误,自己发现不了,如果下次能细心点,就完全可以避免,在以后的实验中,我会尽量减少实验中的错误,顺利完成实验任务。同时我也发现了每学一门新知识的重要性,只有当所学的知识可以用来解决实际问题的时候,才是学到精处。通过不断的练习与应用,加深自己的理解,提高能力,学为所用

八、对本课程的建议

完成了本学期四次数电基础实验课程之后,学到了很多知识,掌握了Quartus II软件的使用,完成了一些简单的实验,感觉每节课自己都有一些收获。同时为下学期的数电综合实验及以后一些硬件设计打下了基础。在实验课结束之际有一些自己的建议。

1、希望这门课能像电子电路实验那样进行周末实验预约,对一些想要在课后单独练习的同学提供机会。

2、实验的进度要与理论课的进度一致,记得做第三次实验时序逻辑电路设计时,我们才正学习这部分知识,虽然实验完成了,但对其中的原理还不是非常的了解。

3、我发现每节课都有部分剩余的时间,如果有可能的话,可以利用这些时间讲一些这个学科前沿的内容,丰富我们的视野

多功能信号发生器设计报告.doc

重庆大学城市科技学院电气学院EDA课程设计报告 题目:多功能信号发生器 专业:电子信息工程 班级:2006级03班 小组:第12组 学号及姓名:20060075蒋春 20060071冯志磊 20060070冯浩真 指导教师:戴琦琦 设计日期:2009-6-19

多功能信号发生器设计报告 一、设计题目 运用所掌握的VHDL语言,设计一个信号发生器,要求能输出正弦波、方波、三角波、锯齿波,并且能改变其输出频率以及波形幅度,能在示波器上有相应波形显示。 二、课题分析 (1).要能够实现四种波形的输出,就要有四个ROM(64*8bit)存放正弦波、方波、三角波、锯齿波的一个周期的波形数据,并且要有一个地址发生器来给ROM提供地址,ROM给出对应的幅度值。 (2).因为要设计的是个时序电路,所以要实现输出波形能够改变频率,就必须对输入的信号进行分频,以实现整体的频率的改变。 (3).设计要求实现调幅,必须对ROM输出的幅度信息进行处理。最简单易行的方法是对输出的8位的幅度进行左移(每移移位相当于对幅度值行除以二取整的计算),从而达到幅度可以调节的目的。同时为了方便观察,应再引出个未经调幅的信号作为对比。 三、设计的具体实现 1、系统概述 系统应该由五个部分组成:分频器(DVF)、地址发生器(CNT6B)、四个ROM 模块(data_rom_sin、data_rom_sqr、data_rom_tri、data_rom_c)、四输入多路选择器mux、幅度调节单元w。 2、单元电路设计与分析 外部时钟信号经过分频器分频后提供给地址发生器和ROM,四个ROM的输出接在多路选择器上,用于选择哪路信号作为输出信号,被选择的信号经过幅度调节单元的幅度调节后连接到外部的D/A转换器输出模拟信号。 (1)分频器(DVF) 分频器(DVF)的RTL截图

序列信号检测器

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合 设计□创新实验日期:实验成绩:实验三序列信号发生检测器 一、实验目的 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

函数信号发生器课程设计报告书

信号发生器 一、设计目的 1.进一步掌握模拟电子技术的理论知识,培养工程设计能力 和综合分析问题、解决问题的能力。 2.基本掌握常用电子电路的一般设计方法,提高电子电路的 设计和实验能力。 3.学会运用Multisim10仿真软件对所作出的理论设计进行 仿真测试,并能进一步完善设计。 4.掌握常用元器件的识别和测试,熟悉常用仪表,了解电路 调试的基本方法。 二、设计容与要求 1.设计、组装、调试函数信号发生器 2.输出波形:正弦波、三角波、方波 3.频率围:10Hz-10KHz围可调 4.输出电压:方波V PP<20V, 三角波V PP=6V, 正弦波V PP>1V 三、设计方案仿真结果 1.正弦波—矩形波—三角波电路 原理图:

首先产生正弦波,再由过零比较器产生方波,最后由积分电路产生三角波。正弦波通过RC串并联振荡电路(文氏桥振荡电路)产生,利用集成运放工作在非线性区的特点,由最简单的过零比较器将正弦波转换为方波,然后将方波经过积分运算变换成三角波。 正弦—矩形波—三角波产生电路: 总电路中,R5用来使电路起振;R1和R7用来调节振荡的频率,R6、R9、R8分别用来调节正弦波、方波、三角波的幅值。左边第一个运放与RC串并联电路产生正弦波,中间部分为过零比较器,用来输出方波,最好一个运放与电容组成积分电路,用来输出三角波。

仿真波形: 调频和调幅原理 调频原理:根据RC 振荡电路的频率计算公式 RC f o π21 = 可知,只需改变R 或C 的值即可,本方案中采用两个可变电阻R1和R7同时调节来改变频率。 调幅原理:本方案选用了最简单有效的电阻分压的方式调幅,在输出端通过电阻接地,输出信号的幅值取决于电阻分得的电压多少。其最大幅值为电路的输出电压峰值,最小值为0。 RC 串并联网络的频率特性可以表示为 ) 1(311112 1 2 RC RC j RC j R C j R RC j R f Z Z Z U U F ωωωωω-+=++++=+= = ? ? ? 令,1 RC o =ω则上式可简化为) ( 31 ω ωωωO O j F -+ = ? ,以上频率特性可 分别用幅频特性和相频特性的表达式表示如下:

设计一个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四种状态,其编码后的状态转换图和状态转换表:

序列信号发生器分析

华南师范大学实验报告 学生姓名林竞浩李瑜贤学号20102804016 专业多媒体与网络技术年级、班级2010级4班 课程名称模拟电路与数字电路实验项目555定时器的应用 实验类型□验证□设计□综合实验时间2011年月日 实验指导老师实验评分 一、实验目的 1 学会构建序列发生器的基本方法 2掌握对序列信号发生器序列信号的测试分析方法。 二、实验仪器 安装有Multisim10软件的个人电脑 三、实验原理 序列信号器产生序列信号,有多种方法。本实验采用计数器和数据选择器构成发生。图一中四位二进制同步计数器74S163状态输出端QC,QB,QA输出的数据,送入8选1数据选择器74S151的地址输入端ABC,需要获取产生的序列信号接至数据选择器74S151数据输入端D0-D7,数据从Y或W端输出,实验电路原理图如下

四、实验步骤 1设定产生周期为00010111序列信号。 2打开电脑Multisim10操作平台,从TTL元件库中取出74S163,74S151,显示器件库中取下带译码器的数码管及探针等器件,以及逻辑分析仪,按实验电路图连接好。 3设定时钟信号发生器V1的频率为100HZ .调整好实验电路后,数码管有0-7计数显示,探针有闪动。 4双击打开逻辑分析仪工作界面,以备测试波形。调整逻辑分析仪时钟源为外同步。正常后,观察数码管,探针,逻辑分析仪波形的变化,把相关数据填入表1中 输入时钟脉冲计数器输出逻辑指示灯数码管显示 QC QB QA Y 0 0 0 0 N 0 1 0 0 1 N 1 2 0 1 0 N 2 3 0 1 1 Y 3 4 1 0 0 N 4 5 1 0 1 Y 5

函数信号发生器设计报告

函数信号发生器设计报告 一、 设计要求 设计制作能产生正弦波、方波、三角波等多种波形信号输出的波形发生器,具体要求: (1) 输出波形工作频率范围为2HZ ~200KHZ ,且连续可调; (2) 输出频率分五档:低频档:2HZ ~20HZ ;中低频档:20HZ ~200HZ ; 中频档:200HZ ~2KHZ ;中高频档:2KHZ ~20KHZ ;高频档:20KHZ ~200KHZ 。 (3) 输出带LED 指示。 二、 设计的作用、目的 1. 掌握函数信号发生器工作原理。 2. 熟悉集成运放的使用。 3. 熟悉Multisim 软件。 三、 设计的具体实现 3.1函数发生器总方案 采用分立元件,设计出能够产生正弦波、方波、三角波信号的各个单元电路,利用Multisim 仿真软件模拟,调试各个参数,完成单元电路的调试后连接起来,在正弦波产生电路中加入开关控制,选择不同档位的元件,达到输出频率可调的目的。 总原理图:

3.2单元电路设计、仿真 Ⅰ、RC桥式正弦波振荡电路 图1:正弦波发生电路 正弦波振荡器是在只有直流供电、不加外加输入信号的条件下产生正弦波信号的电路。 正弦波产生电路的基本结构是:引入正反馈的反馈网络和放大电路。其中:接入正反馈是产生振荡的首要条件,它又被称为相位条件;产生振荡必须满足幅度条件;要保证输出波形为单一频率的正弦波,必须具有选频特性;同时它还应具有稳幅特性。因此,正弦波产生电路一般包括:放大电路、反馈网络、选频网络、稳幅电路四个部分。根据选频电路回路的不同,正弦波振荡器可分为RC正弦波振荡器、LC正弦波振荡器和石英晶体振荡器。其中,RC正弦波振荡器主要用于产生中低频正弦波,振荡频率一般小于1MHz,满足本次设计要求,故选用RC 正弦波振荡器。

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作出状态转换表及状态转换图如下:

序列检测器实验报告

序列检测器设计 实验内容: 设计一个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-),女,山西运城人,河北师范大学数学与信息科学学院讲师,硕士,研究方向:并行逻辑模拟,计算机系统结构.

三位二进制加法计数器、序列信号发生器的设计、用集成芯片设计一个256进制加法计数器

目录 1课程设计的目的与作用 (1) 2设计任务 (1) 2.1同步计数器 (1) 2.2序列信号发生器 (1) 3设计原理 (1) 3.1同步计数器 (1) 3.1.1加法计数器 (2) 3.1.2减法计数器 (2) 3.1.3用集成芯片设计一个256进制的加法器 (2) 3.2序列信号发生器 (3) 4实验步骤 (3) 4.1同步计数器 (3) 4.1.1加法计数器 (4) 4.1.2减法计数器 (7) 4.1.3用集成芯片设计一个256进制的加法器 (10) 4.2序列信号发生器 (11) 5设计总结与体会 (14) 6参考文献 (15)

1课程设计的目的与作用 1.了解同步计数器及序列信号发生器工作原理; 2.掌握计数器电路的分析,设计方法及应用; 3.掌握序列信号发生器的分析,设计方法及应用; 2设计任务 2.1同步计数器 1.使用设计一个循环型3位2进制加法计数器,其中无效状态为(001,010),组合电路 选用与门和与非门等。 2.根据自己的设计接线。 3.检查无误后,测试其功能。 2.2序列信号发生器 1.使用设计一个能循环产生给定序列的序列信号发生器,其中发生序列(1000001),组 合电路选用与门和与非门等。 根据自己的设计接线。 2.检查无误后,测试其功能。 3设计原理 3.1同步计数器 (1)计数器是用来统计输入脉冲个数电路,是组成数字电路和计算机电路的基本时序逻辑部件。计数器按长度可分为:二进制,十进制和任意进制计数器。计数器不仅有加法计数器,也有减法计数器。如果一个计数器既能完成累加技术功能,也能完成递减功能,则称其为可逆计数器。在同步计数器中,个触发器共用同一个时钟信号。 (2)时序电路的分析过程:根据给定的时序电路,写出各触发器的驱动方程,输出方程,

信号发生器课程设计报告

目录 一、课题名称 (2) 二、内容摘要 (2) 三、设计目的 (2) 四、设计内容及要求 (2) 五、系统方案设计 (3) 六、电路设计及原理分析 (4) 七、电路仿真结果 (7) 八、硬件设计及焊接测试 (8) 九、故障的原因分析及解决方案 (11) 十、课程设计总结及心得体会 (12)

一、课题名称:函数信号发生器的设计 二、内容摘要: 函数信号发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。它可以产生多种波形信号,如正弦波,三角波,方波等,因而此次课程设计旨在运用模拟电子技术知识来制作一个能同时输出正弦波、方波、三角波的信号发生器。 三、设计目的: 1、进一步掌握模拟电子技术知识的理论知识,培养工程设计能力和综合分析能力、解决问题的能力。 2、基本掌握常用电子电路的一般设计方法,提高电子电路的设计和实验能力。 3、学会运用Multisim仿真软件对所做出来的理论设计进行仿真测试,并能进一步解决出现的基本问题,不断完善设计。 4、掌握常用元器件的识别和测试,熟悉万用表等常用仪表,了解电路调试的基本方法,提高实际电路的分析操作能力。 5、在仿真结果的基础上,实现实际电路。 四、设计内容及要求: 1、要求完成原理设计并通过Multisim软件仿真部分 (1)RC桥式正弦波产生电路,频率分别为300Hz、1KHz、10KHz、500KHz,输出幅值300mV~5V可调、负载1KΩ。 (2)占空比可调的矩形波电路,频率3KHz,占空比可调范围10%~90%,输出幅值3V、负载1KΩ。 (3)占空比可调的三角波电路,频率1KHz,占空比可调范围10%~90%,输出幅值3V、负载1KΩ。 (4)多用信号源产生电路,分别产生正弦波、方波、三角波,频率范围

实验六 序列信号发生器与序列信号检测器的设计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

基于51单片机的信号发生器设计报告

基于51单片机的信号发生器设计报告 二零一四年十二月十一日

摘要 根据题目要求以及结合实际情况,本文采用一种以AT89C51单片机为核心所构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的频率可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。本设计经过测试,性能和各项指标基本满足题目要求。 关键词:信号发生器 DAC0832芯片 LM358运放 89C51芯片

目录 摘要...................................................................... 目录...................................................................... 第一章绪论................................................................. 1.1单片机概述........................................................... 1.2信号发生器的概述和分类.............................................. 1.3问题重述及要求....................................................... 第二章方案的设计与选择................................................... 2.1方案的比较........................................................... 2.2设计原理 ............................................................. 2.3设计思想 ............................................................. 2.4实际功能 ............................................................. 第三章硬件设计............................................................ 3.1硬件原理框图......................................................... 3.2主控电路 ............................................................. 3.3数、模转换电路....................................................... 3.4按键接口电路......................................................... 3.5时钟电路 ............................................................. 3.6显示电路 ............................................................. 第四章软件设计............................................................ 4.1程序流程图........................................................... 参考文献.................................................................... 附录1 电路原理图 .......................................................... 附录2 源程序............................................................... 附录3 器件清单......................................................

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

锯齿波信号发生器课程设计报告

锯齿波信号发生器的设计 技术指标要求: 频率f=500Hz ,V p-p =10V 。 该课题的内容: (一)原理结构说明 一、滞回比较器 在单限比较器中,输入电压在阈值电压附近的任何微小变化,R 都将引起输出电压的跃变,不管这种微小变化是来源于输入信号还是外部干扰。因此,虽然单限比较器很灵敏,但是抗干扰能力差。滞回比较器具有滞回特性,即具有惯性,因此也就具有一定抗干扰能力。从反相输入端输入的滞回比较器电路如图(a)所示,滞回比较器电路中引入了正反馈。 (b)电压传输特性 从集成运放输出端的限幅电路可以看出,uo =±U Z 。集成运放反相输入端电位u N =u I ,同相输入端电位 根据“虚短”u N =u P ,求出的u I 就是阈值电压,因此得出 U Z U Z R 1+R 2 u P = R 1 U Z ±U T = ± R 1

当u I<-U T,u N+U T,uo=-U Z。 当u I>+U T,u N>u P,因而uo=-U Z,所以u P=-U T。u I<-U T,uo=+U Z。 可见,uo从+U Z跃变为-U Z和uo从-U Z跃变为+U Z的阈值电压是不同的,电压传输特性如图(b)所示。 在我们所设计的锯齿波发生器中,滞回比较器由运放U1和电阻 Rb,R1,R4所组成。 通过由稳压管D1,D2和限流电阻R3构成的输出限幅电路,从而输出方波波 形。 其中调节电阻Rb,R1可改变锯齿波的幅值和一定范围的频率。调节滞回 比较器的稳幅输出D1,D2值,可调整方波输出幅值,可改变积分时间,从 而在一定范围内改变锯齿波的频率。 二、积分电路 如图所示的积分运算电路中,由于集成运放的同相输入端通过R’接 地,u N=u P=0,为“虚地”。 电路中电容C的电流等于流过电 阻R的电流 输出电压与电容上电压的关系为 u o=-u c 而电容上电压等于其电流的积分,故

EDA实验报告实验三:序列信号发生器与检测器设计

实验三序列信号发生器与检测器设计 一、实验目的 1.学习一般有限状态机的设计; 2.实现串行序列的设计。 二、设计要求 1.先设计0111010011011010序列信号发生器; 2.再设计一个序列信号检测器,若系统检测到串行序列11010则输出为“1”,否则输出为“0”,并对其进行仿真和硬件测试。 三、实验设备 PC机,Quartu eⅱ软件,实验箱 四、实验原理 1、序列信号发生器 复位信号CLRN。当CLRN=0时,使CNT=0000,当CLRN=1时,不影响程序运行,每来一个CLK脉冲CNT加一。 2、序列信号检测器 状态转移图:

五、实验步骤 1、信号发生器 1)建立工作库文件夹,输入设计项目VHDL代码,如下: L I B R A R Y I E E E; U S E I E E E.S T D_L O G I C_1164.A L L; U S E I E E E.S T D_L O G I C_A R I T H.A L L; U S E I E E E.S T D_L O G I C_U N S I G N E D.A L L; E N T I T Y X L S I G N A L16_1I S P O R T(C L K,C L R N:I N S T D_L O G I C; Z O U T:O U T S T D_L O G I C); E N D X L S I G N A L16_1; A R C H I T E C T U R E o n e O F X L S I G N A L16_1I S S I G N A L C N T:S T D_L O G I C_V E C T O R(3D O W N T O0); S I G N A L Z R E G:S T D_L O G I C; B E G I N P R O C E S S(C L K,C L R N) B E G I N I F(C L R N='0')T H E N C N T<="0000";E L S E I F(C L K'E V E N T A N D C L K='1')T H E N C N T<=C N T+'1'; E N D I F;

课程设计------序列检测器

电子课程设计 ------序列检测器 学院: 专业班级: 姓名: 学号: 指导老师: 2012年12月

目录 一、设计任务与要求 (1) 二、总体框图 (1) 三、选择器件 (1) 四、功能模块 (1) 1、脉冲发生器 (1) 2、序列检测器 (2) 3、分频器 (3) 五、总体设计电路图 (5) 1、总体电路原理图 (5) 2、Q UARATU SII的仿真结果图与分析 (5) 3、管脚分配 (6) 4、E DA实验箱验证 (6)

序列检测器 一、任务与要求 设计一个序列检测器,在上升沿的作用下,输入一组二进制码,与预先设置的吗“11100101”一致时,输出A,不同时则输出B,(在检测过程中,任何一位不相等都将回到初始状态重新开始检测。) 二、总体框图 脉冲发生器:为检测器提供脉冲。 检测器:具有存储功能。 数码显示器:显示输出A或B 方案:设计手动的脉冲发生器为检测器提供脉冲,使其正常工作,然后设计检测器存储的数字为“11100101”再用译码器使其显示在数码管上,这就要求检测器必须记住前一次的正确吗及正确序列,直到在连续的检测中所收到的每一位吗与预置数的对应码相同,否则重新开始检测。 三、选择器件 芯片:EDA实验箱中EP1C12核心板;七段数码管等。 外围电路:将IO_CLK用导线连接到IO3上,将IO9,IO10用导线连接到两个LED灯上,接上电源下载完成即可验证。 四、功能模块 1.脉冲发生器 VHDL程序: LIBRARY ieee; use ieee.std_logic_1164.all; entity pulse is port(pul,M: in std_logic; nq,q: out std_logic --VGA:out std_logic_vector(3 downto 0) ); end pulse; architecture a of pulse is signal temp: std_logic; begin --VGA <= "0001";' q<=temp; nq<=not temp; process(m)