EDA技术与VerilogHDL课程论文.docx

上传人:h**** 文档编号:100889 上传时间:2018-07-06 格式:DOCX 页数:11 大小:68.70KB
下载 相关 举报
EDA技术与VerilogHDL课程论文.docx_第1页
第1页 / 共11页
EDA技术与VerilogHDL课程论文.docx_第2页
第2页 / 共11页
EDA技术与VerilogHDL课程论文.docx_第3页
第3页 / 共11页
EDA技术与VerilogHDL课程论文.docx_第4页
第4页 / 共11页
EDA技术与VerilogHDL课程论文.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、 EDA 技术与 Verilog HDL 课程论文 简单的时钟设计 学院 :信息科学与工程学院 班级: xx 班 姓名: xxx 学号: xx 教师: xx 一设计要求概述 1设计要求 1)具有时、分、秒计数显示功能,以 24 小时循环计时。 2)具有清零,调节小时、分钟功能 (加入了整点报时,闪光灯的特效 )。 2设计目的 1)数字钟学习的目的是掌握多位计数器相连的设计方法; 2)掌握十进制、六进制、二十四进制计数器的设计方法; 3)巩固多位共阴极扫描显示数码管的驱动及编码; 4)掌握 CPLD、 FPGA 技术的层次化设计方法 二基于 Verilog HDL 语言的电路设计、仿真与综合 本

2、程序采用结构化设计方法,将其分为彼此独立又有一定联系的三个模块 (一) 顶层模块 , 如图 1 所示: (二) 子模块 1.分频器 脉冲发生电路将实验箱 48MHz 的频率分频成 1Hz(供系统时钟), 2Hz(快L o c a t io n P IN _ R 1 6O p t i o n V a l u eV C CS1 IN P U TL o c a t io n P IN _ P 1 4O p t i o n V a l u eV C CS2 IN P U TL o c a t io n P IN _ J 3O p t i o n V a l u eV C CCP IN P U TL o

3、 c a t io n P IN _ M 4L o c a t io n P IN _ F 3L o c a t io n P IN _ F 4O p t i o n V a l u eSEL 2. . 0O U T P U TL o c a t io n P IN _ L 1 4O p t i o n V a l u eLEDO U T P U TL o c a t io n P IN _ N 4L o c a t io n P IN _ G 4L o c a t io n P IN _ H 4L o c a t io n P IN _ L 5L o c a t io n P IN _ L

4、4L o c a t io n P IN _ K 4L o c a t io n P IN _ K 5O p t i o n V a l u eLED AG 6. . 0O U T P U TCP C Pou tf en pinins t 1C Po utS1S2R ETH ou r 5. . 0M inu t e 5. . 0Se c on d 5. . 0LEDk on gz hiq iins t 2V C CR ET IN P U TC Po utH ou r 5. . 0M inu t e 5. . 0Se c on d 5. . 0SE L 2. . 0LE D AG 6. . 0x

5、 ian s hiins t速校分、校时)以及 1KHz 和 500KHz(供闹钟电路)。 例如 1000 分频 源程序如下: module fenpin(input CP, output CPout ); reg CPout; reg 31:0 Cout; reg CP_En; always (posedge CP ) /将 50MHz 分频为 1kHz begin Cout 55)/整点倒计时 begin if(LED=1) LED=0; else LED=1; end else LED=0; if(R8=1)/清零 begin Hour=0; Minute=0; Second=0; R8

6、=0; end end end endmodule 功能仿真波形如图 3 所示: 3显示器 显示器的作用是将时 分 秒的值在数码管上依次显示出来。从分频器输出的 1Khz 的信号作为数码管的扫描信号。 SEL 表示三个数码管选择位,它的取值表示八个数码管,从左至右依次是 111000。LEDGA 表示七段数码管,它的取值决定特定位数上显示的数字。 源程序如下: module xianshi( CPout,Hour,Minute,Second,SEL,LEDAG ); input CPout; input Hour, Minute, Second; output SEL, LEDAG; reg

7、2:0 SEL; reg 6:0 Led; reg 3:0 shi1,ge1,shi2,ge2,shi3,ge3; always (posedge CPout ) begin shiwei1=Hour/10; gewei1=Hour%10; shiwei2=Minute/10; gewei2=Minute%10; shiwei3=Second/10; gewei3=Second%10; if(SEL=3b110) /判断位选 SEL 的值,并将 此位上的值 输出到数码管 case(shiwei1) 4b0000: Led = 7b0111_111; 4b0001: Led = 7b0000_1

8、10; 4b0010: Led = 7b1011_011; 4b0011: Led = 7b1001_111; 4b0100: Led = 7b1100_110; 4b0101: Led = 7b1101_101; 4b0110: Led = 7b1111_101; 4b0111: Led = 7b0000_111; 4b1000: Led = 7b1111_111; 4b1001: Led = 7b1101_111; default: Led = 7b0000_000; endcase if(SEL=3b101) case(gewei1) 4b0000: Led = 7b0111_111;

9、4b0001: Led = 7b0000_110; 4b0010: Led = 7b1011_011; 4b0011: Led = 7b1001_111; 4b0100: Led = 7b1100_110; 4b0101: Led = 7b1101_101; 4b0110: Led = 7b1111_101; 4b0111: Led = 7b0000_111; 4b1000: Led = 7b1111_111; 4b1001: Led = 7b1101_111; default: Led = 7b0000_000; endcase if(SEL=3b100) Led=7b1000_000; i

10、f(SEL=3b011) case(shiwei2) 4b0000: Led = 7b0111_111; 4b0001: Led = 7b0000_110; 4b0010: Led = 7b1011_011; 4b0011: Led = 7b1001_111; 4b0100: Led = 7b1100_110; 4b0101: Led = 7b1101_101; 4b0110: Led = 7b1111_101; 4b0111: Led = 7b0000_111; 4b1000: Led = 7b1111_111; 4b1001: Led = 7b1101_111; default: Led

11、= 7b0000_000; endcase if(SEL=3b010) case(gewei2) 4b0000: Led = 7b0111_111; 4b0001: Led = 7b0000_110; 4b0010: Led = 7b1011_011; 4b0011: Led = 7b1001_111; 4b0100: Led = 7b1100_110; 4b0101: Led = 7b1101_101; 4b0110: Led = 7b1111_101; 4b0111: Led = 7b0000_111; 4b1000: Led = 7b1111_111; 4b1001: Led = 7b1

12、101_111; default: Led = 7b0000_000; endcase if(SEL=3b001) Led=7b1000_000; if(SEL=3b000) case(shiwei3) 4b0000: Led = 7b0111_111; 4b0001: Led = 7b0000_110; 4b0010: Led = 7b1011_011; 4b0011: Led = 7b1001_111; 4b0100: Led = 7b1100_110; 4b0101: Led = 7b1101_101; 4b0110: Led = 7b1111_101; 4b0111: Led = 7b

13、0000_111; 4b1000: Led = 7b1111_111; 4b1001: Led = 7b1101_111; default: Led = 7b0000_000; endcase if(SEL=3b111) case(gewei3) 4b0000: Led = 7b0111_111; 4b0001: Led = 7b0000_110; 4b0010: Led = 7b1011_011; 4b0011: Led = 7b1001_111; 4b0100: Led = 7b1100_110; 4b0101: Led = 7b1101_101; 4b0110: Led = 7b1111

14、_101; 4b0111: Led = 7b0000_111; 4b1000: Led = 7b1111_111; 4b1001: Led = 7b1101_111; default: Led = 7b0000_000; endcase SEL = SEL + 3d1; end assign LEDAG=Led; endmodule 三实验结果描述 实验显示的数字钟具有时、分、秒小时功能,以 24 小时循环计时;具有清零,调小时、分钟功能。具有 整点报时功能,且在整点报时的同时 LED 灯花样显示。满足了实验设计的各个要求 。 四 .心得体会 刚才开始接触逻辑设计会觉得很简单:因为 verilog 的语法不多,半天就可以把书看完了。但是很快就发现这个想法是错误的, 因为会发现 综合器怎么和自己的想法差别这么大:竟然连用 for 循环写的一个计数器都不认识!原因是做逻辑设计的思维和做软件的很不相同,我们需要从电路的角度去考虑问题。我们设计的是数字电路,它是由很多很多的与非门及 D 触发器构成的,上电之后所有与非门和 D 触发器都同时工作,不会因为 A 触发器的代码描述在 B 触发 器之前 A触发器就是先工作,事实上, RTL 级代码的代码先后顺序在综合成网表文件后这种顺序就消失了,取代的是基本逻辑电路之间的互联关系

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。