EDA序列信号发生器与检测器

合集下载

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序列检测器设计

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序列发生器和检测器的设计与实现

实验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序列发生器和检测器的设计与实现

实验7序列发生器和检测器的设计与实现
一、实验目的
本实验旨在通过设计和实现序列发生器和检测器来熟悉现代无线通信
系统以及其中所使用的发送数据的方法。

二、实验环境
实验要求使用FPGA软硬件设计结合Quartus II软件进行设计实现,
使用ALTERA DE2开发板实现序列发生器和检测器。

三、实验原理
1.序列发生器的原理
序列发生器是一种非常重要的工具,它可以产生一个特定序列的数字
信号。

序列发生器最常用于调试电子系统以及测试它们的性能。

序列发生
器利用一个特定的算法来生成多个等号数字序列,这些序列可以用于传输,接收和解码信息。

2.检测器的原理
检测器是一种对接收到的数据流进行分析的功能,它能够检测出一些
有用的信息,因此它扮演着非常重要的角色。

检测器通常包括一个可以对
收到的数据流进行解码的模块。

检测器为用户提供其中一种特定的输出,
以及相应的信息,这样用户就能够更好地分析系统的行为。

四、实验设计
1.序列发生器的设计
序列发生器的设计主要是利用ALTERA DE2开发板上的FPGA芯片,包括Cyclone IV,搭建序列发生器的设计结构。

在这个结构里,必须实现一个控制器,用于启动和停止发送序列,还要实现一个定时器,定时发送序列。

EDA设计实验_序列检测器-

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实验报告实验三:序列信号发生器与检测器设计++++

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技术快速验证序列信号发生器设计的教学探索

一种利用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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.通过本次实验,加深了我序列信号检测器状态转移的理解。

相关文档
最新文档