设计一个1010的序列检测器

合集下载

verilog-10101状态机序列检测器的设计

verilog-10101状态机序列检测器的设计
always @ (in or state) begin case(state) S0:
begin if (in) begin next_state <= S1; out = 1'b0; end else
begin next_state <= S0; out = 1'b0; end
end S1:begin if (in) begin
initial begin //time clk = 0; forever #50 clk = ~clk; end
initial begin in = 0; reset = 1; #200 reset = 0;
#50 in = 1;#100 in = 0;#100 in = 1; #100 in = 0;#100 in = 1;#100 in = 0; #100 in = 1;#100 in = 1;#100 in = 1; #100 in = 1;#100 in = 0;#100 in = 1; #100 in = 1;#100 in = 1;#100 in = 1; #100 in = 1;#100 in = 0;#100 in = 1; #100 in = 0;#100 in = 1;#100 in = 0; end xulie10101 m( .in(in),
2这个运算并没有赋给任何变量注释后效果也一样请问这行代码的用处是什么
verilog-10101状 态 机 序 列 检 测 器 的 设 计
首先,画出状态转移图
代码:
module xulie10101 #( parameter S0 = 3'b000,//状态定义 parameter S1 = 3'b001, parameter S2 = 3'b010, parameter S3 = 3'b011, parameter S4 = 3'b100 ) ( input in, input clk, input reset, output out );

时序电路设计-101序列检测器

时序电路设计-101序列检测器

数字逻辑设计及应用课程设计报告姓名:雷蕾学号:2010012030036选课号:设计题号: 5一.设计题目:设计101序列检测器二.设计要求要求使用状态机设计一个序列检测器,检测输入数据,当输入中出现101时,输出1,否则输出为0。

不进行重复判断,即当出现10101…时,输出为00100…判断的具体流程如下:1.电路复位,进入状态S0,等待输入2.S0状态下:如果输入为0,则停留在S0,如果输入为1,则跳转到S13.S1状态下:如果输入为0,则跳转到S2,如果输入为1,则停留在S14.S2状态下:如果输入为1,则输出1,并跳转到S0,如果输入为0,则输出0,并跳转到S0检测器电路实现:时钟信号,1 bit输入待判断信号,1bit输出判断结果。

三.设计过程1.设计方案:通过使用ISE编写verilog语言,实现以下过程:1s3只有当s3接收到的输入信号为1的时候,输出才会为1,其余时候输出都为0.2.设计程序:模块文件:`timescale 10ns/1ns//////////////////////////////////////////////////////////////////////////////////// Company:// Engineer://// Create Date: 21:02:40 06/06/2012// Design Name:// Module Name: abcd// Project Name:// Target Devices:// Tool versions:// Description://// Dependencies://// Revision:// Revision 0.01 - File Created// Additional Comments://////////////////////////////////////////////////////////////////////////////////// module abcd(input reset,input clk,input ipt,output reg result);parameter [1:0] s0 = 2'b00, s1 = 2'b01, s2 = 2'b10;reg[1:0] state;always @ (posedge clk)beginif(reset)beginstate<=s0;result<=0;endelsebegincase(state)s0:beginif(ipt==0)beginstate<=s0;result<=0;endelse.beginstate<=s1;result<=0;endends1:beginif(ipt==0)beginstate<=s2;result<=0;endelsebeginstate<=s1;result<=0;endends2:beginif(ipt==0)beginstate<=s0;result<=0;endelsebeginstate<=s0;result<=1;endenddefault:beginstate<=s0;result<=0;endendcaseendendendmodule测试文件:`timescale 10ns / 1ps////////////////////////////////////////////////////////////////////////////// //// Company:// Engineer://// Create Date: 23:05:50 06/06/2012// Design Name: test_detector// Module Name: D:/TDDOWNLOAD/fortwo2/haha.v// Project Name: fortwo2// Target Device:// Tool versions:// Description://// Verilog Test Fixture created by ISE for module: test_detector//// Dependencies://// Revision:// Revision 0.01 - File Created// Additional Comments://////////////////////////////////////////////////////////////////////////////// //module haha;module test_detector();reg clk;reg reset;reg ipt;wire result;reg[20:0] indata=20'b101001110011011110110;integer i;initial clk=1;always #1 clk=~clk;initialbeginreset=1;ipt=0;#4reset=0;for(i=0;i<21;i=i+1)beginipt=indata[i];#2;end#10$stop;endabcd detector_instance(.clk(clk),.reset(reset),.ipt(ipt),.result(result));endmodule3.仿真结果四.设计结论(包括:设计结果分析、设计中遇到的问题、设计心得和体会等) 1.设计结果分析:以时钟信号的一个周期为基准,有仿真结果可看出,当输入(ipt)为连续的一个周期高一个周期的低一个周期的高(即101)时,输出(result)为高。

实验三 序列信号检测器的设计

实验三  序列信号检测器的设计

实验三序列信号检测器的设计一、实验目的:1、理解序列信号检测器的工作原理;2、掌握原理图和文本输入的混合设计输入方法;3、理解状态划分;4、掌握状态机程序的编写方法;二、实验原理:序列检测器是时序数字电路中非常常见的设计之一。

它的主要功能是:将一个指定的序列从数字码流中识别出来。

接下来的设计就是针对“011”这个序列的检测器。

设input为数字码流输入,output为检出标记输出,高电平表示“发现指定序列”,低电平表示“没有发现指定的序列”。

设输入的码流为“001101101111011111...”,在时钟2~4中,码流input里出现指定序列“011”,对应输出output在第4个时钟变为高电平“1”,表示发现指定"011”,以此类推。

序列发生器模块采用的是M(n=4)序列发生器,详细可以参考《EDA技术与应用》一书的4.4团队协作及逻辑锁定。

三、实验内容(1)最终的顶层设计原理图如下:左侧的四个D触发器组成的电路为M序列信号发生器模块,它可以产生15位随机的二进制码流。

发生器产生的二进制码流每隔15个时钟周期重复出现一次。

详细的可以在最终的时序仿真图中看出来。

右侧的get_str模块为检测模块,给予状态机的结构编写的,具体如下:library ieee;use ieee.std_logic_1164.all;entity get_ser isport(clk : in std_logic;input : in std_logic;reset : in std_logic;serout : out std_logic_vector(1 downto 0);output : out std_logic);end entity;architecture rtl of get_ser is-- Build an enumerated type for the state machine type state_type is (s0, s1, s2, s3);-- Register to hold the current statesignal state : state_type;beginserout <= ('0'&input);-- Logic to advance to the next stateprocess (clk, reset)beginif reset = '1' thenstate <= s0;elsif (rising_edge(clk)) thencase state iswhen s0=>if input = '0' thenstate <= s1;elsestate <= s0;end if;when s1=>if input = '1' thenstate <= s2;elsestate <= s1;end if;when s2=>if input = '1' thenstate <= s3;elsestate <= s1;end if;when s3 =>if input = '1' thenstate <= s0;elsestate <= s1;end if;end case;end if;end process;-- Output depends solely on the current state process (state)begincase state iswhen s0 =>output <= '0';when s1 =>output <= '0';when s2 =>output <= '0';when s3 =>output <= '1';end case;end process;end rtl;(2)理解状态机请根据上图对照get_str程序理解检测“011”序列的基本编程思路。

序列检测器实验报告

序列检测器实验报告

序列检测器设计实验内容:设计一个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。

1011序列发生器和检测器的设计实现

1011序列发生器和检测器的设计实现

1011序列发生器和检测器的设计实现摘要序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号.能产生这种信号的逻辑器件就称为序列信号发生器.根据结构不同,它可分为反馈移位型和计数型两种.1.移位型序列信号发生器的组成移位型序列信号发生器是由移位寄存器和组合电路两部分构成,组合电路的输出,作为移位寄存器的串行输入。

由n位移位寄存器构成的序列信号发生器所产生的序列信号的最大长度为:P=2n2.计数型序列信号发生器组成与特点计数型序列信号发生器能产生多组序列信号,这是移位型发生器所没有的功能.计数型序列信号发生器是由计数器和组合电路构成的,序列的长度P就是计数器的模数。

3.D触发器构成的序列信号发生器序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。

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

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

我们采用的是计数型序列信号发生器。

利用计数器与数据选择器构成1011序列发生器,1011序列检测器——上面的输出端,接入一个74LS194移位寄存器再接一个4输入与门,数字0那端输入前加一个非门,这样检测到1011时输出1,其余结果均输出0.然后并用MUX+plus2进行仿真。

关键字1011,序列发生器,检测器,74LS194,数据选择器,74LS163,74LS151一. 总设计序列检测器也称为串行数据检测器,它在数据通讯,雷达和遥测等领域中用于检测同步识别标志,是一种用来检测一组或多组序列信号的电路。

本文输入的序列信号由计数器和数据选择器组成的序列信号发生器提供。

74LS194 74LS163计数器是一种含有若干个触发器、并按预定顺序改变各触发器的状态,累计输入脉冲个数的数字电路。

数字逻辑模拟试卷附答案

数字逻辑模拟试卷附答案

XX 大 学 试 题课程名称 数字逻辑电路设计 开课学院使用班级 考试日期苏 大 学 试题 第3 页苏大 学 试题第4 页四、根据下图波形写出其逻辑关系表达式Z=F(A,B,C) (10分)A B C Z五、分析题:某同步时序逻辑电路如图所示。

(12分)(1) 写出该电路激励函数和输出函数; (2) 画出输出矩阵和激励矩阵; (3) 画出状态表和状态图;(4)设各触发器的初态均为0,试画出下图中Q1、Q2和Z 的输出波形。

数字逻辑模拟试卷2答案一、填空题(每空1分,计20分) 1、(45)6=(35)8=(11101)2=(00101001)84212、若X= 138/512,则[X]反=(0.01000101),[-X]补=(1.10111011)。

3、若[X]补=101100,则X=(-100100),[X/2]补=(110110)。

4、若X=10100110,[X]Gray 码=(11110101)。

5、用n 位补码(含一位符号位)表示定点整数,其表示的数值范围是(-2n-1~2n-1-1)6、VHDL 程序一般由(实体)和结构体两部分组成,其中结构体的基本描述方法有(数据流描述法)、行为描述法和结构描述法。

7、信息码1010对应的奇校验汉明码的长度是(7位)。

8、函数F= A+BC 的反函数是()(C B A )。

9、集成芯片的集成度是以(等效门电路的数量)来衡量的。

10、三态门的三种输出状态是高电平、低电平和(高阻状态)。

11、正负逻辑的约定中,正逻辑是指(高电平表示1;低电平表示0)。

12、触发器的触发方式有直接电平触发、电平触发和(脉冲触发)、(边沿触发)几种。

13、对组合逻辑电路而言,PLD 的理论依据是(任何组合逻辑函数都可以用与-或式表示)。

14、ISP 指的是(在系统可编程技术)二、选择题(每题有一个或多个正确答案,每题1分计10分)1、A2、D3、B ,C4、A ,D5、A ,B ,D6、A ,B ,C7、A ,B ,C8、B9、B ,D 10、C 三、按要求化简下列函数(14分)1.用代数法求函数 F = A B + A B C + B C 的最简“与-或”表达式。

lab10_0101序列检测器仿真(ModelSim)

lab10_0101序列检测器仿真(ModelSim)

0101序列检测器仿真(ModelSim)1.实验目的熟悉Modelsim仿真软件的使用方法,了解状态机的建模方法,使用ModelSim仿真QuartusII工程。

2.实验内容●用HDL语言的输入方式,实现0101/110序列检测器。

●用modelsim进行仿真●下载至DE0开发板上观察实验结果3.代码分析(以0101序列检测器为例)1)状态图如下:图3.1 0101(左)/110(右)序列检测状态图2)主模块中首先定义了本次实验的所有输入输出接口及各个状态。

其中,因为有4种状态,所以current为2位。

//0101 Sequential detectormodule lab1a (vin,cp,ncr,vout);input vin,cp,ncr;output vout;reg vout;reg [1:0] current,next;parameter s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11;3)然后设置异步清零,在cp上升沿则沿触发器状态翻转。

always @(posedge cp or negedge ncr)beginif (~ncr)current <= s0;elsecurrent <= next;end4)接着编写组合逻辑部分,设定下一状态产生和输出的信号。

always @(current or vin)beginnext=2'bxx;case (current)s0:begin next = (vin==1)?s0:s1; ends1:begin next = (vin==1)?s2:s1; ends2:begin next = (vin==1)?s0:s3; ends3:begin next = (vin==1)?s2:s1; endendcaseend5)最后为输出部分,本程序中设置让输出信号经过一个寄存器再输出,可以消除vout信号中的毛刺。

(完整word版)二进制序列1010检测器正确电路

(完整word版)二进制序列1010检测器正确电路

设计一个序列检测器,用来检测输入的串行二进制序列,每当输入序列1010时,检测器输出为1,否则输出为0。

解:进行逻辑抽象,得出原始状态转换图和状态转换图。

设输入为X,输出为Z,设定初态为S0;电路输入一个1后状态为S1;电路再输入一个0以后的状态为S2;电路再输入一个1以后的状态为S3;电路再输入一个0以后的状态为S4;原始状态转换图如下:
原始状态图
状态表如下:
最简状态表如下:
状态编码:上表共有4中状态,可用两位二进制代码代码来表示,设状态变量为Y2和Y1;依据状态编码的原则,可以确定:
(1)S0和S1、S1和S3、S0和S3、S0和S2应相邻编码;
(2)S0和S1、S2和S1、S0和S3应相邻编码;
(3)S0、S1、S2应相邻编码;
(4)S1应取0编码;
最后得到,S1=00,S0=11,S2=10,S3=01
又上表可知,输出方程:Z=Y2Y1n X
用卡诺图对Y2n +1、Y1n+1进行化简,卡诺图如下:
状态方程2:Y2n+1=X
状态方程1:Y1n+1=X Y2n +Y2n Y1n
选用JK触发器来做,
Y2n+1=X
激励方程2:J2= X , K2=X
用同样的方法可得:
激励方程1:J
=Y2n K1= X+ Y2n
1
根据输出方程和驱动方程可画出逻辑图如下:。

11100101序列检测器

11100101序列检测器

状态图:状态表:VHDL:Library IEEE.;Use.ieee.std_logic_1164.all;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位待检测预置数BEGIND <= "11100101 " ; --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 ;提示:若对于D <= "11100101 ",电路需记忆:初始状态、1、11、111 、 1110 、11100、111001、1110010、11100101 共9种状态。

1011序列发生器与检测器

1011序列发生器与检测器

1011序列发生器与检测器---------时序逻辑课程设计学院:自动化工程学院摘要:该设计实现的是串行序列信号1011的发生与检测。

设计通过移位寄存器74194的环形移位功能实现1011序列的循环发生,74194的串并转换功能实现1011序列的检测。

达到了课题要求。

关键词:74194芯片、环形移位、串并转换、一:设计思路及分析1011序列检测与发生器的实现可分为两部分:第一部分为1011序列发生器;第二部分为1011序列检测器。

1.1011序列发生器:通过之前对组合逻辑电路的学习,我发现要实现1011序列的产生有多种方法。

方法1:使用多路复用器的数据选择功能,将1011序列作为并行数据输入多路复用器的数据输入端,再使用一个计数器由计数器控制多路复用器依次选择1,0,1,1这四个输入数据作为输出,将1011序列串行输出,并使计数器重复计数以使1011序列重复产生。

具体的电路如下:从设计可以看出,这种1011序列发生器使用了两块芯片和一个三输入与非门,并且这种设计使74*163芯片和74*151芯片的扇入不能得到充分利用,并不是很好的设计。

方法2:运用第八章移位寄存器的知识,我们可以通过分析状态图来利用移位寄存器完成1011序列发生器。

通过模仿书本例子设计的1000序列发生器。

我做了如下设计:使用移位寄存器芯片74*194,将初始值设为1011,而后开始移位,当QB,QC,QD都为1时,下一输入为0。

并将QB,QC,QD的与非作为下一输入。

以此实现1011序列的产生,并用QA作为序列发出端。

如图,初始时,RESET为1,使ABCD载入,而后RESET为0,开始移位进行环形计数,并由QD输出1011序列。

2.、1011序列检测器1011序列检测器的实现依然可以用移位寄存器完成。

通过74194进行串并转换,将串行数据转换为并行数据以对数据的四位进行检测。

移位寄存器在左移时输入端为SLSI端,当控制端S1=1,S0=0时,74194为左移位模式,QD*=SLSI,QC*=QD,QB*=QC,QA*=QB。

数字电路课程设计-1011序列发生器和检测器实现

数字电路课程设计-1011序列发生器和检测器实现

数字电路课程设计姓名学号选题1011序列发生器和检测器的设计实现题目:1011序列发生器和检测器的设计实现。

要求:1)设计一个1011序列发生器;2)设计一个1011序列检测器,改变序列检测器的输入可以通过人工拨动开关来选择。

思路:(1)设计1011的序列发生器,由课件lec27 FSM design & serial bits generator上知识可知实现这一序列可选用计数器和数据选择器构成序列信号发生器,计数器选用74x163,它是一个带有低电平负载和清零输入端的同步4位二进制计数器,逻辑符号如图;数据选择器选用74x151在八个一位输入中选择,其逻辑图如图所示:选用这两个器件再加上一些组合逻辑器件就可连成如图所示的电路图构成序列信号发生器:(2)设计一个1011序列检测器,同理由lec27 FSM design & serial bits generator 选用JK 触发器设计在选用一些组合逻辑器件即可完成如图所示的电路图(3)整体具体步骤:(1)确定状态数:S0状态,初始状态,当前还没有1输入;S1状态:最后一个输入为1(1…);S2状态:最后二个输入为10(10…) ;S3状态:最后三个输入为101(101…);S 4状态:最后四个输入为1011。

(3)由原始状态转换图可得其状态转换表为:由上图可知 : 状态S1=S 4(4) 状态编码:对S0,S1,S2,S3赋值为00,01,10,11可得状态转换表为由上表可得Q1*,Q2和Z的卡洛图为Q1*故可得:Q1*=XQ2* X故可得Q2*=Q1X’+XQ2Q1’输出Z故可得:Z=XQ2Q1(5)求驱动方程:J1=XK1=X’J2=Q1X’K2=XQ1’+Q1X’Z=XQ2Q1可得出思路中电路图:(6)检查电路的自启动:由上表可知状态00,01,10,11全部为有效状态,即其没有无效状态,故电路肯定能自启动。

(7)仿真此电路的Verilog程序为:module liyafeng(clk,res,Z);input clk,res;output Z;reg[1:0] x;wire Z;reg num;always @(posedge clk) beginif(res==1) beginx<=2'b00; endelse x<=x+1;endalways @(posedge clk) begincase(x)2'b00:num<=1;2'b01:num<=0;2'b10:num<=1;2'b11:num<=1;endcaseendassign Z=num;endmodule它的时序图为:(8)心得体会:通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习数字设计的意义,也达到了其培养的目的。

2021年序列检测器的设计实验报告

2021年序列检测器的设计实验报告
PROCESS (fstate,input1,input2)
BEGIN
output1 <= '0';
CASE fstate IS
WHEN st1 =>
IF (((input1 = '1') AND (input2 = '1'))) THEN
reg_fstate <= st2;
ELSE
reg_fstate <= st0;
设计原理图及源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITYAAIS
PORT ( CLK ,DIN,RST : IN STD_LOGIC;
SOUT: OUT STD_LOGIC;
ENDAA;
ARCHITECTURE behav OFAAIS
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
WHEN s0 => IF DIN = '1' THENNST <= s1;ELSE NST<=s0;END IF;
WHEN s1=> IF DIN = '0' THENNST <= s2;ELSE NST<=s0;END IF;
WHEN s8=> IF DIN = '0' THENNST <= s2;ELSE NST<=s0;END IF;
WHEN OTHERS =>NST <= st0;

1011序列检测器

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作出状态转换表及状态转换图如下:4 画出状态转化图5 根据以上转化图,画出卡诺图6 利用以上卡诺图将化简,得到D0 =/Q3/Q0+/Q3Q2/Q17根据74LS194功能,将D0作为输入,在Q0端即得到所要的101101001 序列.(二)101101001序列信号检测器的设计用负边沿J-K触发器74LS112,设计一个“1011”序列检测器。

实验5 序列检测器

实验5 序列检测器

数字系统设计与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 ISPORT(DIN,CLK,RST:IN STD_LOGIC;SOUT:OUT STD_LOGIC);END jc11010 ;ARCHITECTURE BEHA V OF jc11010 ISTYPE STATES IS (S0,S1,S2,S3,S4);SIGNAL ST,NST:STA TES:=S0;BEGINCOM:PROCESS(ST,DIN) BEGINCASE ST ISWHEN 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)BEGINIF 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 ISPORT(CLK:IN STD_LOGIC;Z :OUT STD_LOGIC);END csq11010 ;ARCHITECTURE RTL OF csq11010 ISTYPE STATE_TYPE IS(S0,S1,S2,S3,S4,S5);SIGNAL CURRENT_STATE,NEXT_STATE:STATE_TYPE; BEGINSYNCH: PROCESSBEGINWAIT UNTIL CLK'EVENT AND CLK='1'; CURRENT_STATE<=NEXT_STATE;END PROCESS;STATE_TRANS:PROCESS(CURRENT_STATE)BEGINCASE CURRENT_STATE ISWHEN 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 ISPORT(CLK:IN STD_LOGIC;Z :OUT STD_LOGIC);END SY4 ;ARCHITECTURE RTL OF SY4 ISTYPE STATE_TYPE IS(S0,S1,S2,S3,S4,S5,S6);SIGNAL CURRENT_STATE,NEXT_STA TE:STA TE_TYPE; BEGINSYNCH: PROCESSBEGINWAIT UNTIL CLK'EVENT AND CLK='1';CURRENT_STATE<=NEXT_STA TE;END PROCESS;STA TE_TRANS:PROCESS(CURRENT_STATE)BEGINCASE CURRENT_STATE ISWHEN 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序列检测器级联后的电路图:波形仿真结果:。

1010序列检测器

1010序列检测器

沈阳航空航天大学北方科技学院课程设计说明书课设名称数字电子技术学生姓名刘红博专业计算机科学与技术班级 B241101 学号 B24110117 指导教师富刚成绩2014年3月沈阳航空航天大学北方科技学院课程设计任务书课程设计题目 1010序列检测器教学部系信息工程系专业计算机科学与技术班级B241101 学号17 姓名刘红博课程设计时间: 2014 年2月24 日至2014 年 3 月日课程设计的内容及要求:(一)主要内容:1、设计一个1010序列检测器的电路。

2、连接电路,实现电路要求的功能。

3、完成课设论文。

(二)基本要求:1、根据数字电路相关知识设计1010序列检测器电路。

2、完成电路所要求的功能,与分析各元件的作用。

3、撰写相关论文。

指导教师富刚2014 年 3 月日1010序列检测器刘红博目录一课题分析 (1)二理论设计 (1)1 状态表 (1)2 状态化简 (2)3 状态编码 (2)4 确定激励函数和输出函数 (3)三电路原理图 (4)四元器件的选择 (5)五实际连线图 (6)六组装调试 (6)七结论 (7)八结束语 (7)九参考文献 (7)题目:1010序列检测器一课题分析试设计一个1010序列检测器,已知典型输入输出序列为输入:001010011101010110 输出:00000100000001000本课题用到了同步时序逻辑电路的设计。

序列检测器可以检测串行输入信号中的特定输入序列。

当串行输入信号中的特定输入序列出现时,则输出为1,否则输出为0.因此,在本课题中,在手动输入脉冲的前提下,当输入1010时,输出为1,小灯亮,否则输出为0,小灯灭。

在本课题所设计的电路中应具有一个输入X和一个输出Z,而且X 是串行输入。

由此可列真值表,写出逻辑表达式、化简,并画出逻辑图,最后连接实物图,完成实验操作。

二理论设计1 状态表2 状态化简找出最大等效类:(S0)、(S1、S4)、(S2)、(S3)以a代表(S0),b代表(S2),c代表(S3),d代表(S1、S4)则最小状态表为:3 状态编码根据状态分配必须遵循的基本原则:(1) a、b相邻,c、d相邻;(2)a、d相邻,a、c相邻,b、d相邻;(3)a、b相邻,a、d相邻,b、d相邻;(4)a应分配为逻辑0.所以,编码方案为:表3编码方案表4 二进制状态表4 确定激励函数和输出函数表5 D2激励表表6 D1激励表表7 Z激励表所以:D2= xy2+ xy1 D1= xy2+ xy1+y1 y2 Z= xy1y2 三电路原理图输入端图1 1010序列检测器原理图四元器件的选择1数字逻辑实验箱DSB-3 1台2元器件:74LS04一块、74LS20一块、74LS194一块图1 74LS04芯片引脚图图2 74LS20芯片引脚图图3 74LS194芯片引脚图3导线若干五实际连线图六组装调试首先,为确保实验的顺利进行。

时序电路设计-101序列检测器

时序电路设计-101序列检测器

数字逻辑设计及应用课程设计报告姓名:雷蕾学号:2010012030036选课号:设计题号: 5一.设计题目:设计101序列检测器二.设计要求要求使用状态机设计一个序列检测器,检测输入数据,当输入中出现101时,输出1,否则输出为0。

不进行重复判断,即当出现10101…时,输出为00100…判断的具体流程如下:1.电路复位,进入状态S0,等待输入2.S0状态下:如果输入为0,则停留在S0,如果输入为1,则跳转到S13.S1状态下:如果输入为0,则跳转到S2,如果输入为1,则停留在S14.S2状态下:如果输入为1,则输出1,并跳转到S0,如果输入为0,则输出0,并跳转到S0检测器电路实现:时钟信号,1 bit输入待判断信号,1bit输出判断结果。

三.设计过程1.设计方案:通过使用ISE编写verilog语言,实现以下过程:1s3只有当s3接收到的输入信号为1的时候,输出才会为1,其余时候输出都为0.2.设计程序:模块文件:`timescale 10ns/1ns//////////////////////////////////////////////////////////////////////////////////// Company:// Engineer://// Create Date: 21:02:40 06/06/2012// Design Name:// Module Name: abcd// Project Name:// Target Devices:// Tool versions:// Description://// Dependencies://// Revision:// Revision 0.01 - File Created// Additional Comments://////////////////////////////////////////////////////////////////////////////////// module abcd(input reset,input clk,input ipt,output reg result);parameter [1:0] s0 = 2'b00, s1 = 2'b01, s2 = 2'b10;reg[1:0] state;always @ (posedge clk)beginif(reset)beginstate<=s0;result<=0;endelsebegincase(state)s0:beginif(ipt==0)beginstate<=s0;result<=0;endelse.beginstate<=s1;result<=0;endends1:beginif(ipt==0)beginstate<=s2;result<=0;endelsebeginstate<=s1;result<=0;endends2:beginif(ipt==0)beginstate<=s0;result<=0;endelsebeginstate<=s0;result<=1;endenddefault:beginstate<=s0;result<=0;endendcaseendendendmodule测试文件:`timescale 10ns / 1ps////////////////////////////////////////////////////////////////////////////// //// Company:// Engineer://// Create Date: 23:05:50 06/06/2012// Design Name: test_detector// Module Name: D:/TDDOWNLOAD/fortwo2/haha.v// Project Name: fortwo2// Target Device:// Tool versions:// Description://// Verilog Test Fixture created by ISE for module: test_detector//// Dependencies://// Revision:// Revision 0.01 - File Created// Additional Comments://////////////////////////////////////////////////////////////////////////////// //module haha;module test_detector();reg clk;reg reset;reg ipt;wire result;reg[20:0] indata=20'b101001110011011110110;integer i;initial clk=1;always #1 clk=~clk;initialbeginreset=1;ipt=0;#4reset=0;for(i=0;i<21;i=i+1)beginipt=indata[i];#2;end#10$stop;endabcd detector_instance(.clk(clk),.reset(reset),.ipt(ipt),.result(result));endmodule3.仿真结果四.设计结论(包括:设计结果分析、设计中遇到的问题、设计心得和体会等) 1.设计结果分析:以时钟信号的一个周期为基准,有仿真结果可看出,当输入(ipt)为连续的一个周期高一个周期的低一个周期的高(即101)时,输出(result)为高。

1011序列检测器与发生器

1011序列检测器与发生器

时序逻辑电路课程设计——1011序列信号发生器及检测器的实现作者:***学号:*************学院:自动化工程学院指导老师:***(一)摘要本次课程设计的任务是设计具有发生和检测“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序列信号的逻辑功能。

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

二、设计一个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四种状态,其编码后的状态转换图和状态转换表:
第四步:求出各触发器的状态方程,驱动方程和输出方程。

Z = X Q2n Q1n
(2)
Q2n+1 = X Q2n Q1n + X Q2n Q1n
00 01 11 10
Q2n Q1n
X
0 0 1 0 0
1 1 1 0 1
(3)
Q1n+1 = X Q2n + X Q1n + Q3n Q1n
由D触发器特性方程求出各个触发器的驱动方程:
D2 = X Q2n Q1n + X Q2n Q1n
D1 = X Q2n + X Q1n + Q2n Q1n
第五步:画出逻辑电路图:
第六次:检测该电路是否有自启动能力。

该电路没有无关状态。

当X=0时,输出Z=XQ2n Q1n,触发器的次态
Q2n+1=X Q2n Q1n+ XQ2n Q1n=0,Q1n+1=Q2n Q1n+ X Q1n=0,
若此时来一个时钟脉冲CP,则可转入有效状态00,即S0。

当X=1时,输出Z=XQ2n Q1n,触发器的次态
Q2n+1=X Q2n Q1n+ XQ2n Q1n=1,Q1n+1= Q2n Q1n+ X Q1n=0,
若此时来一个时钟脉冲CP,则可转入有效状态10,即S3。

所以该逻辑电路具有自启动能力。

相关文档
最新文档