欢迎来到天天文库
浏览记录
ID:58676804
大小:97.00 KB
页数:10页
时间:2020-10-15
《EDA数字秒表课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序:(1)时基分频模块的VHDL源程序(CB10.VHD)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCB10ISPORT(CLK:INSTD_LOGIC;——输入时钟信号CO:OUTSTD_LOGIC);——分频输出信号ENDCB10;——实体描述ARCHITECTUREARTOFCB10IS——结构体描述SIGNALCOUNT:STD_LOGIC_VECTOR(3DOWNTO0);——硬件系统的基本数据对象BEGINPRO
2、CESS(CLK)——进程敏感信号BEGINIFRISING_EDGE(CLK)THENIFCOUNT="1001"THENCOUNT<="0000";CO<='1';ELSECOUNT<=COUNT+1;CO<='0';ENDIF;ENDIF;ENDPROCESS;ENDART;(2)控制模块的VHDL源程序(CTRL.VHD)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCTRLISPORT(CLR,CLK,SP:INSTD_
3、LOGIC;EN:OUTSTD_LOGIC);——CLR:清零信号CLK:脉冲输入端SP:计数输入端EN:输出端END;ARCHITECTUREBEHAVEOFCTRLISCONSTANTS0:STD_LOGIC_VECTOR(1DOWNTO0):="00";CONSTANTS1:STD_LOGIC_VECTOR(1DOWNTO0):="01";CONSTANTS2:STD_LOGIC_VECTOR(1DOWNTO0):="10";CONSTANTS3:STD_LOGIC_VECTOR(1DOWNTO0):="11";TYPESTAT
4、ESIS(S0,S1,S2,S3);——表达四个状态的位矢量SIGNALCURRENT_STATE,NEXT_STATE:STATES;BEGINCOM:PROCESS(SP,CURRENT_STATE)——决定转换状态的进程BEGINCASECURRENT_STATEISWHENS0=>EN<='0';——选中状态为S0、EN='0'IFSP='1'THENNEXT_STATE<=S1;ELSENEXT_STATE<=S0;ENDIF;WHENS1=>EN<='1';——选中状态为S1、EN='1'IFSP='1'THENNEXT_
5、STATE<=S1;ELSENEXT_STATE<=S2;ENDIF;WHENS2=>EN<='1';——选中状态为S2、EN='1'IFSP='1'THENNEXT_STATE<=S3;ELSENEXT_STATE<=S2;ENDIF;WHENS3=>EN<='0';——选中状态为S3、EN='0'IFSP='1'THENNEXT_STATE<=S3;ELSENEXT_STATE<=S0;ENDIF;ENDCASE;ENDPROCESS;SYNCH:PROCESS(CLK)——时序进程BEGINIFCLR='1'THENCURREN
6、T_STATE<=S0;ELSIFCLK'EVENTANDCLK='1'THENCURRENT_STATE<=NEXT_STATE;ENDIF;ENDPROCESS;ENDBEHAVE;(3)计时模块的VHDL源程序①十进制计数器的VHDL源程序——cdu10.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcdu10ISPORT(CLK:INSTD_LOGIC;——时钟信号CLR:INSTD_LOGIC;——清零信号EN:I
7、NSTD_LOGIC;——计数使能信号CN:OUTSTD_LOGIC;——计数输出信号COUNT10:OUTSTD_LOGIC_VECTOR(3DOWNTO0));——计数值ENDcdu10;ARCHITECTUREARTOFcdu10ISSIGNALSCOUNT10:STD_LOGIC_VECTOR(3DOWNTO0);BEGINCOUNT10<=SCOUNT10;PROCESS(CLK,CLR,EN)BEGINIF(CLR='1')THENSCOUNT10<="0000";CN<='0';ELSIFRISING_EDGE(CLK)
8、THEN——脉冲为上跳沿触发IF(EN='1')THENIFSCOUNT10="1001"THENCN<='1';SCOUNT10<="0000";ELSECN<='0';SCOUNT10<=SCOUNT10+'1';E
此文档下载收益归作者所有