《EDA技术及应用》实训报告1  系统设

1.1 设计要求

1.1.1 设计任务

设计并制作一台数字日历。

1.1.2 性能指标要求

⑴用Verilog HDL语言设计一个数字日历。

⑵数字日历能显示年、月、日、时、分和秒。

⑶通过开关分别控制对年、月、日或时、分、秒校对及自动切换、,并且

运用按钮对年、月、日或时、分、秒校对。

⑷通过按钮对数码管全部清零。

1.2 设计思路及设计框图

1.2.1设计思路

通过EDA课程的学习,可知运用Verilog HDL语言设计一个数字日历

括计时器模块(jsq60、jsq)、年月日模块(nyr2016)、控制模块(contr)、

校时选择模块(mux_4)、显示选择模块(mux_16);然后将各个模块连接起来画成原理图再下载到实训仪上,调节开关及按钮来实现数字日历的功能。

1.2.2总体设计框图

2  各个模块程序的设计

地电平,用于万年历的自动倒换的显  ⑴使用了一个16分频的电路,输出rc是周期为16秒的方波,即8秒高电平、8秒示模式。

分析:如图所示,其中,clk是1秒时钟输入端,k1和k2是控制输入端,当k1k2=00或11时是自动显示模式,控制数码显示器用8秒钟时间显示年、月、日,另外8秒时钟时间显示时、分、秒;当k1k2=01时,仅显示年、月、日,同时用j1,j2,和j3校秒、校分、校时;当k1k2=10时,仅显示年、月、日,同时用j1、j2和j3校日、校月和校年;k是控制输出端。

⑵分别设计一个能显示年月日和时分秒的程序

校准年月日和秒分时的原理图如下:

分析:①当k=0时,开关j1,j2,j3校秒时分然后将信号分别送到jsq模块的jm(校秒)、jf(校分)、js(校时)。

②当k=1时,开关j1,j2,j3校年月日然后将信号分别送到nyr2009模块的jr(校日)、jy(校月)、jn(校年)。

计算年月日的模块如下:

分析:clrn是异步清除输入端,低电平有效;clk是时钟输入端,上升沿有效;jn、jy和jr分别是校年、校月、校日输入端;qn[15..0]、qy[7..0]、qr[7..0]分别是年、月、日的输出端。

显示时分秒与年月历的模块如下:

分析:①当k=0时,把jsq送来的时分秒的状态信号送到数码管显示。

②当k=1时,把nyr2016送来的年月日的状态信号送到数码管显示。

计算时分秒的模块如下:

分析: clrn是异步清除输入端,低电平有效;clk是时钟输入端,上升沿有效;jm、jf和js分别是校秒、校分、校时输入端;qm[7..0]、qf[7..0]、qs[7..0]分别是年、月、日的输出端;cout是进位;clkcout是由clk控制的秒秒脉冲。

⑶计时器24的模块如下:

3  调试过程

在这一次实训中我选择的是数字日历电路的设计。首先按照实训题目的要求进行电路的设计,编写好程序画好原理图;然后用Quartus9.0进行程序的调试和修改,看看那些地方有错误就把错误的地方改正;最后来到实验室下载到试验箱进行题目要求的验证和调试。

4  功能测试

4.1 测试仪器与设备

EDA实训仪的I/O设备 1台

4.2 性能指标测试

⑴数字日历能够显示年、月、日、时、分和秒。

⑵用EDA实训仪上的8只八段数码管分两屏分别显示年、月、日和时、分、秒,即在一定时间段内显示年、月、日,然后在另一时间段内显示时、分、秒,两个时间段能自动倒换。

⑶数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时。

4.3 误差分析

无须误差分析

5  实训心得体会

这次实训,做的是万年历,在上课上的是刚好做过,觉得挺简单的,觉得挺放松,不过为了与老师在上课上做得不同,就小小的设计一个亮灯功能。不过真正做起来的时候发现了很多问题,因为上课的时候匆匆忙忙的完成万年历,当时对程序还不是很熟悉,要看书了解各条语句,对操作也不是太熟悉,要请教同学,但最终还是完成了,不过在验收的时候不能全部回答老师提出的问题,说明在EDA道路上还有走很长的道路。努力加油吧。通过这次EDA实训,我学会并熟悉运用quartus软件,非常感谢黄金海老师的耐心指导

6  参考文献

EDA技术与应用/江国强编著.——4版.电子工业出版社,2013。

附录

附录1:仿真波形图(部分模块)

cnt60模块仿真波形图

contr模块仿真波形图

mux-4模块仿真波形图

nyr2016模块仿真波形图

附录2:程序清单

⑴基于Verilog HDL的控制模块contr

module contr(clk,k1,k2,k);

input clk,k1,k2;

output reg k;

reg [3:0] qc;

reg rc;

always @(posedge clk)

begin qc=qc+1;

if (qc<8) rc=0;

else rc=1;

case ({k1,k2})

0:k=rc;

1:k=0;

2:k=1;

3:k=rc;

endcase

end

endmodule

⑵基于Verilog HDL的校时选择模块mux_4

module mux_4(k,jm,jf,js,jr,jy,jn,j1,j2,j3);

input k,j1,j2,j3;

output reg jm,jf,js,jr,jy,jn;

always

begin

if (k==0) {jm,jf,js}={j1,j2,j3};

else {jr,jy,jn}={j1,j2,j3};

end

endmodule

⑶基于Verilog HDL的显示模块mux_16

module mux_16(k,qm,qf,qs,qr,qy,qn,q);

input k;

input[7:0] qm,qf,qs,qr,qy;

input[15:0] qn;

output reg [31:0] q;

always

begin

if (k==0) begin

q[31:24]=0;

q[23:0]={qs,qf,qm};end

else q={qn,qy,qr};

end

endmodule

⑷基于Verilog HDL的年月日模块nyr2016

module nyr2016(clrn,clk,jn,jy,jr,qn,qy,qr);

input         clrn,clk,jn,jy,jr;

output [15:0] qn;  //年为4位有效数字,要16位显,赋值

output [7:0]  qy,qr; //月和日为2位有效数字,8位显示

reg  [15:0]   qn;

reg [7:0]     qy,qr;

reg           clkn,clky;//日的进位和月的进位

reg [7:0]     date;//日的中间变量年

reg           clkn1,clkn2,clkn3;//的个、十、百位的进位

initial  begin clkn1=1;clkn2=1;clkn3=1;end//初始化程序

initial  begin qn='h2000;qy=1;qr=1;end

always @(posedge (clk^jr) or negedge clrn)//校日程序

begin

if (~clrn) qr=1;

else begin

if (qr==date) qr=1;//每个月的天数不同,所以赋值的data不一样

else qr=qr+1;

if (qr[3:0]=='ha) begin

qr[3:0]=0; qr[7:4]=qr[7:4]+1;end

if  (qr==date)  clky = 1;

else clky = 0;end

end

always @(posedge clky^jy or negedge clrn)//月程序

begin

if (~clrn) qy=1;

else begin

if (qy=='h12) qy=1;

else qy=qy+1;

if (qy[3:0]=='ha) begin

qy[3:0]=0;qy[7:4]=qy[7:4]+1;end

if  (qy=='h12)  clkn = 1;

else clkn = 0;end

end

always

begin

case (qy)//不同月的天数选择

'h01: date='h31;

'h02:   begin

if ((qn%4==0)&(qn%100 != 0)|(qn%400==0)) date='h29;

else date='h28; end//闰年和非闰年二月的天数判断

'h03: date='h31;

'h04: date='h30;

'h05: date='h31;

'h06: date='h30;

'h07: date='h31;

'h08: date='h31;

'h09: date='h30;

'h10: date='h31;

'h11: date='h30;

'h12: date='h31;

default :date='h30;

endcase

end

always @(posedge (clkn^jn) or negedge clrn )//年程序

begin

if (~clrn) qn[3:0]=0;//个位进位程序

else begin if(qn[3:0]==9) qn[3:0]=0;

else qn[3:0]=qn[3:0]+1;

if (qn[3:0]==9) clkn1=0;

else clkn1=1;end

end

always @(posedge clkn1 or negedge clrn )

begin

if (~clrn) qn[7:4]=0;//十位进位程序

else begin if(qn[7:4]==9) qn[7:4]=0;

else qn[7:4]=qn[7:4]+1;

if (qn[7:4]==9) clkn2=0;

else clkn2=1;end

end

always @(posedge clkn2 or negedge clrn )

begin

if (~clrn) qn[11:8]=0;//百位进位程序

else begin if(qn[11:8]==9) qn[11:8]=0;

else qn[11:8]=qn[11:8]+1;

if (qn[7:4]==9) clkn3=0;

else clkn3=1;end

end

always @(posedge clkn3 or negedge clrn )//年程序显示程序

begin

if (~clrn) qn[15:12]=2;

else if(qn[15:12]==9) qn[15:12]=0;

else qn[15:12]=qn[15:12]+1;

end

endmodule

⑸基于Verilog HDL计数器jsp

全部资料51hei下载地址:

EDA万年历.rar

(1.2 MB, 下载次数: 122)

2018-5-14 17:46 上传

点击文件名下载附件

日历android实训报告,EAD万年历实训报告及Verilog HDL源码相关推荐

  1. 北京电子科技学院c语言实验报告,最新单片机 实训报告电子万年历实训报告.doc...

    最新单片机 实训报告电子万年历实训报告 河南工程学院 单片机 实训报告 学 院 电气信息工程学院 专 业 电气工程及其自动化 组员及学号 李 东 盼 201250712138 高 辉 20125071 ...

  2. Android毕业设计——基于Android+Tomcat的网络视频探索系统设计与实现(毕业论文+程序源码)——网络视频探索系统

    基于Android+Tomcat的网络视频探索系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Android+Tomcat的网络视频探索系统设计与实现,文章末尾附有本毕业设计的论文和源 ...

  3. android毕业设计——基于Android+Tomcat+JavaEE的旧物交易平台设计与实现(毕业论文+程序源码)——旧物交易平台

    基于Android+Tomcat+JavaEE的旧物交易平台设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Android+Tomcat+JavaEE的旧物交易平台设计与实现,文章末尾附有 ...

  4. Android AR开发实践之七:OpenGLES相机预览背景绘制源码详解

    Android AR开发实践之七:OpenGLES相机预览背景绘制源码详解 目录 Android AR开发实践之七:OpenGLES相机预览背景绘制源码详解 一.OpenGL ES渲染管线 1.基本处 ...

  5. 万年历java课程设计报告_java万年历课程设计报告2010

    一.课程设计任务及要求 (1)设计任务: 编写一个Java 万年历程序,实现日期和星期的查询. (2)设计要求: 1.主界面采用边界布局,北面是一个设置年月的控制面板,中间是日历绘制区: 2.单击&q ...

  6. android序列帧动画纯代码,H5序列帧动画实现过程(附源码)

    H需朋者说上事是础一发一开程和开数的目前间5序列帧动画实现过程(新直能分支调二浏页器朋代说,事刚附源码) 序列帧动画 序列帧.轻厅设近幸松.备近幸松.备近幸松.备近动画,又称为逐帧动画,是使用多张连续 ...

  7. Android第三方微博、无线传输、动画特效、商城应用等源码

    Android精选源码 Android汽车助手源码 一个酷炫的Android特效源码 新浪微博的第三方客户端.UI遵循Material Design. Android实现旋转木马布局多种效果 Andr ...

  8. Android应用系列:完美运行GIF格式的ImageView(附源码)

    前言 我们都知道ImageView是不能完美加载Gif格式的图片,如果我们在ImageView中src指定的资源是gif格式的话,我们将会惊喜的发觉画面永远停留在第一帧,也就是不会有动画效果.当然,经 ...

  9. 【Android 逆向】ART 脱壳 ( 修改 /art/runtime/dex_file.cc#OpenCommon 系统源码进行脱壳 )

    文章目录 一.要修改的源码 /art/runtime/dex_file.cc#OpenCommon 二.修改 /art/runtime/dex_file.cc#OpenCommon 函数源码进行脱壳 ...

最新文章

  1. mybatis自动生成代码工具
  2. spring boot 注解_Spring-Boot项目中如何配置redis注解缓存?
  3. 李彦宏称AI可让人们获得永生
  4. Unity The Type Matching Rule
  5. 基于服务器端保存用户的查询参数
  6. 遗传算法求二元函数极值怎么编码_遗传算法求解一元函数二元函数最值
  7. 面试官,求你了别再问我TCP三次握手和四次挥手了(含面试题)
  8. MyBatis常用配置解析-Properties标签
  9. java drawimage 参数_小程序中canvas的drawImage方法参数使用详解
  10. Spark启动程序:Master
  11. yolo mark的使用(转)
  12. [转自华尔街的强帖]怎样才能嫁给有钱人
  13. 微信小程序点餐系统的设计与实现
  14. SCARA四轴机器人丝杆花键_视频图文为你揭秘SCARA机器人!马了备用!
  15. 搭建git服务器 web项目,git服务器搭建web项目
  16. JAVA生成word中有Excel文档
  17. Java读取docx文档乱码求解决
  18. 安卓六大布局之 线性布局(LinearLayout)
  19. onClick事件的三种写法
  20. 2.2 线性微分方程与常数变易法

热门文章

  1. 曾轶可机场这事儿,她的超级粉丝罗永浩怎么看?
  2. Cocos图片加密与解密
  3. 使用TASSEL学习GWAS笔记(6/6):TASSEL结果可视化:QQ plot,曼哈顿图
  4. [翻译] [LaTeX] Misplaced \noalign
  5. 浅谈无线网络在未来工厂中应用的可能性
  6. 在VC6 0中使用GDI+的两种办法
  7. JAVA面试知识点个人整理
  8. FTP文件服务器使用点滴
  9. 如何进行自动化测试?提高测试效率,缩短开发周期。
  10. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ② 如何实现 微信小程序蓝牙控制 Ble Mesh模组 安信可TB02,全部开源!