最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

EDA课程设计用VHDL实现数字时钟的设计

来源:动视网 责编:小OO 时间:2025-09-25 07:01:12
文档

EDA课程设计用VHDL实现数字时钟的设计

课程设计任务书课程名称EDA与数字系统课程设计学生姓名学号专业班级指导教师2008年12月用VHDL实现数字时钟的设计胡升摘要:以一款数字钟设计为例,较详细的介绍了如何用VHDL语言设计数字电路,并给出了部分程序、仿真波形图,并在MAX+pluslI中进行编译、仿真、下载。由此说明利用VHDL开发数字电路的优点。关键词:VHDL;设计;数字钟;应用电路0引言VHDL硬件描述语言在电子设计自动化(EDA)中扮演着重要的角色,它的出现极大的改变了传统的设计方法、设计过程乃至设计观念。由于采用了“自
推荐度:
导读课程设计任务书课程名称EDA与数字系统课程设计学生姓名学号专业班级指导教师2008年12月用VHDL实现数字时钟的设计胡升摘要:以一款数字钟设计为例,较详细的介绍了如何用VHDL语言设计数字电路,并给出了部分程序、仿真波形图,并在MAX+pluslI中进行编译、仿真、下载。由此说明利用VHDL开发数字电路的优点。关键词:VHDL;设计;数字钟;应用电路0引言VHDL硬件描述语言在电子设计自动化(EDA)中扮演着重要的角色,它的出现极大的改变了传统的设计方法、设计过程乃至设计观念。由于采用了“自


课 程 设 计 任 务 书

课程名称EDA与数字系统课程设计

学生姓名
学    号

专业班级
指导教师
2008年 12月

用VHDL实现数字时钟的设计

胡升

摘要:以一款数字钟设计为例,较详细的介绍了如何用VHDL语言设计数字电路,并给出了部分程序、仿真

波形图,并在MAX+pluslI中进行编译、仿真、下载。由此说明利用VHDL开发数字电路的优点。

关键词:VHDL;设计;数字钟;应用电路

0 引言

VHDL硬件描述语言在电子设计自动化(EDA)中扮演

着重要的角色,它的出现极大的改变了传统的设计方法、设

计过程乃至设计观念。由于采用了“自顶向下”(Top一13own)

的全新设计方法,使设计师们摆脱了大量的辅助设计工作,

而把精力集中于创造性的方案与概念构思上,用新的思路来

发掘硬件设备的潜力,从而极大地提高了设计效率,缩短了

产品的研制周期。

这种设计方法首先从系统设计人手,在顶层进行功能方

框图的划分和结构设计。在方框图一级进行仿真、纠错,并

用硬件描述语言对高层次的系统行为进行描述,在系统一级

进行验证。然后用综合优化工具生成具体门电路的网表,其

对应的物理实现级可以是印刷电路板或专用集成电路。由

于设计的主要仿真和调试过程是在高层次上完成的,这不仅

有利于早期发现结构设计上的错误,避免设计工作的浪费,而

且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。

1 用vHDL设计一款数字钟

我们设计的数字时钟原理框图如图1。其基本功能划

分为:计数模块(包括秒、分、时)、译码模块、扫描显示控制模

块。计数模块由两个60进制计数器和一个12进制计数器组

成,分别对秒、分、小时进行计数,当计数到23点59分59秒

的时候,即一天结束,计数器清零,新的一天重新开始计数。

⋯ ‘ - - 一一 ’ - - 一一一一一一 ‘ - 一’ ^

图1 数字时钟原理框图

秒计数器的计数时钟信号为1Hz的标准信号,可以由系

统板上提供的4MHz信号通过2 分频得到。秒计数器的进

位输出信号作为分钟计数器的计数信号,分钟计数器的进位

输出信号又作为小时计数器的计数信号。设计一个同时显示时、分、秒6个数字的数字钟,则需要6个七段显示器。若

同时点亮这6个七段显示器,则电路中会产生一个比较大的

电流,很容易造成电路烧坏,我们通过扫描电路来解决这一

问题,通过产生一个扫描信号CS(0)一CS(5)来控制6个七

段显示器,依次点亮6个七段显示器,也就是每次只点亮一

个七段显示器。只要扫描信号cs(0)一cs(5)的频率超过人

的眼睛视觉暂留频率24Hz以上,就可以达到尽管每次点亮

单个七段显示器,却能具有6个同时显示的视觉效果,而且

显示也不致闪烁抖动。

其中6位扫描信号一方面控制七段显示器依次点亮,一

方面控制6选1选择器输出相应显示数字。

2 模块设计

2.1 VHDL语言的基本结构

一个的设计实体通常包括:实体(ENTITY)、结构

体(ARcHITECrURE)、配置(CONFIGI瓜AT10N)、包集合

(PAcKGE)、和库(LIB1 )5个部分。其中实体用于描述

所设计的系统的外部接口信号;构造体用于描述系统内部的

结构和行为;建立输入和输出之间的关系;配置语句安装具

体元件到实体一结构体对,可以被看作是设计的零件清单;

包集合存放各个设计模块共享的数据类型、常数和子程序

等;库是专门存放预编译程序包的地方

2.2.1 计数模块(建立VHDL语言的工程文件)

计数模块由两个60进制计数器和一个24进制计数器

组成,分别对秒、分、小时进行计数。其VHDL源程序相差

不大由于篇幅有限,这里我们以秒模块的实现为例。程序如

下:十二进制计数器

module jsq12(qh,ql,clk,reset);

output[3:0]qh;

output[3:0]ql;

reg[3:0]qh;

reg[3:0]ql;

input clk,reset;

always@(posedge clk or negedge reset)

begin

if(~reset){qh,ql}<=1;

else begin

if({qh,ql}==8'h12){qh,ql}<=1;

else begin

if(ql==9)begin ql<=0;qh<=qh+1;end

else

ql<=ql+1;

end

end

end

endmodule

六十进制计数器

module jsq60(qh,ql,jw,clk,reset);

output[3:0]qh;

output[3:0]ql;

output jw;

input clk,reset;

reg[3:0]qh;

reg[3:0]ql;

reg jw;

always@(posedge clk or negedge reset)

begin

if(~reset){qh,ql,jw}<=0;

else begin

if({qh,ql}==8'h59) begin{qh,ql}<=0;jw<=1;end

else begin

if(ql==9)begin ql<=0;qh<=qh+1;jw<=0;end

else

ql<=ql+1;jw<=0;

end

end

end

endmodule

数码显示模块

module sel(in1,in2,in3,in4,in5,in6,in7,in8,clk,ms1,ms2,

ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g);

input clk;

input [3:0] in1,in2,in3,in4,in5,in6,in7,in8;

output ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;

reg ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;

reg [3:0]  temp,flag;

always@(posedge clk)

begin

{ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8}=8'b00000000;

flag=flag+1;

case (flag)

0:begin temp=in1;ms1=1;end

1:begin temp=in2;ms2=1;end

2:begin temp=in3;ms3=1;end

3:begin temp=in4;ms4=1;end

4:begin temp=in5;ms5=1;end

5:begin temp=in6;ms6=1;end

6:begin temp=in7;ms7=1;end

7:begin temp=in8;ms8=1;end

endcase

case(temp)

4'd0:{a,b,c,d,e,f,g}=7'b1111110;

4'd1:{a,b,c,d,e,f,g}=7'b0110000;

4'd2:{a,b,c,d,e,f,g}=7'b1101101;

4'd3:{a,b,c,d,e,f,g}=7'b1111001;

4'd4:{a,b,c,d,e,f,g}=7'b0110011;

4'd5:{a,b,c,d,e,f,g}=7'b1011011;

4'd6:{a,b,c,d,e,f,g}=7'b1011111;

4'd7:{a,b,c,d,e,f,g}=7'b1110000;

4'd8:{a,b,c,d,e,f,g}=7'b1111111;

4'd9:{a,b,c,d,e,f,g}=7'b1111011;

4'hA:{a,b,c,d,e,f,g}=7'b1110111;

4'hB:{a,b,c,d,e,f,g}=7'b0011111;

4'hC:{a,b,c,d,e,f,g}=7'b1001110;

4'hD:{a,b,c,d,e,f,g}=7'b0111101;

4'hE:{a,b,c,d,e,f,g}=7'b1001111;

4'hF:{a,b,c,d,e,f,g}=7'b1000111;

default:{a,b,c,d,e,f,g}=7'b1111110;

endcase

end

endmodule

3 各模块的编译、仿真

各模块设计完成后,就要对其进行功能仿真。打开

MAX+plusII,选择菜单File/New命令,进入出现对话框选

择中选择“Text Editor File”选项,即进入文本编辑方式新建

一个工程。在编译之前要此工程设置为当前工程。若没有

错误则编译通过。新建仿真文件,输入保存。

4 综合

在编译各模块的同时,生成符号文件,把各符号文件按照

逻辑功能连接起来(如图4),当然也可以利用元件例化语句进

行,然后加上输入输出端口构成顶层系统然后在进行编译。

程序下载至芯片

1)点击主菜单Assign/Pin/Location/Chip进行芯片脚位

设置。2)将实体定义的端口名字和下载芯片的管脚进行具

体对应。3)最后再进行一次编译,这时系统将产生可以向

EPFIOKIO下载的文件。4)将带芯片的实验板通过下载电

缆与计算机并口相连,然后给实验板通电。5)打开下载窗

口选择下载方式、下载器件型号最后点击Configure按钮将

程序写入芯片中。连接外围器件即可工作。

6 结束语

本文通过数字钟实现的例子展现出了现代电子设计新

方法一EDA技术的灵活性,层次化设计方式的优点。VHDL

语言具有很强的电路描述和建模能力,能从多个层次对数字

系统进行建模和描述,从而大大简化了硬件设计任务,提高

了设计效率和可靠性。用VHDL语言实现电路

参考文献

EDA数字系统设计。机械工业出版社(李国立 朱维勇 李铭)

文档

EDA课程设计用VHDL实现数字时钟的设计

课程设计任务书课程名称EDA与数字系统课程设计学生姓名学号专业班级指导教师2008年12月用VHDL实现数字时钟的设计胡升摘要:以一款数字钟设计为例,较详细的介绍了如何用VHDL语言设计数字电路,并给出了部分程序、仿真波形图,并在MAX+pluslI中进行编译、仿真、下载。由此说明利用VHDL开发数字电路的优点。关键词:VHDL;设计;数字钟;应用电路0引言VHDL硬件描述语言在电子设计自动化(EDA)中扮演着重要的角色,它的出现极大的改变了传统的设计方法、设计过程乃至设计观念。由于采用了“自
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top