计数器及数码显示(1)60进制计数器异步清零同步预置数程序libraryieee;useieee.std_logic_11.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitycounter60isport(clk,en,rst,load:instd_logic;din:instd_logic_vector(7downto0);co:outstd_logic;qh,ql:bufferstd_logic_vector(3downto0));endcounter60;architectureoneofcounter60isbeginco<='1'when(qh=\"0101\"andql=\"1001\"anden='1')else'0';process(clk,rst)beginif(rst='0')thenqh<=\"0000\";ql<=\"0000\";elsif(clk'eventandclk='1')thenif(load='1')thenqh<=din(7downto4);ql<=din(3downto0);elsif(en='1')thenif(ql=9)thenql<=\"0000\";if(qh=5)thenqh<=\"0000\";elseqh<=qh+1;endif;elseql<=ql+1;endif;endif;endif;endprocess;endone;时间扫描模块libraryieee;useieee.std_logic_11.all;useieee.std_logic_unsigned.all;entityseltimeisport(clk:inbit;qhin,qlin:instd_logic_vector(3downto0);sel:outstd_logic_vector(2downto0);daout:outstd_logic_vector(3downto0));endseltime;architectureaofseltimeissignaltemp:integerrange0to1;beginprocess(clk)beginif(clk'eventandclk='1')theniftemp=1thentemp<=0;elsetemp<=temp+1;endif;casetempiswhen0=>sel<=\"000\";daout<=qlin;when1=>sel<=\"001\";daout<=qhin;endcase;endif;endprocess;enda;共阴7段数码管libraryIEEE;useIEEE.STD_LOGIC_11.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitydeledisPort(din:instd_logic_vector(3downto0);ledout:outstd_logic_vector(6downto0));enddeled;architecturethreeofdeledisbeginprocess(din)begincasediniswhen\"0000\"=>ledout<=\"0111111\";--0when\"0001\"=>ledout<=\"0000110\";--1when\"0010\"=>ledout<=\"1011011\";--2when\"0011\"=>ledout<=\"1001111\";--3when\"0100\"=>ledout<=\"1100110\";--4when\"0101\"=>ledout<=\"1101101\";--5when\"0110\"=>ledout<=\"1111101\";--6when\"0111\"=>ledout<=\"0100111\";--7when\"1000\"=>ledout<=\"1111111\";--8when\"1001\"=>ledout<=\"1101111\";--9whenothers=>ledout<=\"0000000\";endcase;endprocess;endthree;