EDA课程设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
玉林师范学院EDA课程设计论文
题目:基于EDA技术倒计时器的设计
院(系):电子与通信学院
专业:电信081
学生姓名:黄惠
学号:200805402108
指导老师:甘国妹、陈宇宁
2011年06 月11日
基于EDA技术倒计时器的设计
摘要
本文以Altera公司的DE2开发板为中心,Quartus Ⅱ软件作为开发平台,使用Verilog HDL语言编程,设计了一个倒计时器模型。在程序描述的过程中,用了行为描述方式和结构描述方式二种描述方式对计费器进行描述。该计费器能动态扫描电路,将车费和路显示出来,各有两位小数。整个自动控制系统由三个主要电路构成:里程和车费计算、译码和动态显示。最后给出了仿真的波形,并硬件实现。
关键字:倒计时计数Verilog HDL
引言
Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种用文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。现在,随着系统级FPGA以及片上系统的出现,软硬件协同设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计相结合。
随着电子行业的发展,对出计数器的要求也越来越高,要求倒计
时器性能稳定计数准确,特别是在进行比赛,竞赛中要求在倒计时,显示出正确的时分秒的准确倒计,自动倒记时器自动记录。
设计原理
本文设计了一个倒计时器的模型,其接口信号如图(一) 所示。
图(一)倒计时器模型方框图
倒计时器的状态由分频产生50Hz的clock信号,产生的clock信号来控制秒控制模块,然后分别将时分秒送到动态扫描模块,最后由片选信号控制哪部分译码模块输出的数据用数码管显示。
该数字钟可以实现2个功能:倒计时功能、重置时间功能。其中倒计时模块有3部分构成:秒倒计时器(cent_s)、分倒计时器(cent_m)
和时倒计时器(cent_h)。
当复位后,倒计时器就从23:59:59开始倒计时,倒计时够一分钟,分就相应减少一,当分倒记六十分时,时同理也相应减少一。该倒计时器同时也可以对时分秒进行调整,三个按键可以分别对其对应的部分进行调时。
秒计时器(cent_s)是由一个60进制的计数器构成的,具有置数和计数功能。Reset为置数信号,当reset为1时,秒计时器置数,置值59, clk为驱动秒计时器的时钟。
分计时器(cent_m)是由一个60进制的计数器构成的,具有置数和计数功能。其中reset为清0信号,当reset为0时,分计时器清0;reset 为置数信号,当set为1时,分计时器置数,置值59。
时计时器(cent_h)是由一个24进制的计数器构成的,具有置数和计数功能。其中reset为置数信号,当reset为1时,时计时器置数。
设计内容
一、设计要求说明
设计并实现具有一定功能的数字倒计时器
2、基于Verilog HDL语言描述系统的功能;
3、在quartus II环境中编译通过;
4、仿真通过并得到正确的波形;
5、结论
6、感想
一)源程序
1、分频模块
本分频模块主要是产生50Hz的脉冲,为下一步作准备,一个脉冲代表要减少一秒。
分频模块的功能结构框图
根据模块实现的功能设计Verilog HDL源代码如下:
module fenpin(clkin,clkout);
input clkin;
output clkout;
reg clkout;
reg [24:0] q;
always @(posedge clkin)
begin
if(q==24999999)
begin
q<=0;
clkout<=~clkout;
end
else q<=q+1;
end
endmodule
该模块的clk:全局时钟信号,这里为1Hz的时钟。
在Altera公司的软件工具Quartus Ⅱ(Windows XP环境下)中编译和波形仿真后得到的波形如图1-2所示:
图1-2 计数器分频模块的仿真波形
2、秒控制模块
秒控制的功能结构框图
根据模块实现的功能设计Verilog HDL源代码如下:module cent_s(clk,reset,adj_s,qout);
input clk,reset,adj_s;
output reg[7:0] qout;
always @(posedge clk^adj_s or posedge reset) begin
if(reset)begin qout[7:4]<=5; qout[3:0]<=9;end else if(qout[3:0]==0)
begin
qout[3:0]<=9;
if(qout[7:4]==0) qout[7:4]<=5;
else qout[7:4]<=qout[7:4]-1;
end
else qout[3:0]<=qout[3:0]-1;
end
endmodule
在Altera公司的软件工具Quartus Ⅱ(Windows XP环境下)中编译和波形仿真后得到的波形如图3-2所示:
3、分控制模块
分控制的功能结构框图