EDA4序列信号发生器与检测器设计
EDA实验报告
EDA 实验报告实验一:组合电路的设计实验内容是对2选1多路选择器VHDL 设计,它的程序如下:ENTITY mux21a ISPORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGIN d <= a AND (NOT S) ; e <= b AND s ; y <= d OR e ;END ARCHITECTURE one ;Mux21a 仿真波形图以上便是2选1多路选择器的VHDL 完整描述,即可以看成一个元件mux21a 。
mux21a 实体是描述对应的逻辑图或者器件图,图中a 和b 分别是两个数据输入端的端口名,s 为通道选择控制信号输入端的端口名,y 为输出端的端口名。
Mux21a 结构体可以看成是元件的内部电路图。
最后是对仿真得出的mux21a 仿真波形图。
Mux21a 实体Mux21a 结构体实验二:时序电路的设计实验内容D触发器的VHDL语言描述,它的程序如下:LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF1 ISPORT (CLK : IN STD_LOGIC ;D : IN STD_LOGIC ;Q : OUT STD_LOGIC );END ;D触发器ARCHITECTURE bhv OF DFF1 ISBEGINPROCESS (CLK)BEGINIF CLK'EVENT AND CLK = '1'THEN Q <= D ;END IF;END PROCESS ;END bhv;D触发器的仿真波形图最简单并最具代表性的时序电路是D触发器,它是现代可编程ASIC设计中最基本的时序元件和底层元件。
EDA课设序列信号发生器设计
绪论本次课程设计通过利用quartusII软件实现序列发生器。
从而对EDA进一步的熟悉,了解,和掌握。
通过本课程的学习,可以了解硬件描述语言编程方法 ,掌握VHDL编程方法,掌握序列发生器的形成。
EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
EDA技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。
综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。
综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。
也就是说,综合器是软件描述与硬件实现的一座桥梁。
综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD 相映射的网表文件。
适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中,产生最终的下载文件,如JED文件。
适配所选定的目标器件(FPGA/CPLD芯片)必须属于在综合器中已指定的目标器件系列。
硬件描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。
HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。
设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。
(完整word版)实验四:序列发生器与检测器的设计
南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合▉设计□创新实验日期:11.16__ 实验成绩:实验四序列信号发生器与检测器设计一、实验目的1、了解序列检测器的工作原理。
2、掌握时序电路设计中状态机的应用。
3、进一步掌握用V HDL 语言实现复杂时序电路的设计过程。
二、实验内容要求用状态机设计实现串行序列检测器的设计,先设计(可用原理图输入法)序列信号发生器,产生序列: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”的检测。
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 电路仿真与分析....................................................................................... 错误!未定义书签。
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基于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技术及应用-VHDL版(第三版)(潭会生)第7章详解
第7章 EDA技术实验
CLK CLR ENA
CNT10
CLK
U0
CLR
ENA
CQ[3..0] CO
DOUT[3..0] S0
CNT10
CLK
U1
CLR
ENA
CQ[3..0] CO
DOUT[7..4] S1
CNT10
CLK CLR ENA
U2 CQ[3..0] CO
DOUT[11..8] S2
CNT10 U3
第7章 EDA技术实验
ห้องสมุดไป่ตู้验证清零功能
验证使能有效
验证计数功能
预计可能结果
图7.2 CNT10仿真输入设置及可能结果估计图
第7章 EDA技术实验
4) 管脚锁定文件 根据图7.1所示的CNT9999电路原理图,本设计实体的 输入有时钟信号CLK、清零信号CLR和计数使能信号ENA, 输出为DOUT[15..0],据此可选择实验电路结构图NO.0,对 应实验模式0。 根据图7.5所示的实验电路结构图NO.0和图7.1确定引脚 的锁定。选用EPM7128S-PL84芯片,其引脚锁定过程如表 7.1所示,其中CLK接CLOCK2,CLR接键3,ENA接键4, 计数结果DOUT[3..0]、DOUT[7..4]、DOUT[11..8]、 DOUT[15..12]经外部译码器译码后,分别在数码管1、数码 管2、数码管3、数码管4上显示。
第7章 EDA技术实验
3.实验要求 (1) 画出系统的原理框图,说明系统中各主要组成部分 的功能。 (2) 编写各个VHDL源程序。 (3) 根据系统的功能,选好测试用例,画出测试输入信 号波形或编好测试程序。 (4) 根据选用的EDA实验开发装置编好用于硬件验证的 管脚锁定表格或文件。 (5) 记录系统仿真、逻辑综合及硬件验证结果。 (6) 记录实验过程中出现的问题及解决办法。
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技术的函数信号发生器设计
2 1 住 00
第 2 卷 第 6 7 期
基于 E A技术的函数信号发生器设计 D
陈 祖 武
( 建师范 大学协和学 院, 福 福建 福 州 3 0) 5 1 8 O
摘要:基 E A 术的函数信 号发 生 器可产 生频率可调 的正弦波 、方波、三角波 、锯齿 波、递增斜波 、递减斜波和 D技
电视 系 统 中 ,都 需要 射 频 ( 高频 )发 射 ,这 里 的 射 频 波 就 是 表 示 ,所 以 最 大 值 为 2 5 最 小 值 是 0 5, ,其 中 3 2个 点 是 递 载 波 ,把 音 频 ( 频 ) 视频 信 号 或 脉 冲 信 号 运 载 出去 ,就 增 , 3 低 、 2个 点 递 减 ,其 增 减 关 系 满 足 公 式 : 设 A 点 函 数 值 需 要 能 够 产 生 高 频 的振 荡 器 。除供 通 信 、仪表 和 自动 控 制 系 是 Y ,相 位 值 是 X ,B点 函 数 值 是 Y a a b,相位 值 是 X , b 其
} dr + 1 + + 4 l+ 6 I+ Ad o I+ 2 3 l+ 5 l+ 7 l
} 0
8
忙5 I5 2 2 2 9 2 5 2 9 2 3 2 5 5 24 5 4 4 3 3 2
2 17 2 f7 1 19 7 18 6 17 4 1 62 15 0 13 7
图 2 正弦 波 M F I 表 再 利用 M g W a d P u — n M n gr 定 制 正弦 信 号 数 e a i r l g I a a e z
使用 的普 通 分 频 计 和 供 各 个 波 形 模 块 使用 的 可 调分 频 计 。如
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。
序列发生器和序列检测器——选作实验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),状态转换图应如何变化。
答:。
序列信号发生器和检测器
南昌大学实验报告学生姓名:赖硕秋学号: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设计好发生器和检测器,顶层用原理图连线。
南昌大学EDA实验报告完整版
EDA实验报告姓名:曾维鋆学号:6102213863老师:杨鼎成班级:通信工程132班目录实验一半加器及全加器的设计 (3)实验二模可变计数器的设计 (6)实验三序列信号检测器的设计 (11)实验四交通灯控制器设计 (15)实验五多功能数字钟设计 (22)实验六出租车计费器的设计 (34)实验七16*16 点阵显示实验 (40)南昌大学实验报告学生姓名:曾维鋆学号:61002213863 专业班级:通信132班实验类型:□验证□综合█设计□创新实验日期:2015.10.19 实验成绩:实验一半加器及全加器的设计(一)实验目的1、熟悉实验装置和QuartusⅡ软件的使用;2、熟悉和掌握EDA设计流程;3、学习简单组合、时序电路的EDA设计;4、熟悉例化语句的应用。
(二)实验内容设计一个一位全加器。
先设计一个半加器h_adder.v作为预存文件。
然后设计顶层文件对h_adder.v文件进行调用,实现全加器的功能。
(三)实验原理由3个逻辑模块组成,其中两个为半加器,一个是或门。
真值表(四)实验步骤1.建立工作库文件夹,输入半加器和全加器的Verilog HDL代码并分别存盘。
a.半加器module h_adder(A,B,SO,CO);input A,B;3output SO,CO;assign SO=A^B;assign CO=A&B;endmoduleb.全加器module f_adder(ain,bin,cin,cout,sum);output cout,sum;input ain,bin,cin;wire net1,net2,net3;h_adder U1(ain,bin,net1,net2);h_adder U2(.A(net1),.SO(sum),.B(cin),.CO(net3));or U3(cout,net2,net3);endmodule2.选目标器件CycloneII中的EP2C35F672C8并编译。
EDA序列检测器设计课程设计
EDA序列检测器设计课程设计一、课程目标知识目标:1. 让学生掌握EDA(电子设计自动化)序列检测器的基本原理与设计流程;2. 使学生了解并掌握数字逻辑设计的基本方法,以及Verilog HDL硬件描述语言;3. 帮助学生理解同步时序电路的工作原理,掌握序列检测器的功能与实现。
技能目标:1. 培养学生运用Verilog HDL进行数字电路设计与仿真能力;2. 培养学生运用EDA工具(如ModelSim、Quartus II等)进行电路仿真、调试的能力;3. 提高学生分析问题、解决问题的能力。
情感态度价值观目标:1. 培养学生积极探究、主动学习的兴趣和热情,增强学生的自主学习能力;2. 培养学生的团队合作意识,提高沟通与协作能力;3. 增强学生的创新意识,鼓励学生勇于尝试、善于实践。
本课程针对电子工程及相关专业高年级学生,结合课程性质、学生特点和教学要求,将课程目标分解为具体的学习成果。
在教学过程中,注重理论与实践相结合,以实际工程项目为背景,引导学生通过自主学习、团队合作、实践创新等方式,达到本课程的教学目标。
通过本课程的学习,使学生具备一定的EDA 技术基础,为未来从事电子设计及相关领域工作打下坚实基础。
二、教学内容1. 序列检测器原理:介绍序列检测器的基本概念、功能、分类及其在数字系统中的应用。
- 教材章节:第三章第二节- 内容:同步时序电路原理,序列检测器设计方法。
2. Verilog HDL基础:讲解Verilog HDL硬件描述语言的基本语法、数据类型、运算符和建模方法。
- 教材章节:第四章- 内容:模块化设计,行为描述与结构描述,组合逻辑与时序逻辑描述。
3. 序列检测器设计:结合实例,分析序列检测器的设计方法与步骤。
- 教材章节:第五章第三节- 内容:Mealy型与Moore型序列检测器设计,状态编码,状态转移图。
4. EDA工具应用:介绍ModelSim、Quartus II等EDA工具的使用,进行电路仿真与调试。
实验7序列发生器和检测器的设计与实现
实验7序列发生器和检测器的设计与实现序列发生器和检测器是数字电路中非常重要的组成部分,用于生成和检测特定的序列模式。
本实验将设计和实现一个简单的序列发生器和检测器。
1.实验目的:-了解序列发生器和检测器的基本原理和实现方法;-掌握用基本门电路实现序列发生器和检测器的设计方法;-熟悉数字电路的设计流程和实验操作。
2.实验仪器和器件:-逻辑门IC(与、或、非门);-数字电路实验箱;-电源。
3.实验原理:-序列发生器是一种能够按照预定规律生成特定序列的电路,通常由多个逻辑门组成。
常见的序列发生器包括计数器、移位寄存器等。
-序列检测器是一种能够检测给定输入序列是否符合预定规律的电路,通常也由多个逻辑门组成。
常见的序列检测器包括状态机、比较器等。
4.实验步骤:1.根据设计要求,确定需要生成和检测的序列类型和规律。
2.设计序列发生器的电路,选择适当的逻辑门进行组合,以实现所需的序列模式。
3.搭建序列发生器电路,将所选逻辑门按照设计连接方式进行布线。
4.进行测试和调试,检查序列发生器是否按照设计要求生成所需的序列。
5.设计序列检测器的电路,选择适当的逻辑门进行组合,以实现对所需的序列模式的检测。
6.搭建序列检测器电路,将所选逻辑门按照设计连接方式进行布线。
可使用开关或其它电源来模拟序列输入。
7.进行测试和调试,检查序列检测器是否能够准确检测给定的输入序列是否符合预期。
5.实验注意事项:-严格按照设计要求进行电路设计和布线,确保连接正确。
-进行测试和调试时,先验证序列发生器的输出是否符合预期,再测试序列检测器的正确性。
-如遇到问题,请仔细检查电路连接是否正确,或寻求助教或教师的帮助。
6.实验结果分析:-比较生成的序列和检测的结果,验证电路的正确性和稳定性。
-如有误差或异常情况,分析可能原因,进行修正和改进。
7.实验总结:-通过本实验,我们了解了序列发生器和检测器的基本原理和实现方法。
-掌握了用基本门电路实现序列发生器和检测器的设计方法。
实验7序列发生器和检测器的设计与实现
实验7序列发生器和检测器的设计与实现
一、实验目的
本实验旨在通过设计和实现序列发生器和检测器来熟悉现代无线通信
系统以及其中所使用的发送数据的方法。
二、实验环境
实验要求使用FPGA软硬件设计结合Quartus II软件进行设计实现,
使用ALTERA DE2开发板实现序列发生器和检测器。
三、实验原理
1.序列发生器的原理
序列发生器是一种非常重要的工具,它可以产生一个特定序列的数字
信号。
序列发生器最常用于调试电子系统以及测试它们的性能。
序列发生
器利用一个特定的算法来生成多个等号数字序列,这些序列可以用于传输,接收和解码信息。
2.检测器的原理
检测器是一种对接收到的数据流进行分析的功能,它能够检测出一些
有用的信息,因此它扮演着非常重要的角色。
检测器通常包括一个可以对
收到的数据流进行解码的模块。
检测器为用户提供其中一种特定的输出,
以及相应的信息,这样用户就能够更好地分析系统的行为。
四、实验设计
1.序列发生器的设计
序列发生器的设计主要是利用ALTERA DE2开发板上的FPGA芯片,包括Cyclone IV,搭建序列发生器的设计结构。
在这个结构里,必须实现一个控制器,用于启动和停止发送序列,还要实现一个定时器,定时发送序列。
EDA序列检测器设计课程设计
EDA序列检测器设计课程设计一、课程目标知识目标:1. 让学生理解EDA序列检测器的基本原理和设计流程;2. 掌握数字电路设计的基本方法,并能运用所学知识分析EDA序列检测器的功能;3. 了解EDA工具的使用,如原理图绘制、仿真测试等。
技能目标:1. 培养学生运用所学知识进行EDA序列检测器设计的能力;2. 提高学生实际操作EDA工具,解决实际问题的能力;3. 培养学生的团队协作能力和沟通表达能力。
情感态度价值观目标:1. 培养学生对电子设计自动化(EDA)技术的兴趣和热情;2. 增强学生的创新意识,培养敢于挑战、勇于实践的精神;3. 培养学生严谨、务实的科学态度,养成良好的学习习惯。
课程性质:本课程为电子技术实践课程,旨在培养学生的实际操作能力和创新能力。
学生特点:学生已经掌握了数字电路基础知识,具有一定的电路分析和设计能力。
教学要求:结合课本内容,注重理论与实践相结合,强调实际操作和团队协作。
在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。
通过本课程的学习,使学生能够独立完成EDA序列检测器的设计与仿真。
二、教学内容1. 数字电路基础知识回顾:逻辑门、触发器、计数器等基本概念和功能;2. EDA工具介绍:原理图绘制、电路仿真、PCB设计等;3. 序列检测器原理:Moore状态机、Mealy状态机设计方法;4. 序列检测器设计流程:需求分析、状态划分、状态转移图绘制、输出逻辑设计;5. 序列检测器仿真与测试:使用EDA工具进行原理图绘制、仿真测试及优化;6. 实际操作:分组进行EDA序列检测器设计,交流与展示;7. 课程总结与评价:对所学内容进行总结,评估学生的学习成果。
教学内容安排与进度:1. 第一周:数字电路基础知识回顾,EDA工具介绍;2. 第二周:序列检测器原理,设计流程讲解;3. 第三周:分组进行序列检测器设计,指导与答疑;4. 第四周:完成序列检测器仿真与测试,进行展示与评价。
EDA设计——序列检测器的设计PPT课件
2021/3/9
授课:XXX
3
设计原理
• 在状态连续变化的数字系统设计中,常常采 用状态机进行设计。这样不仅有利于提高设计 效率,增加程序的可读性,而且可以减少错误 的发生率。同时,状态机的设计方法也是数字 系统中一种最常用的设计方法,因而有必要掌 握。下面用状态机设计一个电路完成已预置的 序列数“11110000”的检测。
EDA课程设计
设计题目:序列检测器的设计
指导老师:张广忠 张薇 组员:宋成发 克彩霞 彭亚伟
2021/3/9
授课:XXX
1
序列检测器的介绍
• 序列检测器用于检测一组或多组由二进制 组成的脉冲序列信号,在数字通信中有着广泛 的应用。当序列检测器连续收到一组串行二进 制码后,如果这组码与检测器中预先设置的8 位二进制码相同,则输出1,否则输出0。由于 这种检测器的关键在于正确码的收到必须记住 前一次的正确码及正确序列,直到在连续的检 测中所收到的每一位码都与预置的对应码相同。 在检测过程中,任何一位不相等都将导致回到 初始状态重新开始检测。
2021/3/9
授课:XXX
4
顶层设计原理图
2021/3/9
授课:XXX
5
连续0数统计仿真图
2021/3/9
授课:XXX
6
序列检测仿真图
2021/3/9
授课:XXX
7
顶层仿真图
2021/3/9
Байду номын сангаас
授课:XXX
8
2021/3/9
授课:XXX
9
刚才的发言,如 有不当之处请多指
正。谢谢大家!
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告学生姓名:邱永洪学号:6100210026 专业班级:中兴101班实验类型:□验证□综合■设计□创新实验日期:2012/11/12实验四序列信号发生器与检测器设计一、实验目的1、设计序列信号发生器2、用有限状态机的方法设计检测器二、实验内容与要求1、设计序列发生器,完成序列为0111010011011010的序列发生器2、用有限状态机设计序列检测器,实现串行序列11010的检测器3、对检测到的次数计数,并将实时产生的序列6位动态显示三、设计思路及程序1、序列发生器的设计设计一个‘0111010011011010’的序列发生器,利用S0到S15的16个状态机循环产生‘0111010011011010’序列。
CLK为时钟脉冲输入口,D-RESET为复位口使其重新发送序列,COUNT为序列输出口。
程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY COUNT ISPORT (CLK,RST :IN STD_LOGIC;COUNT :OUT STD_LOGIC );END COUNT;ARCHITECTURE behav OF COUNT ISTYPE FSM_ST IS (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);SIGNAL REG:FSM_ST;SIGNAL Q:STD_LOGIC;BEGINPROCESS(CLK,RST)BEGINIF RST ='1' THEN REG<=s0;Q<='0';ELSIF CLK'EVENT AND CLK='1' THENCASE REG ISWHEN s0=> Q<='0'; REG<=s1;WHEN s1=> Q<='1';REG<=s2;WHEN s2=> Q<='1';REG<=s3;WHEN s3=> Q<='0';REG<=s4;WHEN s4=> Q<='0';REG<=s5;WHEN s5=> Q<='0';REG<=s6;WHEN s6=> Q<='1';REG<=s7;WHEN s7=> Q<='1';REG<=s8;WHEN s8=> Q<='0';REG<=s9;WHEN s9=> Q<='1';REG<=s10;WHEN s10=> Q<='1';REG<=s11;WHEN s11=> Q<='0';REG<=s12;WHEN s12=> Q<='0';REG<=s13;WHEN s13=> Q<='1';REG<=s14;WHEN s14=> Q<='1';REG<=s15;WHEN s15=> Q<='0';REG<=s0;WHEN OTHERS=>REG<=s0;Q<='0';END CASE;END IF;END PROCESS;COUNT <=Q;END behav;2、设计序列检测器基本思想是采用有限状态机设计,先设定5个状态S0、S1、S2、S3、S4 ,实现序列11010的检测,用到状态机。
在状态机,我们再每个状态的下一个转义的状态都有俩个转移方向。
这样就提高了其检测效率,而且实现简单。
如碰到序列11010,大可不必要再检测到第三个1时跳回到s0状态,而是留在s1状态。
DIN 是序列输入口CLK 为时钟输入口CLR 为清零命令输入口SS 为计数输出口程序:LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL; ENTITY SEQUENCECHECK ISPORT(DIN, CLK, CLR : IN STD_LOGIC; ss : OUT STD_LOGIC); END SEQUENCECHECK;ARCHITECTURE behav OF SEQUENCECHECK IS TYPE FSM_ST IS (s0,s1,s2,s3,s4); SIGNAL Q : FSM_ST;SIGNAL D : STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL flag : INTEGER RANGE 0 TO 1 ; BEGIND <= "11010" ; PROCESS( CLK, CLR ) BEGINIF CLR = '1' THEN Q <= s0 ;ELSIF CLK'EVENT AND CLK='1' THEN CASE Q ISWHEN s0=> IF DIN = D(4) THEN Q <= s1 ; flag<=1;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 <= s0 ; ELSE Q <= s2 ; END IF ; END CASE ;END IF ;END PROCESS ;PROCESS( Q,flag )BEGINIF (flag=1 AND Q= s0) THEN ss<='1';ELSE ss<='0';END IF ;END PROCESS ;END behav ;3,分频部分CLK原始时钟输入口M10为10分频输出口M100为100分频输出口M1K为10000分频输出口程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY divider ISPORT (clk : IN STD_LOGIC;M10 : OUT STD_LOGIC;M100 : OUT STD_LOGIC;M1K : OUT STD_LOGIC);END divider;ARCHITECTURE FrDi OF divider ISSIGNAL x : STD_LOGIC;SIGNAL y : STD_LOGIC;SIGNAL z : STD_LOGIC;BEGINPROCESS(clk)V ARIABLE cnt1 : INTEGER RANGE 0 TO 10;BEGIN --分频输出1Kz音频信号IF clk'EVENT AND clk='1' THEN cnt1 := cnt1+1;IF cnt1<10 THENIF cnt1=5 THEN x <= NOT x;END IF;ELSE cnt1 := 0;END IF;END IF;M10<= x;END PROCESS;PROCESS(clk)V ARIABLE cnt2 : INTEGER RANGE 0 TO 99; BEGIN --分频输出500hz音频信号IF clk'EVENT AND clk='1' THEN cnt2 := cnt2+1; IF cnt2<99 THENIF cnt2=49 THEN y <= NOT y;END IF;ELSE cnt2 := 0;END IF;END IF;M100 <= y;END PROCESS;PROCESS(clk)V ARIABLE cnt3 : INTEGER RANGE 0 TO 999; BEGIN --分频输出1hz脉冲信号IF clk'EVENT AND clk = '1' THEN cnt3 := cnt3+1;IF cnt3<999 THENIF cnt3=499 THEN z <= NOT z;END IF;ELSE cnt3 := 0;END IF;END IF;M1K <= z;END PROCESS;END FrDi;4,显示CLK为显示扫描脉冲SS2为计数值SS的输入口CLR为清零输入端Sel0,Sel1,Sel2,为位选SEL【7..0】输出到数码管程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XINSHI ISPORT(CLK,ss2,clr:IN STD_LOGIC;sel0,sel1,sel2:buffer STD_LOGIC;SG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --数码管八段GW,SW,BW: buffer STD_LOGIC_VECTOR(3 DOWNTO 0);--计数器的个,十,百位SEL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) --位选信号);END XINSHI;ARCHITECTURE behav OF XINSHI ISSIGNAL J : STD_LOGIC_VECTOR(11 DOWNTO 0); --12位BCD计数值SIGNAL CNT8: STD_LOGIC_VECTOR(2 DOWNTO 0);--数码管选择SIGNAL A : STD_LOGIC_VECTOR(3 DOWNTO 0);--数码管显示值0SIGNAL MODEL : STD_LOGIC_VECTOR(11 DOWNTO 0); --模长信号BEGINP2:PROCESS(clr,ss2) --计数BEGINGW<=J(3 downto 0);SW<=J(7 downto 4);BW<=J(11 downto 8);IF clr='1' THEN J<=(others=>'0');ELSIF ss2'EVENT AND ss2='1' THENIF GW=9 THEN --个位为9时加7调整J<=J+7;IF SW=9 THEN --十位为9时加103调整J<=J+103;END IF;ELSE J<=J+1;END IF;END IF;END PROCESS;P3:PROCESS( CLK) --数码管控制BEGINIF CLK'EVENT AND CLK='1' THENIF CNT8<"010" THEN CNT8 <=CNT8+1;ELSE CNT8<=(OTHERS=>'0');END IF;END IF;SEL(0)<=sel0 ;SEL(1)<=sel1 ;SEL(2)<=sel2 ;CASE CNT8 IS --个、十、百分别送数码管动态显示WHEN "000" => sel2<='0';sel1<='1';sel0<='0';A<=GW;WHEN "001" => sel2<='0';sel1<='0';sel0<='1';A<=SW;WHEN "010" => sel2<='0';sel1<='0';sel0<='0';A<=BW;WHEN OTHERS =>NULL;END CASE;END PROCESS ;P4:PROCESS(A)--七段译码BEGINCASE A ISWHEN "0000" =>SG<="00111111"; WHEN "0001" =>SG<="00000110";WHEN "0010" =>SG<="01011011"; WHEN "0011" =>SG<="01001111";WHEN "0100" =>SG<="01100110"; WHEN "0101" =>SG<="01101101";WHEN "0110" =>SG<="01111101"; WHEN "0111" =>SG<="00000111";WHEN "1000" =>SG<="01111111"; WHEN "1001" =>SG<="01101111";WHEN OTHERS=>NULL;END CASE;END PROCESS;END behav;5、顶层连线四、实验步骤1.新建项目,选择项目文件夹,输入工程名称,添加文件(一般为空),选择芯片型号,选择仿真工具(一般为默认),最后生成项目。