1011序列检测器与发生器

1011序列检测器与发生器
1011序列检测器与发生器

时序逻辑电路课程设计

——1011序列信号发生器及检测器的实现

作者:李耀楠

学号:2010071060010

学院:自动化工程学院

指导老师:姜书艳

(一)摘要

本次课程设计的任务是设计具有发生和检测“1011”数

字序列的逻辑功能的数字电路。根据设计要求,可以采用不

同的方案(不同芯片,不同电路)来实现“1011”数字序列

发生器和检测器。我们主要通过芯片和逻辑门搭建满足要求

的逻辑电路,并对其进行仿真。

(二)关键字

1011,发生器,检测器,循环输出,74X163, 74X151, 74X194

(三)引言

序列信号发生器和序列信号检测器在数字电路中占有

举足轻重的地位,在很多重要或非重要的场合都有应用。所

谓序列信号是把一组0、1数码按一定规则顺序排列的串行信

号,可以做同步信号、地址码、数据等,也可以做控制信号。

序列信号发生器就是产生一系列特定的信号的数字电路;序

列信号检测器是指能够对一组或多组特定的序列信号进行检

测的数字电路。

(四)设计过程

<1>设计思想

A. 对于序列信号发生器部分,可以利用同步计数器+数据

选择器很方便地实现周期序列发生器。具体说来,可将计数器的

输出作为数字选择器的地址选择码,数据选择器的数据输入端接要选择的地址码,数据选择器的输出端即为要产生的串行周期序列。

B.对于序列信号检测器部分,要做到实现对1011序列的检测,应当实现对1,10,101等状态的记忆,当输入1011时输出1表示检测成功。此过程可以通过移位寄存器配合组合电路实现。

<2>设计框图及详细说明

A.序列信号发生器部分:

利用同步计数器74×163和数据选择器74×151设计

具体实现过程为:将QA、QB端通过与非门连接到CLR清零端,实现同步计数器74×163循环计数00、01、10、11的目的,再将这些数送到数据选择器74×151的地址选择端的低二位,使数据选择器依次循环输出D0、D1、D2、D3上的信号,同时预置D0=1、D1=0、D2=1、D3=1,这样就实现了循环产生1011序列信号的逻辑功能。

逻辑电路图:

B.序列信号检测器部分

利用移位寄存器74X194实现,检测序列不可重叠(即1011的最后一个1不能作为下一组序列开头的1使用)。

具体实现过程为:

运用左移寄存功能(S0=0,S1=1),将移位寄存器的输出用一个四输入的与门相连作为输出Z, 当且仅当从信号输入端依次连续输入1011时,移位寄存器输出端QA=1,QB=0,QC=1,QD=1,此时电路输出端OUT=1,即检测到序列1011。

逻辑电路图:

C.总电路图

d.仿真波形

由仿真波形可见,上述电路实现了对1011序列信号的产生与检测。

(五)结束语

1.序列信号检测器部分还可以运用两片D触发器的级联实现,同时这种设计还能实现不可重叠的检测,但这种方法设计过程繁杂,电路更加繁琐,因此在此次设计过程中选择了移位寄存器实现的序列检测电路。

2. 通过此次课程设计,详细了解并掌握了序列信号发生与检测器的原理及功能,同时对时序电路有了更深的理解,并进一步实现了对电路仿真软件的掌握,提高了实践能力,获益匪浅.

使用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.熟悉QuartusⅡ软件应用环境,了解实验流程。 2.编写简单的Verilog代码,并在QuartusⅡ中进行调试和验证,并在EDA6000中下载代 码和验证。 3.掌握用状态机(State Machine)实现序列检测器的设计。 二、实验原理 假设检测器预先已经设定一个8位序列d,那么当由din端口串行输入的一个8位序列,与d完全相同时,检测器输出代码1010,即在试验箱上的LED上显示一个“A”;否则,检测器输出1110,即在试验箱上的LED上显示一个“E”。同时,当清零信号clr有效时,输出为1110。由清零信号clr和输入信号din共同控制状态机的状态变化。 三、实验内容 1、检测一组二进制序列信号,当连续的脉冲信号和预先设定的序列d相同时,显示字符“A”,否则显示“E”。 2、使用工具为译码器建立一个元件符号 3、设计仿真文件,进行验证。 4、编程下载并在实验箱上进行验证。 四、实验步骤 1.新建Verilog工程项目,编写代码并保存至与模块名对应的项目文件夹。 2.编译程序,编译无误后,在【tools】>【netlist viewers】里面选择RTL Viewer,观察电 路结构;在【tools】>【netlist viewers】里面选择State Machine Viewer,查看状态机转换图。 3.新建波形文件进行仿真。保存时要和源程序存放在同一目录下。设置好输入波形参数后, 开始仿真。在仿真后输入输出波形中观察逻辑关系是否正确。 4.将实验箱和PC合理连接起来。打开EDA6000软件,设置好芯片类型为ACEX1K (EP1K30TC144-3),载入模式12。 5.根据EDA6000界面内管脚对应芯片的实际管脚在QUARTUSⅡ里面设定管脚号并检查 无误。 6.将程序下载至FPGA内,并在EDA6000软件界面内进行验证测试。 程序代码 module SCHK(clk,din,clr,d,err); input clk,din,clr; input [7:0]d; output [3:0]err; parameter s0=0,s1=1,s2=2,s3=3,s4=4,s5=5,s6=6,s7=7,s8=8; reg [8:0]cs,ns; reg [3:0]err; always @(posedge clk or posedge clr) begin if(clr) cs<=s0; else cs<=ns; case (cs) s0:if(din==d[0] ) ns<=s1; else ns<=s0;

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

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

quartus设计状态机实现序列检测器

用状态机实现序列检测器的设计 一、原理 序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果与检测器预先设置的码相同,则输出为1,否则输出为0。 二、内容与步骤: 1、状态转换图 2、设计一个序列检测器,对1110010进行检测,编写实验程序。 3、对程序进行仿真测试并给出仿真波形。 4、仿真通过后进行引脚锁定,再进行一次全编译,并下载到实验箱上进行验证。 三、状态机源程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY STATEMACHINE IS PORT(DIN,CLK,RST:IN STD_LOGIC; SOUT:OUT STD_LOGIC); END STATEMACHINE; ARCHITECTURE BEHA V OF STATEMACHINE IS TYPE STATES IS (S0,S1,S2,S3,S4,S5,S6,S7); SIGNAL ST,NST:STATES:=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<=S3;ELSE NST<=S0;END IF; WHEN S3=>IF DIN='1' THEN NST<=S3;ELSE NST<=S4;END IF; WHEN S4=>IF DIN='1' THEN NST<=S1;ELSE NST<=S5;END IF; WHEN S5=>IF DIN='1' THEN NST<=S6;ELSE NST<=S0;END IF; WHEN S6=>IF DIN='1' THEN NST<=S2;ELSE NST<=S7;END IF; WHEN S7=>IF DIN='1' THEN NST<=S1;ELSE NST<=S0;END IF; WHEN OTHERS=>NST<=S0; END CASE;

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

第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-),女,山西运城人,河北师范大学数学与信息科学学院讲师,硕士,研究方向:并行逻辑模拟,计算机系统结构.

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

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

parameter idle = 8'b00000000, a = 8'b00000001, b = 8'b00000010, c = 8'b00000100, d = 8'b00001000, e = 8'b00010000, f = 8'b00100000, g = 8'b01000000, h = 8'b10000000; parameter data=8'b11100101; always @(posedge CLK or negedge CLR) if(!CLR) begin Q <= idle; end else begin case(Q) idle: begin if(DIN==data[7]) Q<=a; else Q<=idle; end a: begin if(DIN== data[6]) Q<=b; else Q<=idle; end b: begin if(DIN== data[5]) Q<=c; else Q<=idle; end c: begin if(DIN== data[4]) Q<=d; else Q<=c; end d: begin

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

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

实验5 状态机序列检测器设计

实验五序列检测器设计 一、实验目的 1 掌握时序电路状态机设计一般方法; 2 学会用状态机方法实现序列检测器的设计。 二、实验原理: 序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。序列检测可由状态机完成,也可进行串行滑窗检测器。 线性反馈移位寄存器,用来产生伪随机序列,用做测试数据输入。 三、实验内容 1、完成“1101”检测器的设计,输入信号a和时钟clk,输出为out。 2、设计一个五位线性反馈移位寄存器,其输出数据以串行移位方式进入序列 检测器,其有置数端set,输入时钟clk,左移输出out; 3、连接五位线性反馈移位寄存器和序列检测器构成完整实验系统。 四、设计步骤 1、建立新工程, 2、完成五位线性反馈移位寄存器设计,序列检测器设计,顶层文件设计,并把各 个模块连接起来。 3、对顶层文件进行编译。 4、对顶层文件时序仿真。 五、实验报告:根据以上的实验内容写出实验报告,包括设计原理、程序设计、仿真分析等详细实验过程。 六、扩展部分: 1、采用文本输入方式构成顶层文件,重新构造本系统。

2、设计采用移动滑窗法进行序列检测。 参考程序:状态机序列检测器(1101)module fsm (clock, reset, datain, out); input clock,reset, datain; output out; reg out; reg [1:0] state; parameter Idle = 2'b00, Start = 2'b01, Step=2'b10, Stop = 2'b11; always @(posedge clock)// if (!reset) // begin state <= Idle; out<=0; end else case (state) Idle: if (datain==1) begin state <= Start; out<=0; end else begin state<=Idle; out<=0; end Start: if (datain==1) begin state <= Step; out<=0; end else state <=Idle; Step: if (datain==0) begin state <= Stop; out<=0; end else state<=Step; Stop: if (datain==1) begin state <= Idle; out<=1; end else begin state <=Idle; out<=0; end endcase endmodule

EDA实验六-用状态图输入法实现序列检测器

EDA实验六用状态图输入法实现序列检测器 一、实验目的: 了解序列检测器的基本原理,Mealy型和Moore型状态机的基本原理, 掌握状态图输入法实现序列检测器的方法,并进行分析和仿真验证。 二、实验内容: 本实验内容是:用状态图输入法设计一个序列检测器,若检测器收到一组码流1110010则输出为1,否则输出为0。 三、实验方法: 实验方法: 采用基于FPGA进行数字逻辑电路设计的方法。 采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。 实验步骤: 1、绘制状态图。打开QuartusII软件平台,建立工程文件夹,工程文件夹名称为exp_detect3。然后点击File中的New建立一个状态图文件(用State Machine File命令),然后设置并生成状态图。 2、按照实验箱上FPGA的芯片名更改编程芯片的设置。操作是点击Assign/Device,选取芯片的类型。 3、编译与调试。确定状态图文件为当前工程文件,点击Complier进行文件编译。编译结果有错误或警告,则将要调试修改直至文件编译成功。 4、波形仿真及验证。在编译成功后,点击Waveform开始设计波形。点击“insert the node”,按照程序所述引脚,任意设置各输入节点的输入波形…点击保存按钮保存。 5、FPGA芯片编程及验证,应记录实验结果进行分析。 四、实验过程: 用状态图输入法实现序列检测器: 1、建立工程文件,工程文件夹的名称为exp_detect3,工程名和顶层实体名称为exp_detect3。 工程建立过程中平台设置设置如下图所示:

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

电子课程设计 ------序列检测器 学院: 专业班级: 姓名: 学号: 指导老师: 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)

设计一个的序列检测器完整版

设计一个的序列检测器 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

二、设计一个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…… 该电路仅有一个输入端,每个现态有两个可能转移方向,设电路初态为 S 0,当X=0时,电路仍处在状态S ,当输入一个1以后的状态为S 1 ,输入10以后的状 态为S 2,输入101以后的状态为S 3 ,输入1010以后的状态为S 4 。以S n表示电路的现 态,S n+1表示电路的次态。 由此得出原始状态转换图和原始状态转换表:

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

序列检测器之状态机设计

序列检测器之状态机设计 一、实验目的 8位序列数“110110011”的检测,当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的“密码”数相同,则输出1,否则仍然输出0。 二、实验原理 (1)状态机用于序列检测器的设计比其他方法更能显示其优越性。 (2)序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种监测器必须记住前一次的正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测的过程中,任何一位不相等都将回到初始状态重新开始检测。 三、实验步骤 (1)检测数据110110011,高位在前的程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SCHK IS PORT(DIN,CLK, RST : IN STD_LOGIC;--串行输入数据位/工作时钟/复位信号 SOUT : OUT STD_LOGIC);--检验结果输出 END SCHK; ARCHITECTURE behav OF SCHK IS TYPE states IS (S0, S1, S2, S3,S4, S5, S6, S7, S8);--定义各种状态 SIGNAL ST, NST: states :=s0 ;--设定现态变量和次态变量 BEGIN COM: PROCESS(ST, DIN) BEGIN --组合进程,规定各状态转换方式 CASE ST IS --11010011 WHEN s0 => IF DIN = '1' THEN NST <= s1 ; ELSE NST<=s0 ; END IF ; WHEN s1 => IF DIN = '0' THEN NST <= s2 ; ELSE NST<=s0 ; END IF ; WHEN s2 => IF DIN = '0' THEN NST <= s3 ; ELSE NST<=s0 ; END IF ; WHEN s3 => IF DIN = '1' THEN NST <= s4 ; ELSE NST<=s0 ; END IF ; WHEN s4 => IF DIN = '1' THEN NST <= s5 ; ELSE NST<=s0 ; END IF ; WHEN s5 => IF DIN = '0' THEN NST <= s6 ; ELSE NST<=s0 ; END IF ; WHEN s6 => IF DIN = '1' THEN NST <= s7 ; ELSE NST<=s0 ; END IF ; WHEN s7 => IF DIN = '0' THEN NST <= s8 ; ELSE NST<=s0 ; END IF ; WHEN s8 => IF DIN = '0' THEN NST <= s3 ; ELSE NST<=s0 ; END IF ; WHEN OTHERS => NST<=s0; END CASE; END PROCESS; REG: PROCESS (CLK,RST) BEGIN ---时序进程

实验5 采用状态机实现序列检测器

实验5 采用状态机实现序列检测器 一、实验目的 1.掌握利用有限状态机实现一般时序逻辑分析的方法; 2.掌握利用Verilog编写可综合的有限状态机的标准模板。 二、仪器设备 计算机、Quartus II 9.0 开发软件。 三、实验内容与步骤: 1.实验内容 建立一个序列检测器设计文件,当检测到3个及3个以上1时输出为1。 2.实验步骤 1)新建工程文件夹; 2)启动Quartus II 3)选择File->New Project Wizard,建立新工程; 4)File->New->Verilog HDL File建立设计文件; 5)选择Processing->Start->Start Analysis&Synthesis进行电路综合; 6)选择Tools->Netlist Viewers->RTL Viewer,查看综合后得到的电路; 7)选择Tools->Netlist Viewers->State Machine Viewer,查看综合后得到的有限状态机;8)选择Processing->Start->Start Fitter进行电路适配; 9)选择Tools->Netlist Viewers->Technology Map Viewer,查看适配后得到的电路。 四、实验数据 写出程序代码,及状态转换图。 五、讨论 写出三段式有限状态机的建模方式。 六、其它 实验原理要求说明: 1.什么是有限状态机; 2.什么是Moore有限状态机与Mealy有限状态机; 3.说明用Verilog HDL设计有限状态机的一般步骤。 附:程序部分代码 module seq_111(clk,clr,x,z); input clk,clr,x;

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

1.掌握基于语言的ISE设计全流程; 实验三:用状态机实现序列检测器的设计 一、实验目的 用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。 掌握基于语言的ISE设计全流程; 熟悉、应用VerilogHDL描述数字电路; 实验原理与设计过程 实验内容:序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出A,否则输出b。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。例3-1描述的电路完成对序列数""的。当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“b”。 本次实验的核心是:应用有限状态机的设计思路,检测输入的串行数据是否是8’b。根据下载电路板的资源,拟用SW3---SW0,J4接口的E8,F8,C7,D7作为系统输入(系统由此需要设计一个8bits并行数据转串行的模块),一个7段数码显示译码器作为检测结果的输出显示,如果串行序列为”11100101”,显示A,否则显示b(系统需要设计一个7段数码显示译码器模块),为了显示可控,清晰,拟用V16,D18实现时钟,复位信号的输入。 设计参考:本实验由顶层文件、串行检测、并行数据转串行、数码管显示四个模块组成: 系统共包括4个模块:并行数据转串行数据模块、串行检测模块、数码管显示模块、消抖模块。由于需要用按键V16作为时钟输入,为保证实验效果,调用实验二中应用的消抖模块,对时钟clk输入信号进行消抖。 对于并行数据转串行数据模块输入输出端口说明: clk-----系统时钟,由按键V16通过消抖模块后提供。 din8-----8bits输入数据,需在时钟控制下,串行输出。 reset----系统复位信号,当reset=1’b1时,系统输出复位,否则系统正常工作。 din----------1bit输出信号。 该并行模块的设计如下: module xulie_u1(clk,din8,reset,din );

110序列编码检测器的设计

110序列编码检测器的设计 设计一个110序列编码检测器。 设计一个序列检测电路,当检测到输入信号出现110的序列编码(按自左至右的顺序)时,电路输出为1,否则输出为0。 指导教师签名: 2008年7月 6 日 指导教师签名: 2008 年7月日 验收盖章 2008年月日 熟悉集成电路的引脚排列。 掌握各种芯片的逻辑功能及使用方法。 了解序列检测器的组成及工作原理。 熟悉序列检测器的设计和制作。 由给定的逻辑功能建立原始状态图和原始状态表。 状态简化。 状态分配。 选择触发器类型。 确定激励方程和输出方程组。 画出逻辑图,并检查自启动能力。 (1)由给定的逻辑功能建立原始状态图和原始状态表

从给定的逻辑功能可知,电路有一个输入信号A和一个输出信号Y,电路功能是对输入信号A的编码序列进行检测,一旦检测到信号A出现连续编码为110序列时,输出为1,检测到其他编码序列,则输出均为0。 设电路的初始状态为a,如图1中大箭头所指。在此状态下,电路输出Y=0,这时可能的输入有A=0和A=1两中情况。当CP脉冲相应边沿到来时,若A=0,则是收到0,应保持在状态a不变;若A=1,则转向状态b,表示电路收到一个1。当在状态b时,若输入A=0,则表明连续输入编码为10,不是110,则应回到初始状态a,重新开始检测;若A=1,则进入c,表示已连续收到两个1。在状态c时,若A=0,表示已收到序列编码110,则输出Y=1,并进入状态d;若A=1,则收到的编码为111,应保持在状态c不变,看下一个编码输入是否为A=0;由于尚未收到最后的0,故输入仍为0。在状态d,若输入A=0,则应回到状态a,重新开始检测;若A=1,电路应转向状态b,表示在收到110之后又重新收到一个1,已进入下一轮检测;在d状态下,无论A为何值,输出Y均为0。根据上述分析,可以得出原始状态图和表1所示的原始状态表。 1 )nn+1nn+1现态(S)次态/输出(S/Y)现态(S)次态/输出( S/Y)

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

西南科技大学 实验报告FPGA现代数字系统设计 实验题目:用状态机实现序列检测器的设计 专业班级:对抗0802班 学生姓名:龙钱梅 学生学号:20080877 实验时间:4个小时 指导教师:刘桂华

实验三用状态机实现序列检测器的设计 一、实验目的: 用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。 二、原理说明: 序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出a,否则输出b。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。例3-1描述的电路完成对序列数"11100101"的。当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“a”,否则仍然输出“b”。 三、实验内容: 1. 编写由两个主控进程构成的有限状态机。画出状态图,并给出其仿真测试波形; 第一个主控进程schk程序: module schk(DIN,CLK,CLR,AB); input DIN,CLK,CLR; output[3:0] AB; reg [7:0] Q; reg [3:0] AB; parameter idle = 8'b00000000, a = 8'b00000001, b = 8'b00000010, c = 8'b00000100, d = 8'b00001000, e = 8'b00010000, f = 8'b00100000, g = 8'b01000000, h = 8'b10000000; parameter data=8’b11100101; always @(posedge CLK or negedge CLR) if(!CLR) begin Q <= idle; end

相关文档
最新文档