EDA序列信号发生器与检测器
EDA实验报告——序列检测器
七、状态图输入法实现序列检测器1、基本知识点序列检测器原理。
状态图输入法。
2、实验设备(1)PC机一台。
(2)DDA系列数字系统实验平台。
(3)QuartusⅡ配套软件。
3、实验概述序列检测器序列检测器是用于从二进制码流中检测出一组特定序列信号的时序电路。
接收的序列号与检测器预设值比较,相同则输出为1,否则输出为0.4、实验内容及步骤用状态图输入法实现序列检测器。
1,新建工程,工程文件夹名称为exp_detect3,工程名称和顶层实体名称均为exp_detect3,选择目标器件为EPF10K20TI144-4.2,状态图输入:选择菜单File——New——State Machine File命令,打开State Machine Editor窗口,选择Tools——State MachineWizard命令,弹出如下状态机创建向导对话框:点击OK,进入下一个页面,如下所示:在上图中选择复位Reset信号为异步,高电平有效,输出端午寄存器,点击Next,进入下图:在四个选框里分别如上图填入名称和控制信号。
进入下一个页面:如上设置后,进入下一个页面,点击finish,完成。
关闭状态机向导,生成所需的状态机,做适当调整,如下图所示:3,保存该设计文件为exp_detect3.smf,并添加到工程文件夹。
4,选择菜单Tools——Generate HDL File命令,打开对话框,选择VHDL,点击OK,分析成功后则自动生成exp_detect3.vhd。
代码如下:LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY exp_detect3 ISPORT (clock : IN STD_LOGIC;reset : IN STD_LOGIC := '0';din : IN STD_LOGIC := '0';z : OUT STD_LOGIC);END exp_detect3;ARCHITECTURE BEHAVIOR OF exp_detect3 ISTYPE type_fstate IS (s0,s1,s2,s3,s4,s5,s6);SIGNAL fstate : type_fstate;SIGNAL reg_fstate : type_fstate;BEGINPROCESS (clock,reset,reg_fstate)BEGINIF (reset='1') THENfstate <= s0;ELSIF (clock='1' AND clock'event) THENfstate <= reg_fstate;END IF;END PROCESS;PROCESS (fstate,din)BEGINz <= '0';CASE fstate ISWHEN s0 =>IF ((din = '1')) THENreg_fstate <= s1;ELSIF (NOT((din = '1'))) THENreg_fstate <= s0;-- Inserting 'else' block to prevent latch inferenceELSEreg_fstate <= s0;END IF;WHEN s1 =>IF ((din = '1')) THENreg_fstate <= s2;ELSIF (NOT((din = '1'))) THENreg_fstate <= s0;-- Inserting 'else' block to prevent latch inferenceELSEreg_fstate <= s1;END IF;WHEN s2 =>IF ((din = '1')) THENreg_fstate <= s3;ELSIF (NOT((din = '1'))) THENreg_fstate <= s0;-- Inserting 'else' block to prevent latch inference ELSEreg_fstate <= s2;END IF;WHEN s3 =>IF ((din = '1')) THENreg_fstate <= s3;ELSIF (NOT((din = '1'))) THENreg_fstate <= s4;-- Inserting 'else' block to prevent latch inference ELSEreg_fstate <= s3;END IF;WHEN s4 =>IF ((din = '1')) THENreg_fstate <= s1;ELSIF (NOT((din = '1'))) THENreg_fstate <= s5;-- Inserting 'else' block to prevent latch inference ELSEreg_fstate <= s4;END IF;WHEN s5 =>IF ((din = '1')) THENreg_fstate <= s6;ELSIF (NOT((din = '1'))) THENreg_fstate <= s0;-- Inserting 'else' block to prevent latch inference ELSEreg_fstate <= s5;END IF;WHEN s6 =>IF ((din = '1')) THENreg_fstate <= s2;ELSIF (NOT((din = '1'))) THENreg_fstate <= s0;-- Inserting 'else' block to prevent latch inferenceELSEreg_fstate <= s6;END IF;IF (NOT((din = '1'))) THENz <= '1';-- Inserting 'else' block to prevent latch inferenceELSEz <= '0';END IF;WHEN OTHERS =>z <= 'X';report "Reach undefined state";END CASE;END PROCESS;END BEHAVIOR;5,对代码进行编译。
EDA序列检测器设计
8-1 序列检测器设计一、实验目的:用状态机实现序列检测器的设计,了解一般状态机的设计。
二、实验原理:序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设计的码相同,则输出1,否则输出0。
由于这种检测的关键在于正确码的收到必须是连续的,这就要检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。
在检测过程中任何一位不相等都将回到初始状态重新开始检测。
三、实验程序:实验一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);BEGIND<="11100101";PROCESS(CLK,CLR)BEGINIF CLR='1' THEN Q<=0;ELSIF CLK'EVENT AND CLK='1' THENCASE 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";ELSE AB<="1011";END IF;END PROCESS;END behav;实验二LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK1 ISPORT( CLK,CLR : IN STD_LOGIC;DIN : IN STD_LOGIC;AB : OUT INTEGER RANGE 0 TO 15 ); END SCHK1;ARCHITECTURE behav OF SCHK1 ISTYPE FSM_ST IS(S0,S1,S2,S3,S4,S5,S6,S7,S8);SIGNAL current_state, next_state: FSM_ST;BEGINREG:PROCESS ( CLK ,CLR )BEGINIF CLR = '1' THEN current_state <= S0;ELSIF CLK='1' AND CLK'EVENT THENcurrent_state <= next_state ;END IF ;END PROCESS ;COM:PROCESS( current_state, next_state)BEGINCASE current_state ISWHEN S0 => AB<= 11;IF DIN = '1' THEN next_state<=S1 ;ELSE next_state<=S0;END IF;WHEN S1 => AB<= 11;IF DIN = '1' THEN next_state<=S2 ;ELSE next_state<=S0;END IF;WHEN S2 => AB<= 11;IF DIN = '1' THEN next_state<=S3 ;ELSE next_state<=S0;END IF;WHEN S3 => AB<= 11;IF DIN = '0' THEN next_state<=S4 ;ELSE next_state<=S0;END IF;WHEN S4 => AB<= 11;IF DIN = '0' THEN next_state<=S5 ;ELSE next_state<=S0;END IF;WHEN S5 => AB<= 11;IF DIN = '1' THEN next_state<=S6 ;ELSE next_state<=S0;END IF;WHEN S6 => AB<= 11;IF DIN = '0' THEN next_state<=S7 ;ELSE next_state<=S0;END IF;WHEN S7 => AB<= 11;IF DIN = '1' THEN next_state<=S8 ;ELSE next_state<=S0;END IF;WHEN S8 => AB<= 10;IF DIN = '0' THEN next_state<=S0 ;ELSE next_state<=S0;END IF;END CASE ;END PROCESS;END behav;实验三LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK2 ISPORT( CLK,CLR : IN STD_LOGIC;DIN : IN STD_LOGIC;DT : IN STD_LOGIC_VECTOR(7 DOWNTO 0);AB : OUT INTEGER RANGE 0 TO 15 );END SCHK2;ARCHITECTURE behav OF SCHK2 ISTYPE FSM_ST IS(S0,S1,S2,S3,S4,S5,S6,S7,S8);SIGNAL C_ST: FSM_ST;SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINREG:PROCESS ( CLK ,CLR )BEGINIF CLR = '1' THEN D <= DT;C_ST <= S0;AB <= 11;ELSIF CLK='1' AND CLK'EVENT THEN--current_state <= next_state ;--END IF ;--END PROCESS ;--COM:PROCESS( current_state, next_state) --BEGINCASE C_ST ISWHEN S0 => AB<= 11;IF DIN = D(7) THEN C_ST<=S1 ;ELSE C_ST<=S0;END IF;WHEN S1 => AB<= 11;IF DIN = D(6) THEN C_ST<=S2 ;ELSE C_ST<=S0;END IF;WHEN S2 => AB<= 11;IF DIN = D(5)THEN C_ST<=S3 ;ELSE C_ST<=S0;END IF;WHEN S3 => AB<= 11;IF DIN = D(4) THEN C_ST<=S4 ;ELSE C_ST<=S0;END IF;WHEN S4 => AB<= 11;IF DIN = D(3)THEN C_ST<=S5 ;ELSE C_ST<=S0;END IF;WHEN S5 => AB<= 11;IF DIN = D(2) THEN C_ST<=S6 ;ELSE C_ST<=S0;END IF;WHEN S6 => AB<= 11;IF DIN = D(1) THEN C_ST<=S7 ;ELSE C_ST<=S0;END IF;WHEN S7 => AB<= 11;IF DIN = D(0) THEN C_ST<=S8 ;ELSE C_ST<=S0;END IF;WHEN S8 => AB<= 10;IF DIN = D(0) THEN C_ST<=S0 ;ELSE C_ST<=S0;END IF;END CASE ;END IF;END PROCESS;END behav;实验四LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK3 ISPORT(DIN,CLK,CLR:IN STD_LOGIC;DATAIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);AB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) ; END SCHK3;ARCHITECTURE f3 OF SCHK3 ISTYPE ST_TYPE1 IS (s0,s1,s2,s3,s4,s5,s6,s7,s8);SIGNAL C_ST:ST_TYPE1;SIGNAL Q:STD_LOGIC;BEGINPROCESS(CLR,CLK)BEGINIF CLR='1' THEN C_ST<=s0;Q<='0';ELSIF CLK='1' AND CLK'EVENT THENCASE C_ST ISWHEN s0 => IF DATAIN(7)=DIN THEN C_ST<=s1;ELSIF C_ST<=s0;END IF;WHEN s1 => IF DATAIN(6)=DIN THEN C_ST<=s2;ELSIF C_ST<=s0;END IF;WHEN s2 => IF DATAIN(5)=DIN THEN C_ST<=s3;ELSIF C_ST<=s0;END IF;WHEN s3 => IF DATAIN(4)=DIN THEN C_ST<=s4;ELSIF C_ST<=s0;END IF;WHEN s4 => IF DATAIN(3)=DIN THEN C_ST<=s5;ELSIF C_ST<=s0;END IF;WHEN s5 => IF DATAIN(2)=DIN THEN C_ST<=s6;ELSIF C_ST<=s0;END IF;WHEN s6 => IF DATAIN(1)=DIN THEN C_ST<=s7;ELSIF C_ST<=s0;END IF;WHEN s7 => IF DATAIN(0)=DIN THEN C_ST<=s8;ELSIF C_ST<=s0;END IF;WHEN s8 => Q<='1';END CASE;END IF;END PROCESS;IF Q='1' THEN AB<="1010";ELSIF AB<="1011";END IF;END f3;四、仿真结果:实验一实验二实验三实验四五、硬件分配:实验一F-7键7 键6 键2、键1 数码管6CLR CLK DIN AB(3) AB(2) AB(1) AB(0) PIO11 PIO9 PIO10 PIO39 PIO38 PIO37 PIO36 Pin4 Pin 2 Pin3 Pin160 Pin159 Pin158 Pin141 实验二同上实验三同上实验四同上六、实验结论:实验一是moore型状态机,其优点是其输出仅与当前的状态有关,是同步输出状态机。
实验7序列发生器和检测器的设计与实现
实验7序列发生器和检测器的设计与实现序列发生器和检测器是数字电路中非常重要的组成部分,用于生成和检测特定的序列模式。
本实验将设计和实现一个简单的序列发生器和检测器。
1.实验目的:-了解序列发生器和检测器的基本原理和实现方法;-掌握用基本门电路实现序列发生器和检测器的设计方法;-熟悉数字电路的设计流程和实验操作。
2.实验仪器和器件:-逻辑门IC(与、或、非门);-数字电路实验箱;-电源。
3.实验原理:-序列发生器是一种能够按照预定规律生成特定序列的电路,通常由多个逻辑门组成。
常见的序列发生器包括计数器、移位寄存器等。
-序列检测器是一种能够检测给定输入序列是否符合预定规律的电路,通常也由多个逻辑门组成。
常见的序列检测器包括状态机、比较器等。
4.实验步骤:1.根据设计要求,确定需要生成和检测的序列类型和规律。
2.设计序列发生器的电路,选择适当的逻辑门进行组合,以实现所需的序列模式。
3.搭建序列发生器电路,将所选逻辑门按照设计连接方式进行布线。
4.进行测试和调试,检查序列发生器是否按照设计要求生成所需的序列。
5.设计序列检测器的电路,选择适当的逻辑门进行组合,以实现对所需的序列模式的检测。
6.搭建序列检测器电路,将所选逻辑门按照设计连接方式进行布线。
可使用开关或其它电源来模拟序列输入。
7.进行测试和调试,检查序列检测器是否能够准确检测给定的输入序列是否符合预期。
5.实验注意事项:-严格按照设计要求进行电路设计和布线,确保连接正确。
-进行测试和调试时,先验证序列发生器的输出是否符合预期,再测试序列检测器的正确性。
-如遇到问题,请仔细检查电路连接是否正确,或寻求助教或教师的帮助。
6.实验结果分析:-比较生成的序列和检测的结果,验证电路的正确性和稳定性。
-如有误差或异常情况,分析可能原因,进行修正和改进。
7.实验总结:-通过本实验,我们了解了序列发生器和检测器的基本原理和实现方法。
-掌握了用基本门电路实现序列发生器和检测器的设计方法。
(整理)实验三序列发生器与序列检测器实验报告.
南昌大学实验报告姓名: 学号:6100210173 专业班级:中兴通信101实验类型:验证□综合■设计□创新□实验日期:2012、11、16实验四序列信号发生器与检测器设计一、实验目的1、.学习VHDL文本输入法2、学习有限状态机的设计3、设计序列信号发生器和检测器二.实验内容与要求1. 设计序列发生器,完成序列为0111010011011010的序列生成器2.用有限状态机设计序列检测器,实现串行序列11010的检测器3. 若检测到符合要求的序列,则输出显示位为“1”,否则为“0”4. 对检测到的次数计数三.设计思路1.设计分频器因为最终要把待检测序列的检测次数在数码管上显示出,所以必须设计一个分频器,将起始频率作为数码管的扫描频率,而将分频后的频率作为序列发生器的移位频率,所以在程序中设置10KHZ进行分频分成1HZ脉冲(10KHZ的扫描频率是为了让数码管的动态显示更加清晰)2.设计序列发生器在这次的设计序列发生器时没有用状态转移的方法来来形成一个16位的序列,而是通过直接设计一串16位的序列,通过对最高位的输出与并置来形成一串循环的16位序列,这样设计简单方便,易于操作与控制,也减少了在状态转移产生的误差,其主要的核心程序为:architecture bhv of p2 issignal bs: std_logic_vector(15 downto 0):="0111010011011010";beginxlout<=bs(15);process (clk1hz)beginif (clk1hz'event and clk1hz='1') thenbs<= bs(14 downto 0)&bs(15);先将序列最高位输出至序列检测器中,然后在一个脉冲作用下,将此时最高位变成最低位,其余14位不变,使序列循环移动,最终形成一个16位循环序列。
实验7序列发生器和检测器的设计与实现
实验7序列发生器和检测器的设计与实现
一、实验目的
本实验旨在通过设计和实现序列发生器和检测器来熟悉现代无线通信
系统以及其中所使用的发送数据的方法。
二、实验环境
实验要求使用FPGA软硬件设计结合Quartus II软件进行设计实现,
使用ALTERA DE2开发板实现序列发生器和检测器。
三、实验原理
1.序列发生器的原理
序列发生器是一种非常重要的工具,它可以产生一个特定序列的数字
信号。
序列发生器最常用于调试电子系统以及测试它们的性能。
序列发生
器利用一个特定的算法来生成多个等号数字序列,这些序列可以用于传输,接收和解码信息。
2.检测器的原理
检测器是一种对接收到的数据流进行分析的功能,它能够检测出一些
有用的信息,因此它扮演着非常重要的角色。
检测器通常包括一个可以对
收到的数据流进行解码的模块。
检测器为用户提供其中一种特定的输出,
以及相应的信息,这样用户就能够更好地分析系统的行为。
四、实验设计
1.序列发生器的设计
序列发生器的设计主要是利用ALTERA DE2开发板上的FPGA芯片,包括Cyclone IV,搭建序列发生器的设计结构。
在这个结构里,必须实现一个控制器,用于启动和停止发送序列,还要实现一个定时器,定时发送序列。
EDA设计实验_序列检测器-
实验题目:设计串行数据检测器实验说明:设计一个“1101”串行数据检测器。
使得但输出序列中出现“1001”时,结果中就输出1。
输入/输出如下所示:输入x:000 101 110 011 011 101 101 110 101输出z:000 000 000 010 010 000 001 000 000实验分析:初始状态设为s0,此时检测数据序列为“0000”,当再检测到一个0时,仍为s0,当检测到1时,进入下一个状态s1,此时序列为“0001”;当在状态s1检测到0时,进入到状态s2,此时序列为“0010”,当检测到1时,仍为s1;当在状态s2检测到0时,进入到状态s3,此时序列为“0100”,当检测到1时,进入s1;当在状态s3检测到0时,进入s0,当检测到1时,进入状态s4,此时序列为“1001”,结果输出为1;当在s4检测到0时,进入状态s2,当检测到1时,进入状态s1。
状态图如下:实验代码:module sjjcq10_3(x,z,clk,reset,state);input x,clk,reset;output z;output[2:0]state;reg[2:0]state;reg z;parameter s0='d0,s1='d1,s2='d2,s3='d3,s4='d4;always@(posedge clk)beginif(reset)begin state<=s0;z<=0;endelsecasex(state)s0: beginif(x==0) begin state<=s0;z<=0;endelse begin state<=s1;z<=0;endends1: beginif(x==0) begin state<=s2;z<=0;endelse begin state<=s1;z<=0;endends2:beginif(x==0) begin state<=s3;z<=0;endelse begin state<=s1;z<=0;endends3:beginif(x==0) begin state<=s0;z<=0;endelse begin state<=s4;z<=1;endends4:beginif(x==0) begin state<=s2;z<=0;endelse begin state<=s1;z<=0;endenddefault: state<=s0;endcaseendendmodule实验仿真波形:分析:每当到达状态四即s4,此时检测序列为“1101”,输出即为1.。
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。
一种利用EDA技术快速验证序列信号发生器设计的教学探索
一种利用EDA技术快速验证序列信号发生器设计的教学探索田逸【期刊名称】《价值工程》【年(卷),期】2011(30)29【摘要】本文针对《数字电子技术》课程中序列信号发生器的设计这一教学难点问题,提出了利用EDA电子工作平台Multisim进行快速验证的教学方法,首先从理论上介绍了序列信号发生器的两种设计方案,即反馈移位型和计数型,进而以11010序列信号发生器为例详细描述了实现两种设计方案的各个步骤,在完成理论设计后即用Multisim构造电路图进行仿真验证,教学实践表明,仿真波形直观有效,此教法效果很好.该教法方便、简单、具有很强的实用性,是数字电子技术课程教学方法的一种积极探索.%Aiming at the difficult teaching spot of sequence signal generator design in the course of Digital Electronics Technology, this paper proposes a new teaching method by using EDA electronic work platform Multisim to quickly verify the correctness of design scheme. First, the two design schemes for sequence signal generator, feedback shifting bit type and counting type, have been introduced theoretically. Second, each step to realize the sequence signal 11010 as a typical case by the above methods has been described particularly. Finally, the simulative electronic circuits are constructed at Multisim platform to verify its correctness after theoretical design has been finished. The teaching practice has shown that the waveforms of simulation can give visual display effectively and the proposed method can get very good results.Moreover, the method also possesses the characteristics of convenience, simplicity and high practicability. It can be concluded that the proposed method is an active teaching exploration on the course of digit electronics technology.【总页数】3页(P260-262)【作者】田逸【作者单位】苏州经贸职业技术学院,苏州215009【正文语种】中文【中图分类】G42【相关文献】1.基于EDA技术的函数信号发生器设计 [J], 陈祖武2.一种利用EDA技术快速理解RC桥式正弦波振荡电路的教学方法 [J], 田逸3.基于EDA技术的正弦信号发生器设计 [J], 高锐4.序列信号发生器自启动特性验证的软硬件设计 [J], 张承畅;龚昱文;罗元;何丰5.基于EDA技术的数字式信号发生器的设计 [J], 王武乔因版权原因,仅展示原文概要,查看原文内容请购买。
数电实验:序列信号发生器
实验八序列信号发生器一、实验目的(1)熟悉掌握EDA软件工具Multisim的仿真测试应用。
(2)熟悉序列信号发生器的工作原理。
(3)熟悉序列信号发生器的设计方法二、实验仪器设备与主要器件试验箱;双踪示波器;稳压电源;函数发生器;74LS160;74LS161;74LS251;74LS152和74LS151。
三、实验原理在数字信号的传输和数字系统的测试中,有时需要用到一组特定的串行数字信号。
通常把这种串行数字信号叫做序列信号,产生序列信号的电路称为序列发生器。
1、技术性序列信号发生器设计过程分为如下两步:(1)根据序列码的长度P设计模P计数器,状态可以任意。
(2)按计数器的状态转换关系和序列码的要求设计组合输出电路。
由于计数器的状态设置和输出序列没有直接关系,因此这种结构对输出序列的更改比较方便,而且还能够同时产生多组序列码。
2、移位型序列信号发生器移位型序列信号发生器是由移位寄存器和组合反馈电路组成。
组合电路的输出,作为移位寄存器的串行输入。
由n位移位寄存器构成的序列信号发生器所产生的序列信号的最大长度为:P=2n。
四、实验内容(1)用计数器74LS160设计一个7位巴克码(0100111)的产生电路,画出电路时序图。
用示波器观察电路输出波形。
仿真图:输出波形:(2)设计灯光控制逻辑电路。
要求红绿蓝三种颜色的灯在时钟信号作用下按如表规定的顺序转换状态。
表中,1表示亮,0表示灭。
CP顺序红绿黄0 0 0 01 1 0 02 0 1 03 0 0 14 1 1 15 0 0 16 0 1 07 1 0 08 0 0 0仿真图:(3)用移位寄存器74LS194设计产生移位序列信号为10110的序列信号发生器。
用发光管显示输出序列信号。
画出时序电路图并用示波器观察时序波形。
仿真图:波形图:。
eda基于VHDL的序列检测器设计
课程报告基于VHDL的序列检测器设计课程名称 EDA技术实用教程姓名卢泽文李嘉阳吴炽扬学号200730530318200730530311200730530326专业电气工程及其自动化3班指导老师: 陈楚老师日期: 2010/12随着计算机的飞速发展,以计算机辅助设计为基础的电子设计自动化(EDA)技术已成为电子学领域的重要学科。
EDA工具使电子电路和电子系统的设计产生了革命性的变化。
序列检测器也称为串行数据检测器,它在数据通讯,雷达和遥测等领域中用于检测同步识别标志,是一种用来检测一组或多组序列信号的电路。
本文输入的序列信号由自行设计的计数器和数据选择器组成的序列信号发生器提供。
1.原理说明:序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。
由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,知道在连续的检测中所收到的每一位码都与预置数的对应码相同。
在检测过程中,任何一位不相等都将回到初始状态重新开始检测。
2.实验程序设计及程序分析和主要模块的代码: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 d:std_logic_vector(7 downto 0);signal q:integer range 0 to 8;type fsm_st is(s0,s1,s2,s3,s4,s5,s6,s7,s8); --数据类型定义,状态符号化signal current_state,next_state:fsm_st;begind<="11100101" ; --8位待检预置数 reg:process(clr,clk) --主控时序进程beginif clr='1' then current_state<=s0;elsif clk='1' and clk'event thencurrent_state<=next_state;end if;end process;com:process(current_state,din) --主控组合进程 begincase current_state iswhen s0=>q<=0;if din='0' then next_state<=s0;else next_state<=s1;end if;when s1=>q<=1;if din='0' then next_state<=s0;else next_state<=s2;end if;when s2=>q<=2;if din='0' then next_state<=s0;else next_state<=s3;end if;when s3=>q<=3;if din='1' then next_state<=s0;else next_state<=s4;end if;when s4=>q<=4;if din='1' then next_state<=s0;else next_state<=s5;end if;when s5=>q<=5;if din='0' then next_state<=s0;else next_state<=s6;end if;when s6=>q<=6;if din='1' then next_state<=s0;else next_state<=s7;end if;when s7=>q<=7;if din='0' then next_state<=s0;else next_state<=s8;end if;when s8=>q<=8;next_state<=s0;end case;end process;process(q) --检测结果判断输出beginif q=8 then ab<="1010"; --序列数检测正确,输出"A" else ab<="1011"; --序列数检测错误,输出"B" end if;end process;end behav;3.原理图(顶层电路结构):clr为复位端,din为置数端,ab为输出端。
EDA 课程设计M序列及相关检测器
目录任务书 (1)第一章系统分析 (2)1.1QuartusII简介 (2)第二章设计容及要求 (3)2.1设计的目的及主要任务 (3)2.1.1设计目的 (3)2.1.2 设计容依据 (3)2.2设计思想 (3)第三章设计原理与模块分析 (4)3.1 序列检测器介绍 (4)3.2 序列检测器设计原理 (4)3.3 序列检测器模块 (4)3.3.1 分频器模块 (4)3.3.2 序列输入模块 (5)3.3.3 序列检测模块 (5)3.4顶层文件 (6)第四章电路仿真与分析 (8)4.1 单元模块的仿真与分析 (8)4.1.1 分频器模块的仿真与分析 (8)4.1.2 序列信号输入模块的仿真与分析 (8)4.1.3 序列检测模块的仿真与分析 (8)4.2 顶层电路的仿真与分析 (9)第五章电路的硬件调试 (10)参考文献 (11)附录 (11)城建大学课程设计任务书系专业班级课程设计名称:EDA技术及应用B设计题目:M序列及相关检测器完成期限:自年月日至年月日共 1 周一.课程设计依据在掌握常用数字电路原理和技术的基础上,根据EDA技术及应用课程所学知识,利用硬件描述语言(VHDL或VerilogHDL),EDA软件(QuartusⅡ)和硬件开发平台(达盛试验箱CycloneⅡFPGA)进行初步数字系统设计。
二.课程设计容设计八位线性反馈移位寄存器产生伪随机序列,串行输出9600bit/s速率伪随机码用做测试数据,序列检测器对该序列进行10101010序列检测,连接伪随机序列发生器和序列检测器构成完整系统,如果检测到该码,则输出1指示灯亮,否则输出0。
要求采用由状态机或串行滑窗方法检测器。
三.课程设计要求1. 要求独立完成设计任务。
2. 课程设计说明书封面格式要求见《城建大学课程设计教学工作规》附表13. 课程设计的说明书要求简洁、通顺,计算正确,图纸表达容完整、清楚、规。
4. 测试要求:根据题目的特点,采用相应的时序仿真或者在实验系统上观察结果。
EDA测试序列检测器
EDA实验报告实验目的:设计一个含数码管显示的七位二进制序列发生器。
实验内容:1.原理说明:多位数码显示电路由显示字符的段选线和选通数码管的位选线控制。
各位数码管共用8位段选线的电路结构使得同一时刻选通的各位数码管显示相同字符。
通过采用动态扫描显示方式,利用人眼视觉暂留效应及数码管余辉特性,可以“同时”显示出多位数码管的字符。
2.工程结构框架:移位寄存器(序列发生器)→7SEG译码器→控制a b c d e f g 七段实验流程:1设计移位寄存器2设计7SEG译码器3完成顶层电路图连接,构成完整序列发生器4完成仿真,下载测试实验具体步骤:1、设计移位寄存器(序列发生器)序列发生器是产生一组0、1二进制码按特定顺序排列的串行信号的仪器。
利用移位寄存器设计一个七位二进制序列发生器。
创建工程文件:单击界面左上角的file,执行file--->New Project Wizard 命令,打开工程导向,在第一页中分别输入新建工程所在路径,工程名称和顶层实体名称(同名)器件选择:如上图,在Family中选择MAXII,如需修改可以选择菜单Assignments->Device命令,弹出Device设置对话框修改Device family和A vailable devices选项。
创建设计文件:利用lpm定制移位寄存器,在对话框左侧列表中选择Installed Plug-Ins—>Storage —>lpm_shiftreg项在参数设置中,设置移位方向为左移,数据并入并出端和串入串出端,异步清零。
定制完成后生成的VHDL程序:-- megafunction wizard: %LPM_SHIFTREG%-- GENERA TION: STANDARD-- VERSION: WM1.0-- MODULE: lpm_shiftreg-- ============================================================ -- File Name: xulie.vhd-- Megafunction Name(s):-- lpm_shiftreg---- Simulation Library Files(s):-- lpm-- ============================================================ -- ************************************************************-- THIS IS A WIZARD-GENERA TED FILE. DO NOT EDIT THIS FILE!---- 9.0 Build 184 04/29/2009 SP 1 SJ Web Edition-- ************************************************************--Copyright (C) 1991-2009 Altera Corporation--Y our use of Altera Corporation's design tools, logic functions--and other software and tools, and its AMPP partner logic--functions, and any output files from any of the foregoing--(including device programming or simulation files), and any--associated documentation or information are expressly subject--to the terms and conditions of the Altera Program License--Subscription Agreement, Altera MegaCore Function License--Agreement, or other applicable license agreement, including,--without limitation, that your use is for the sole purpose of--programming logic devices manufactured by Altera and sold by--Altera or its authorized distributors. Please refer to the--applicable agreement for further details.LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY lpm;USE lpm.all;ENTITY xulie ISPORT(aclr : IN STD_LOGIC ;clock : IN STD_LOGIC ;data : IN STD_LOGIC_VECTOR (6 DOWNTO 0);load : IN STD_LOGIC ;shiftin : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (6 DOWNTO 0);shiftout : OUT STD_LOGIC);END xulie;ARCHITECTURE SYN OF xulie ISSIGNAL sub_wire0 : STD_LOGIC_VECTOR (6 DOWNTO 0);SIGNAL sub_wire1 : STD_LOGIC ;COMPONENT lpm_shiftregGENERIC (lpm_direction : STRING;lpm_type : STRING;lpm_width : NA TURAL);PORT (load : IN STD_LOGIC ;aclr : IN STD_LOGIC ;clock : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (6 DOWNTO 0);data : IN STD_LOGIC_VECTOR (6 DOWNTO 0);shiftout : OUT STD_LOGIC ;shiftin : IN STD_LOGIC);END COMPONENT;BEGINq <= sub_wire0(6 DOWNTO 0);shiftout <= sub_wire1;lpm_shiftreg_component : lpm_shiftregGENERIC MAP (lpm_direction => "RIGHT",lpm_type => "LPM_SHIFTREG",lpm_width => 7)PORT MAP (load => load,aclr => aclr,clock => clock,data => data,shiftin => shiftin,q => sub_wire0,shiftout => sub_wire1);END SYN;-- ============================================================ -- CNX file retrieval info-- ============================================================ -- Retrieval info: PRIV A TE: ACLR NUMERIC "1"-- Retrieval info: PRIV A TE: ALOAD NUMERIC "0"-- Retrieval info: PRIV A TE: ASET NUMERIC "0"-- Retrieval info: PRIV A TE: ASET_ALL1 NUMERIC "1"-- Retrieval info: PRIV A TE: CLK_EN NUMERIC "0"-- Retrieval info: PRIV A TE: INTENDED_DEVICE_FAMILY STRING "FLEX10K" -- Retrieval info: PRIV A TE: LeftShift NUMERIC "0"-- Retrieval info: PRIV A TE: ParallelDataInput NUMERIC "1"-- Retrieval info: PRIV A TE: Q_OUT NUMERIC "1"-- Retrieval info: PRIV A TE: SCLR NUMERIC "0"-- Retrieval info: PRIV A TE: SLOAD NUMERIC "1"-- Retrieval info: PRIV A TE: SSET NUMERIC "0"-- Retrieval info: PRIV A TE: SSET_ALL1 NUMERIC "1"-- Retrieval info: PRIV A TE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"-- Retrieval info: PRIV A TE: SerialShiftInput NUMERIC "1"-- Retrieval info: PRIV A TE: SerialShiftOutput NUMERIC "1"-- Retrieval info: PRIV A TE: nBit NUMERIC "7"-- Retrieval info: CONSTANT: LPM_DIRECTION STRING "RIGHT"-- Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_SHIFTREG"-- Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "7"-- Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT NODEFV AL aclr-- Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFV AL clock-- Retrieval info: USED_PORT: data 0 0 7 0 INPUT NODEFV AL data[6..0]-- Retrieval info: USED_PORT: load 0 0 0 0 INPUT NODEFV AL load-- Retrieval info: USED_PORT: q 0 0 7 0 OUTPUT NODEFV AL q[6..0]-- Retrieval info: USED_PORT: shiftin 0 0 0 0 INPUT NODEFV AL shiftin-- Retrieval info: USED_PORT: shiftout 0 0 0 0 OUTPUT NODEFV AL shiftout -- Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0-- Retrieval info: CONNECT: q 0 0 7 0 @q 0 0 7 0-- Retrieval info: CONNECT: @shiftin 0 0 0 0 shiftin 0 0 0 0-- Retrieval info: CONNECT: shiftout 0 0 0 0 @shiftout 0 0 0 0-- Retrieval info: CONNECT: @load 0 0 0 0 load 0 0 0 0-- Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0-- Retrieval info: CONNECT: @data 0 0 7 0 data 0 0 7 0-- Retrieval info: LIBRARY: lpm lpm.lpm_components.all-- Retrieval info: GEN_FILE: TYPE_NORMAL xulie.vhd TRUE-- Retrieval info: GEN_FILE: TYPE_NORMAL xulie.inc FALSE-- Retrieval info: GEN_FILE: TYPE_NORMAL xulie.cmp TRUE-- Retrieval info: GEN_FILE: TYPE_NORMAL xulie.bsf TRUE-- Retrieval info: GEN_FILE: TYPE_NORMAL xulie_inst.vhd FALSE-- Retrieval info: LIB_FILE: lpm2、设计7SEG译码器7seg译码器VHDL程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity seg_7 isport(scan_clk,cnt_aclr:in std_logic;z0,z1,z2,z3,z4,z5,z6:in std_logic;seg7:out std_logic_vector(6 downto 0);wei:out std_logic_vector(6 downto 0));end seg_7;architecture rtl of seg_7 issignal seg_wire:std_logic;signal wei_wire:std_logic_vector(6 downto 0);type st is (k_0,k_1,k_2,k_3,k_4,k_5,k_6);signal st_nxt:st;beginscan_st:process(scan_clk,cnt_aclr,st_nxt)beginif cnt_aclr='1' thenst_nxt<=k_0;elsif(scan_clk'event and scan_clk='1') thencase st_nxt iswhen k_0=> st_nxt<=k_1;when k_1=> st_nxt<=k_2;when k_2=> st_nxt<=k_3;when k_3=> st_nxt<=k_4;when k_4=> st_nxt<=k_5;when k_5=> st_nxt<=k_6;when k_6=> st_nxt<=k_0;end case;end if;end process;scan_o:process(st_nxt,z0,z1,z2,z3,z4,z5,z6) begincase st_nxt iswhen k_0=>seg_wire<=z0;wei_wire<="0000001";when k_1=>seg_wire<=z1;wei_wire<="0000010";when k_2=>seg_wire<=z2;wei_wire<="0000100";when k_3=>seg_wire<=z3;wei_wire<="0001000";when k_4=>seg_wire<=z4;wei_wire<="0010000";when k_5=>seg_wire<=z5;wei_wire<="0100000";when k_6=>seg_wire<=z6;wei_wire<="1000000";end case;end process;seg7<="1111110" when seg_wire='0' else"0110000" when seg_wire='1';wei<=wei_wire;end rtl; 、3、完成顶层电路图连接创建子模块的符号文件:在7SEG译码器VHDL程序文件中选择菜单File—>Create/update—>Create Symbol File for Current File命令并连接完成顶层电路图:各模块功能说明:设定发生序列,发生序列设为1010101;利用LPM定制的移位寄存器,完成序列发生功能,利用shiftout端发生内定序列1010101。
电路中的信号发生器与检测器
电路中的信号发生器与检测器电路中的信号发生器与检测器是电子工程师在实验室中经常用到的仪器设备。
它们在电路设计、调试和故障排查中起着至关重要的作用。
尽管信号发生器与检测器在原理和功能上有所不同,但它们的配合使用可以大大提高电路的性能和可靠性。
信号发生器是一种能够产生特定频率、振幅和波形的信号的设备。
它可以模拟各种类型的信号,如正弦波、方波、三角波等,以及模拟复杂的调制信号。
通过调节信号发生器的参数,工程师可以精确地控制电路中的信号。
这对于测试电路的频率响应、幅度衰减等参数非常重要。
在电路设计阶段,工程师可以使用信号发生器来验证设计的正确性和合理性。
通过输入信号进行模拟,在示波器等检测器上观察信号的波形,可以检查电路是否正常工作,是否存在干扰或失真等问题。
如果出现问题,工程师可以通过调整电路元件的数值或更改电路拓扑结构来解决。
在电路调试和故障排查过程中,信号发生器也扮演着重要的角色。
特别是当需要检测某个特定频率下电路的响应时,信号发生器能够提供准确、稳定的信号输入。
通过调整信号的振幅和频率,工程师可以观察到电路的响应情况,从而迅速定位问题所在。
与信号发生器相对应的是检测器,也称为测量仪器。
检测器的主要功能是测量电路的各种参数,如电压、电流、功率等。
电子工程师在电路设计中需要精确测量各个节点的电压和电流,以确保电路的工作正常。
检测器可以提供准确的测量结果,并帮助工程师判断电路是否达到设计要求。
在电路调试和故障排查中,检测器发挥着关键作用。
当工程师需要检测某个电路节点的电压或电流时,可以将检测器连接到该节点上进行测量。
通过检测器提供的实时数据,工程师可以判断电路的工作状态是否正常,进而找出问题所在。
此外,一些高级检测器还可以提供波形显示和数据存储功能,方便进一步的分析和处理。
信号发生器与检测器在电子工程领域里是不可或缺的工具。
它们的配合使用,可以帮助工程师验证和优化电路设计,快速定位和解决故障。
随着技术的不断进步,信号发生器与检测器的功能不断完善,配备了更多的测量选项和计算功能,以满足工程师日益复杂的需求。
(完整word版)实验四:序列发生器与检测器的设计
南昌大学实验报告学生姓名:学号: 专业班级:实验类型:□验证□综合▉设计□创新实验日期:11。
16__ 实验成绩:实验四序列信号发生器与检测器设计一、实验目的1、了解序列检测器的工作原理。
2、掌握时序电路设计中状态机的应用。
3、进一步掌握用VHDL 语言实现复杂时序电路的设计过程。
二、实验内容要求用状态机设计实现串行序列检测器的设计,先设计(可用原理图输入法)序列信号发生器,产生序列: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"的检测。
序列信号发生器和序列信号检测器
南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:实验成绩:实验三序列信号检测器设计(一)实验目的1.进一步熟悉PH-1V型实验装置和QuartusⅡ软件的使用方法;2.学习有限状态机法进行数字系统设计;3.学习使用原理图输入法进行设计。
(二)设计要求完成设计、仿真、调试、下载、硬件测试等环节,在PH-1V型EDA实验装置上实现一个串行序列信号发生器和一个序列信号检测器的功能,具体要求如下:1.先用原理图输入法设计0111010011011010序列信号发生器;2.其最后8BIT数据用LED显示出来;3.再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“11010”则输出为“1”,否则输出为“0”;(三)主要仪器设备1.微机 1台2.QuartusII集成开发软件1套3.PH-1V型EDA实验装置1套(四)实验总体设计本实验要求先设计一个信号发生器,采用原理图设计方法,要求产生0111010011011010序列,16位,便可采用74161计数器和74151选择器,161计数输出QD,QC,QB,QA从0000计至1111,然后将161计数输出低三位QC,QB,QA分别接到151的C,B,A端,高位QD用来控制151两片的片选,即两片151分别实现序列的高八位和低八位的输出。
最后将二片151的输出相或便可得到最后要产生的序列。
序列检测器即为一个状态机,首先画出状态转移图,根据状态转移图设计出序列检测器,当检测到预置的序列,则RESULT输出1,否则输出0 (五)实验重难点设计1. 用原理输入法设计序列信号发生器(1)打开Quartus II软件,进入编辑环境。
(2)创建新的原理图BDF文件,命名为FASHENGQI,根据其总体设计思路设计出如下原理图:1. 用文本输入法设计序列信号检测(1)打开Quartus II软件,进入编辑环境。
(2)创建新的文本文件VHDL,命名为ztj,根据状态机总体设计思路设计出如(3)下语句程序:library ieee;use ieee.std_logic_1164.all;entity ztj isport (clk,reset: in std_logic;x: in std_logic;result: out std_logic);end ztj;architecture behav of ztj istype m_state is(s0,s1,s2,s3,s4,s5);signal present_state,next_state:m_state;signal temp:std_logic;beginprocess(reset,clk)beginif reset ='1' thenpresent_state<=s0;elsif clk='1' and clk'event thenresult<=temp;present_state<=next_state;end if;end process;(4)经编译成功后,点击File---Creat/Update---Creat Simbol Files For Current File 后生成STAKE模块如下:(1)打开Quartus II软件,进入编辑环境。
实验8 序列信号发生器
实验8 序列信号发生器实验目的:1.熟悉掌握EDA软件工具Multisim 的仿真测试应用。
2.熟悉序列信号发生器的工作原理。
3.学习序列信号发生器的设计方法。
实验仪器设备与主要器件:实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。
4位十进制加法计数器74LS160;4位二进制加法计数器74LS161。
8选1数据选择器74LS251、74LS152、74LS151。
实验内容:1.用计数器74LS160设计一个7位巴克码(0100111)的产生电路,画出电路时序图。
用示波器观察电路输出的波形。
实验原理:①先设计计数器。
由于序列长度为7,所以选用74LS160设计一个八进制计数器。
现采用置零法,有效状态为0000~0110,所以LOAD=QCQB 。
②然后设计组合输出电路。
令计数器计数过程中每一状态的输出符合给定序列要求,用8选一数据选择器74LS251.实现逻辑函数,且数据选择器的数据输入端所置数为:D0 D1 D2 D3 D4 D5 D6 D70 1 0 0 1 1 1 *实验电路:实验分析:如电路图所示,将计数器的输出QCQBQA作用于数据选择器的地址输入端,于是,每计一个数,数据选择器就输出一个预先置好的数据。
当CP信号持续不断地加到计数器上,QCQBQA的状态(也即74LS251的地址输入代码)按0000~0110的顺序不断循环,对应的输出也不断地循环:0100111实验结果与现象:2.设计灯光控制逻辑电路。
要求红、绿、黄三种颜色的灯在时钟信号作用下按表2—8—2规定的顺序转换状态。
表中,1表示“亮”,0表示“灭”。
CP顺序红绿黄0 0 0 01 1 0 02 0 1 03 0 0 14 1 1 15 0 0 16 0 1 07 1 0 08 0 0 0实验原理:①先设计计数器。
从表2—8—2可以看出三个序列信号的序列长度为8,所以选用74LS160设计一个八进制计数器。
现采用置零法,有效状态为0000~0111,所以LOAD=QC∙。
序列发生器和序列检测器——选作实验EDA
UESTCEDA技术及应用实验选作实验——序列发生和序列检测器的设计姓名:孙纪川学号:20110791200222013选作实验序列发生器和检测器的设计一、预习内容1)预习序列发生器和检测器的基本工作原理。
2)画出实验原理草图。
3)写出实验的基本步骤和源程序。
二、实验目的1)掌握序列发生器和检测器的工作原理。
2)学会用状态机进行数字系统设计。
三、实验器材PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干。
四、实验要求1)连续完成一个“10001110”序列和九个非“10001110”序列的发生;2)检测“10001110”序列,当检测到该序列后点亮EDA实验箱的LED灯;3)注意为了点亮LED灯,时钟频率不要选择太高,可以选择几十赫兹的频率。
五、实验报告及仿真结果1)序列发生器和序列检测器的VHDL源程序状态机的状态图:用摩尔型状态机设计的序列检测器的源程序:我修改了报告中的状态图,因为在st8到st0的过程中也需判断输入序列发生器的源程序:用图形输入法表示的序列发生并检测电路的顶层实体:名称关联法在block图中连线2)六、实验结果分析通过实验箱上的实际显示可以看到,序列检测器成功检测到序列发生器的序列点亮LED指示灯。
序列发生器和序列检测器设计成功。
七、心得体会通过此次实验使我了解了状态机的设计过程及用VHDL语言编写状态机,我还学到了摩尔型状态机与米粒型状态机的不同(延迟输出),以及可以用数组左移位的方法并行检测序列。
此次实验的成功之处在于程序编写正确,状态机逻辑明确,程序在实验箱上运行正确。
不足之处在于虽然我编写了米粒型状态机(运行结果也正确但是我没有截图)但是在quartus2软件上仿真并没有体会到延迟输出的现象,下次实验还需加深对米粒型状态机的理解重新改写米粒型状态机。
八、问题及思考问题:如果改变待检测的二进制码(如1011001),状态转换图应如何变化。
答:。
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序列信号的逻辑功能。
序列信号发生器和检测器
南昌大学实验报告学生姓名:赖硕秋学号:6100208060 专业班级:电子081实验类型:□验证□综合■设计□创新实验日期:2010.11.12 实验成绩:实验三序列信号发生器与检测器设计一、实验目的(1)掌握产生特定序列信号的方法;(2)学会用状态机方法来实现VHDL编程设计;(3)进一步巩固分层设计的方法.二、实验内容与要求用状态机设计实现串行序列检测器,先设计序列信号发生器,产生序列“0111010011011011010”;再设计检测器,若检测到串行序列11010则输出计数器计入个数,并对其进行仿真和硬件测试。
三、设计原理本实验中,采用分层设计的思想,底层分别用VHDL文本来描述序列发生器和序列检测器,顶层用原理图法连线好元件化的器件。
对于序列发生器(特定序列)设计比较多样,可以采用并行case语句来实现产生特定的周期性序列;序列检测器采用状态机的设计方法,在不同状态下检测特定的序列信号,最后通过一个计数器计入所检测到的序列个数,并且通过并行移位来显示有限个产生信号。
根据所检测的序列“11010”,可以得到以下的状态转移图:四、实验程序方法一:VHDL文本法,不分层(独立编写)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XULIE ISPORT(CLK,CLR,RESET:IN STD_LOGIC;M:OUT STD_LOGIC;COUT1,COUT2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY;ARCHITECTURE ONE OF XULIE ISTYPE M_STATE IS(ST0,ST1,ST2,ST3,ST4);SIGNAL STA:M_STATE;SIGNAL SHUZI:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL A:STD_LOGIC;SIGNAL CC:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINSHUZI<="11010";PROCESS(CLK,CLR,RESET,A,CC)V ARIABLE N:INTEGER RANGE 16 DOWNTO 1;BEGINIF RESET='1' THEN N:=1; --序列发生器"0111010011011010"ELSIF CLK'EVENT AND CLK='1'THEN CASE N ISWHEN 1=>A<='0';N:=N+1;WHEN 2=>A<='1';N:=N+1;WHEN 3=>A<='1';N:=N+1;WHEN 4=>A<='1';N:=N+1;WHEN 5=>A<='0';N:=N+1;WHEN 6=>A<='1';N:=N+1;WHEN 7=>A<='0';N:=N+1;WHEN 8=>A<='0';N:=N+1;WHEN 9=>A<='1';N:=N+1;WHEN 10=>A<='1';N:=N+1;WHEN 11=>A<='0';N:=N+1;WHEN 12=>A<='1';N:=N+1;WHEN 13=>A<='1';N:=N+1;WHEN 14=>A<='0';N:=N+1;WHEN 15=>A<='1';N:=N+1;WHEN 16=>A<='0';N:=1;WHEN OTHERS=>NULL;END CASE;END IF;IF CLR='1' THEN STA<=ST0;CC<=(OTHERS=>'0'); --序列检测器"11010"ELSIF CLK'EVENT AND CLK='0' THENCASE STA ISWHEN ST0=> IF A=SHUZI(4) THEN STA<=ST1;ELSE STA<=ST0;END IF;WHEN ST1=> IF A=SHUZI(3) THEN STA<=ST2;ELSE STA<=ST0;END IF;WHEN ST2=> IF A=SHUZI(2) THEN STA<=ST3;ELSE STA<=ST2;END IF;WHEN ST3=> IF A=SHUZI(1) THEN STA<=ST4;ELSE STA<=ST0;END IF;WHEN ST4=> IF A=SHUZI(0) THEN STA<=ST0;IF CC(3 DOWNTO 0)=9 THEN CC<=CC+7;ELSE CC<=CC+1;END IF;ELSE STA<=ST2;END IF;END CASE;END IF;M<=A;COUT1<=CC(3 DOWNTO 0);COUT2<=CC(7 DOWNTO 4);END PROCESS;END ARCHITECTURE;方法二:采用底层+顶层的设计方法,先用VHDL设计好发生器和检测器,顶层用原理图连线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
学生姓名:EDA小王子学号:国家机密专业班级:国家机密
实验类型:□验证□综合√设计□创新实验日期:国家机密实验成绩:很高实验三序列信号发生器与检测器设计
一、实验目的
1.学习一般有限状态机的设计;
2.实现串行序列的设计。
二、设计要求
要求用状态机设计实现串行序列检测器的设计,先设计(可用原理图输入法)序列信号发生器,产生序列:0111010011011010;再设计检测器,若检测到串行序列11010则输出为“1”,否则输出为“0”,并对其进行仿真和硬件测试。
三、实验设备
PC机,Quartu eⅱ软件,实验箱
四、实验原理
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
F S Q I S
P O R T(C L K,C L R N:I N S T D_L O G I C;
Z O U T:O U T S T D_L O G I C);
E N D
F S Q;
A R C H I T E C T U R E o n e O F F S Q I S
S 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;
B E G I N
P R O C E S S(C L K,C L R N)
B E G I N
I F(C L R N='0')T H E N C N T<="0000";E L S E
I F(C L K'E V E N T A N D C L K='1')T H E N
C 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 N
C A S E C N T I S
W 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;
E N D o n e;
2)对其进行波形仿真,如下图:
3)将其转换成可调用元件如图:
2、信号检测器
1)建立工作库文件夹,输入设计项目VHDL代码,如下:
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY JCQ IS
PORT(DIN, CLK, CLR : IN STD_LOGIC;
ss : OUT std_logic_vector(0 downto 0));
END JCQ;
ARCHITECTURE behav OF JCQ IS
type states is (S0,S1,S2,S3,S4,S5);
SIGNAL Q : states ;
SIGNAL D : STD_LOGIC_VECTOR(4 DOWNTO 0);
BEGIN
D <= "11010" ;
PROCESS( CLK, CLR )
BEGIN
IF CLR = '1' THEN Q <= S0 ;
ELSIF CLK'EVENT AND CLK='1' THEN
CASE Q IS
WHEN S0=> IF DIN = D(4) THEN Q <= S1 ; ELSE Q <= S0 ; END IF ; WHEN S1=> IF DIN = D(3) THEN Q <= S2 ; ELSE Q <= S0 ; END IF ; WHEN S2=> IF DIN = D(2) THEN Q <= S3 ; ELSE Q <= S2 ; END IF ; WHEN S3=> IF DIN = D(1) THEN Q <= S4 ; ELSE Q <= S0 ; END IF ; WHEN S4=> IF DIN = D(0) THEN Q <= S5 ; ELSE Q <= S2 ; END IF ;
WHEN OTHERS => Q <= S0 ;
END CASE ;
END IF ;
END PROCESS ;
PROCESS( Q )
BEGIN
IF Q = S5 THEN ss <="1";
ELSE ss <= "0";
END IF ;
END PROCESS ;
END behav ;
状态机如图:
3)将其转换成可调用元件如图:
3.序列信号检测器顶层文件
1)调用序列信号发生器和序列信号检测器元件,建立工作库文件夹,输入设计项目原理图如下图:
2)对总体进行波形仿真,如下图:
4.管脚邦定
六、实验现象及验证
当PIN53灭,PIN54亮时:
七、实验心得
1.首先用VHDL语言设计序列信号发生器和序列信号检测器模块。
2.了使设计简化,顶层文件采用原理图法,直接将两个模块连接起来。
3.测器时要先画出其状态转移图,否则很容易出错。
4.通过本次实验,加深了我序列信号检测器状态转移的理解。