基于fpga和vhdl的数字时钟模块化实现

基于fpga和vhdl的数字时钟模块化实现

ID:40640820

大小:198.66 KB

页数:13页

时间:2019-08-05

基于fpga和vhdl的数字时钟模块化实现_第1页
基于fpga和vhdl的数字时钟模块化实现_第2页
基于fpga和vhdl的数字时钟模块化实现_第3页
基于fpga和vhdl的数字时钟模块化实现_第4页
基于fpga和vhdl的数字时钟模块化实现_第5页
资源描述:

《基于fpga和vhdl的数字时钟模块化实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、FPGA实验报告系名称:专业:班级:学号:姓名:基于FPGA的数字时钟设计一,摘要本设计基于复杂可编程逻辑器件FPGA设计并实现数字时钟。采用Altera公司的器件进行设计,开发调试时采用Altera的FPGA的cycloneEP1C6Q240C8芯片,设计完成后下载到SmartSOPC实验箱,实现数字时钟功能。利用Altera可编程逻辑器件开发实验系统进行设计,系统提供FPGA下载板及相应的其它硬件资源。时钟的显示采用LED数码管,采用系统提供的脉冲经分频输出作为时钟的秒输入,按键作为暂停和清零

2、的功能键。二,功能要求:1.完成可以计时的数字时钟2.在数码管显示00:00:00~23:59:593.具有暂停计时和清零等功能。分频模块1三,系统总体框架结果图数字时钟核心模块(产生时,分,秒数字序列)动态扫描模块系统时钟输入按键一(清零)按键二(暂停)分频模块2四,实验步骤1,分频模块1和分频模块2的vhdl实现功能:编写vhdl代码使48MHZ的系统时钟分别降为1KHZ和1HZ,编写vhdl代码下并产生相应的符号模块文件:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.

3、ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.NUMERIC_BIT.ALL;--包含移位函数等.ENTITYint_divISGENERIC(F_DIV:Integer:=48000000;--分频系数F_DIV_WIDTH:Integer:=32--分频计数器宽度);PORT(clock:INSTD_LOGIC;clock_out:OUTSTD_LOGIC);END;ARCHITECTUREoneO

4、Fint_divISSIGNALclk_p_r:STD_LOGIC;--上升沿输出时钟SIGNALclk_n_r:STD_LOGIC;--下降沿输出时钟SIGNALcount_p:STD_LOGIC_VECTOR(f_div_width-1DOWNTO0);--上升沿脉冲计数器SIGNALcount_n:STD_LOGIC_VECTOR(f_div_width-1DOWNTO0);--下降沿脉冲计数器--SIGNALf_div_width_r:STD_LOGIC_VECTOR(f_div_widt

5、h-1DOWNTO0);SIGNALclock_out_r:STD_LOGIC;SIGNALfull_div_p:STD_LOGIC;--上升沿计数满标志SIGNALhalf_div_p:STD_LOGIC;--上升沿计数半满标志SIGNALfull_div_n:STD_LOGIC;--下降沿计数满标志SIGNALhalf_div_n:STD_LOGIC;--下降沿计数半满标志BEGINclock_out<=clock_out_r;--clock_out<=clockWHEN(F_DIV=1)EL

6、SE((clk_p_r='1'ANDclk_n_r='1')WHEN(F_DIV(0)='1')clk_p_r);-------------------------<<判断计数标志位置位与否.full_div_p<='1'WHEN(count_p

7、(count_n<(F_DIV/2)-1)ELSE'0';PROCESS(clock)--上升沿脉冲计数--VARIABLEi:IntegerRANGE0TO31;BEGINIFRISING_EDGE(clock)THENIFfull_div_p='1'THENcount_p<=count_p+1;IF(half_div_p='1')THENclk_p_r<='0';ELSEclk_p_r<='1';ENDIF;ELSEcount_p<=(OTHERS=>'0');clk_p_r<='0';END

8、IF;ENDIF;ENDPROCESS;PROCESS(clock)--下降沿脉冲计数BEGINIFFALLING_EDGE(clock)THENIFfull_div_n='1'THENcount_n<=count_n+1;IFhalf_div_n='1'THENclk_n_r<='0';ELSEclk_n_r<='1';ENDIF;ELSEcount_n<=(OTHERS=>'0');clk_n_r<='0';ENDIF;ENDIF;ENDPROCESS;PROCESS(cloc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。