10101110序列检测器源程序

合集下载

序列信号检测器

序列信号检测器

南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合 设计□创新实验日期:实验成绩:实验三序列信号发生检测器一、实验目的1、学会运用VHDL语言设计方法构建具有一定逻辑功能的模块,并能运用图形设计方法完成顶层原理图的设计。

2、掌握脉冲序列检测器的主要功能二、实验要求1、设计一个序列信号发生器,用以产生输入序列“1101010011010101”由左开始。

2、设计一个序列检测器,用以检测输入序列,检测序列为100113、运用QuartusⅡ软件中的仿真功能对所设计的序列检测器的各个模块及顶层电路的功能进行仿真分析。

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

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

设计中一般采用状态机来实现。

2,模块设计:根据层次化设计理论以及序列信号检测器的基本原理,本次设计的序列检测器采用自顶向下的思路可分为时钟输入模块、序列发生模块、序列检测模块、数码管动态扫描显示模块及LED状态转换显示模块,系统框图如下序列信号检测器系统框图3、使用文本设计底层文件,并生成相应元器件,再使用原理图设计顶层文件四、实验步骤1、顶层文件的设计顶层原理图设计可以依据系统框图进行,时钟输入模块(clkdiv)、序列发生模块(fsq)、序列检测模块(jcq)、数码管动态扫描显示模块及LED状态转换显示模块(scan_led)、序列信号译码模块(czb)2,各模块设计文件①时钟clkdiv:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DIV ISPORT(CLK : IN STD_LOGIC;CLK_DIV : OUT STD_LOGIC);END DIV;ARCHITECTURE RT1 OF DIV ISSIGNAL DA TA:INTEGER RANGE 0 TO 500;SIGNAL CLK_TEMP:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF RISING_EDGE(CLK) THENIF(DA TA=500) THENDA TA<=0;CLK_TEMP<=NOT CLK_TEMP;ELSEDA TA<=DATA+1;END IF;END IF;CLK_DIV<=CLK_TEMP;END PROCESS;END RT1;②序列发生器FSQ:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FSQ ISPORT(CLK,CLEA:IN STD_LOGIC;Z :OUT STD_LOGIC);END FSQ ;ARCHITECTURE RTL OF FSQ ISTYPE STA TE_TYPE IS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15);SIGNAL CURRENT_STATE,NEXT_STA TE:STATE_TYPE;BEGINPROCESS(CLK,CLEA)BEGINIF(CLEA='1')THEN CURRENT_STATE<=S0;ELSEIF(CLK'EVENT AND CLK='1')THENCURRENT_STATE<=NEXT_STATE;END IF;END IF;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<=S6; Z<='1';WHEN S6=> NEXT_STATE<=S7; Z<='0';WHEN S7=> NEXT_STATE<=S8; Z<='0';WHEN S8=> NEXT_STATE<=S9; Z<='1';WHEN S9=> NEXT_STATE<=S10; Z<='1';WHEN S10=> NEXT_STA TE<=S11; Z<='0';WHEN S11=> NEXT_STA TE<=S12; Z<='1';WHEN S12=> NEXT_STA TE<=S13; Z<='0';WHEN S13=> NEXT_STA TE<=S14; Z<='1';WHEN S14=> NEXT_STA TE<=S15; Z<='0';WHEN S15=> NEXT_STA TE<=S0; Z<='1';END CASE;END PROCESS;END RTL;③序列检测器JCQLIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY JCQ ISPORT(SIN, CLK, CLR : IN STD_LOGIC;PUT : OUT std_logic_vector(0 downto 0));END JCQ;ARCHITECTURE one OF JCQ ISTYPE STA is (S5,S4,S3,S2,S1,S0);SIGNAL Qe : STA ;SIGNAL D : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIND <= "11010" ;PROCESS( CLK, CLR )BEGINIF CLR = '1' THEN Qe <= S0 ;ELSIF CLK'EVENT AND CLK='1' THENCASE Qe ISWHEN S0=> IF SIN = D(4) THEN Qe <= S1 ; ELSE Qe <= S0 ; END IF ; WHEN S1=> IF SIN = D(3) THEN Qe <= S2 ; ELSE Qe <= S0 ; END IF ; WHEN S2=> IF SIN = D(2) THEN Qe <= S3 ; ELSE Qe <= S2 ; END IF ; WHEN S3=> IF SIN = D(1) THEN Qe <= S4 ; ELSE Qe <= S0 ; END IF ; WHEN S4=> IF SIN = D(0) THEN Qe <= S5 ; ELSE Qe <= S2 ; END IF ; WHEN OTHERS => Qe <= S0 ;END CASE ;END IF ;END PROCESS ;PROCESS( Qe )BEGINIF Qe = S5 THEN PUT <= "1";ELSE PUT <= "0";END IF ;END PROCESS ;END one ;④序列译码CZBLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY czb ISPORT(clk,din:in std_logic;dout:out std_logic_vector(4 downto 0));end entity czb;architecture behave of czb isbeginprocess(clk)variable i:integer range 0 to 5;variable t:std_logic_vector(4 downto 0);beginif clk='1' thent(4 downto 0):=t(3 downto 0)&din;i:=i+1;dout<=t;if i=5 theni:=0;end if;end if;end process;end architecture behave;⑤数码管及LED显示SCAN_LED:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY scan_led ISPORT(clk : IN STD_LOGIC;data: IN STD_LOGIC_VECTOR(4 DOWNTO 0);data0: IN STD_LOGIC_VECTOR(0 DOWNTO 0);scan : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);choose: OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END ENTITY;ARCHITECTURE one OF scan_led ISSIGNAL cout8:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINP1:PROCESS(cout8)BEGINCASE cout8 ISWHEN "000" => choose <= "000"; A <= "000"&data(4);WHEN "001" => choose <= "001"; A <= "000"&data(3);WHEN "010" => choose <= "010"; A <= "000"&data(2);WHEN "011" => choose <= "011"; A <= "000"&data(1);WHEN "100" => choose <= "100"; A <= "000"&data(0);WHEN "101" => choose <= "101"; A <= "1000";WHEN "110" => choose <= "110"; A <= "1000";WHEN "111" => choose <= "111"; A <= "000"&data0;WHEN OTHERS => NULL;END CASE;END PROCESS P1;P2:PROCESS(clk)BEGINIF clk'EVENT AND clk ='1' THEN cout8 <= cout8+1;END IF;END PROCESS P2;P3:PROCESS(A)BEGINCASE A ISWHEN "0000"=> scan <="0111111";WHEN "0001"=> scan <="0000110";WHEN "1000"=> scan <="1000000";WHEN OTHERS=> NULL;END CASE;END PROCESS P3;END;3、编译1)输入完程序之后逐个编译2)逐个编译无错之后进行全程编译4、将以上模块生成元器件,连接成实验电路图5、系统仿真1)建立新的波形激励文件2)在波形编辑器窗口添加节点3)通过Edit->End Time 来设定仿真结束时间4)在CLOCK窗口中设置clk的时钟周期为60s5)点击save保存6) 通过Tools下的Simulator Tools项进行仿真,然后观察输出波形。

VHDL序列检测器

VHDL序列检测器

作业一:序列检测器(1110010)1 设计功能与要求(1) 利用有限状态的状态机设计一个序列检测器,序列检测器要检测的序列设定为“”。

(2) 根据设计功能和要求运用VHDL硬件描述语言进行设计编程,并且画出序列检测器的原理流程图。

(3) 对设计的序列检测器程序进行仿真,并予以分析和说明。

2 设计思路序列检测器的设计是采用VHDL硬件描述语言设计程序,对预先设置的序列信号进行检测。

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

设计采用有限状态机来实现序列检测器。

3 原理流程图根据预先设置的序列信号“”,根据有限状态机的原理进行编程,设计出符合要求的八状态的状态机的序列检测器,原理流程说明如下图。

如图所示,假设状态机的初始状态为S1,当输入信号为“1”时,进入S2状态;为“0”还是在S1状态。

在S2状态下,如果输入信号为“1”,则进入S3状态,为“0”则返回S1状态。

在S3状态下,如果输入信号为“1”,则进入S4状态,为“0”则返回S1状态。

在S4状态下,如果输入信号为“0”,则进入S5状态,为“0”还是在S4状态。

在S5状态下,如果输入信号为“0”,则进入S6状态,为“1”则进入S2状态。

在S6状态下,如果输入信号为“1”,则进入S7状态,为“0”则返回S1状态。

在S7状态下,如果输入信号为“0”,则进入S8状态,为“1”则进入S3状态。

在S8状态下,如果输入信号为“1”,则进入S2状态,为“0”则返回S1状态,并输出序列信号1110010。

4 序列检测器VHDL程序代码在序列检测器的程序代码中采用cin表示输入序列信号,clr为复位控制信号,clk为时钟信号,cout为输出信号。

当检测到序列信号中出现““序列的时候,cout输出为高电平,否则为低电平,详细程序代码如下。

library ieee;use ieee.std_logic_1164.all;entity sq_det isport(cin,clr,clk:in std_logic;cout:out std_logic);end sq_det;architecture behav of sq_det istype state is(s1,s2,s3,s4,s5,s6,s7,s8);signal c_state,n_state:state;beginprocess(clk,clr)beginif(clr='1')thenc_state<=s1;elsif(clk'event and clk='1')then c_state <=n_state;end if;end process;process(c_state,cin)begincase(c_state) iswhen s1=>cout<='0';if(cin='1')thenn_state<=s2;elsen_state<=s1;end if;when s2=>cout<='0';if(cin='1')thenn_state<=s3;elsen_state<=s1;end if;when s3=>cout<='0';if(cin='1')thenn_state<=s4;elsen_state<=s1;end if;when s4=>cout<='0';if(cin='1')thenn_state<=s4;elsen_state<=s5;end if;when s5=>cout<='0';if(cin='1')thenn_state<=s2;elsen_state<=s6;end if;when s6=>cout<='0';if(cin='1')thenn_state<=s7;elsen_state<=s1;end if;when s7=>cout<='0';if(cin='1')thenn_state<=s3;elsen_state<=s8;end if;when s8=>cout<='1';if(cin='1')thenn_state<=s2;elsen_state<=s1;end if;end case;end process;end architecture behav;5 仿真结果与说明序列检测器程序仿真结果如下图,cin为输入序列信号,clr为复位控制信号,高电平复位清零准备进入工作状态,clk为时钟信号,cout为输出信号。

8位序列检测器的设计

8位序列检测器的设计

8位序列检测器的设计西华大学课程设计说明书八位序列检测器设计摘要:序列检测器多用于通信系统中对禁用码的检测,或者是对所需信号的提取,即一旦检测到所需信号就输出高电平,这在数字通信领域有广泛的应运。

本文介绍了一种采用单片PGA 芯片进行脉冲序列检测器的设计方法,主要阐述如何使用新兴的 EDA器件取代传统的电子设计方法,利用 FPGA 的可编程性,简洁而又多变的设计方法,缩短了研发周期,同时使设计的电路体积更小功能更强大。

本次课程设计设计出能够检测序列“11010011”的序列检测器,并以此来描述序列检测器的设计过程和基于FPGA 的软件仿真。

最后通过QuartusII 的波形输出对设计方案进行检测,在硬件调试经检测输出正确设计符合要求。

关键词: VHDL 序列检测 Quartus? FPGAAbstract,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 "11010011" sequence detectors, and detector in order to describe the sequence of thebased software simulation. Finally, the output of the waveform design process and FPGA-QuartusII design testing, debugging the hardware design has been tested and meet the requirements of the correct output.Keywords: VHDL Sequence detection Quartus? FPGA西华大学课程设计说明书目录1前言 ..................................................................... .. (1)1.1 课题设计背景 ..................................................................... ............................................... 1 2. 总体方案设计 ..................................................................... . (2)2.1 方案比较 ..................................................................... .. (2)2.2 两种方案的论证与比较 ..................................................................... ........................ 3 3. 单元模块设计 ..................................................................... . (4)3.1 序列信号发生器 ..................................................................... .. (4)3.2序列检测器 ..................................................................... .. (6)3.3计数器 ..................................................................... . (7)3.4 顶层文件设计 ..................................................................... ....................................... 8 4 系统调试与验证 ..................................................................... .. (9)4.1待测序列的输入 ..................................................................... (9)4.2 时序仿真 ..................................................................... (11)4.3结果分析 ..................................................................... .............................................. 12 5 总结与体会 ..................................................................... ..................................................... 13 6 辞谢 ..................................................................... .. (14)7 参考文献 ..................................................................... (15)西华大学课程设计说明书1前言1.1 课题设计背景随着数字通信的广泛应用,可编程逻辑器件容量、功能的不断扩大,集成电路的设计已经进入片上系统(SOC)和专用集成电路(ASIC)的时代。

EDA课设-序列信号检测器

EDA课设-序列信号检测器

课程设计任务书学生姓名:李鹤健专业班级:电子1002班指导教师:韩屏工作单位:信息工程学院题目: D/A接口一、初始条件:可用仪器:PC机(Quartus II软件)硬件:EDA-IV型实验箱。

二、要求完成的主要任务:1设计一个有限状态机,用以检测输入序列“1110101101”由左开始。

(1)画出状态转换图;(2)使用VHDL语言编程;(3)使用EP1C3T144C8芯片。

2将所设计的整个系统写入CPLD 器件中,加上需要的外围电路在实验箱上实现整个系统的硬件搭建,并调试出结果。

3查阅至少5篇参考文献。

按《武汉理工大学课程设计工作规范》要求撰写设计报告书。

全文用A4纸打印,图纸应符合绘图规范。

三、时间安排:1、2012 年12月17日集中,作课程设计的任务布置。

2、2012 年12月18日至2012 年12月21日,进行课程设计,软件编程、仿真和调试。

3、2012 年12月22日,机房检查仿真结果,验证设计的可行性和正确性。

4、2012 年12月23日,熟悉实验平台和试验箱。

5、2012 年12月24日至2012年12月26日,进行设计的硬件调试。

6、2012 年12月27日至2012年12月28日,实验室检查设计成果,现场演示硬件实物,提交设计说明书及答辩。

指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)Abstract (II)绪论 (1)1 QuartusII简介 (2)2 设计内容及要求 (3)2.1设计的目的及主要任务 (3)2.1.1设计的目的 (3)2.1.2 设计任务及主要技术指标 (3)2.2设计思想 (3)3 设计原理与模块分析 (4)3.1 序列检测器介绍 (4)3.2 序列检测器设计原理 (4)3.3 序列检测器模块 (4)3.3.1 分频器模块 (5)3.3.2 序列输入模块 (5)3.3.3 序列检测模块 (5)3.4顶层文件 (7)4 电路仿真与分析....................................................................................... 错误!未定义书签。

序列检测器_实验报告

序列检测器_实验报告

一、实验目的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时,输出低电平。

实验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序列检测器级联后的电路图:波形仿真结果:。

VHDL序列检测器

VHDL序列检测器

课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目: 序列信号检测器一、设计目的1、根据设计要求,完成对序列信号检测器的设计。

2、进一步加强对QuartusⅡ的应用和对VHDL语言的使用。

二、设计内容和要求1、设计一个有限状态机,用以检测输入序列“1110101101”由左开始。

(1)画出状态转换图。

(2)使用VHDL语言编程。

(3)使用FPGA芯片。

2、掌握QuartusⅡ的操作和使用方法。

3、利用QuartusⅡ软件对所设计的电路进行仿真分析。

三、初始条件FPGA,七段数码管,时钟信号,3-8译码器,拨码开关等。

四、时间安排1、2011年1月12日集中,作课设具体实施计划与课程设计报告格式的要求说明。

2、2011年1月14日至2011年1月18日,查阅相关资料,学习电路的工作原理。

3、2011年1月18日至2011年1月20日,电路调试和设计说明书撰写。

4、2011年1月21日上交课程设计成果及报告,同时进行答辩。

课设答疑地点:13楼电子科学与技术实验室。

指导教师签名:年月日系主任(或责任教师)签名:年月日摘要----------------------------------------------------------------------- II Abstract ------------------------------------------------------------------ III1 绪论---------------------------------------------------------------------- 12 设计内容及要求------------------------------------------------------------ 22.1设计的目的及主要任务------------------------------------------------- 22.1.1设计的目的----------------------------------------------------- 22.1.2 设计任务及主要技术指标----------------------------------------- 22.2设计思想---------------------------------------------------------------- 23 QuartusⅡ及VHDL语言简介-------------------------------------------------- 34 设计原理及单元模块设计---------------------------------------------------- 44.1 设计原理及方法------------------------------------------------------ 44.1.1 Moore型状态机------------------------------------------------- 54.1.2 Mealy型状态机------------------------------------------------- 54.2模块设计------------------------------------------------------------- 54.2.1 时钟输入模块--------------------------------------------------- 54.2.2 状态检测判断模块----------------------------------------------- 64.2.3译码显示模块--------------------------------------------------- 74.2.4 Led状态指示模块---------------------------------------------- 84.3 设计方案确定----------------------------------------------------------- 85 电路的仿真及分析---------------------------------------------------------- 95.1状态机转换检测------------------------------------------------------- 95.1状态机检测模块的波形仿真--------------------------------------------- 96 硬件调试与现象分析------------------------------------------------------- 10 参考文献------------------------------------------------------------------- 12 附录序列检测器的源程序--------------------------------------------------- 12序列检测器多用于通信系统中对禁用码的检测,或者是对所需信号的提取,即一旦检测到所需信号就输出高电平,这在数字通信领域有广泛的应运。

(完整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
根据输出方程和驱动方程可画出逻辑图如下:。

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