您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > EDA技术与应用讲义 第4章 电子系统设计实践(一)
第4章电子系统设计实践(一)EDA技术与应用课程讲义下一章上一章本章内容一.4位加法计数器设计二.8位数码管显示扫描电路设计三.13分频器电路设计一.4位加法计数器设计(一)1.--LIBARYIEEE;2.--USEIEEE.STD_LOGIC_1164.ALL;3.ENTITYCNT4IS4.PORT(CLK:INBIT;5.Q:BUFFERINTEGERRANGE15DOWNTO06.);7.ENDENTITYCNT4;8.ARCHITECTUREbhvOFCNT4IS9.BEGIN10.PROCESS(CLK)11.BEGIN12.IFCLK'EVENTAMDCLK='1'THEN13.Q=Q+1;14.ENDIF;15.ENDPROCESS;16.ENDARCHITECTUREbhv;参见:p108_ex5_1_CNT44位加法计数器设计(一):图4位加法计数器设计(二)1.LIBARYIEEE;2.USEIEEE.STD_LOGIC_1164.ALL;3.USEIEEE.STD_LOGIC_UNSIGNED.ALL;4.ENTITYCNT402IS5.PORT(CLK:INSTD_LOGIC;6.Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0)7.);8.ENDENTITYCNT402;9.ARCHITECTUREbhvOFCNT402IS10.SIGNALQ1:STD_LOGIC_VECTOR(3DOWNTO0);11.BEGIN12.PROCESS(CLK)13.BEGIN14.IFCLK'EVENTAMDCLK='1'THEN15.Q1=Q1+1;16.ENDIF;17.--Q=Q1;???18.ENDPROCESS;19.20.Q=Q1;21.ENDARCHITECTUREbhv;参见:p110_ex5_2_CNT4024位加法计数器设计(二):图4位加法计数器设计(三)1.LIBARYIEEE;2.USEIEEE.STD_LOGIC_1164.ALL;3.USEIEEE.STD_LOGIC_UNSIGNED.ALL;4.ENTITYCNT10IS5.PORT(CLK,RST,EN:INSTD_LOGIC;6.CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);7.COUT:OUTSTD_LOGIC8.);9.ENDENTITYCNT10;10.ARCHITECTUREbhvOFCNT10IS11.BEGIN12.PROCESS(CLK,RST,EN)13.14.VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);15.BEGIN16.IFRST='1'THEN17.CQI:=(OTHERS='0');18.ELSIFCLK'EVENTAMDCLK='1'THEN19.IFEN='1'THEN20.IFCQI9THEN21.CQI:=CQI+1;22.ELSE23.CQI:=(OTHERS='0');24.ENDIF;25.ENDIF;26.ENDIF;27.28.IFCQI=9THEN29.COUT='1';30.ELSE31.COUT='0';32.ENDIF;33.CQ=CQI34.35.ENDPROCESS;36.37.ENDARCHITECTUREbhv;具有异步复位(RST)时钟使能(EN)参见:p113_ex5_3_CNT104位加法计数器设计(三):图三.8位数码管显示扫描电路设计二.8位数码管显示扫描电路设计K1…K8为数码管的位控信号,对应FPGA的PIO41、40、39、38、37、36、35、34a…g为数码管的段控信号,对应FPGA的PIO49、48、47、46、45、44、43、42实验电路1.LIBRARYIEEE;2.USEIEEE.STD_LOGIC_1164.ALL;3.USEIEEE.STD_LOGIC_UNSIGNED.ALL;4.ENTITYSCAN_LEDIS5.PORT(CLK:INSTD_LOGIC;6.SG:OUTSTD_LOGIC_VECTOR(6DOWNTO0);--段控制信号输出7.BT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--位控制信号输出8.END;9.ARCHITECTUREoneOFSCAN_LEDIS10.SIGNALCNT8:STD_LOGIC_VECTOR(2DOWNTO0);11.SIGNALA:INTEGERRANGE0TO15;12.BEGIN13.P1:PROCESS(CNT8)14.BEGIN15.CASECNT8IS16.WHEN000=BT=00000001;A=1;17.WHEN001=BT=00000010;A=3;18.WHEN010=BT=00000100;A=5;19.WHEN011=BT=00001000;A=7;20.WHEN100=BT=00010000;A=9;21.WHEN101=BT=00100000;A=11;22.WHEN110=BT=01000000;A=13;23.WHEN111=BT=10000000;A=15;24.WHENOTHERS=NULL;25.ENDCASE;26.ENDPROCESSP1;27.P2:PROCESS(CLK)28.BEGIN29.IFCLK'EVENTANDCLK='1'THENCNT8=CNT8+1;30.ENDIF;31.ENDPROCESSP2;32.P3:PROCESS(A)--译码电路33.BEGIN34.CASEAIS35.WHEN0=SG=0111111;WHEN1=SG=0000110;36.WHEN2=SG=1011011;WHEN3=SG=1001111;37.WHEN4=SG=1100110;WHEN5=SG=1101101;38.WHEN6=SG=1111101;WHEN7=SG=0000111;39.WHEN8=SG=1111111;WHEN9=SG=1101111;40.WHEN10=SG=1110111;WHEN11=SG=1111100;41.WHEN12=SG=0111001;WHEN13=SG=1011110;42.WHEN14=SG=1111001;WHEN15=SG=1110001;43.WHENOTHERS=NULL;44.ENDCASE;45.ENDPROCESSP3;46.END;设计编码参见:p145_ex5_22_SCAN_LED译码进程计数进程位选进程端口定义端口定义1.LIBARYIEEE;2.USEIEEE.STD_LOGIC_1164.ALL;3.USEIEEE.STD_LOGIC_UNSIGNED.ALL;4.ENTITYscan_ledIS5.PORT(CLK:INSTD_LOGIC;6.SG:OUTSTD_LOGIC_VECTOR(6DOWNTO0);--segmentcontrol7.BT:OUTSTD_LOGIC_VECTOR(6DOWNTO0)--bitcontrol8.);9.ENDENTITYscan_led;位选进程10.ARCHITECTUREBEHAVOFscan_ledIS11.SGINALCNT8STD_LOGIC_VECTOR(2DOWNTO0);12.SIGNALA:INTEGERRANGE0TO15;13.BEGIN14.P1:15.PROCESS(CNT8)16.BEGIN17.CASECNT8IS18.WHEN000=BT=00000001;A=1;19.WHEN001=BT=00000010;A=3;20.WHEN010=BT=00000100;A=5;21.WHEN011=BT=00001000;A=7;22.WHEN100=BT=00010000;A=9;23.WHEN101=BT=00100000;A=11;24.WHEN110=BT=01000000;A=13;25.WHEN111=BT=10000000;A=15;26.WHENOTHERS=NULL;27.ENDCASE;28.29.ENDPROCESSledcoding;计数进程30.P2:31.PROCESS(CLK)32.BEGIN33.34.IFCLK'EVENTANDCLK='1'THEN35.CNT8=CNT8+1;36.ENDIF;37.38.ENDPROCESSP2;译码进程39.P3:40.PROCESS(A)41.BEGIN42.CASEAIS43.WHEN0=BT=0111111;--044.WHEN1=BT=0000110;--145.WHEN2=BT=1011011;--246.WHEN3=BT=1001111;--347.WHEN4=BT=1100110;--448.WHEN5=BT=1101101;--549.WHEN6=BT=1111101;--650.WHEN7=BT=0000111;--751.WHEN8=BT=1111111;--852.WHEN9=BT=1101111;--953.WHEN10=BT=1110111;--A54.WHEN11=BT=1111100;--B55.WHEN12=BT=0111001;--C56.WHEN13=BT=1011110;--D57.WHEN14=BT=1111001;--E58.WHEN15=BT=1110001;--F59.WHENOTHERS=NULL;60.ENDCASE;61.62.ENDPROCESSP3:63.ENDARCHITECTUREBEHAV;本试验思考1.LED数码管是共阴极还是共阳极的?2.修改P1中的显示数据直接给出方式,增加8个4位锁存器,作为显示数据缓冲器,所有8个显示数据都必须来自缓冲器。缓冲器的输入数据可设置为常数量。3.修改P1编码,用开关8个开关控制显示8位不同的数据。二.13分频器电路设计三.13分频器电路设计设计要求:在4位计数器的基础上实现13分频器,输出周期信号的占空比不作要求.Theend.以下内容为正文的引用,可不阅读。返回STD_LOGIC的取值1.TYPEstd_ulogicIS('U',--Uninitialized2.'X',--ForcingUnknown3.'0',--Forcing04.'1',--Forcing15.'Z',--HighImpedance6.'W',--WeakUnknown7.'L',--Weak08.'H',--Weak19.'-'--Don'tcare10.);返回详细参见STD1164.VHD
本文标题:EDA技术与应用讲义 第4章 电子系统设计实践(一)
链接地址:https://www.777doc.com/doc-3516079 .html