资源描述:
《北邮数电实验电子沙漏源代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYdivIS--50000和50000000分频PORT(clk,clear,stop:INSTD_LOGIC;clk_out1,clk_out2:OUTSTD_LOGIC);ENDdiv;ARCHITECTUREaOFdivISSIGNALtmp1:INTEGERRANGE0TO24999;SIGNALtmp2:INTEG
2、ERRANGE0TO499;SIGNALclktmp1:STD_LOGIC;SIGNALclktmp2:STD_LOGIC;BEGINclk_out1<=clktmp1;clk_out2<=clktmp2;P1:PROCESS(clear,clk)BEGINIFclear='1'THENtmp1<=0;ELSIFclk'eventANDclk='1'THENIFtmp1=24999THENtmp1<=0;clktmp1<=notclktmp1;ELSEtmp1<=tmp1+1;ENDIF;ENDIF;ENDPROCESSP1;
3、P2:PROCESS(clear,stop,clktmp1)BEGINIFclear='1'THENtmp2<=0;ELSIFstop='0'THENIFclktmp1'eventANDclktmp1='1'THENIFtmp2=499THENtmp2<=0;clktmp2<=notclktmp2;ELSEtmp2<=tmp2+1;ENDIF;ENDIF;ENDIF;ENDPROCESSP2;ENDa;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGN
4、ED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYshalouISPORT(clk0,reset,pause:INSTD_LOGIC;dir:INSTD_LOGIC;figures:OUTSTD_LOGIC_VECTOR(6downto0);cats:OUTSTD_LOGIC_VECTOR(1downto0);cat0:OUTSTD_LOGIC_VECTOR(3downto0);row:OUTSTD_LOGIC_VECTOR(15downto0);col:OUTSTD_LOGIC_VECTOR(
5、7downto0));ENDshalou;ARCHITECTUREbOFshalouISCOMPONENTdivPORT(clk,clear,stop:INSTD_LOGIC;clk_out1,clk_out2:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALclk1,clk2:STD_LOGIC;SIGNALaddress:STD_LOGIC_VECTOR(1downto0);SIGNALs1,s2:STD_LOGIC_VECTOR(3downto0);SIGNALled1,led2:STD_LOGIC_V
6、ECTOR(6downto0);SIGNALst1:STD_LOGIC_VECTOR(7downto0);SIGNALdata:STD_LOGIC_VECTOR(15downto0);SIGNALd0,d1,d2,d3,d4,d5,d6,d7:STD_LOGIC_VECTOR(15downto0);SIGNALpic:STD_LOGIC_VECTOR(4downto0);BEGINu1:divPORTMAP(clk=>clk0,clear=>reset,stop=>pause,clk_out1=>clk1,clk_out2=>
7、clk2);cat0<="1111";p1:PROCESS(clk1,reset)BEGINIFreset='1'THENaddress<="11";ELSIFclk1'eventANDclk1='1'THENIFaddress="01"THENaddress<="00";ELSEaddress<=address+1;ENDIF;ENDIF;ENDPROCESSp1;p2:PROCESS(clk2,reset,pause)BEGINIFreset='1'THENs1<="0000";ELSIFclk2'eventANDclk2
8、='1'THENIFs1="0101"ANDs2="1001"THENs1<="0000";ELSIFs2="1001"THENs1<=s1+1;ENDIF;ENDIF;ENDPROCESSp2;p3:PROCESS(clk2,reset,pause)BEGINIFreset