EDA应用技术 章彬宏new_第1页
EDA应用技术 章彬宏new_第2页
EDA应用技术 章彬宏new_第3页
EDA应用技术 章彬宏new_第4页
EDA应用技术 章彬宏new_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA课设题目1: 彩灯控制器设计一、彩灯控制器设计要求 1.要有多种花型变化(至少设计4种)。 2.多种花型可以自动变换,循环往复。3.彩灯变换的快慢节拍可以选择。 4.具有清零开关。二、系统设计方案u根据系统设计要求可知,整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号(CLK)CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关SPEED_KEY;共有16个输出信号LED15.0,分别用于控制十六路彩灯。据此,我们可将整个彩灯控制器CDKZQ分为两大部分:时序控制电路SXKZ和显示控制电路XSKZ,整个系统的组成原理图如图7-1所示。三、各模块VHDL源程序设计1.时序控制电路

2、的VHDL源程序-SXKZ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SXKZ ISPORT(CHOSE_KEY:IN STD_LOGIC; CLK:IN STD_LOGIC;CLR:IN STD_LOGIC; CLK1:OUT STD_LOGIC);END ENTITY SXKZ;ARCHITECTURE ART OF SXKZ IS SIGNAL TEMP_CLK:STD_LOGIC; BEGIN PROCESS(CLK,CLR,CHOSE_KEY) IS VARIA

3、BLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINIF CLR=1 THEN -当CLR=1时清零,否则正常工作TEMP_CLK=0;TEMP:=000; ELSIF RISING_EDGE(CLK) THEN IF CHOSE_KEY=1 THEN IF TEMP=011 THEN TEMP:=000; TEMP_CLK=NOT TEMP_CLK ; ELSE TEMP:=TEMP+1; END IF;-当CHOSE_KEY=1时产生基准时钟频率的1/4的时钟信号,否则产生基准时钟 -频率的1/8的时钟信号 ELSE IF TEMP=111 THEN T

4、EMP:=000; TEMP_CLK=NOT TEMP_CLK ; ELSETEMP:=TEMP+1; END IF; END IF; END IF;END PROCESS; CLK1=TEMP_CLK;END ARCHITECTURE ART;2. 显示控制电路的VHDL源程序-XSKZ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XSKZ IS PORT(CLK1:IN STD_LOGIC; CLR:IN STD_LOGIC; LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END ENTITY XSKZ

5、;ARCHITECTURE ART OF XSKZ ISTYPE STATE IS(S0,S1,S2,S3,S4,S5,S6); SIGNAL CURRENT_STATE:STATE; SIGNAL FLOWER:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN PROCESS(CLR,CLK1) IS CONSTANT F1:STD_LOGIC_VECTOR(15 DOWNTO 0):=0001000100010001; CONSTANT F2:STD_LOGIC_VECTOR(15 DOWNTO 0):=1010101010101010; CONSTANT F3:S

6、TD_LOGIC_VECTOR(15 DOWNTO 0):=0011001100110011;CONSTANT F4:STD_LOGIC_VECTOR(15 DOWNTO 0):=0100100100100100; CONSTANT F5:STD_LOGIC_VECTOR(15 DOWNTO 0):=1001010010100101; CONSTANT F6:STD_LOGIC_VECTOR(15 DOWNTO 0):=1101101101100110;-六种花型的定义 BEGIN IF CLR=1 THEN CURRENT_STATE FLOWER=ZZZZZZZZZZZZZZZZ; CUR

7、RENT_STATE FLOWER=F1; CURRENT_STATE FLOWER=F2; CURRENT_STATE FLOWER=F3; CURRENT_STATE FLOWER=F4; CURRENT_STATE FLOWER=F5;CURRENT_STATE FLOWER=F6; CURRENT_STATE=S1;END CASE; END IF; END PROCESS; LED=FLOWER;END ARCHITECTURE ART;3. 整个电路系统的VHDL源程序-CDKZQ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY

8、 CDKZQ IS PORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC; SPEED_KEY:IN STD_LOGIC; LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END ENTITY CDKZQ;ARCHITECTURE ART OF CDKZQ IS COMPONENT SXKZ IS PORT(SPEED_KEY:IN STD_LOGIC; CLK:IN STD_LOGIC; CLR:IN STD_LOGIC; CLK1:OUT STD_LOGIC); END COMPONENT SXKZ;COMPONENT XSKZ IS P

9、ORT(CLK1:IN STD_LOGIC; CLR:IN STD_LOGIC; LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0); END COMPONENT XSKZ; SIGNAL S1:STD_LOGIC; BEGIN U1:SXKZ PORT MAP(SPEED_KEY,CLK,CLR,S1); U2:XSKZ PORT MAP(S1,CLR,LED);END ARCHITECTURE ART; 四、系统仿真波形系统仿真后的结果分别如图7-2、图7-3、图7-4所示。EDA课设题目2:电子钟设计u7.2.1电子钟设计要求1.具有时、分、秒计数功能,且以24小

10、时循环计时。2.计时结果要用6个数码管分别显示时、分、秒的十位和个位。3.具有清零的功能。7.2.2系统设计方案 根据系统设计要求,系统设计采用自顶向下的设计方法,系统的顶层原理图如图7-5所示,它由分频模块(FENPIN)、分和时60进制BCD码计数模块(CNT60)、七段译码显示模块(SEG7)、选择显示数据模块(MUX24_4)、动态扫描控制模块(SCAN)和片选信号(SEL)模块等组成。在图7-5中,60进制BCD码计数模块采用原理图设计,其余模块均为VHDL程序设计。60进制BCD码计数模块的原理图如图7-6所示。FENPIN分频将1M时钟信号分频为1Hz,作为电子钟的秒脉冲,送入六

11、十进制计数器CNT60进行秒计时,秒计时满60秒产生一个进位信号CO,送入分计数器进行分计数。当分计数器计满60分时,将其进位信co号送至时计数器。MUX24_4模块为一个24选4数据选择器。在SEL模块输出控制下将时、分、秒计数器的输出6组BCD选出其中一组送入SEG7模块进行译码。扫描控制模块SCAN,在SEL模块输出控制下轮流点亮6数码管来显示相对应的数据。7.2.3各模块VHDL源程序设计1二十四进制计数器的VHDL源程序-cnt24.vhd LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.AL

12、L; ENTITY CNT24 IS PORT(CLK ,CLR:IN STD_LOGIC; CO:OUT STD_LOGIC; ten:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); one:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END CNT24;ARCHITECTURE ART OF CNT24 IS BEGINCO=1WHEN(ten=0010AND one=0011 )ELSE0;PROCESS(CLK,CLR)BEGINIF(CLR=0)THEN ten=0000; one=0000;ELSIF(CLKEVENT AND

13、CLK=1)THEN IF(one=3)THEN one=0000; IF(ten=2)THEN ten=0000 ELSE ten=ten+1; END IF; ELSe onebcdbcdbcdbcdbcdbcdbcd=1111 ; END CASE;END PROCESS;END behav;3. 片选信号SEL模块的VHDL程序SEL模块是一个3位二进制计数器,用来控制数码管的片选信号。-sel.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sel IS PORT(c

14、lk:IN STD_LOGIC; sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END sel;ARCHITECTURE arc OF sel ISBEGIN PROCESS(clk) VARIABLE cnt:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN IF clkEVENT AND clk=1 THEN cnt:=cnt+1;END IF; sel=cnt; END PROCESS;END arc;4.分频模块FENPIN的VHDL源程序模块可实现十分频,为提供l Hz的秒脉冲信号做好准备。-FENPIN.VHDLIBRARY IEE

15、E;USE IEEE.STD_LOGIC_1164.ALL;ENTITY fenpin IS PORT(clk:IN STD_LOGIC; q:OUT STD_LOGIC);END fenpin;ARCHITECTURE arc OF fenpin ISBEGINPROCESS(clk) VARIABLE cnt: INTEGER RANGE 0 TO 999; BEGIN IF clkEVENT AND clk=1THEN IF cnt999 THEN cnt:=cnt+1; q=0; ELSE cnt:=0; q SEGOUT SEGOUT SEGOUT SEGOUT SEGOUT SEG

16、OUT SEGOUT SEGOUT SEGOUT SEGOUT SEGOUT =0000000; END CASE; END PROCESS ;END a; 6.扫描控制SCAN模块的VHDL源程序 SCAN模块完成对6个LED数码管的扫描控制功能。-scan.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY scan IS PORT(sel:IN STD_LOGIC_VECTOR(2 DOWNTO 0); seg6_com:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); END scan; ARCHITECTURE

17、 behav OF scan IS BEGINPROCESS(clk) VARIABLE cnt: INTEGER RANGE 0 TO 999; BEGIN IF clkEVENT AND clk=1THEN IF cnt999 THEN cnt:=cnt+1; q=0; ELSE cnt:=0; qseg6_comseg6_comseg6_comseg6_comseg6_comseg6_comseg6_com=111111; END CASE; END PROCESS; END behav;7.2.4系统仿真波形系统仿真后的结果分别如图7-7、图7-8和图7-9所示。EDA课设题目3: 电

18、子抢答器设计7.3.1抢答器设计要求在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等多种手段指示出第一抢答者。同时,还可以设置计分、犯规及奖惩计录等多种功能。本设计的具体要求是: 1.设计制作一个可容纳四组参赛者的电子抢答器,每组设置一个抢答按钮供抢答者使用。 2.电路具有第一抢答信号的鉴别和锁存功能。 3.设置计分电路。 4. 设置犯规电路 7.3.2系统设计方案根据系统设计要求可知,系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端E

19、N,计时预置数据调整按钮TA、TB;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LEDA、LEDB、LEDC、LEDD,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。根据以上的分析,我们可将整个系统分为三个主要模块:抢答鉴别模块QDJB;抢答计时模块JSQ;抢答计分模块JFQ。对于需显示的信息,需增加或外接译码器,进行显示译码。考虑到FPGA/CPLD的可用接口及一般EDA实验开发系统提供的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。整个系统的组成框图如图7-10所示。7.

20、3.3各模块VHDL源程序设计1. 抢答鉴别电路QDJB的VHDL源程序-QDJB.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY QDJB IS PORT(CLR: IN STD_LOGIC; A, B, C, D: IN STD_LOGIC; A1,B1,C1,D1: OUT STD_LOGIC; STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY QDJB; ARCHITECTURE ART OF QDJB IS CONSTANT W1: STD_LOGIC_VECTOR:=0

21、001; CONSTANT W2: STD_LOGIC_VECTOR:=0010; CONSTANT W3: STD_LOGIC_VECTOR:=0100; CONSTANT W4: STD_LOGIC_VECTOR:=1000; BEGIN PROCESS(CLR,A,B,C,D) IS BEGINIF CLR=1 THEN STATES=0000; ELSIF (A=1AND B=0AND C=0AND D=0) THENA1=1; B1=0; C1=0; D1=0; STATES=W1; ELSIF (A=0AND B=1AND C=0AND D=0) THEN A1=0; B1=1;

22、C1=0; D1=0; STATES=W2; ELSIF (A=0AND B=0AND C=1AND D=0) THEN A1=1; B1=0; C1=1; D1=0; STATES=W3; ELSIF (A=0AND B=0AND C=0AND D=1) THEN A1=0; B1=0; C1=0; D1=1; STATES=W4; END IF; END PROCESS; END ARCHITECTURE ART;2. 计分器电路JFQ的VHDL源程序 -JFQ.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC

23、_UNSIGNED.ALL; ENTITY JFQ IS PORT(RST: IN STD_LOGIC; ADD: IN STD_LOGIC; CHOS: IN STD_LOGIC_VECTOR(3 DOWNTO 0); AA2,AA1,AA0,BB2,BB1,BB0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CC2,CC1,CC0,DD2,DD1,DD0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY JFQ ; ARCHITECTURE ART OF JFQ IS BEGIN PROCESS(RST,ADD,CHOS)

24、 IS VARIABLE POINTS_A2,POINTS_A1: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_B2,POINTS_B1: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_C2,POINTS_C1: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_D2,POINTS_D1: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF (ADDEVENT AND ADD=1) THEN IF RST=1 THENPOINTS_A

25、2:=0001; POINTS_A1:=0000; POINTS_B2:=0001; POINTS_B1:=0000; POINTS_C2:=0001; POINTS_C1:=0000; POINTS_D2:=0001; POINTS_D1:=0000; ELSIF CHOS=0001 THENIF POINTS_A1=1001 THEN POINTS_A1:=0000; IF POINTS_A2=1001 THEN POINTS_A2:=0000; ELSE POINTS_A2:=POINTS_A2+1; END IF; ELSE POINTS_A1:=POINTS_A1+1; END IF

26、; ELSIF CHOS=0010 THENIF POINTS_B1=1001 THEN POINTS_B1:=0000; IF POINTS_B2=1001 THEN POINTS_B2:=0000; ELSE POINTS_B2:=POINTS_B2+1; END IF; ELSE POINTS_B1:=POINTS_B1+1; END IF; ELSIF CHOS=0100 THEN IF POINTS_C1=1001 THEN POINTS_C1:=0000; IF POINTS_C2=1001 THEN POINTS_C2:=0000; ELSE POINTS_C2:=POINTS_

27、C2+1; END IF; ELSE POINTS_C1:=POINTS_C1+1; END IF; ELSIF CHOS=1000 THEN IF POINTS_D1=1001 THEN POINTS_D1:=0000; IF POINTS_D2=1001 THEN POINTS_D2:=0000; ELSE POINTS_D2:=POINTS_D2+1; END IF; ELSE POINTS_D1:=POINTS_D1+1; END IF; END IF; END IF; AA2=POINTS_A2; AA1=POINTS_A1; AA0=0000; BB2=POINTS_B2; BB1

28、=POINTS_B1; BB0=0000; CC2=POINTS_C2; CC1=POINTS_C1; CC0=0000; DD2=POINTS_D2; DD1=POINTS_D1; DD0=0000; END PROCESS; END ARCHITECTURE ART;3.计时器电路JSQ的VHDL源程序-JSQ.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JSQ IS PORT(CLR,LDN,EN,CLK: IN STD_LOGIC; TA,TB: IN STD

29、_LOGIC; QA: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); QB: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY JSQ; ARCHITECTURE ART OF JSQ IS SIGNAL DA: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL DB: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(TA,TB,CLR) IS BEGIN IF CLR=1 THEN DA=0000; DB=0000; ELSEIF TA=1 THENDA=DA+1 ;

30、 END IF; IF TB=1 THENDB=DB+1; END IF; END IF; END PROCESS; PROCESS(CLK) IS VARIABLE TMPA: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE TMPB: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF CLR=1 THEN TMPA:=0000; TMPB:=0110; ELSIF CLKEVENT AND CLK=1 THEN IF LDN=1 THEN TMPA:=DA; TMPB:=DB; ELSIF EN=1 THEN IF TMPA=0000

31、 THEN TMPA:=1001; IF TMPB=0000 THEN TMPB:=0110; ELSE TMPB:=TMPB-1; END IF; ELSE TMPA:=TMPA-1; END IF; END IF; END IF; QA=TMPA; QBDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7MR=0;MY=0;MG=1; BR= 1;BY= 0;BG= 0;IF (SB AND SM)= 1 THEN IF S=29 THEN STATE=B;CLR:=0;EN:=0;ELSE STATE=A;CLR:=1;EN:=

32、1; END IF;ELSIF (SB AND (NOT SM) = 1 THEN STATE=B;CLR:=0;EN:=0; ELSE STATEMR= 0;MY= 1;MG= 0; BR= 1;BY= 0;BG= 0; IF S=3 THENSTATE =C;CLR:=0;EN:=0; ELSE STATEMR= 1;MY= 0;MG= 0; BR= 0;BY= 0;BG = 1; IF (SM AND SB) = 1 THEN IF S=29 THEN STATE=D;CLR:=0;EN:=0; ELSE STATE=C;CLR:= 1;EN:=1; END IF;ELSIF SB =

33、0 THEN STATE =D;CLR:= 0;EN:=0; ELSE STATEMR= 1;MY=0;MG=0; BR=0;BY=1;BG= 0; IF S =3 THEN STATE=A;CLR:=0; EN:=0; ELSE STATE=D;CLR:=1;EN:=1;END IF ; END CASE; END IF; END PROCESS CNT;END ART;7.4.4 系统仿真波形系统仿真波形如图7-15,图7-16和图7-17所示。EDA课设题目5: 简易数字频率计设计7.5.1数字频率设计要求设计一个四位十进制的数字频率计,要求具有以下功能: 1. 测量范围:1 Hz10k

34、Hz 。 2. 测量误差1。 3. 响应时间15s。 4.显示时间不少于1s。 5. 具有记忆显示的功能,即在测量过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次测量结束。7.5.2系统设计方案根据系统设计要求,系统的组成框图如图7-5所示,包括时基产生与测频时序控制电路模块,以及待测信号脉冲计数电路模块和锁存与译码显示控制电路模块。1. 时基产生与测频时序控制电路模块 时基产生与测频时序控制电路主要产生计数允许信号EN,清零信号CLR和锁存信号LUCK。2. 待测信号脉冲计数电路模块 待测信号脉冲计数电路是对待测脉冲信号的频率进行测量,它可由4个十进制加

35、法计数器组成,其中EN为计数选通控制信号,CLR为计数器清零信号。在计数器清零信号CLR清零后,当计数选通控制信号EN有效时,开始对待测信号进行计数。如果计数选通控制信号EN的宽度为Is,那么计数结果就为待测信号的频率;如果计数选通控制信号EN的宽度为looms,那么待测信号的频率等于计数结果10。 3. 锁存与译码显示控制电路模块 锁存与译码显示控制电路用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。 锁存与译码显示电路的功能是对四位BCD码进行锁存,并转换为对应的4组七段码,用于驱动数码管。7.5.3各模块VHDL源程序设计1. 时基产生与测频时序控制电路模块的VHDL源程序-clk_sx_CTRLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论