EDA数字钟的设计实验报告_第1页
EDA数字钟的设计实验报告_第2页
EDA数字钟的设计实验报告_第3页
EDA数字钟的设计实验报告_第4页
EDA数字钟的设计实验报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成绩指导教师日期五邑大学实验报告实验课程名称:EDA实验 院系名称:信息工程学院 专业名称:通信工程(物联网)(一)实验目的:

设计并实现具有一定功能的数字钟。掌握各类计数器及它们相连的设计方法,掌握多个数码管显示的原理与方法,掌握FPGA的层次化设计方法,掌握VHDL语言的设计思想以及整个数字系统的设计。此数字钟具有时,分,秒计数显示功能,能实现清零,调节小时,分钟以及整点报时的功能。

(二)实验器材:

计算机

一台,EDA实验箱

一台。

(三)实验原理:实验内容:

1.正常的时、分、秒计时功能,分别由6个数码管显示24小时、60分钟,60秒钟的计数器显示。

2.按键实现“校时”“校分”功能;

3.用扬声器做整点报时。当计时到达59’50”时鸣叫。

方案:利用试验箱上的七段码译码器(模式7),采用静态显示,系统时钟选择1Hz。整个系统可以是若干文件组成,用PORT

MAP

实现的方式;也可以是一个文件用多进程方式实现;亦或者是用文本和图形混合的方式实现;亦或者是用LPM参数化模块实现。(五)实验步骤:

1.

新建一个文件夹,命名为shuzizhong.

2.

输入源程序。打开QuartusⅡ,选择File→new命令。在New窗口中的DesignFiles栏选择编译文件-的语言类型,这里选择VHDL

File选项。然后在VHDL文本编译窗口中输入秒模块程序。

秒模块源程序如下:

library

ieee;use

SECOND

isport(clk,clr:in

std_logic;----时钟/清零信号

sec1,sec0:out

std_logic_vector(3

downto

0);----秒高位/低位

co:out

std_logic);-------输出/进位信号end

SECOND;architecture

SEC

of

SECOND

isbeginprocess(clk,clr)variable

cnt1,cnt0:std_logic_vector(3

downto

0);---计数beginif

clr='1'

then----当ckr为1时,高低位均为0cnt1:="0000";cnt0:="0000";elsif

clk'event

and

clk='1'

thenif

cnt1="0101"

and

cnt0="1000"

then----当记数为58(实际是经过59个记时脉冲)co<='1';----进位cnt0:="1001";----低位为9elsif

cnt0<"1001"

then----小于9时cnt0:=cnt0+1;----计数elsecnt0:="0000";if

cnt1<"0101"

then----高位小于5时cnt1:=cnt1+1;elsecnt1:="0000";co<='0';end

if;end

if;end

if;sec1<=cnt1;sec0<=cnt0;end

process;end

SEC;

3.文件存盘。选择File→Save

As命令,找到已经设立的文件夹,存盘文件名应与实体名一致。

4.创建工程。打开并建立新工程管理窗口,选择File→New

Project

Wizard命令,即弹出设置窗口,命名为57。

5.将设计文件加入工程中。单击Next按钮,在弹出的对话框中单击File栏后的按钮,单击Add

All按钮,将与工程相关的所有VHDL文件都加入此工程。

6.选择目标芯片。单击Next按钮,选择目标器件,首先在Device

Family下拉列表框中选择Cyclone系列。分别选择Package为TQFP,Pincount为144和Speed

grade为8,选择此系列的具体芯片为EP3C5E144C8。

7.工具设置。单击Next按钮后,弹出的下一个窗口是EDA工具设置窗口—EDA

Tool

Settings.

8.结束设置。再单击Next按钮后即弹出工程设置统计窗口,单击Finish按钮,即已设定好此工程。

9.全程编译。选择Processing→Start

Compilation命令,启动全程编译。

10.编译成功后,将VHDL文件设置成可调用的文件。在秒模块程序文件SECOND处于打开的情况下,选择菜单File→Creat/Update→Creat

Symbol

Files

for

Current

File,进行封装(元件文件名为SECOND),以便在高层次设计中调用。同时,在编译成功的基础上,选择Processing中的Generate

Functional

Simuliation

Netlist生成仿真文件,以方便之后的仿真使用。

11.

选择File→new命令。在New窗口中的DesignFiles栏选择编译文件的语言类型,这里选择VHDL

File选项。然后在VHDL文本编译窗口中输入分模块程序。然后对分模块程序进行保存、编译,封装成可调用的文件,取名为minute。分模块的源程序如下:

library

ieee;

use

MINUTE

isport(en,setmin,clr,clk:in

std_logic;----时钟/清零信号

MIN1,MIN0:out

std_logic_vector(3

downto

0);----秒高位/低位

co:out

std_logic);-------输出/进位信号end

MINUTE;architecture

MIN

of

MINUTE

isbeginprocess(en,setmin,clr,clk)variable

cnt1,cnt0:std_logic_vector(3

downto

0);---计数beginif

clr='1'

then----当ckr为1时,高低位均为0cnt1:="0000";cnt0:="0000";elsif(clk'event

and

clk='1')

thenif

(en='1'

or

setmin='1')

thenif

cnt1="0101"

and

cnt0="1000"

then----当记数为58(实际是经过59个记时脉冲)co<='1';----进位cnt0:="1001";----低位为9elsif

cnt0<"1001"

then----小于9时cnt0:=cnt0+1;----计数elsecnt0:="0000";if

cnt1<"0101"

then----高位小于5时cnt1:=cnt1+1;elsecnt1:="0000";co<='0';end

if;end

if;end

if;end

iF;MIN1<=cnt1;MIN0<=cnt0;end

process;end

MIN;

12.

选择File→new命令。在New窗口中的DesignFiles栏选择编译文件的语言类型,这里选择VHDL

File选项。然后在VHDL文本编译窗口中输入小时模块程序。然后对分模块程序进行保存、编译,封装成可调用的文件,取名为HOUR.

小时模块的源程序:

library

ieee;use

hour

isport(reset,en

,sethour,clk

:

in

std_logic;

daout

:

out

std_logic_vector(7

downto

0));end

HOUR;architecture

behav

of

HOUR

issignal

count

:

std_logic_vector(3

downto

0);signal

counter

:

std_logic_vector(3

downto

0);beginp1:

process(reset,sethour,en)beginif

reset='1'

then

count<="0000";

counter<="0000";

elsif(clk'event

and

clk='1')

then

if

(en='1'

or

sethour

='1')

then

if

(counter<2)

then

if

(count=9)

then

count<="0000";

counter<=counter

+

1;

else

count<=count+1;

end

if;

else

if

(count=3)

then

count<="0000";

counter<="0000";

else

count<=count+1;

end

if;

end

if;

end

if;

end

if

;

end

process;daout(7

downto

4)<=counter;daout(3

downto

0)<=count;end

behav;

13.

绘制原理图。选择File→new命令。在New窗口中的DesignFiles栏选择编译文件的语言类型,这里选择Block

Diagram/Schematic选项,按OK按钮后将打开原理图编辑窗口。双击原理图编辑窗口任何位置,弹出输入文件的对话框,分别在Name栏键入元件名input、SECOND、minute、HOUR和输出引脚output,并用单击拖动的方法参考电路图接好电路,作为本项工程的顶层电路原理设计图。

14.全程编译。选择Processing→Start

Compilation命令,启动全程编译。

15.引脚锁定。

选择Assignments→Assignments

Edi按模式七设置设置相应引脚。

16.

编译文件下载。打开编程窗和配置文件。首先将适配板上的JTAG口和USB或并口通信线连好,打开电源,在工程管理窗口选择Tool→Programmer命令,弹出如图所示的编程窗口,编程模式选择JPEG,并选中下载文件右侧的第一个小方框。

17.设置编程器。选择USB-Blaster,单击左上角的Hardware

Setup按钮,在弹出的窗口中设置下载接口方式。向FPGA下载SOF文件前,要选择打钩Program/Configure项,最后单击下载标示符Start按钮,即进入对目标器件FPGA的配置下载操作。当Progress显示出100%以及在底部的处理栏中出现“Configuration

Succeeded”时,便是编程成功。

18.观察数码管的秒、分钟和小时的情况。(六)实验结果:秒模块编译成功:

生成波形文件成功:仿真成功:数字钟编译成功:仿真成功:选择芯片类型:引脚锁定:下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论