太原理工大学eda课程设计-数字秒表.docx

上传人:b****9 文档编号:142174 上传时间:2022-10-04 格式:DOCX 页数:15 大小:409.45KB
下载 相关 举报
太原理工大学eda课程设计-数字秒表.docx_第1页
第1页 / 共15页
太原理工大学eda课程设计-数字秒表.docx_第2页
第2页 / 共15页
太原理工大学eda课程设计-数字秒表.docx_第3页
第3页 / 共15页
太原理工大学eda课程设计-数字秒表.docx_第4页
第4页 / 共15页
太原理工大学eda课程设计-数字秒表.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

太原理工大学eda课程设计-数字秒表.docx

《太原理工大学eda课程设计-数字秒表.docx》由会员分享,可在线阅读,更多相关《太原理工大学eda课程设计-数字秒表.docx(15页珍藏版)》请在冰豆网上搜索。

太原理工大学eda课程设计-数字秒表.docx

课程设计课程名称:

EDA技术与FPGA应用设计课设题目:

秒表实验地点:

信息学院楼CPLD实验室专业班级:

学号:

学生姓名:

指导教师:

张文爱2016年5月24日一、设计要求1、设计一个计时范围为0.01s-60min的数字秒表。

2、计时器有6位显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分。

3、设置一个启动信号和一个归零信号,以便秒表能随意停止及启动。

4、计时到60分钟后,蜂鸣器响10声(实验中用led灯闪烁代替)。

二、设计原理由频率信号输出端输出频率为100HZ的时钟信号,输入到0.0秒模块的时钟端clk,0.01秒模块为10进制的计数器,产生的进位信号count输入到下一级秒模块的时钟端,以此类推,直到分模块计数到59进60时,产生的进位信号不输出,计数清零。

将0.01秒、秒、分产生的计数通过置数/位选再通过显示模块实时显示。

根据秒表的计时要求,秒表结构由以下几部分组成:

1、4个十进制计数器,分别对应百分之一秒,十分之一秒,个秒和个分位。

2、2个六进制计数器,分别对应十秒和十分位。

3、分频器,产生100Hz的计时脉冲。

4、显示译码器,完成BCD码到7段码的译码。

5、显示控制模块,完成6个数码显示器的扫描显示控制。

6、蜂鸣信号产生模块。

用输入S控制产生“00”、“01”和“10”代表归零、启动信号、分别连接按键开关;CLK_50M代表计数时钟信号,同实验板上50MHz时钟源连接;蜂鸣器鸣响信号SPEAKER接蜂鸣器的输入;7段码输出LED6.0接显示模块的段信号输入口。

三、设计仪器1、PC机一台。

2、CPLD/FPGA适配器板:

标准配置CycloneIVEEP4CE115F29C7接口板,下载接口是数字芯片的下载接口(DIGITALJTAG),主要用于CPLD/FPGA芯片的数据下载。

3、实验箱四、设计过程

(一)子模块设计1、十进制计数器本实验中使用四个十进制计数器分别对应百分之一秒,十分之一秒,个秒和个分位。

计数器从0000开始计数计数到1001时进位,自动清零并且通过count进位输出到下一个计数器的脉冲,从而触发下一个计数器工作。

源程序libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitycount10isport(clr,start,clk:

instd_logic;cout:

outstd_logic;daout:

outstd_logic_vector(3downto0);endcount10;architectureBehavioralofcount10issignaltemp:

std_logic_vector(3downto0);beginprocess(clk,clr)beginifclr=1thentemp=0000;cout=1001thentemp=0000;cout=1;elsetemp=temp+1;cout=0;endif;endif;endif;daout=temp;endprocess;endBehavioral;生成模块2、六进制计数器实验中使用2个六进制计数器,分别对应十秒和十分位。

当对应秒位和分位十进制计数器计数到1001时触发六进制计数器从0000开始工作,直到0101,自动清零并且触发下一个计数器或者蜂鸣器。

源程序libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitycounter6isport(clr,start,clk:

instd_logic;daout:

outstd_logic_vector(3downto0);cout:

outstd_logic);endcounter6;architectureBehavioralofcounter6issignaltemp:

std_logic_vector(3downto0);beginprocess(clk,clr)beginifclr=1thentemp=0000;cout=0;elsif(clkeventandclk=1)thenifstart=1theniftemp=0101thentemp=0000;cout=1;elsetemp=temp+1;cout=0;endif;endif;endif;endprocess;daout=temp;endBehavioral;形成器件3、分频器模块本实验需要100Hz的时钟,则需要对50MHZ进行500000次分频,所以计数器计数250000次产生触发脉冲。

源程序libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityDIVisport(clr,clk:

instd_logic;clk_100:

bufferstd_logic);endDIV;architectureBehavioralofDIVissignalcounter:

integerrange0to249999;beginprocess(clr,clk)beginif(clk=1andclkevent)thenifclr=1thencounter=0;elsifcounter=249999thencounter=0;clk_100=notclk_100;elsecounter=counter+1;endif;endif;endprocess;endBehavioral;形成器件4、控制模块通过对按键按下次数的计数实现启动/暂停/清零功能,分别对应“00”、“01”和“10”。

源程序libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;ENTITYKEYISPORT(S:

INSTD_LOGIC;CLR,START:

OUTSTD_LOGIC);endKEY;ARCHITECTUREBehavioralOFKEYISSIGNALQ1:

STD_LOGIC_VECTOR(1DOWNTO0):

=00;BEGINPROCESS(S)ISBEGINIFSEVENTANDS=1THENIFQ1=10THENQ1=00;ELSEQ1CLR=1;STARTCLR=0;STARTCLR=0;STARTCLR=1;START=0;ENDCASE;ENDPROCESS;endBehavioral;形成器件5、蜂鸣信号产生模块源程序libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityALARMisport(ci,clk:

instd_logic;Q:

bufferstd_logic);endALARM;architectureBehavioralofALARMisbeginprocess(CI,CLK)beginifCI=1thenforiin0to9loop-闪烁十次if(clk=1andclkevent)thenQ=1;elseQledledledledledledledledledledled=NOT0000000;endcase;endprocess;endBehavioral;形成器件

(二)顶层模块设计实验总体电路图如图所示,由分频模块,0.01秒模块,秒模块,分模块,扫描模块,数码管模块和译码器模块组成。

其中clr为复位信号低电平有效,start为启停开关,高电平有效。

当50MHZ时钟信号clk经分频器clk后分频为一个100Hz脉冲。

100HZ脉冲作为0.01秒计数信号输入使0.01秒模块为以一百十进制计数,满一百后进位,进位信号作为秒信号时钟使秒模块以六十进制计数,满六十后进位,进位信号作为分信号时钟使分模块以六十进制计数。

0.01秒模块的个位和十位,秒模块的个位和十位,分模块的个位和十位分别输出作为扫描模块的输入信号。

扫描模块选择输出信号,经过译码器和七段数码管显示时间。

全局编译引脚锁定下载测试五、心得体会通过本次课程设计我对所学知识有了更加深刻的认识,对EDA和VHDL语言有了更加深入的理解,在课程设计过程中,我学会了自顶而上的模块化设计的方法,通过分别设计各个子模块的设计并封装成库,在进行顶层设计的时候使用原理图设计的方法完成整个的设计。

这次设计让我对EDA的使用和设计有了更深刻的认识和掌握,也对所学习的知识进行了有效的检验和实践,加深了对知识的掌握。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1