实验六 序列信号发生器与序列信号检测器的设计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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  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;六、实验报告根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。

相关文档
最新文档