北邮数电实验电子沙漏源代码汇总.docx

上传人:b****5 文档编号:28934688 上传时间:2023-07-20 格式:DOCX 页数:10 大小:15.52KB
下载 相关 举报
北邮数电实验电子沙漏源代码汇总.docx_第1页
第1页 / 共10页
北邮数电实验电子沙漏源代码汇总.docx_第2页
第2页 / 共10页
北邮数电实验电子沙漏源代码汇总.docx_第3页
第3页 / 共10页
北邮数电实验电子沙漏源代码汇总.docx_第4页
第4页 / 共10页
北邮数电实验电子沙漏源代码汇总.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

北邮数电实验电子沙漏源代码汇总.docx

《北邮数电实验电子沙漏源代码汇总.docx》由会员分享,可在线阅读,更多相关《北邮数电实验电子沙漏源代码汇总.docx(10页珍藏版)》请在冰豆网上搜索。

北邮数电实验电子沙漏源代码汇总.docx

北邮数电实验电子沙漏源代码汇总

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;

ARCHITECTUREaOFdivIS

SIGNALtmp1:

INTEGERRANGE0TO24999;

SIGNALtmp2:

INTEGERRANGE0TO499;

SIGNALclktmp1:

STD_LOGIC;

SIGNALclktmp2:

STD_LOGIC;

BEGIN

clk_out1<=clktmp1;

clk_out2<=clktmp2;

P1:

PROCESS(clear,clk

BEGIN

IFclear='1'THEN

tmp1<=0;

ELSIFclk'eventANDclk='1'THEN

IFtmp1=24999THEN

tmp1<=0;clktmp1<=notclktmp1;

ELSE

tmp1<=tmp1+1;

ENDIF;

ENDIF;

ENDPROCESSP1;

P2:

PROCESS(clear,stop,clktmp1

BEGIN

IFclear='1'THEN

tmp2<=0;

ELSIFstop='0'THEN

IFclktmp1'eventANDclktmp1='1'THEN

IFtmp2=499THEN

tmp2<=0;clktmp2<=notclktmp2;

ELSE

tmp2<=tmp2+1;

ENDIF;

ENDIF;

ENDIF;

ENDPROCESSP2;

ENDa;

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYshalouIS

PORT(

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(7downto0

;

ENDshalou;

ARCHITECTUREbOFshalouIS

COMPONENTdiv

PORT(

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_VECTOR(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;

BEGIN

u1:

divPORTMAP(clk=>clk0,clear=>reset,stop=>pause,clk_out1=>clk1,clk_out2=>clk2;cat0<="1111";

p1:

PROCESS(clk1,reset

BEGIN

IFreset='1'THEN

address<="11";

ELSIFclk1'eventANDclk1='1'THEN

IFaddress="01"THEN

address<="00";

ELSE

address<=address+1;

ENDIF;

ENDIF;

ENDPROCESSp1;

p2:

PROCESS(clk2,reset,pause

BEGIN

IFreset='1'THEN

s1<="0000";

ELSIFclk2'eventANDclk2='1'THEN

IFs1="0101"ANDs2="1001"THEN

s1<="0000";

ELSIFs2="1001"THEN

s1<=s1+1;

ENDIF;

ENDIF;

ENDPROCESSp2;

p3:

PROCESS(clk2,reset,pause

BEGIN

IFreset='1'THEN

s2<="0000";

ELSIFclk2'eventANDclk2='1'THEN

IFs2="1001"THEN

s2<="0000";

ELSE

s2<=s2+1;

ENDIF;

ENDIF;

ENDPROCESSp3;

p4:

PROCESS(s1,s2

BEGIN

CASEs1IS

WHEN"0000"=>led1<="0111111";WHEN"0001"=>led1<="0000110";WHEN"0010"=>led1<="1011011";WHEN"0011"=>led1<="1001111";WHEN"0100"=>led1<="1100110";WHEN"0101"=>led1<="1101101";WHENOTHERS=>led1<="0000000";

ENDCASE;

CASEs2IS

WHEN"0000"=>led2<="0111111";WHEN"0001"=>led2<="0000110";WHEN"0010"=>led2<="1011011";WHEN"0011"=>led2<="1001111";WHEN"0100"=>led2<="1100110";WHEN"0101"=>led2<="1101101";WHEN"0110"=>led2<="1111101";WHEN"0111"=>led2<="0000111";WHEN"1000"=>led2<="1111111";WHEN"1001"=>led2<="1101111";WHENOTHERS=>led2<="0000000";ENDCASE;

ENDPROCESSp4;

p5:

PROCESS(address

BEGIN

CASEaddressIS

WHEN"00"=>figures<=led2;cats<="10";WHEN"01"=>figures<=led1;cats<="01";WHENOTHERS=>figures<="0000000";ENDCASE;

ENDPROCESSp5;

row<=data;

col<=st1;

d0<=

"0000000001111111"WHENpic="00000"ELSE

"0000100001110111"WHENpic="00001"ELSE

"0000110001110011"WHENpic="00010"ELSE

"0001110001100011"WHENpic="00011"ELSE

"0001111001100001"WHENpic="00100"ELSE

"0011111001000001"WHENpic="00101"ELSE

"0011111101000000"WHENpic="00110"ELSE

"0111111100000000"WHENpic="00111"ELSE

"0111111100000000"WHENpic="01000"ELSE

"0111111100000000"WHENpic="01001"ELSE

"0111111100000000"WHENpic="01010"ELSE

"0111111100000000"WHENpic="01011"ELSE

"0111111100000000"WHENpic="01100"ELSE

"0111111100000000"WHENpic="01101"ELSE

"0111111100000000"WHENpic="01110"ELSE

"0111111100000000"WHENpic="01111"ELSE

"0111111100000000"WHENpic="10000"ELSE"0000000000000000";

d1<=

"0000000000111110"WHENpic="00000"ELSE"0000000000111110"WHENpic="00001"ELSE"0000000000111110"WHENpic="00010"ELSE"0000000000111110"WHENpic="00011"ELSE"0000000000111110"WHENpic="00100"ELSE"0000000000111110"WHENpic="00101"ELSE"0000000000111110"WHENpic="00110"ELSE"0000000000111110"WHENpic="00111"ELSE"0000100000110110"WHENpic="01000"ELSE"0000110000110010"WHENpic="01001"ELSE"0001110000100010"WHENpic="01010"ELSE"0001111000100000"WHENpic="01011"ELSE"0011111000000000"WHENpic="01100"ELSE"0011111000000000"WHENpic="01101"ELSE"0011111000000000"WHENpic="01110"ELSE"0011111000000000"WHENpic="01111"ELSE"0011111000000000"WHENpic="10000"ELSE"0000000000000000";

d2<=

"0000000000011100"WHENpic="00000"ELSE"0000000000011100"WHENpic="00001"ELSE"0000000000011100"WHENpic="00010"ELSE"0000000000011100"WHENpic="00011"ELSE"0000000000011100"WHENpic="00100"ELSE"0000000000011100"WHENpic="00101"ELSE"0000000000011100"WHENpic="00110"ELSE"0000000000011100"WHENpic="00111"ELSE"0000000000011100"WHENpic="01000"ELSE"0000000000011100"WHENpic="01001"ELSE"0000000000011100"WHENpic="01010"ELSE"0000000000011100"WHENpic="01011"ELSE"0000000000011100"WHENpic="01100"ELSE"0000100000010100"WHENpic="01101"ELSE"0000110000010000"WHENpic="01110"ELSE"0001110000000000"WHENpic="01111"ELSE"0001110000000000"WHENpic="10000"ELSE"0000000000000000";

d3<=

"0000000000001000"WHENpic="00000"ELSE"0000000000001000"WHENpic="00001"ELSE"0000000000001000"WHENpic="00010"ELSE"0000000000001000"WHENpic="00011"ELSE"0000000000001000"WHENpic="00100"ELSE"0000000000001000"WHENpic="00101"ELSE"0000000000001000"WHENpic="00110"ELSE"0000000000001000"WHENpic="00111"ELSE"0000000000001000"WHENpic="01000"ELSE"0000000000001000"WHENpic="01001"ELSE"0000000000001000"WHENpic="01010"ELSE"0000000000001000"WHENpic="01011"ELSE"0000000000001000"WHENpic="01100"ELSE"0000000000001000"WHENpic="01101"ELSE"0000000000001000"WHENpic="01110"ELSE"0000000000001000"WHENpic="01111"ELSE"0000100000000000"WHENpic="10000"ELSE"0000000000000000";d4<="0000100000000000"WHENpic="00000"ELSE"0000100000000000"WHENpic="00001"ELSE"0000100000000000"WHENpic="00010"ELSE"0000100000000000"WHENpic="00011"ELSE"0000100000000000"WHENpic="00100"ELSE"0000100000000000"WHENpic="00101"ELSE"0000100000000000"WHENpic="00110"ELSE"0000100000000000"WHENpic="00111"ELSE"0000100000000000"WHENpic="01000"ELSE"0000100000000000"WHENpic="01001"ELSE"0000100000000000"WHENpic="01010"ELSE"0000100000000000"WHENpic="01011"ELSE"0000100000000000"WHENpic="01100"ELSE"0000100000000000"WHENpic="01101"ELSE"0000100000000000"WHENpic="01110"ELSE"0000100000000000"WHENpic="01111"ELSE"0000000000001000"WHENpic="10000"ELSE"0000000000000000";d5<="0001110000000000"WHENpic="00000"ELSE"0001110000000000"WHENpic="00001"ELSE"0001110000000000"WHENpic="00010"ELSE"0001110000000000"WHENpic="00011"ELSE

"0001110000000000"WHENpic="00100"ELSE"0001110000000000"WHENpic="00101"ELSE"0001110000000000"WHENpic="00110"ELSE"0001110000000000"WHENpic="00111"ELSE"0001110000000000"WHENpic="01000"ELSE"0001110000000000"WHENpic="01001"ELSE"0001110000000000"WHENpic="01010"ELSE"0001110000000000"WHENpic="01011"ELSE"0001110000000000"WHENpic="01100"ELSE"0001010000001000"WHENpic="01101"ELSE"0001000000001100"WHENpic="01110"ELSE"0000000000011100"WHENpic="01111"ELSE"0000000000011100"WHENpic="10000"ELSE"0000000000000000";d6<="0011111000000000"WHENpic="00000"ELSE"0011111000000000"WHENpic="00001"ELSE"0011111000000000"WHENpic="00010"ELSE"0011111000000000"WHENpic="00011"ELSE"0011111000000000"WHENpic="00100"ELSE"0011111000000000"WHENpic="00101"ELSE"0011111000000000"WHENpic="00110"ELSE"0011111000000000"WHENpic="00111"ELSE"0011011000001000"WHENpic="01000"ELSE"0011001000001100"WHENpic="01001"ELSE"0010001000011100"WHENpic="01010"ELSE"0010000000011110"WHENpic="01011"ELSE"0000000000111110"WHENpic="01100"ELSE"0000000000111110"WHENpic="01101"ELSE"0000000000111110"WHENpic="01110"ELSE"0000000000111110"WHENpic="01111"ELSE"0000000000111110"WHENpic="10000"ELSE"0000000000000000";d7<="0111111100000000"WHENpic="00000"ELSE"0111011100001000"WHENpic="00001"ELSE"0111001100001100"WHENpic="00010"ELSE"0110001100011100"WHENpic="00011"ELSE"0110000100011110"WHENpic="00100"ELSE"0100000100111110"WHENpic="00101"ELSE"0100000000111111"WHENpic="00110"ELSE"0000000001111111"WHENpic="00111"ELSE

"0000000001111111"WHENpic="01000"ELSE"0000000001111111"WHENpic="01001"ELSE"0000000001111111"WHENpic="01010"ELSE"0000000001111111"WHENpic="01011"ELSE"0000000001111111"WHENpic="01100"ELSE"0000000001111111"WHENpic="01101"ELSE"0000000001111111"WHENpic="01110"ELSE"0000000001111111"WHENpic="01111"ELSE"0000000001111111"WHENpic="10000"ELSE"0000000000000000";p6:

PROCESS(clk1,resetBEGINIFreset='1'THENst1<="00000000";ELSIFclk1'eventANDclk1='1'THENIFst1="00000000"ORst1="01111111"THENst1<="11111110";data<=d0;ELSIFst1="11111110"THENst1<="11111101";data<=d1;ELSIFst1="11111101"THENst1<="11111011";data<=d2;ELSIFst1="11111011"THENst1<="11110111";data<=d3;ELSIFst1="11110111"THENst1<="11101111";data<=d4;ELSIFst1="11101111"THENst1<="11011111";data<=d5;ELSIFst1="11011111"THENst1<="10111111";data<=d6;ELSIFst1="10111111"THENst1<="01111111";data<=d7;ENDIF;ENDIF;ENDPROCESSp6;p7:

process(clk2,reset,pauseBEGINIFreset='1'THENpic<="00000";ELSIFclk2'eventANDclk2='1'THENIFdir='0'THENIFpic/="10000"THENpic<=pic+1;

ENDIF;ELSEIFpic/="00000"THENpic<=pic-1;ENDIF;ENDIF;ENDIF;ENDPROCESSp7;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1