FPGA创新实验设计报告_第1页
FPGA创新实验设计报告_第2页
FPGA创新实验设计报告_第3页
FPGA创新实验设计报告_第4页
FPGA创新实验设计报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、FPGA创新实验设计报告FPGA创新实验设计报告设计名称上下课铃声模拟系统姓名林嘉颖金延鑫学 号 3090100768 3090104182专业班级机械电子工程0902指导教师樊伟敏日 期 2020.6.6浙江大学电工电子基础实验中心一摘要通过QUATURS软件的程序编译及FPGA的应用,模拟出浙江大学紫金港校区的上下课铃 系统。该系统分为两部分:电子钟部分和铃声部分电子钟部分将实现二十四小时计时,时刻设置等功能。铃声部分将实现特定时刻(如 上课时刻)响起特定铃声功能。二关键词时序电路时钟系统调剂装置声音系统QUATURS应用三正文3.1设计思路整个上下课铃响可分为时钟系统和铃声系统两大部分。

2、时钟系统:时钟部分分为铃声选择器,时刻调试部分,时钟部分等三大模块。1时钟部分时钟部分实现24小时时钟运行及循环功能,按照1: 60时刻进行缩放,其中LED灯表 示小时数,采纳24进制计数器实现;led灯两位表示分钟数,采纳60进制计数器实现,计数频率设置为1HZ,以行约时刻。此部分设置能完全模拟时钟循环功能,即分钟部分逢六十 进一,时钟部分逢24归零,同时23: 59后自动返回00:002时刻调试部分时刻调试部分实现时刻暂停,移位调试时刻(其中移到的位置会发生闪耀),时刻设置 等功能,具有调试目标明确,调试时刻可不能超过时钟表示范畴等优点。使用方法:将clr置为0之后,能够发觉时钟十位在闪耀

3、,现在通过按trf键能够将 闪耀点移到下一个即时钟个位,以此类推。在移到自己想调剂的位置以后通过按住plus键, 每一个秒脉冲之后能够发觉该数加一,加到九跳回一。通过一些条件语句,防止了当时钟十位等于2时,时钟个位可不能大于3:时钟个位大 于3时,时钟十位可不能等于2。3铃声选择器:依照紫金港校区上下课的时刻,制成铃声选择器。 以下为响铃时刻安排表:上课铃下课铃8:008:458:509:359:5010:3510:4011:2511:3012:1513:1514:0014:0514:5014:5515:4015:5516:4016:4517:3018:3019:1519:2020:0520:

4、1020:55依照时刻表在相应时刻,铃声响起。铃声部分铃声部分分为JK触发器,分频器,铃声部分,选择器,音频调试,音频转换器,六个 模块。1分频器分频器将50MHz的脉冲电路调剂到合适的频率,在铃声系统部分中需使用两次,一次为 对上下课铃音频电路的触发(1HZ),一次为音频转换器的触发(6250000HZ) .2铃声部分铃声部分设置成上课铃和下课铃两个子模块,分别存放上下课铃的乐谱。3音频调试电路依照十二平均律将两个八度共十六个音符设置成相应的频率。使其转换成相应的音高。4音频转换器原理为一个计数器,通过脉冲电路将每次的音符转换成相应的频率,通过小喇叭输出。5 JK触发器整个音乐系统的开始与停

5、止通过两个JK触发器来操纵。原理如图当选择器发出信号时,第一个JK触发器中J通道接高,K通道为0, Q输出高电平,使第二 个JK触发器触发(第二个JK触发器设置成V触发器)此后即使第一个触发器中JR. Q1 状态保持,仍为L在铃声部分设置逻辑出口 K,当输出最后一个音符时,k=l,反馈到第一个JK触发器的 K端上,现在Ql=0,使第二个触发器清零,停止向铃声部分输送脉冲信号。铃声停止。3. 2实验原理图展现时钟部分铃声部分-OCK& ULm厂 I32盲二差-PINJ6nxTF32Hz员8JANDKJANDKgkl於Jk mendex3o】Hassdr dk分亘 es-dexFa支33者

6、.昌标*0一 onems3lqysao】 Hs-21 - 百AO& nRhf>hlDqgarplyn f-5 品Dec。)坦 changeI uk$s 一豆OJO)Ipin qBl ?MPS f> 3Plo'o一3 二综合电路a,» R* <1 » <i s中aP40 lvf« ,<1 。中43.3 仿真波形及分析Trf仿真波形Simulation '/avetormsSSul名tion node: Functional玲 Mata Tine 0 ci:12.875n&<| »| Pan

7、ter4.38n&Intcival:0 1-20詈N«ne)ps 40 0 ns 03.0 ns120.(0 xxs 160. 0 m 030. 0 as 210. 0 川 汨0.0 ns 333.0360.0 ns 403.0 ns 440. 0 nx 4E0. 0 ns 520clrtrf日 tree由图可知,每一个trf下降沿使trfo从3减到。再到3从而实现循环,当clr变为。了之后, trfo赶忙变为3。SS仿真波形Simulation WaveformsI Maec TimeS ar:A英NaneVd-ua12.Ef3 Ps 12. 87$3.0 ns160.0

8、nz240.0 m32>3.O nz400.0480.0 nz560.0 ns640。nz720 0 xiz800.0 ns.ii.fii5 &SJ0>0elkATrmn_njrn_njrLTLTLnum_nnrmLnTLnjrn_n_n_njnmLTLn_nn.nLn_n_mrun.n_n.nm,eLrA/2回h hiX 05. .3A I心q-.zA 一,5*. . L A 1 IL . .oAl1 LJ l_l刖El h_l&A 0Co/12(3 e_hix 0to后17Q eoA Dco】诊22EJ o2d rrs14A 1A G15期侬珈“心僚预/ 加为5

9、旗XZi32Iti on。国 onjii* L'A D1.10诊37国 cnj.4A 0Co: 42fluEA"T_' Q3trfALJ II LJ*44(3 trf&LX2cj 45k .IATL_i一BQ6L. oiA"L_i_JJ ( PorterIncmW:12875 m9为Oe涛3.13馆Sia-i:En1电瞪 豺15为变暗。由图可知,假定plus键按住,trfo为3,因此h_hi从。开始加到5,然后放开 plus之后h_hi交替5与15,说明正在闪耀。假定当按下trf, trf。变为2,即闪耀从h_hi改 为ho,同样trfo为1时,闪耀

10、m_hioSZ仿真波形Simulation WaveformsSinulftti on noda FunctiamU12875 惘<| *| Pcr»cr3 0 23n5Intervet296.36 mStotHmgVane12 8EelkA UMclrA 小0 bjia 田Q 0。a I'的2国 JuA 包17S 3。A I:»2ZplusA *3(3 trfoA 'MMei Time Bor蕨10.0 ns TO.O ns 9X0 az 0 nz170.(0 rz 210. 0 a;250.(0 ns 2910 az 330.10 a;370.(0

11、 nz 410.(0 n; <50.(0 n; <90.0 ns 530.fl a; SiO.p m12. 875 ns-Simulation WavetormsS> oa nodii 7uoct> onxl4 1 Pdricr74 2674 26 nzStan:Endi/aluG a j0 WLelk clrA 1A 1的:* H_h>40 k.LoA 0J 12(3 »»_h>A 0rBitO r»_Lo人ClQQ/ a9;以pluxH 4rEoA 1A 0Mater T rue Borpm40 Q ns60.9 力二too

12、 ,0 ns120.p ns140 ,0 2160 0 ns200. 力二初 0 a? 240 0 理IDJL2J3L<JIO15L6JUJJ】30Z®£3Q;四包狂XD工©®岂®】第制;包6欧契拒越(D磔造IDJ上三图为时钟正常工作时的输出。上图为当clr为1,按plus的时候,当trfo为3,2.1时h_hi, ho, m_hi的数值的增加。Lj仿真波形Simdatior WaveformsSirrdtion code FxcwMonQA灵金、 必'T酸外10-92033 9 m* Ns.87D ?DX93”1000 nx31

13、0 ,0-12D 015.475 x?-60;IdX(OJc X00XW X10JX X(0Jr15.,万 ns“ “ Poinler.36.07 rwInterT3X6 n?5tatEnd当时刻为08:00,08:45时分别输出tmpL tmp2为10和01,当下一个脉冲到来,08:00变成 00:00之后,tmpl, tmp2为00。通过tmpl与tmp2实现上下课铃的操纵。Nacklass, vorklass 仿真波形Simulation Waveformsoiriilatjon eodu: r«uicUoDALSimulation WaveformsS;血"dFue

14、vMSodd.A 死金M的通过Clk能够实现放歌曲,当歌曲终止时k=l,现在通过jk触发器使Clk停止,等到下 一个lj模块中的tmpl,小甲2的信号到来,elk重新开始,现在通过条件语句时ent归零,重 新放歌曲。3.4 源程序及注释1 分频器(50MHZ=>8MHZ)LIBRARY IEEE:USE IEEE.STD LOGIC 1164.ALL;ENTITY fenpinqi ISPORT(clk:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END fenpinqi;ARCHITECTURE fwm OF fenpinqi ISCONSTANT m :

15、INTEGER:=4;-whcn wc need SM UZ lTEGER=6250000whcn wc need 2HZ SIGNAL tmp :STD_LOGIC;BEGINPROCESS(clk, tmp)VARIABLE cout: INTEGER:=0;BEGINIFclkEVENTAND clk='l'THEN cout:=cout+l;IF cout<=m THEN tmp<=O;ELSIF cout<m*2 THEN tn】pv=T;ELSE cout:=0;END IF:END IF;END PROCESS;clk_out<=tinp;

16、END fwm;2 JK触发器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY JANDK ISPORT (clr,clk.j,k:IN STD_LOGIC;q. qn : out STD_LOGIC);END JANDK;ARCHITECTURE CONTROL OF JANDK ISSIGNAL TMP: STD.LOGIC;BEGINPROCESS(clr,clkj,k)BEGINif clr=V then TMPv='O'elsIF (clk'EVENTAND clk=Or) THENIF (j=T)and(k=T)

17、then TMP<= NOT TMP:J= 1 K= 1ELSIF(j=T)and(k=O)thenTMP<=T; -J=lK=oELSIF(j='Or)and(k= D)then TMP<= V;:END IF;END IF;END PROCESS:q<= TMP;qn<= NOT TMP;END CONTROL;3下课铃LIBRARY IEEE;USE IEEE.STD LOGIC 1164.ALL;ENTITY nachklass ISPORT( elk,tempi :IN STD.LOGIC;toneJndex:OUT INTEGER RANGE

18、OTO 15;k:OUT STD_LOGIC);END nachklass;ARCHITECTURE melody OF nachklass ISSIGNAL cnt:INTEGER RANGE 0 TO 49:=0;signal kk:STD_LOGIC:=O; BEGINPROCESS(t)BEGINIF(clk'EVENT AND clk=r)THEN cnt<=cnt+l;END IF:IF (cnt=48)THENkkT;-k=l的对似,.业E jk他收薄J=OK=1.第-到期时钟清零端,实现下课铃的停止) else kk<=O;END IF;CASE ent I

19、S-此项用来存乐谱下.课铃声WHEN 01 =>tonejndex<=5;WHEN 02 =>tonejndcx<=6;WHEN 03 =>tonejndcx<=7;WHEN 04 =>tonejndcx<=8;WHEN 05 =>tonejndcx<=9;WHEN 06 =>tone_indcx<=9;WHEN 07 =>tonejndex<=5;WHEN 08 =>tonejndex<=5;WHEN 09 =>tonejndex<=8;WHEN 10 =>tonejndex&l

20、t;=7;WHEN 11 =>tonejndex<=6;WHEN 12 =>tonejndcx<=4;WHEN 13=>tonejndcx<=5;WHEN 14 =>tonejndcx<=5;WHEN 15 =>tonejndex<=5;WHEN 16 =>tonejndcx<=5;WHEN 17 =>tonejndcx<=5;WHEN 18=>tonejndex<=6:WHEN 19 =>tonejndex<=7;WHEN 20 =>tonejndex<=8:WHEN 21

21、 =>tonejndex<=9:WHEN 22 =>tonejndex<=9;WHEN 23 =>tonejndex<=5;WHEN 24 =>tonejndex<=5;WHEN 25 =>tone_index<=8:WHEN 26 =>tonejndex<=7;WHEN 27 =>tonejndex<=6;WHEN 28 =>tonejndex<=4;WHEN 29 =>tonejndex<=5;WHEN 30 =>tonejndex<=5;WHEN 31 =>ton

22、ejndex<=5;WHEN 32 =>tonejndex<=5;WHEN 33 =>tone_index<=5;WHEN 34 =>tonejndex<=6;WHEN 35 =>tonejndex<=7;WHEN 36 =>tonejndex<=8;WHEN 37 =>tonejndex<=9:WHEN 38 =>tonejndex<=9:WHEN 39 =>tonejndex<=5;WHEN 40 =>tonejndex<=5;WHEN 41 =>tonejndex<

23、;=8:WHEN 42 =>tonejndex<=7;WHEN 43 =>tonejndcx<=6:WHEN 44 =>tonejndex<=4:WHEN 45 =>tonejndcx<=5;WHEN 46 =>tonejndcx<=5;WHEN 47 =>tonejndcx<=5;when 48 =>tonc_index<=0;WHEN OTHERS =>tone Jndex<=0;END CASE;if cnt=49 then cnt<=0;end if;k二kk:_通过)ent重新赋值实

24、现第二次上下课铃声的开始。当第二个时刻点到来,-愉入的unpltmp2的改变使时钟重新走起来,使cni从48变成49从而赋值为0.-从而能够再循环至48.END PROCESS;END melody;4上课铃声(原理同下课铃)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY vorklass ISPORT( clkJempkIN STD_LOGIC;tone_indcx:OUT INTEGER RANGE OTO 15:k:OUT STD_LOGIC);END vorklass;ARCHITECTURE melody OF vorklass ISS

25、IGNAL cnt:INTEGER RANGE 0 TO 49:=0:signal kk:STD_LOGIC:=V;BEGINPROCESS(cIt)BEGINIF(clk'EVENT AND clk=T)THEN cnt<=cnt+l;END IF;IF (cnt=48)THENkk<=l' -k=lelse kk<=O;END IF;CASE ent IS-此项用来存乐谱上课铃声WHEN 01 =>tone_index<=9:WHEN 02 =>tonejndex<=10;WHEN 03 =>tonejndcx<=9;W

26、HEN 04 =>tonejndex<=7;WHEN 05 =>tonejndex<=8;WHEN 06 =>tonejndcx<=9:WHEN 07 =>tonejndex<=8:WHEN 08 =>tonejndex<=6:WHEN 09 =>tonejndcx<=5;WHEN 10=>tonejndcx<=5;WHEN 11 =>tone_index<=7;WHEN 12=>tonejndex<=9:WHEN 13=>tonejndcx<=12;WHEN 14 =>

27、;tone_index<=12;WHEN 15 =>toncjndex<=12;WHEN 16=>tone_index<=12;WHEN 17 =>tone_index<=9;WHEN 18=>tonc_index<=10;WHEN 19 =>tone_index<=9:WHEN 20 =>tone_indcx<=7;WHEN 21 =>tonejndex<=8:WHEN 22 =>tonejndex<=9;WHEN 23 =>tonejndcx<=8;WHEN 24 =>t

28、oncjndcx<=6;WHEN 25 =>tonejndex<=5;WHEN 26 =>tonejndex<=5;WHEN 27 =>tonejndcx<=7;WHEN 28 =>tone_indcx<=9;WHEN 29 =>tonejndcx<=12;WHEN 30 =>tonejndcx<=12;WHEN 31 =>tonejndcx<=12;WHEN 32 =>tonejndex<=12;WHEN 33 =>tonejndex<=9;WHEN 34 =>tonejn

29、dex<=10;WHEN 35 =>tone_index<=9;WHEN 36 =>tonejndex<=7;WHEN 37 =>tonejndex<=8;WHEN 38 =>tonejndcx<=9;WHEN 39 =>tonejndcx<=8:WHEN 40 =>tonejndcx<=6;WHEN 41 =>tonejndcx<=5;WHEN 42 =>tonejndcx<=5;WHEN 43 =>tonejndcx<=7;WHEN 44 =>tone_indcx<

30、=9;WHEN 45 =>tonejndcx<=12;WHEN 46 =>tonejndex<=12;WHEN 47 =>tonejndex<=12;when 48 =>tonejndex<=0;WHEN OTHERS =>tonejndex<=0;END CASE;if cnt=49 then cnt<=0;end if;k<=kk;-通过给ent重新赋值实现第二次上下课铃声的开始,当第二个时刻点到来,-输入的tmpltmp2的改变使时钟重新走起来,使ent从48变成49从而赋值为0,-从而能够再循环至4&END

31、 PROCESS;END melody;5音调调试电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tone ISPORT(index: IN INTEGER RANGE OTO 15:code:OUT INTEGER RANGE 0 TO 15;文 t川 Jhigh21:OUT STD_LOGIC;一定义 high21 郁tone:OUT INTEGER RANGE 0 TO 16#7FF#); 一人义 Ion " i'END tone;ARCHITECTURE one OF tone ISBEGIN search: PRO

32、CES S (i ndex)BEGINCASE index IS-此项用来检索音调的频率,高力1度和低八度)WHENO=>tone<=2047;code<=0:high21 <='0'WHEN 1=>tone<=773;code<=l :high21 <=V;WHEN 2=>tone<=912;code<=2:high21 <='0'WHEN 3=>tone <=1036:code<=3 :high2 l<=0f;WHEN 4=>tone <=1116;c

33、ode<=4;high21<='0'WHEN 5=>tonc <=1197;code<=5:high21<=0"WHEN 6=>tonc <=1290;code<=6;high21<= 0f;WHEN 7=>tone <= 1372:code<=7 ;high21 <=*0*;WHEN 8=>tone <=1410:code<=l :high21<= 1WHEN 9=>tone <=1480:code<=2:high21<=;WHEN 1

34、0=>tone <=1542;code<=3;high21<= T;WHEN 11=>tone <= 1590;code<=4:high21 <=T;WHEN 12=>tone <=1622;code<=5 ;high21<=;WHEN 13=>tone <=1668;code<=6;high21<= 1'WHEN 14=>tone <=1692;code<=7;high21<=7;WHEN 15=>tone <=1728;code<= 1 ;hig

35、h21<=;WHEN OTHERS => NULL;END CASE;END PROCESS;END;6音频输出电路LIBRARY IEEE;USE IEEE.STD LOGIC 1164.ALL;ENTITY exchange ISPORT(clk:IN STD_LOGIC;tone:IN INTEGER RANGE 0 TO 16#7FF#:spks:OUT STD_LOGIC);END exchange;ARCHITECTURE behav OF exchange IS SIGNAL pre_clk,fulLspks:STD_LOGIC;BEGINdiv_clk:PROCES

36、S(clk)VARIABLE cnt4:INTEGER RANGE OTO 15;BEGINpre_clk<='0'IF cnt4>ll THEN pre_clk<=r;cnt4:=0;ELSIF clk'EVENT AND clk=T THEN cnt4:=cnt4+l;-END IF;END PROCESS;gen_spks:PROCESS(pre_clkJone)VARIABLE ent II INTEGER RANGE 0 TO 16T7FF#:BEGINIF pre.clkEVENT AND pre_clk='THENIFcntll=

37、l6#7FF#THEN ent 11 :=tone;ftill_spks<=,I'ELSE cntll:=cntll+l ;full_spks<=O;END IF;END IF;END PROCESS;dclay_spks:PROCESS(fulLspks)VARIABLE cnt2:STD_LOGIC;BEGINIF full_spks*EVENT AND full_spks=T THEN cnt2:=NOT cm2;IFcnt2=TTHEN spks<=T;ELSE spks<=0END IF:END IF;END PROCESS;END behav;7时刻

38、调剂电路调剂位置选择器LIBRARY IEEE;USE IEEE.STD LOGIC 1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY trf ISPORT(trf,clr:IN STD.LOGIC; -clr 为 1 时,I: I1/ I , P 剂卜刻,tn P 刃时刻江 trfjemp为00 01 10 11时各表示分个位,分十位,时个位,时十位。trfo: OUT STD_LOGIC_VECTOR( 1 DOWNTO 0);END trf;ARCHITECTURE fwm OF trf ISSIGNAL trfjemp : STD_LOGI

39、C_VECTOR( 1 DOWNTO 0);BEGINPROCESS©1,trf,trfjemp) beginif clr=V then trfjemp<=Hirr; elsif (trfEVENT AND trf='O') then if trfJemp>M00n then trfJemp<=trfJemp-1; else trfjemp<=H 11 end if;end if;end process; trfo<=trf_temp;end fwm;8时刻调剂电路调剂数字选择器及时钟LIBRARY IEEE:USE IEEE.STD_L

40、OGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SZ IS-elk时钟脉冲,clr暂停操纵.trf移位.plus加数字.ho时位低位】i时位高位.m_k)分位低 位,m_hi分位高位PORT(clk,plus,clr:IN STD_L0GIC:trfo:IN STD_LOGIC_VECTOR( 1 D0WNT0 0);ho.h_hi.mo.m_hi: OUT STD_L0GIC_VECT0R(3 DOWNTO 0);END SZ;ARCHITECTURE fwm OF SZ ISSIGNAL h_hLtemp,h_lo_temp,m_h

41、Ltemp.mJoJeinp : STD_L0GIC_VECT0R(3 DOWNTO0);BEGINPROCESS(clk,cktrfo.plus.h】i_temp,ho_tenip.nLhi_temp.nio_temp)-elk上升沿触发。r=T暂停调时刻移位,plus=O加数beginif (clk'EVENT AND clk=T) thenif clr=,l, thenif plus=,O, then1plus ' i 个if trfo=H00" then -trfo=00 分个位加数if mJoJemp=H100r' then mJoJemp<=

42、M0000M;else mjo_temp<=m_lojemp+l;end if;elsif trfo=MOrr then -trfo=01 分十位加数if m_hi_tenip=H010r' then m_hi_temp<=MOOOOn;else m_hijenip<=m_hi _temp+l;end if;elsif trfo=H10u then-irfo=10时个位加数时个位与时十位有关,当时十位为2时,时个位不应超过3,因为没 有比24点更高的时刻if h_hiJemp=M0010H thenif hoen】p=“0011" then hoenip&l

43、t;="0000”;else h_lojemp<=h_lo_temp+l;end if;elseif ho_tenip=" 1001” then hJojcinp<=HOOOOn;else h_lo_temp<=h_lo_temp+1;end if;end if;elsif trfo=n 11H then-trfo=l 1时十位加数 时十位与时个位有关,当时个位为大于3时,时十位不应超过1,否 那么可能造成25点,26点等等if hJoJemp<H0100M thenif h_hi_temp=u0010H then h_hijemp<=HOOO

44、OH;else h_hijcmp<=h_hi_temp+l;end if;elseif h_hLtemp=MOOOr, then h】ienipv="OOOO”;else h_hLtemp<=M000r,;end if;end if;end if;end if;else -clr=O 时,时:I :if mJo_temp<H 1001H then m_lo_temp<=m_lo_temp+l;else -分十位if m-hLtemp<H010r, thenm_lojemp<=H0000H;ni_hijemp<=m_hijenip+1;else

45、当时卜位为1z为(),其余9之后变0if h_hiJemp<H0010M thenif hoemp<" 1001" thenin_lo_temp<=M0000H;m_hi_temp<=H0000H;h_lojemp<=h_lojemp+1;elsemJo_temp<=H0000n;m_hi_temp<=',0000n;hocnip<="0000”; h_hijemp<=h_hi_temp+1;end if;else -i - I 1if ho_ten】p<”0010“ then h_lojcnip

46、<=h_lojemp+1;nioemp<="000(r; m_hi_temp<=H0000H;elsemoemp<="0000” ;mJiiJemp<=H0000n;ho_temp<="000(r;h_hiJemp<=H0000M;end if;end if;end if;end if;end if;end if;END PROCESS;h_hi<=h_hijemp:h_lo<=h_lojemp:m-lo<=mjojemp;END fwm;9闪耀电路LIBRARY IEEE;USE IEEE.STD_LO

47、GIC_1164.ALL;ENTITY SS IS1在加数的时候能明白自己所加的数的位置PORT(clk,clr.plusjrf:IN STD.LOGIC;trfo:IN STD_LOGIC_VECTOR( I DOWNTO 0);h_lo,h_hi,mo,m_hi:IN STD_LOGIC_VECTOR(3 DOWNTO 0);oho,ohii,omo,om_hi:OUTSTD_LOGIC_VECTOR(3 DOWNTO 0);END SS;ARCHITECTURE fwm OF SS ISSIGNAL shnjemp : STD_LOGIC;SIGNAL h_hi_tenip,h_lo_t

48、enip,m_hi_temp.mjo_temp : STD_LOGIC_VECTOR(3 DOWNTO0);BEGINPROCESS(clk,clnplusjrfo.h_lo.h_hijnJo,m_hi)BEGINif clr=*r thenif plus='O' or trf=,O, then- 当plus或者trf为1时,说明要加数或者移位,因此在变暗的时候要赶忙变成原先的模样 shn_ten】p<='0'h_hi_temp<=h_hi;h_lo_temp<=h_lo;m_hi_temp<=m_hi;n】o_temp<=mo;e

49、lsif (clk'EVENT AND clk= I*) then- .1 -个脉冲 出,当shnjemp为0时.- 通过lifo的位置时四个输出中的一个变暗,即页码器变成全1一从而实现每一个秒单位闪暗交替h_hi_temp<=h_hi;h_lo_temp<=h_lo;m_hi_temp<=m1i:n】o_temp<=mo;if shn Jemp=,0, then shn_temp<= T;else shn_temp<=,0,;end if;if shn_temp=10, thenif trfo=nOOM thenelsif trfo=HOr, th

50、enni_hi_temp<=HllHn;elsif trfo=H10H thenhjojemp<=,llir,;elsif trfo=H 11" thenh_hijemp<=,llir,;end if;end if;end if;elsif cIr=tO, thenh_hi_temp<=h_hi;h_lojemp<=h_lo;m_hi_teinp<=m_hi;m_lo_temp<=mjo;end if;end process;oh_hi<=h_hi_temp;oh_lo<=h_Iojemp;om_hi<=m_hi_temp;

51、omjo<=mjojeinp;end fwm;10连接部分(实现与铃声连接)LIBRARY IEEE:USE IEEE.STD_LOGIC_1164.ALL;ENTITY IjISPORT(clr:IN STD_LOGIC;ho.h1i.mo.nLhi: IN STD_LOGIC_VECTOR(3 DOWNTO 0);templ,temp2:OUT STD_LOGIC);END Ij;ARCHITECTURE fwm OF Ij ISSIGNAL tmpl.tmp2 :STD_LOGIC;SIGNAL t: STD_LOGIC_VECTOR( 15 DOWNTO 0);BEGINtmp_

52、cnt<=h_hi & ho & m_hi & mo;PROCESS(clr,ho,h_hi,mo,m_hi,tmp Ltmp2) beginif cIr=V then现上下课铃的辨论impL tmp2t再通过四个jk触发器if tmp-cnt=HOOOO 100000000000H OR tmp_cnt=,rOOOO 100101010000nortmp-cnt=',0001000001000000” ortmp_cnt=u0001001100010101"ortmp-cnt='10001010000000101”ortmp-cnt=H

53、0000100001010000”tmp_cnt=MOOO 1000100110000Mtmp_cnt=M0001010001010101Hororortmp_cnt=,rOOO 1010101010101Hor tmp_cnt=uOOO 101100100010 ln or tmp_cnt=MOOO 1100000110000” or tmp_cnt=uOOO 11001001000000or tmp_cnt=HOO 10000000010000" then tmpl<=r;tmp2<=0,;OR tmp-cnt=uOOOO 100100110101or tmp_cnt

54、=H0001001000010101”or tmp_cnt=MOOO 1010101000000Mortmp_cnt=n00011001000101010ororororelsif tnip_cnt=HOOOO 100001000101 tmp_cnt=H 1010000000110101"or tmp-cnt=',0001000100100101” tmp_cnt=HOOO 1010000000000Mor t=M0001010001010000”tmp_cnt=,(0001011001000000”or tmp-Ci'WOlOl 1100110000”tmp_cn

55、t=00010000000000101Mor tmp_cnt=u0010000001010101H then tmp 1 <='0'tn】p2v=T;else tmp 1 <=0,;tmp2<=,01;end if;tmpl<=,0,:tmp2<=,0,;end if;END PROCESS:templ<=tnipl;temp2<=tmp2;END fwm;11译码器LIBRARY IEEE:USE IEEE.STD LOGIC 1164.ALL;ENTITY ymqOl ISPORT(data_in:IN STD_LOGIC.VECTOR(3 DOWNTO 0); dis_out:OUT STD_LOGIC_VECTOR(6 DOWNTO 0): END ymqOl;ARCHITECTURE fwm OF ymqOl ISBEGINP

温馨提示

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

评论

0/150

提交评论