多路彩灯2.doc
上传人:sy****28 上传时间:2024-09-11 格式:DOC 页数:6 大小:2.1MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

多路彩灯2.doc

多路彩灯2.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

试验:多路彩灯在设计模块1:分频模块2分频程序代码如下LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYfen2ISPORT(clk:INSTD_LOGIC;clkk:OUTSTD_LOGIC);ENDfen2;ARCHITECTUREbehavOFfen2ISBEGINPROCESS(clk)VARIABLEclkk1:STD_LOGIC:='0';BEGINIFclk'EVENTANDclk='1'THENclkk1:=NOTclkk1;ENDIF;clkk<=clkk1;ENDPROCESS;ENDbehav;元器件:12.5分频程序代码如下LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYfdiv125aISGENERIC(n:INTEGER:=13);PORT(clk:INSTD_LOGIC;clkk:OUTSTD_LOGIC);ENDfdiv125a;ARCHITECTUREoneOFfdiv125aISSIGNALclk1,div2:STD_LOGIC;SIGNALc_out:STD_LOGIC;SIGNALcount:INTEGERRANGE0TOn-1;BEGINclk1<=clkXORdiv2;PROCESS(clk1)BEGINIF(clk1'eventANDclk1='1')THENIF(count=INTEGER(n-1))THENcount<=0;c_out<='1';ELSEcount<=count+1;c_out<='0';ENDIF;ENDIF;ENDPROCESS;PROCESS(c_out)BEGINIFRISING_EDGE(c_out)THENdiv2<=NOTdiv2;ENDIF;ENDPROCESS;Clkk<=c_out;ENDone;元器件:波形仿真如下:模块2:2选1模块程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux21ISPORT(a,b,s:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDmux21;ARCHITECTUREarOFmux21ISBEGINPROCESS(a,b,s)BEGINIFs='0'THENy<=a;ELSEy<=b;ENDIF;ENDPROCESS;ENDar;元器件:波形图如下:模块3:彩灯模块程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcdISPORT(clk:INSTD_LOGIC;jp:OUTSTD_LOGIC;qq:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDcd;ARCHITECTUREbehavOFcdISCONSTANTw:INTEGER:=7;SIGNALq:STD_LOGIC_VECTOR(7DOWNTO0);BEGINPROCESS(clk)VARIABLEflag:BIT_VECTOR(2DOWNTO0):="000";VARIABLEjp1:STD_LOGIC:='0';BEGINIFclk'EVENTANDclk='1'THENIFflag="000"THENq<='1'&q(wDOWNTO1);IFq(1)='1'THENflag:="001";ENDIF;ELSIFflag="001"THENq<=q(w-1DOWNTO0)&'0';IFq(6)='0'THENflag:="010";ENDIF;ELSIFflag="010"THENq(wDOWNTO4)<=q(w-1DOWNTO4)&'1';q(w-4DOWNTO0)<='1'&q(w-4DOWNTO1);IFq(1)='1'THENflag:="011";ENDIF;ELSIFflag="011"THENq(wDOWNTO4)<=q(w-1DOWNTO4)&'0';q(w-4DOWNTO0)<='0'&q(w-4DOWNTO1);IFq(1)='0'THENflag:="100";ENDIF;ELSIFflag="100"THENq(wDOWNTO4)<='1'&q(wDOWNTO5);q(w-4