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

合集下载

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

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

数字电路与逻辑设计实验实验名称:序列信号检测器的设计与实现学院: 信息与通信工程学院班级: 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,输入输出信号,运行,观察仿真结果确认无误。

序列信号发生器设计步骤

序列信号发生器设计步骤

序列信号发生器设计步骤根据要产生的序列得到串行输入表达式,再根据此表达式得到串行输入的电路,这是一个组合电路,可以用逻辑门电路实现,也可以用MSI芯片实现。

因此设计方案又分为两种:一种是用移位寄存器和必要的门电路实现;另一种是用移位寄存器和MSI芯片(如数据选择器、译码器)实现。

设计步骤如下:第一步:首先根据给定序列信号的长度M,决定所需要的最小触发器的数目K:。

第二步:验证并确定实际需要的触发器数目k。

方法是对给定的序列信号每k位分为一组,选定一组后,向前移一位,按k位再取一组,总共取M组。

如果这M组数字,都不重复,就可以使用已经选择的k;否则,就使k = k + 1。

再重复以上的过程。

第三步:作状态转移表,求反馈函数,检查自启动。

序列信号检测实验报告

序列信号检测实验报告

一、实验目的1. 理解序列信号检测的基本原理。

2. 掌握序列信号检测的方法和步骤。

3. 通过实验验证序列信号检测的准确性。

4. 分析实验结果,探讨影响序列信号检测准确性的因素。

二、实验原理序列信号检测是数字信号处理中的一个重要领域,主要研究如何从含有噪声的信号中检测出特定的序列信号。

本实验采用模拟信号检测的方法,通过设计序列信号发生器和检测器,实现对特定序列信号的检测。

三、实验器材1. 信号发生器2. 数据采集器3. 计算机及软件(如MATLAB等)4. 信号分析仪四、实验步骤1. 设计序列信号发生器:- 根据实验要求,设计特定的序列信号,如“1101”。

- 使用信号发生器产生该序列信号。

2. 设计序列信号检测器:- 设计一个检测器,用于检测序列信号。

- 检测器可以采用状态机或有限状态机(FSM)实现。

3. 实验设置:- 将信号发生器产生的序列信号输入到数据采集器。

- 将数据采集器采集到的信号输入到计算机进行后续处理。

4. 信号处理:- 使用MATLAB等软件对采集到的信号进行预处理,如滤波、去噪等。

- 对预处理后的信号进行序列信号检测。

5. 结果分析:- 分析实验结果,比较检测器检测到的序列信号与原始序列信号是否一致。

- 分析影响序列信号检测准确性的因素,如噪声水平、信号带宽等。

五、实验结果与分析1. 实验结果:- 通过实验,成功检测到了设计的序列信号“1101”。

- 检测到的序列信号与原始序列信号基本一致。

2. 结果分析:- 实验结果表明,所设计的序列信号检测器能够有效地检测出特定序列信号。

- 影响序列信号检测准确性的因素主要包括:- 噪声水平:噪声水平越高,检测难度越大。

- 信号带宽:信号带宽越窄,检测难度越大。

- 序列长度:序列长度越长,检测难度越大。

六、实验结论1. 序列信号检测实验验证了序列信号检测的基本原理和方法。

2. 通过实验,掌握了序列信号检测的步骤和技巧。

3. 实验结果表明,所设计的序列信号检测器能够有效地检测出特定序列信号。

(完整word版)实验四:序列发生器与检测器的设计

(完整word版)实验四:序列发生器与检测器的设计

南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合▉设计□创新实验日期:11.16__ 实验成绩:实验四序列信号发生器与检测器设计一、实验目的1、了解序列检测器的工作原理。

2、掌握时序电路设计中状态机的应用。

3、进一步掌握用V HDL 语言实现复杂时序电路的设计过程。

二、实验内容要求用状态机设计实现串行序列检测器的设计,先设计(可用原理图输入法)序列信号发生器,产生序列:0111010011011010;再设计检测器,若检测到串行序列11010则输出为“1”,否则输出为“0”,并对其进行仿真和硬件测试。

1、序列检测器用于检测一组或多组有二进制码组成的脉冲序列信号。

这种检测要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位都与预置数的对应码相同。

在检测过程中,任何一位不相等都将回到相应状态,重新开始检测。

序列发生器和检测器分别用上升沿和下降沿比较好,否则会在开始多一位或少一位。

2、信号发生器和检测器工程文件要保存在同一文件夹中才能调用;仿真时尽量避开发生信号和检测信号同时跳变,避免毛刺出现。

2、在实验箱上验证时,设计的输入可用脉冲键+琴键组合输入任意序列,并用LED灯串行移位显示出来,随后将检测到的11010数目用静态数码管显示出来。

三、实验原理序列检测器的作用就是从一系列的码流中找出用户希望出现的序列,该电路的核心部分就是状态机转换检模块,通过VHDL语言的CASE-WHEN顺序语句判断输入条件来选择某一状态的执行,达到以此判断执行的效果。

其中,本实验所设计状态机的状态转换图如下4-3所示。

图4-3 序列信号检测器状态转换图由图可以看出,初始状态为S0,当检测到输入的序列为1时,状态跳转至S1;检测到0时,原地等待;在S1状态下,当检测到0时跳转至S0,检测到1时跳转至S2;在S2状态下,当检测到0时跳转至S3,检测到1时跳转至S2;在S3状态下,当检测到1时跳转至S4,检测到0时仍跳转至S0;在S4状态下,当检测到0时跳转至S5,检测到1时跳转至S2;在S5状态下,当检测到0时跳转至S0,检测到1时跳转至S1;即实现了对序列“11010”的检测。

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

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

Nb大学实验报告学生姓名:EDA教父学号:6100xxxx99 专业班级:通信实验类型:□验证□综合□设计□创新实验日期:2012-10-15 实验成绩:实验三序列信号发生器与检测器设计一、实验目的1、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法;2、学习有限状态机法进行数字系统设计;3、学习使用原理图输入法进行设计二、设计要求完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现一个串行序列信号发生器和一个序列信号检测器的功能,具体要求如下:1、先用原理图输入法设计0111010011011010序列信号发生器,其最后6BIT数据用LED显示出来;2、再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“11010”则输出为“1”,否则输出为“0”;三、主要仪器设备1、微机1台2、QuartusII集成开发软件1套3、EDA实验装置1套四、实验原理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 SP O R T(C L K,C L R N:I N S T D_L O G I C;L E D:B U F F E R S T D_L O G I C_V E C T O R(5D O W N T O0);L E D O U T:O U T S T D_L O G I C_V E C T O R(5D O W N T O0);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 SS 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;--S I G N A L C N T8:S T D_L O G I C_V E C T O R(2D O W N T O0);B E G I Np r o c e s s(c l K)b e g i nc a s e c n t i sW H E N"1000"=>L E D<="101001";W H E N"1001"=>L E D<="010011";W H E N"1010"=>L E D<="100110";W H E N"1011"=>L E D<="001101";W H E N"1100"=>L E D<="011011";W H E N"1101"=>L E D<="110110";W H E N"1110"=>L E D<="101101";W H E N"1111"=>L E D<="011010";W H E N"0000"=>L E D<="110100";W H E N"0001"=>L E D<="101001";W H E N"0010"=>L E D<="010011";W H E N"0011"=>L E D<="100111";W H E N"0100"=>L E D<="001110";W H E N"0101"=>L E D<="011101";W H E N"0110"=>L E D<="111010";W H E N"0111"=>L E D<="110100";W H E N O T H E R S=>L E D<=N U L L;E N D C A S E;E N D P R O C E S S;P R O C E S S(C L K,C L R N)B E G I NI F(C L R N='0')T H E N C N T<="0000";E L S EI F(C L K'E V E N T A N D C L K='1')T H E NC N T<=C N T+'1';E N D I F;E N D I F;E N D P R O C E S S;P R O C E S S(C N T)B E G I NW H E N"0000"=>Z R E G<='0';W H E N"0001"=>Z R E G<='1';W H E N"0010"=>Z R E G<='1';W H E N"0011"=>Z R E G<='1';W H E N"0100"=>Z R E G<='0';W H E N"0101"=>Z R E G<='1';W H E N"0110"=>Z R E G<='0';W H E N"0111"=>Z R E G<='0';W H E N"1000"=>Z R E G<='1';W H E N"1001"=>Z R E G<='1';W H E N"1010"=>Z R E G<='0';W H E N"1011"=>Z R E G<='1';W H E N"1100"=>Z R E G<='1';W H E N"1101"=>Z R E G<='0';W H E N"1110"=>Z R E G<='1';W H E N"1111"=>Z R E G<='0';W H E N O T H E R S=>Z R E G<='0';E N D C A S E;E N D P R O C E S S;Z O U T<=Z R E G;L E D O U T<=L E D;e n d o n e;2)对其进行波形仿真,如下图:2、信号检测器1)建立工作库文件夹,输入设计项目VHDL代码,如下:LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK ISPORT(DIN, CLK, CLR : IN STD_LOGIC;ss : OUT STD_LOGIC_VECTOREND SCHK;ARCHITECTURE behav OF SCHK ISSIGNAL Q : INTEGER RANGE 0 TO 5 ;SIGNAL D : STD_LOGIC_VECTOR(5 DOWNTO 0);BEGIND <= "11010" ;PROCESS( CLK, CLR )BEGINIF CLR = '1' THEN Q <= 0 ;ELSIF CLK'EVENT AND CLK='1' THENCASE Q ISWHEN 0=> IF DIN = D(4) THEN Q <= 1 ; ELSE Q <= 0 ; END IF ;WHEN 1=> IF DIN = D(3) THEN Q <= 2 ; ELSE Q <= 0 ; END IF ;WHEN 2=> IF DIN = D(2) THEN Q <= 3 ; ELSE Q <= 2 ; END IF ;WHEN 3=> IF DIN = D(1) THEN Q <= 4 ; ELSE Q <= 0 ; END IF ;WHEN 4=> IF DIN = D(0) THEN Q <= 5 ; ELSE Q <= 2 ; END IF ;WHEN OTHERS => Q <= 0 ;END CASE ;END IF ;END PROCESS ;PROCESS( Q )BEGINIF Q = 5 THEN ss <= "1" ;ELSE ss <= "0" ;END IF ;END PROCESS ;END behav ;3)将其转换成可调用元件如图:3.序列信号检测器顶层文件1)调用序列信号发生器和序列信号检测器元件,建立工作库文件夹,输入设计项目原理图如下图:2)对总体进行波形仿真,如下图:4.管脚邦定六、实验心得只能copy到这,后面的自己写吧!DSFKLSD;GKJLSJDFG;LKSD;LG。

序列信号发生器的设计方法及应用实例

序列信号发生器的设计方法及应用实例

序列信号发生器的设计方法及应用实例在现代通信系统中,序列信号发生器是一个非常重要的设备,它能够产生各种类型的信号序列,如随机序列、伪随机序列、码片序列等。

这些信号序列在数字通信系统、脉冲调制系统以及其他通信系统中起着至关重要的作用。

在本文中,我将深入探讨序列信号发生器的设计方法及其应用实例,并共享一些个人观点和理解。

1. 序列信号发生器的基本原理序列信号发生器是一种能够产生特定类型的信号序列的设备。

其基本原理是利用特定的算法和逻辑电路来产生所需的信号序列。

在设计序列信号发生器时,首先需要确定所需的信号类型,如随机序列、伪随机序列或者其他类型的序列。

然后根据所选的信号类型,选择合适的算法和电路来实现信号的生成。

最常见的序列信号发生器包括线性反馈移位寄存器(LFSR)、差分方程序列发生器等。

2. 序列信号发生器的设计方法在设计序列信号发生器时,需要考虑信号的周期、自相关性、互相关性等性能指标。

一般来说,设计序列信号发生器的方法可以分为以下几个步骤:(1)确定信号类型:首先需要确定所需的信号类型,如随机序列、伪随机序列或者其他类型的序列。

(2)选择算法和电路:根据所选的信号类型,选择合适的算法和电路来实现信号的生成。

常用的算法包括线性反馈移位寄存器、差分方程序列发生器等。

(3)优化性能指标:优化信号的周期、自相关性、互相关性等性能指标,以确保生成的序列满足系统的要求。

(4)验证和测试:设计完成后,需要对信号发生器进行验证和测试,确保其生成的信号符合设计要求。

3. 序列信号发生器的应用实例序列信号发生器在数字通信系统、脉冲调制系统以及其他通信系统中有着广泛的应用。

以下是一些典型的应用实例:(1)伪随机噪声序列发生器:在数字通信系统中,伪随机噪声序列被广泛用于信道编码、扩频通信以及通信安全等领域。

(2)码片序列发生器:在脉冲调制系统中,码片序列被用于直序扩频通信系统中的扩频码生成。

(3)随机序列发生器:在通信加密领域,随机序列被用于数据加密和解密。

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

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

数字电路与逻辑计实验报告序列信号检测器的设计与实现一、课题名称:序列信号检测器的设计与实现二、实验目的:(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 触发器来完成此任务。

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

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

课程设计序列检测器的设计一、课程目标知识目标:1. 让学生理解序列检测器的基本概念、原理和应用;2. 掌握序列检测器的组成部分,包括触发器、计数器等;3. 学会分析序列检测器的逻辑功能,并能正确绘制其逻辑图;4. 了解序列检测器在数字电路中的应用,如通信、计算机等领域。

技能目标:1. 培养学生运用所学知识设计简单序列检测器的能力;2. 提高学生动手实践能力,学会使用相关仪器、设备进行序列检测器的搭建和调试;3. 培养学生团队协作能力,学会与他人共同分析问题、解决问题。

情感态度价值观目标:1. 培养学生对数字电路的兴趣,激发他们探索科学技术的热情;2. 培养学生严谨、认真的学习态度,养成良好地分析和解决问题的习惯;3. 增强学生的创新意识,鼓励他们勇于尝试新方法,培养创新精神。

分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 学生能够准确描述序列检测器的原理和组成部分;2. 学生能够独立绘制并解释序列检测器的逻辑图;3. 学生能够设计并搭建一个简单的序列检测器电路;4. 学生能够运用所学知识分析并解决实际数字电路问题;5. 学生在团队协作中,能够积极参与、沟通、分享,共同完成任务。

二、教学内容本章节教学内容依据课程目标,结合教材第二章“数字电路基础”相关内容,组织以下教学大纲:1. 序列检测器原理及分类- 序列检测器的基本概念- 序列检测器的工作原理- 序列检测器的分类及应用2. 序列检测器的组成部分- 触发器的类型与功能- 计数器的作用与分类- 逻辑门电路的基本原理3. 序列检测器逻辑设计与分析- 逻辑图的绘制方法- 序列检测器逻辑设计步骤- 常见序列检测器逻辑分析实例4. 序列检测器应用案例- 通信系统中序列检测器的应用- 计算机领域中的序列检测器- 其他数字电路中的实际应用案例5. 实践操作:序列检测器设计与搭建- 设计一个简单的序列检测器电路- 使用仪器、设备进行电路搭建和调试- 分析实验结果,优化设计方案教学内容安排和进度如下:第1周:序列检测器原理及分类第2周:序列检测器的组成部分第3周:序列检测器逻辑设计与分析第4周:序列检测器应用案例及实践操作三、教学方法针对本章节内容,采用以下多样化的教学方法,以激发学生的学习兴趣和主动性:1. 讲授法:教师以教材为依据,系统讲解序列检测器的基本概念、原理、分类及应用。

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

实验六 序列信号发生器与序列信号检测器的设计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所示:图6-2 序列检测器状态图3、利用状态机设计序列检测器的基本思想在状态连续变化的数字系统设计中,采用状态机的设计思想有利于提高设计效率,增加程序的可读性,减少错误的发生几率。

同时,状态机的设计方法也是数字系统中一种最常用的设计方法。

一般来说,标准状态机可以分为摩尔(Moore)机和米立(Mealy)机两种。

序列信号发生器和序列信号检测器

序列信号发生器和序列信号检测器

南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:实验成绩:实验三序列信号检测器设计(一)实验目的1.进一步熟悉PH-1V型实验装置和QuartusⅡ软件的使用方法;2.学习有限状态机法进行数字系统设计;3.学习使用原理图输入法进行设计。

(二)设计要求完成设计、仿真、调试、下载、硬件测试等环节,在PH-1V型EDA实验装置上实现一个串行序列信号发生器和一个序列信号检测器的功能,具体要求如下:1.先用原理图输入法设计0111010011011010序列信号发生器;2.其最后8BIT数据用LED显示出来;3.再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“11010”则输出为“1”,否则输出为“0”;(三)主要仪器设备1.微机 1台2.QuartusII集成开发软件1套3.PH-1V型EDA实验装置1套(四)实验总体设计本实验要求先设计一个信号发生器,采用原理图设计方法,要求产生0111010011011010序列,16位,便可采用74161计数器和74151选择器,161计数输出QD,QC,QB,QA从0000计至1111,然后将161计数输出低三位QC,QB,QA分别接到151的C,B,A端,高位QD用来控制151两片的片选,即两片151分别实现序列的高八位和低八位的输出。

最后将二片151的输出相或便可得到最后要产生的序列。

序列检测器即为一个状态机,首先画出状态转移图,根据状态转移图设计出序列检测器,当检测到预置的序列,则RESULT输出1,否则输出0 (五)实验重难点设计1. 用原理输入法设计序列信号发生器(1)打开Quartus II软件,进入编辑环境。

(2)创建新的原理图BDF文件,命名为FASHENGQI,根据其总体设计思路设计出如下原理图:1. 用文本输入法设计序列信号检测(1)打开Quartus II软件,进入编辑环境。

(2)创建新的文本文件VHDL,命名为ztj,根据状态机总体设计思路设计出如(3)下语句程序:library ieee;use ieee.std_logic_1164.all;entity ztj isport (clk,reset: in std_logic;x: in std_logic;result: out std_logic);end ztj;architecture behav of ztj istype m_state is(s0,s1,s2,s3,s4,s5);signal present_state,next_state:m_state;signal temp:std_logic;beginprocess(reset,clk)beginif reset ='1' thenpresent_state<=s0;elsif clk='1' and clk'event thenresult<=temp;present_state<=next_state;end if;end process;(4)经编译成功后,点击File---Creat/Update---Creat Simbol Files For Current File 后生成STAKE模块如下:(1)打开Quartus II软件,进入编辑环境。

实验6 序列检测器(2010)

实验6 序列检测器(2010)

五 常见问题
1.芯片使用前不进行功能好坏的检测。 1.芯片使用前不进行功能好坏的检测。 芯片使用前不进行功能好坏的检测 2.电源连接不正确,接地点接到-5V上或接到模拟电子实验箱 2.电源连接不正确,接地点接到-5V上或接到模拟电子实验箱 电源连接不正确 的电源上,非常危险,上电后芯片烧毁。 的电源上,非常危险,上电后芯片烧毁。 3.逻辑开关电平前的发光二极管不亮, 3.逻辑开关电平前的发光二极管不亮,检查进入数字实验箱 逻辑开关电平前的发光二极管不亮 的电源连接线是否断。 的电源连接线是否断。 4.实验箱电源连接正确,电路自查确定无误后,电路验证还 4.实验箱电源连接正确,电路自查确定无误后, 实验箱电源连接正确 是不正确的情况下进行下面的排错检查: 是不正确的情况下进行下面的排错检查: (1)检查芯片的电源和地的电平是否正确。 (1)检查芯片的电源和地的电平是否正确。 检查芯片的电源和地的电平是否正确 (2)芯片的控制电平是否正确(清零端是否连接正确) (2)芯片的控制电平是否正确(清零端是否连接正确)。 芯片的控制电平是否正确 (3)从逻辑电平开关输入信号是否正确。 (3)从逻辑电平开关输入信号是否正确。 从逻辑电平开关输入信号是否正确 (4)时钟信号输入是否正确。 (4)时钟信号输入是否正确。 时钟信号输入是否正确 (5)从输出端按逻辑功能状态往前一步一步排查。 (5)从输出端按逻辑功能状态往前一步一步排查。 从输出端按逻辑功能状态往前一步一步排查
(4)选择触发器(74LS107) ,确定触发器的驱动方程及电路的 (4)选择触发器(74LS107) ,确定触发器的驱动方程及电路的 选择触发器 输出方程。 输出方程。 1)写出驱动信号及电路输出信号的真值表如下: 写出驱动信号及电路输出信号的真值表如下:
2)利用卡诺图化简得各触发器的驱动方程及电路的输出方程如下: 利用卡诺图化简得各触发器的驱动方程及电路的输出方程如下:

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

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

实验六、序列信号发生器与序列信号检测器的设计一、实验目的1、掌握序列发生器和检测器的工作原理;2、初步学会用状态机进行数字系统设计。

二、实验要求1、基本要求1)设计一个“”序列发生器;2)设计一个“”序列的检测器。

2、扩展要求1)设计一个序列发生器,将8 位待发生序列数据由外部控制输入进行预置,从而可随时改变输出序列数据。

2)将8 位待检测预置数由按键作为外部输入,从而可随时改变检测密码。

写出该检测器的VHDL 代码,并进行编译下载测试。

3)如果待检测预置数以右移方式进入序列检测器,写出该检测器的VHDL 代码(两进程符号化有限状态机)。

三、实验原理1、序列发生器原理在数字信号的传输和数字系统的测试中,有时需要用到一组特定的串行数字信号,产生序列信号的电路称为序列信号发生器。

本实验要求产生一串序列“”。

该电路可由计数器与数据选择器构成,其结构图如图6-1所示,其中的锁存输出的功能是为了消除序列产生时可能出现的毛刺现象:2泛的应用。

当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。

由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置的对应码相同。

在检测过程中,任何一位不相等都将回到初始状态重新开始检测。

状态图如图6-2所示:图6-2 序列检测器状态图3、利用状态机设计序列检测器的基本思想在状态连续变化的数字系统设计中,采用状态机的设计思想有利于提高设计效率,增加程序的可读性,减少错误的发生几率。

同时,状态机的设计方法也是数字系统中一种最常用的设计方法。

一般来说,标准状态机可以分为摩尔(Moore)机和米立(Mealy)机两种。

在摩尔机中,其输出仅仅是当前状态值的函数,并且仅在时钟上升沿到来时才发生变化。

米立机的输出则是当前状态值、当前输出值和当前输入值的函数。

本实验要从一串二进制码中检测出一个已预置的8位二进制码,每增加一位二进制码相当于增加一个状态,再加上一个初始态,用9个状态可以实现。

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

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

北京邮电大学数字电路与逻辑设计实验报告姓名:李金隆学号: 09210947--15班级: 2009211204学院: 电子工程学院2011年5月1日一、实验名称:序列信号发生器的设计与实现二、实验任务要求:1、用VHDL语言设计实现一个信号发生器,产生的序列码为01100111,仿真验证其波形,并下载到实验板测试。

2、用VHDL语言设计实验一个序列长度为7的M序列发生器,仿真验证其功能,并下载到实验班测试。

三、设计思路与过程1、序列信号发生器序列信号发生器的端口由一个时钟输入和两个输出,信号序列输出q_out和时钟输出clk_outt组成。

程序由两个进程构成,第一个进程p1描述状态逻辑,使用if语句实现自启动;第二个进程p2描述输出逻辑,用case语句完成其功能。

根据题目要求,在第1、4、5位置上输出为“0”,在其他位置上输出为“1”,每8位实现一次循环。

在实验过程中,首先在建立Quartus II软件中建立工程,然后再工程中建立VHDL文件,输入程序代码后保存调试,编译成功后,建立Vector Waveform文件进行仿真,仿真完毕后,在程序中引入分频器,编译,锁定引脚后,下载到实验板验证其功能。

在实验板上用一个开关代表clear清零,两个LED一个显示输出序列,一个显示时钟序列clk_outt。

2、M_序列信号发生器M_序列信号发生器的端口由一个时钟输入clk和两个信号输出,时钟输出clk_outt和序列信号输出q_out组成,进程p1描述状态逻辑,用if语句完成循环。

实验过程与实验1类似。

四、VHDL程序源代码1、序列信号发生器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xinhao ISport(clk:in std_logic;clear:in std_logic;q_out:out std_logic;clk_outt:out std_logic);--用户定义的输入输出及类型end xinhao;architecture a of xinhao iscomponent div50mport(clk_in:in std_logic;clk_out:out std_logic);--用户定义分频器的输入输出及类型end component;signal tmp: integer range 0 to 7;signal clock: std_logic;--用户定义的信号及其类型beginu1: div50m port map(clk_in=>clk,clk_out=>clock);--分频器的引入p1:process(clock)--第一个进程p1描述状态逻辑beginif clock'event and clock='1' thenif tmp=7 thentmp<=0;elsetmp<=tmp+1;end if;end if;end process p1;p2: process(clear,tmp)—第二个进程描述输出逻辑beginif clear='0' thenq_out<='0';elsecase tmp iswhen 0|3|4 =>q_out<='0';when others =>q_out<='1';end case;end if;end process p2;clk_outt<=clk;end a;2、M序列信号发生器library IEEE;USE IEEE. std_logic_1164.all;entity m_xulie isport (clk:in std_logic;q_out:out std_logic;clk_outt:out std_logic);--用户定义的输出输入及类型end m_xulie;architecture a of m_xulie iscomponent div50mport(clk_in:in std_logic;clk_out:out std_logic);--用户定义分频器的输入的输出及类型end component;signal tmp:std_logic_vector (2 downto 0);signal clock: std_logic;beginu1: div50m port map(clk_in=>clk,clk_out=>clock);--分频器的引入 p1:process(clk)—第一个进程P1描述状态逻辑beginif tmp= "000" then tmp <="001"; elsif clk'event and clk ='1' then tmp(0)<=tmp(0) xor tmp(2);tmp(1)<=tmp(0);tmp(2)<=tmp(1);end if;end process p1;q_out<=tmp(2);--数列信号的输出clk_outt<=clk;end a;五、RTL电路图1、序列信号发生器2、M_序列信号发生器六、仿真波形及其分析1、序列信号发生器从波形仿真图中可以看出,在时钟信号的上升沿,输出信号序列开始按01100111变化,当clear清零时,序列输出q_out也为“0”,时钟输出clk_outt相对于时钟输入clk有一定的时间延迟。

序列发生器和序列检测器——选作实验EDA

序列发生器和序列检测器——选作实验EDA

UESTCEDA技术及应用实验选作实验——序列发生和序列检测器的设计姓名:孙纪川学号:20110791200222013选作实验序列发生器和检测器的设计一、预习内容1)预习序列发生器和检测器的基本工作原理。

2)画出实验原理草图。

3)写出实验的基本步骤和源程序。

二、实验目的1)掌握序列发生器和检测器的工作原理。

2)学会用状态机进行数字系统设计。

三、实验器材PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干。

四、实验要求1)连续完成一个“10001110”序列和九个非“10001110”序列的发生;2)检测“10001110”序列,当检测到该序列后点亮EDA实验箱的LED灯;3)注意为了点亮LED灯,时钟频率不要选择太高,可以选择几十赫兹的频率。

五、实验报告及仿真结果1)序列发生器和序列检测器的VHDL源程序状态机的状态图:用摩尔型状态机设计的序列检测器的源程序:我修改了报告中的状态图,因为在st8到st0的过程中也需判断输入序列发生器的源程序:用图形输入法表示的序列发生并检测电路的顶层实体:名称关联法在block图中连线2)六、实验结果分析通过实验箱上的实际显示可以看到,序列检测器成功检测到序列发生器的序列点亮LED指示灯。

序列发生器和序列检测器设计成功。

七、心得体会通过此次实验使我了解了状态机的设计过程及用VHDL语言编写状态机,我还学到了摩尔型状态机与米粒型状态机的不同(延迟输出),以及可以用数组左移位的方法并行检测序列。

此次实验的成功之处在于程序编写正确,状态机逻辑明确,程序在实验箱上运行正确。

不足之处在于虽然我编写了米粒型状态机(运行结果也正确但是我没有截图)但是在quartus2软件上仿真并没有体会到延迟输出的现象,下次实验还需加深对米粒型状态机的理解重新改写米粒型状态机。

八、问题及思考问题:如果改变待检测的二进制码(如1011001),状态转换图应如何变化。

答:。

序列信号发生器和检测器

序列信号发生器和检测器

南昌大学实验报告学生姓名:赖硕秋学号:6100208060 专业班级:电子081实验类型:□验证□综合■设计□创新实验日期:2010.11.12 实验成绩:实验三序列信号发生器与检测器设计一、实验目的(1)掌握产生特定序列信号的方法;(2)学会用状态机方法来实现VHDL编程设计;(3)进一步巩固分层设计的方法.二、实验内容与要求用状态机设计实现串行序列检测器,先设计序列信号发生器,产生序列“0111010011011011010”;再设计检测器,若检测到串行序列11010则输出计数器计入个数,并对其进行仿真和硬件测试。

三、设计原理本实验中,采用分层设计的思想,底层分别用VHDL文本来描述序列发生器和序列检测器,顶层用原理图法连线好元件化的器件。

对于序列发生器(特定序列)设计比较多样,可以采用并行case语句来实现产生特定的周期性序列;序列检测器采用状态机的设计方法,在不同状态下检测特定的序列信号,最后通过一个计数器计入所检测到的序列个数,并且通过并行移位来显示有限个产生信号。

根据所检测的序列“11010”,可以得到以下的状态转移图:四、实验程序方法一:VHDL文本法,不分层(独立编写)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XULIE ISPORT(CLK,CLR,RESET:IN STD_LOGIC;M:OUT STD_LOGIC;COUT1,COUT2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY;ARCHITECTURE ONE OF XULIE ISTYPE M_STATE IS(ST0,ST1,ST2,ST3,ST4);SIGNAL STA:M_STATE;SIGNAL SHUZI:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL A:STD_LOGIC;SIGNAL CC:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINSHUZI<="11010";PROCESS(CLK,CLR,RESET,A,CC)V ARIABLE N:INTEGER RANGE 16 DOWNTO 1;BEGINIF RESET='1' THEN N:=1; --序列发生器"0111010011011010"ELSIF CLK'EVENT AND CLK='1'THEN CASE N ISWHEN 1=>A<='0';N:=N+1;WHEN 2=>A<='1';N:=N+1;WHEN 3=>A<='1';N:=N+1;WHEN 4=>A<='1';N:=N+1;WHEN 5=>A<='0';N:=N+1;WHEN 6=>A<='1';N:=N+1;WHEN 7=>A<='0';N:=N+1;WHEN 8=>A<='0';N:=N+1;WHEN 9=>A<='1';N:=N+1;WHEN 10=>A<='1';N:=N+1;WHEN 11=>A<='0';N:=N+1;WHEN 12=>A<='1';N:=N+1;WHEN 13=>A<='1';N:=N+1;WHEN 14=>A<='0';N:=N+1;WHEN 15=>A<='1';N:=N+1;WHEN 16=>A<='0';N:=1;WHEN OTHERS=>NULL;END CASE;END IF;IF CLR='1' THEN STA<=ST0;CC<=(OTHERS=>'0'); --序列检测器"11010"ELSIF CLK'EVENT AND CLK='0' THENCASE STA ISWHEN ST0=> IF A=SHUZI(4) THEN STA<=ST1;ELSE STA<=ST0;END IF;WHEN ST1=> IF A=SHUZI(3) THEN STA<=ST2;ELSE STA<=ST0;END IF;WHEN ST2=> IF A=SHUZI(2) THEN STA<=ST3;ELSE STA<=ST2;END IF;WHEN ST3=> IF A=SHUZI(1) THEN STA<=ST4;ELSE STA<=ST0;END IF;WHEN ST4=> IF A=SHUZI(0) THEN STA<=ST0;IF CC(3 DOWNTO 0)=9 THEN CC<=CC+7;ELSE CC<=CC+1;END IF;ELSE STA<=ST2;END IF;END CASE;END IF;M<=A;COUT1<=CC(3 DOWNTO 0);COUT2<=CC(7 DOWNTO 4);END PROCESS;END ARCHITECTURE;方法二:采用底层+顶层的设计方法,先用VHDL设计好发生器和检测器,顶层用原理图连线。

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

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

实验六用状态机实现序列检测器的设计
一、实验目的
1、熟悉状态机的作用及设计方法;
2、学习用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。

二、实验原理
序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果与检测器预先设置的码相同,则输出为1,否则输出为0。

三、实验内容与步骤:
1、状态转换图
2、设计一个序列检测器,对1110010进行检测,编写实验程序。

3、对程序进行仿真测试并给出仿真波形。

4、仿真通过后进行引脚锁定,再进行一次全编译,并下载到实验箱上进行验证。

四、实验结果与总结:
根据以上的实验内容写出实验报告,包括实验目的、实验原理、实验内容和步骤。

给出实验程序和仿真波形图,并总结状态机的设计方法。

1。

序列发生器设计

序列发生器设计
end behavioral;
8
序列发生器的功能仿真波形的建立
9
计数型序列信号发生器
• 以同步计数器为基础; • 例:设计产生序列信号为1111000100的发生器; • 序列长度M=10,选用一个模10的同步计数器
10
计数型序列信号发生器
Q3 Q2 Q1 Q0 F
0
0
0
0
1
0
0
0
1
1
0
0
1
0
map(clk,t0,set,reset,t00,t01); U2:Dtrigger port
map(clk,t00,set,reset,t10,t11); U3:Dtrigger port
map(clk,t10,set,reset,t20,t21); t0<=t11 and t21; q<=t20; nq<=not t20;
移存型序列信号发生器
• 第一步:根据要求列真值表和状态图
• 第二步:根据真值表画卡诺图,求次态方程;

Q1n+1=not(Q3n.Q2n)
• 第三步:检查系统能否自启动;
• 第四步:确定触发器类型和数目;
• 第五步:确定逻辑电路图;
7
移存型序列信号发生器
entity shiftxuilie is port(clk:in bit;
成M个状态组合,完成状态转移; • 求出移位寄存器的串行输入激励函数,即可构成
该序列信号的产生电路。
• 例:设计产生序列信号为11000的发生器
5
移存型序列信号发生器
序号 Q3 Q2 Q1 0110 1100 2000 3001 4011
110

序列信号检测器的设计

序列信号检测器的设计

绪论随着世界经济的不断发展,电子技术日新月异,一日千里。

随着第一支晶体三极管于1947年问世,开创了电子技术的新领域,随后60年代初,模拟和数字集成电路相继上市,到七十年代末,微处理器的问世,电子器件的应用出现了新的局面。

随着微电子技术的发展,将会有更多的的电子产品陆续问世。

微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,现代电子设计技术的核心日趋转向基于计算机的电子设计自动化技术,即EDA技术。

电子设计自动化即EDA技术是指包括电路设计、系统仿真、设计综合、PCB版图设计和制版的一套自动化流程。

依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真调试,直至实现既定的电子线路系统功能。

EDA代表了当今电子设计技术的最新发展方向,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件。

EDA技术主要包括大规模可编程逻辑、硬件描述语言、软件开发工具等内容。

目前,使用最为广泛的大规模可编程逻辑CPLD、FPGA属高密度可编程逻辑器件,已成为现代高层次电子设计方法的实现载体。

硬件描述语言HDL是EDA技术的重要组成部分,而VHDL在现在EDA设计中使用最多,是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,VHDL几乎覆盖了以往各种硬件描述语言的功能,VHDL的设计不依赖于特定的器件,方便了工艺的转换,具有良好的适应性,是设计者可以专心于其功能的实现,不需要对不影响功能的与工艺有关的因素花费过多的时间与精力。

1 QuartusII简介Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

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

实验六、序列信号发生器与序列信号检测器的设计一、实验目的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所示:图6-2 序列检测器状态图3、利用状态机设计序列检测器的基本思想在状态连续变化的数字系统设计中,采用状态机的设计思想有利于提高设计效率,增加程序的可读性,减少错误的发生几率。

同时,状态机的设计方法也是数字系统中一种最常用的设计方法。

一般来说,标准状态机可以分为摩尔(Moore)机和米立(Mealy)机两种。

在摩尔机中,其输出仅仅是当前状态值的函数,并且仅在时钟上升沿到来时才发生变化。

米立机的输出则是当前状态值、当前输出值和当前输入值的函数。

本实验要从一串二进制码中检测出一个已预置的8位二进制码10001110,每增加一位二进制码相当于增加一个状态,再加上一个初始态,用9个状态可以实现。

其状态机如图6-3所示。

图6-38位二进制码10001110的检测状态机注意:此图作为参考,检测不同的二进制码其过程不同!四、实验步骤1、建立一个工程项目,路径如:D:\20050837\sixth,项目名和顶层实体名为serial;2、设计一个“10001110”的序列发生器,并进行编译仿真与下载测试;3、根据图6-3状态转换图设计一个“10001110”的序列检测器。

并进行编译仿真与下载测试;五、参考程序1、“10001110”序列发生器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SENQGEN ISPORT(CLK,CLR,CLOCK:IN STD_LOGIC;YOUT:OUT STD_LOGIC);END SENQGEN;ARCHITECTURE ART OF SENQGEN ISSIGNAL COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL Y:STD_LOGIC :=…0‟;BEGINPROCESS(CLK,CLR)BEGINIF(CLR=…1‟)THEN COUNT<="000";ELSIF(CLK=…1‟AND CLK'EVENT)THENCOUNT<=COUNT +…1‟;END IF;END PROCESS;PROCESS(COUNT)BEGINCASE COUNT ISWHEN "000"=>Y<=…1‟;WHEN “001”=>Y<=…0‟;WHEN "010"=>Y<=…0‟;WHEN "011"=>Y<=…0‟;WHEN "100"=>Y<=…1‟;WHEN "101"=>Y<=…1‟;WHEN “110”=>Y<=…1‟;WHEN “111”=>Y<=…0‟;WHEN OTHERS=>Y<=…-‟;END CASE;END PROCESS;PROCESS(CLOCK,Y)BEGIN --消除毛刺的锁存器IF(CLOCK'EVENT AND CLOCK=…1‟)THENYOUT<=Y;END IF;END PROCESS;END ART;2、“10001110”序列信号检测器的VHDL描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DETECT ISPORT( DIN,RST, CLK:IN STD_LOGIC;Q:OUT STD_LOGICVECTOR(3 DOWNTO 0));END DETECT;ARCHITECTURE ART OF DETECT ISTYPE STATETYPE IS(ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7,ST8);SIGNAL P_STATE: STATETYPEBEGINPROCESS(CLK)BEGINIF RST = '1' THEN P_STA TE<=ST0;ELSIF CLK'EVENT AND CLK='1' THENCASE P_STATE ISWHEN ST0=>IF DIN=…1‟ THEN P_STATE<=ST1;ELSE P_STATE<=ST0;END IF;WHEN ST1=>IF DIN=…0‟ THEN P_STA TE<=ST2;ELSE P_STATE<=ST1;END IF;WHEN ST2=>IF DIN=…0‟THEN P_STA TE:=ST3;ELSE P_STATE<=ST1;END IF;WHEN ST3=>IF DIN=…0‟THEN P_STA TE<=ST4;ELSE P_STATE<=ST1;END IF;WHEN ST4=>IF DIN=…1‟THEN P_STA TE<=ST5;ELSE P_STATE<=ST0;END IF;WHEN ST5=>IF DIN=…1‟THEN P_STA TE<=ST6;ELSE P_STATE<=ST2;END IF;WHEN ST6=>IF DI N=…1‟THEN P_STA TE<=ST7;ELSE P_STATE<=ST2;END IF;WHEN ST7=>IF DIN=…0‟THEN P_STA TE<=ST8;ELSE P_STATE<=ST1;END IF;WHEN ST8=>IF DIN=…1‟THEN P_STA TE<=ST1;ELSE P_STATE<=ST0;END IF;END CASE;END PROCESS;END IF;Q<="1010" WHEN P_STA TE=ST8 ELSE "1011";--序列数检测正确,输出“A”--序列数检测错误,输出“B”END ART;序列检测器的另一种描述LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK ISPORT(DIN,CLK,CLR : IN STD_LOGIC; --串行输入数据位/工作时钟/复位信号AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); --检测结果输出END SCHK;ARCHITECTURE behav OF SCHK ISSIGNAL Q : INTEGER RANGE 0 TO 8 ;SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0); --8 位待检测预置数(密码=E5H) BEGIND <= "10001110 " ; --8 位待检测预置数PROCESS( CLK, CLR )BEGINIF CLR = '1' THEN Q <= 0 ;ELSIF CLK'EVENT AND CLK='1' THEN --时钟到来时,判断并处理当前输入的位CASE Q ISWHEN 0=> IF DIN = D(7) THEN Q <= 1 ; ELSE Q <= 0 ; END IF ;WHEN 1=> IF DIN = D(6) THEN Q <= 2 ; ELSE Q <= 0 ; END IF ;WHEN 2=> IF DIN = D(5) THEN Q <= 3 ; ELSE Q <= 0 ; END IF ;WHEN 3=> IF DIN = D(4) THEN Q <= 4 ; ELSE Q <= 0 ; END IF ;WHEN 4=> IF DIN = D(3) THEN Q <= 5 ; ELSE Q <= 0 ; END IF ;WHEN 5=> IF DIN = D(2) THEN Q <= 6 ; ELSE Q <= 0 ; END IF ;WHEN 6=> IF DIN = D(1) THEN Q <= 7 ; ELSE Q <= 0 ; END IF ;WHEN 7=> IF DIN = D(0) THEN Q <= 8 ; ELSE Q <= 0 ; END IF ;WHEN OTHERS => Q <= 0 ;END CASE ;END IF ;END PROCESS ;PROCESS( Q ) --检测结果判断输出BEGINIF Q = 8 THEN AB <= "1010" ; --序列数检测正确,输出“A”ELSE AB <= "1011" ; --序列数检测错误,输出“B”END IF ;END PROCESS ;END behav ;单进程状态机LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 ISPORT (DATAIN : IN STD_LOGIC_VECTOR(1 DOWNTO 0);CLK,RST: IN STD_LOGIC;Q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END MOORE1;ARCHITECTURE behav OF MOORE1 ISTYPE ST_TYPE IS ( ST0, ST1, ST2, ST3, ST4);SIGNAL C_ST : ST_TYPE;BEGINPROCESS (CLK,RST)BEGINIF RST = '1' THEN C_ST <= ST0 ; Q<= "0000";ELSIF CLK'EVENT AND CLK='1' THENCASE C_ST ISWHEN ST0 => IF DATAIN ="10" THEN C_ST <= ST1;ELSE C_ST <=ST0 ; END IF;Q<= "1001" ;WHEN ST1 => IF DATAIN ="11" THEN C_ST <= ST2;ELSE C_ST <=ST1 ; END IF;Q<= "0101" ;WHEN ST2 => IF DATAIN ="01" THEN C_ST <= ST3;ELSE C_ST <=ST0 ; END IF;Q<= "1100" ;WHEN ST3 => IF DATAIN ="00" THEN C_ST <= ST4;ELSE C_ST <=ST2 ; END IF;Q<= "0010" ;WHEN ST4 => IF DATAIN ="11" THEN C_ST <= ST0;ELSE C_ST <=ST3 ; END IF;Q<= "1001" ;WHEN OTHERS => C_ST <= ST0;END CASE;END IF;END PROCESS;END behav;六、实验报告根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。

相关文档
最新文档