实验5 序列检测器
- 格式:doc
- 大小:437.20 KB
- 文档页数:6
序列检测器原理
序列检测器是一种用来检测和识别输入序列中特定模式的设备或算法。
它能够根据事先给定的规则或模型对输入序列进行分析和判断,并输出相应的结果或响应。
序列检测器通常由以下几个组成部分构成:
1. 输入接口:用于接收输入序列的信号或数据。
2. 存储器:存储检测器的状态信息和输入序列的历史数据。
3. 状态机:用于根据输入序列的不同模式进行状态转换和控制。
4. 判决逻辑:根据当前状态和输入序列的特征,判断当前模式是否匹配。
5. 输出接口:根据判决的结果,输出相应的响应或结果。
序列检测器的工作原理如下:
1. 初始化:将序列检测器的状态设为初始状态,准备接收输入序列。
2. 接收输入:逐个接收输入序列的信号或数据。
3. 状态转换:根据当前状态和输入序列的特征,根据事先设定好的规则或模型进行状态转换。
4. 判决匹配:根据当前状态和输入序列的特征,判断当前模式是否匹配。
5. 输出结果:根据判决的结果,输出相应的响应或结果。
6. 循环操作:重复执行2-5步骤,直至所有的输入序列被处理完毕。
通过以上的工作原理,序列检测器可以有效地检测和识别输入序列中的特定模式。
它在许多应用中都有广泛的应用,如通信领域中的错误检测、模式识别等。
实验报告用状态机实现序列检测器实验一、实验目的1.用Verilog HDL描述有限状态机电路。
2.IPCORE的概念与设计。
二、实验内容1.应用有限状态机的设计思路,检测从FPGA片上ROM读出的串行数据是否是特定的数据。
2.每个人需要检测的数据是所用的电脑编号+200后转换的8位二进制数。
三、实验要求1.拟用按键、拨动开关实现系统的时钟,复位信号的输入。
2.一个7段数码显示译码器作为检测结果的输出显示,如果串行序列为”100101”,显示A,否则显示b(系统需要设计一个7段数码显示译码器模块)仍使用消抖模块,对由按键输入的时钟进行消抖处理。
3.读取的串行数据为rom中固化的一个宽度为1bit,深度为16bits的数据。
四、设计思路软件的设计框图如下,该实验可以分为几个模块,rom数据读出模块,串行检测模块,数码管显示模块,顶层模块。
输入的clk为按键消抖后输出的数据,按下一次检测一次,在时钟的上升沿读出数据,时钟的下降沿检测数据,串行模块输出的4bits的数据,直接送给数码管译码模块,译码输出。
五、设计原理1.ROM IP核的生成首先在ISE自己的工程中新建一个块内存,Block Memory Generator,配置深度为16,宽度为1bit,选择生成的类型为单端ROM,然后选择一个已经编写好的memory初始化文件。
Memory初始化文件,编写coe文件:这里我要写入的是226,所以二进制是11100010,写入的内容如下,:memory_initialization_radix=10;memory_initialization_vector=1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0;保存并选择载入。
2.读取rom中的数据根据时钟上升沿读取数据,所以可以写出rom读的代码,代码如下:module read_rom(clk,da,rst);input clk;input rst;output da;reg[3:0] counter;always@(posedge clk or posedge rst) beginif(rst)counter<=1'b0;else counter<=counter+1'b1;enddata_rom u1(.clka(clk), // input clka.addra(counter), // input [3 : 0] addra.douta(da) // output [0 : 0] douta);编写仿真激励文件,得到如下波形,分析可以知道,时钟上升沿数据被读取,读取的数据与我们在配置文件中写入的相同。
序列检测器设计实验内容:设计一个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 isport (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 issignal a:std_logic_vector(7 downto 1);signal combination: std_logic_vector(7 downto 1);beginprocess(clk)beginif clk'event and clk='1' thena<=a(6 downto 1)&x;if y='1' thencombination<="1110010";else combination<=k;end if;end if;q<=a;end process;unlk<='1' when(a=combination) else '0';end art;序列检测器波形图:其中ENDTIME=10.0us GRIDSIZE=100.0ns波形图分析:如图,选择输入端y输入为1时,q对应着输出从x输入的7位序列,如果从x输入的待检测的7位序列为1110010时,unlk为1,否则为0,当选择输入端y输入为0时,q依旧对应着输出从x输入的待检测的当前7为序列,但是只有当从x输入的7为序列与从k输入的7位序列一致时,输出端unlk才为1,否则为0。
五邑大学实验报告实验课程名称序列检测器院系名称:__信息学院_____专业名称:__电子信息工程___实验项目名称:_EDA实验____班级ap07053 学号:_ap*******___报告人:__黃少昌____实验五序列检测器一、实验目的:1、掌握用Verilog HDL实现状态机的方法;2、利用状态机设计一个序列检测器。
二、实验原理:序列检测器在数据通讯,雷达和遥测等领域中用与检测步识别标志。
它是一种用来检测一组或多组序列信号的电路。
例如检测器收到一组串行码{1110010}后,输出标志1,否则,输出0。
考查这个例子,每收到一个符合要求的串行码就需要用一个状态进行记忆。
串行码长度为7位,需要7个状态;另外,还需要增加一个“未收到一个有效位”的状态,共8个状态;S0~S7,状态标记符的下标表示有几个有效位被读出。
画出状态转换图,如图5-1所示,很显然这是一个莫尔状态机。
8个状态机根据编码原则可以用3位二进制数来表示。
图 5-1 序列检测器状态变化图三、设计任务及要求:1、用状态机实现一序列检测器,即检测到串行码{1110010}后,检测器输出1,否则输出0;2、设计输入采用Verilog HDL语言;3、对设计进行仿真;4、把设计下载到试验箱验证。
四、设计提示:1、状态机是实验时序电路的有效工具,用状态机实现时序检测器就是典型例子;2、状态机的Verilog HDL 实现基本有固定模式,参见教程《数字系统设计与Verilog HDL》(第二版)第271~272页。
3、状态机实现的要点是在每个状态下,当时钟有效沿到来时,判断输入值是什么,然后决定下一状态跳转到什么地方。
五、给出设计的源程序:module seq(in,out,state,clk,reset);input in,clk,reset; output out;output[2:0]state;reg[2:0]state;reg out;parameter s0='d0,s1='d1,s2='d2,s3='d3,s4='d4,s5='d5,s6='d6,s7='d7; always @(posedge clk)begin if(reset) begin state<=s0;out<=0;endelse casex(state)s0:beginif(in==0) begin state<=s0;out<=0;endelse begin state<=s1;out<=0;endends1:beginif(in==0) begin state<=s0;out<=0;endelse begin state<=s2;out<=0;endends2:beginif(in==0) begin state<=s0;out<=0;endelse begin state<=s3;out<=0;endends3:beginif(in==0) begin state<=s4;out<=0;endelse begin state<=s3;out<=0;endends4:beginif(in==0) begin state<=s5;out<=0;endelse begin state<=s1;out<=0;endends5:beginif(in==0) begin state<=s0;out<=0;endelse begin state<=s6;out<=0;endends6:beginif(in==0) begin state<=s7;out<=1;endelse begin state<=s2;out<=0;endends7:beginif(in==0) begin state<=s0;out<=0;endelse begin state<=s1;out<=0;endenddefault:state<=s0;endcaseendendmodule六、给出序列检测器的仿真波形图:七、心得体会:此次实验,我觉得既锻炼了我们的设计,由简单的抽象理解到实际认知。
一、实验目的1. 理解序列检测器的工作原理和设计方法;2. 掌握时序电路的经典设计方法;3. 学习使用Verilog HDL语言进行状态机的设计;4. 通过实验验证序列检测器的功能。
二、实验原理序列检测器是一种同步时序电路,用于检测输入的一串二进制编码。
当输入序列与预设的编码相匹配时,输出高电平;否则,输出低电平。
序列检测器在数字通信、安全防盗、密码认证等领域有着广泛的应用。
序列检测器的基本工作原理如下:1. 预设一个编码序列,称为目标序列;2. 当输入序列与目标序列相匹配时,输出高电平;3. 当输入序列与目标序列不匹配时,输出低电平。
三、实验器材1. PC机一台;2. EDA教学实验系统一台;3. 下载电缆一根(已接好);4. 导线若干。
四、实验步骤1. 设计序列检测器的Verilog代码;2. 在EDA教学实验系统上编译、仿真和下载Verilog代码;3. 连接实验电路,下载Verilog代码;4. 通过逻辑分析仪观察输出波形,验证序列检测器的功能。
五、实验内容1. 设计一个长度为4位的序列检测器,目标序列为1001;2. 设计一个长度为8位的序列检测器,目标序列为11001001;3. 通过实验验证序列检测器的功能。
六、实验代码```verilogmodule seqdet(input clk, // 时钟信号input rst, // 复位信号input [3:0] din, // 输入序列output reg out // 输出信号);// 定义状态localparam [1:0] IDLE = 2'b00,MATCH = 2'b01,NOMATCH = 2'b10;// 状态寄存器reg [1:0] state, nextstate;// 输出函数always @(posedge clk or posedge rst) beginif (rst) beginstate <= IDLE;out <= 1'b0;end else beginstate <= nextstate;out <= (state == MATCH) ? 1'b1 : 1'b0; endend// 激励函数always @() begincase (state)IDLE: beginif (din == 4'b1001) beginnextstate = MATCH;end else beginnextstate = NOMATCH;endendMATCH: beginnextstate = IDLE;endNOMATCH: beginnextstate = IDLE;enddefault: beginnextstate = IDLE;endendcaseendendmodule```七、实验结果与分析1. 长度为4位的序列检测器:当输入序列为1001时,输出高电平;当输入序列不为1001时,输出低电平。
序列检测器实验报告序列检测器实验报告概述:序列检测器是一种用于判断输入序列是否符合特定规则的工具。
在本次实验中,我们使用了一种基于深度学习的序列检测器模型,并对其进行了性能评估和优化。
1. 实验背景序列检测器在许多领域中都有着广泛的应用,如自然语言处理、语音识别、图像处理等。
本次实验旨在通过搭建一个序列检测器模型,探索其在序列数据处理中的效果和潜力。
2. 实验设计我们选择了一组包含数字序列的数据集作为实验样本。
数据集中的每个序列都由一系列数字组成,我们的目标是通过训练序列检测器模型,使其能够准确地判断输入序列是否符合某种规则。
3. 模型搭建我们采用了一种基于循环神经网络(RNN)的模型来构建序列检测器。
RNN是一类特殊的神经网络,可以有效地处理序列数据。
我们使用了长短期记忆(LSTM)单元作为RNN的基本构建块,以提高模型对长期依赖关系的建模能力。
4. 实验步骤首先,我们将数据集划分为训练集和测试集,其中训练集用于模型的训练和参数优化,测试集用于评估模型的性能。
接下来,我们对训练集进行预处理,将每个数字序列转换为对应的数值表示。
然后,我们构建了一个包含多个LSTM 层的序列检测器模型,并通过反向传播算法对其进行训练。
5. 实验结果经过多次实验和参数调整,我们得到了一个性能较好的序列检测器模型。
在测试集上的评估结果显示,该模型能够以高准确率和较低的误判率判断输入序列是否符合规则。
此外,我们还对模型的训练时间和资源消耗进行了分析,发现其在处理大规模序列数据时表现出较好的效率。
6. 优化探索为了进一步提升序列检测器的性能,我们尝试了一些优化策略。
首先,我们增加了模型的深度,即增加了LSTM层的数量。
实验结果显示,增加模型深度可以提高模型的准确率,但也会增加训练时间和资源消耗。
其次,我们尝试了不同的优化算法和学习率调度策略,以寻找更好的模型参数配置。
最后,我们还尝试了集成学习的方法,将多个序列检测器模型的预测结果进行集成,以进一步提升模型的性能。
南华大学船山学院实验报告(2009 ~2010 学年度第二学期)课程名称EDA实验名称序列检测器的设计姓名学号20099440专业计算机科学与班级01技术地点8-212 教师一、实验目的:初步学习了解序列检测器的原理二、设计思路:序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,这在数字通信领域有广泛的应用。
当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。
由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。
在检测过程中,任何一位不相等都将回到初始状态重新开始检测。
如图6.3所示,当一串待检测的串行数据进入检测器后,若此数在每一位的连续检测中都与预置的密码数相同,则输出“A ”,否则仍然输出“B ”。
三、实验原理图:四、实验代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CHK ISPORT(DIN:IN STD_LOGIC; CLK,CLR:IN STD_LOGIC;D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);AB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END CHK;ARCHITECTURE ART OF CHK ISSIGNAL Q :INTEGER RANGE 0 TO 8;BEGINPROCESS ( CLK,CLR )BEGINIF CLR= '1' THEN Q<=0;CHK AB [3..0]D[7..0]CLR CLK DIN CLK DIN CLR D[7..0]AB [3..0]ELSIF CLK'EVENT AND CLK= '1' THENCASE Q ISWHEN 0 => IF DIN =D(7) THEN Q<= 1 ;ELSEQ<=0;END IF;WHEN 1 => IF DIN =D(6) THEN Q<= 2 ;ELSEQ<=0;END IF;WHEN 2 => IF DIN =D(5) THEN Q<= 3 ;ELSEQ<=0;END IF;WHEN 3=> IF DIN =D(4) THEN Q<= 4 ;ELSEQ<=0;END IF;WHEN 4 => IF DIN =D(3) THEN Q<= 5 ;ELSEQ<=0;END IF;WHEN 5 => IF DIN =D(2) THEN Q<= 6 ;ELSEQ<=0;END IF;WHEN 6 => IF DIN =D(1) THEN Q<= 7 ;ELSEQ<=0;END IF;WHEN 7 => IF DIN =D(0) THEN Q<= 8 ;ELSEQ<=0;END IF;WHEN OTHERS => Q<=0;END CASE;END IF ;END PROCESS;PROCESS(Q)BEGINIF Q= 8 THEN AB<= "1010";ELSE AB<= "1011";END case;END IF ;END PROCESS;END ART;五、实验结果:六、实验心得:掌握使用VHDL 描述组合电路的基本方法,学会使用MAX+plus 对VHDL 代码进行综合和仿真,能够使用时序仿真功能对所设计模块进行仿真测试。
课程设计序列检测器的设计一、课程目标知识目标: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、掌握序列检测器的工作原理;2、掌握时序电路的经典设计方法;3、学习AHDL 语言的状态机的设计方法;二、实验内容设计一个 1110010 序列检测器,即检测器连续收到一组串行码“1110010”后,输出检测标志1,否则输出0。
要求用图形输入法完成:①作状态图和状态表;②状态化简,建立最简状态表;③写出状态编码;画出状态编码表;④建立激励函数,输出函数真值表;⑤写出激励函数和输出函数表达式;⑥画出逻辑电路测试图;⑦逻辑功能仿真,记录仿真波形并加以说明;⑧下载验证(两种以上的方式)。
三、实验原理及方案代码序列检测器是一种同步时序电路,它用于搜索,检测输入的二进制代码串中是否出现指定的代码序列,001 序列检测器的原理图如下:1、设计序列检测器状态图。
(1)、首先,本实验要从一串二进制编码中检测出一个已预置的七位二进制码1110010,每增加一位相当于增加一个状态,再加上一个初始态,用八个状态可以实现,其状态转换图如下:做出状态表为:根据状态表和转移表得到次态方程为:Q3*=X’Q3Q2’Q1’+XQ3Q2’Q1+X’Q3’Q2Q1+X’Q3Q2Q1’Q2*=XQ2’Q1+XQ3’Q2+Q3Q2Q1’Q1*=X’Q3Q1’+XQ2’Q1’+XQ2Q1+XQ3’Q2由状态方程得出电路图如下:2、用八位移位寄存器得到并行序列检测器,电路图如下:说明:八位寄存器用来依次输入八位数据,S0,S1为1,1时送数至QA到QD,QA为高位,当S0S1为10时使得到的数左移位,输入集成芯片的X,再一次对其进行检测,看序列是否为1110010,若是则OUT输出为1。
四、实验步骤:1、在maxplus下进行一系列操作,仿真得到序列检测器波形图如下:CLR有效输入为1,进入状态s1 CLR有效输入为1,进入状态s2CLR有效输入为1,进入状态s3CLR有效输入为0,进入状态s4CLR有效输入为0,进入状态s5CLR有效输入为1,进入状态s6输入为1,进入状态s7同时检测到序列out为1CLR有效输入为1,进入状态s1CLR有效输入为0,进入状态s0同时下载序列检测器到实验箱,有如下引脚:2、(1)、对74198及序列检测器组成的八位并行序列检测器仿真得到波形如下:(2)、下载按照触发器下载验证方法对八位寄存器进行验证。
数字系统设计与PLD应用
实验报告
实验名称:实验5序列检测器
学院:大数据与信息工程学院
专业:电子信息工程
姓名:李晓雪
学号:1108040198
年级:大四
任课教师:尉学军
2014 年 12 月 7 日
实验5 序列检测器
一.实验目的
(1)了解用状态机的方法设计序列检测器
(2)实验一个11010串行序列检测器,用VHDL语言描述该电路
二、实验原理
序列检测器的示意图如图一所示
11010序列检测器的状态转换图如图二所示
三、实验内容
(1)用VHDL语言编写11010序列检测器源程序。
给出正确仿真波形图。
(2)用VHDL分别设计一个包含(11010)和不包含的序列发生器。
(3)将上述两个序列发生器分别和序列检测器结合成一个文件(级联),并编译、模拟获得正确的仿真波形。
四、实验结果
1、序列检测器(检测11010)
根据状态转换通过VHDL语言实现序列检测器:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY jc11010 IS
PORT(DIN,CLK,RST:IN STD_LOGIC;
SOUT:OUT STD_LOGIC);
END jc11010 ;
ARCHITECTURE BEHA V OF jc11010 IS
TYPE STATES IS (S0,S1,S2,S3,S4);
SIGNAL ST,NST:STA TES:=S0;
BEGIN
COM:PROCESS(ST,DIN) BEGIN
CASE ST IS
WHEN 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='1' THEN NST<=S2;ELSE NST<=S3;END IF; WHEN S3=>IF DIN='1' THEN NST<=S4;ELSE NST<=S0;END IF; WHEN S4=>IF DIN='1' THEN NST<=S2;ELSE NST<=S0;END IF; WHEN OTHERS=>NST<=S0;
END CASE;
END PROCESS;
REG:PROCESS (CLK,RST)
BEGIN
IF RST='1' THEN ST<=S0;
ELSIF CLK'EVENT AND CLK='1' THEN ST<=NST;
END IF;
END PROCESS REG;
SOUT<='1' WHEN ST=S4 ELSE '0';
END BEHA V;
波形仿真结果:
2.采用状态机方法设计序列发生器
11010序列产生器的VHDL语言:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY csq11010 IS
PORT(CLK:IN STD_LOGIC;
Z :OUT STD_LOGIC);
END csq11010 ;
ARCHITECTURE RTL OF csq11010 IS
TYPE STATE_TYPE IS(S0,S1,S2,S3,S4,S5);
SIGNAL CURRENT_STATE,NEXT_STATE:STATE_TYPE; BEGIN
SYNCH: PROCESS
BEGIN
WAIT UNTIL CLK'EVENT AND CLK='1'; CURRENT_STATE<=NEXT_STATE;
END PROCESS;
STATE_TRANS:PROCESS(CURRENT_STATE)
BEGIN
CASE CURRENT_STATE IS
WHEN S0=>
NEXT_STATE<=S1;
Z<='1';
WHEN S1=>
NEXT_STATE<=S2;
Z<='1';
WHEN S2=>
NEXT_STATE<=S3;
Z<='0';
WHEN S3=>
NEXT_STATE<=S4;
Z<='1';
WHEN S4=>
NEXT_STATE<=S5;
Z<='0';
WHEN S5=>
NEXT_STATE<=S0;
Z<='1';
END CASE;
END PROCESS;
END RTL;
仿真波形结果:(产生的11010序列串)
3、随机序列产生器(产生序列1100101)
VHDL语言:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY SY4 IS
PORT(CLK:IN STD_LOGIC;
Z :OUT STD_LOGIC);
END SY4 ;
ARCHITECTURE RTL OF SY4 IS
TYPE STATE_TYPE IS(S0,S1,S2,S3,S4,S5,S6);
SIGNAL CURRENT_STATE,NEXT_STA TE:STA TE_TYPE; BEGIN
SYNCH: PROCESS
BEGIN
WAIT UNTIL CLK'EVENT AND CLK='1';
CURRENT_STATE<=NEXT_STA TE;
END PROCESS;
STA TE_TRANS:PROCESS(CURRENT_STATE)
BEGIN
CASE CURRENT_STATE IS
WHEN S0=>
NEXT_STATE<=S1;
Z<='1';
WHEN S1=>
NEXT_STATE<=S2;
Z<='1';
WHEN S2=>
NEXT_STATE<=S3;
Z<='0';
WHEN S3=>
NEXT_STATE<=S4;
Z<='0';
WHEN S4=>
NEXT_STATE<=S5;
Z<='1';
WHEN S5=>
NEXT_STATE<=S6;
Z<='0';
WHEN S6=>
NEXT_STATE<=S0;
Z<='1';
END CASE;
END PROCESS;
END RTL;
波形仿真结果:
3、11010序列产生器与11010序列检测器级联后的电路图:
波形仿真结果:
4、不包含11010的任意序列产生器与11010序列检测器级联后的电路图:
波形仿真结果:。