实用多功能数字时钟设计verilog汇总Word文档格式.docx
- 文档编号:16428338
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:20
- 大小:603.42KB
实用多功能数字时钟设计verilog汇总Word文档格式.docx
《实用多功能数字时钟设计verilog汇总Word文档格式.docx》由会员分享,可在线阅读,更多相关《实用多功能数字时钟设计verilog汇总Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
但是,VerilogHDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。
当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。
(2)Modelsim简介
Modelsim仿真工具是Model公司开发的。
它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。
(3)Quartus工程说明
创建工程时,路径中不允许有中文。
选择芯片系列:
CycloneII
选择芯片型号:
EP2C8Q208C8
其余直接下一步。
(创建的工程文件名为:
*.qpf文件)
与工程设置:
Assignments->
Settings
弹窗右上角:
Device…
DeviceandPinOptions->
Configuration->
Useconfigurationdevice:
EPCS1
Dual-PurposePins->
nCEO:
UseasregularI/O
创建Verilog文件,和BlockDiagram文件。
完成编译后,下载。
编译:
Processing->
StartCompilation
引脚分配:
PinPlanner
下载程序:
Tools->
Programmer->
HardwareSetup…:
选择对应的下载方式
Mode:
JATG
注意文件名后缀为:
*.sof
并勾选:
Program/Configure
连接下载器线,和USB电源线,点击“Start”下载。
Progress:
绿色100%,完成。
该下载方式:
掉电后消失,须重新下载。
3、硬件设计
(1)主要部件电路图
按键电路图
蜂鸣器电路图
(2)硬件配置
硬件搭建图
引脚配置图
4、软件设计
(1)Modelsim仿真
1.主程序
moduleled(clk,clr,miao,fen1,fen2,shi1,shi2,a,jiaos,jiaof,Ring,
sel,seg);
inputclk,clr;
inputjiaos,jiaof,sel;
outputmiao,fen1,fen2,shi1,shi2,seg;
reg[3:
0]fen1,fen2,shi1,shi2;
regmiao;
0]sfbz;
outputreg[7:
0]a;
outputregRing;
outputreg[1:
0]sel;
outputreg[6:
0]seg;
always@(posedgeclk)
begin
if(clr)
miao<
=0;
else
miao=~miao;
end
always@(posedgemiaoorclr)
a<
elseif(a==8'
d59)
a<
else
=a+1;
if(clr)
fen1<
elseif(jiaof&
&
fen1<
4'
d9)
=fen1+1;
fen1==4'
elseif(fen1==4'
d9&
a==8'
elseif(a==8'
d59&
(a+1)==8'
d60)
elsefen1<
=fen1;
fen2<
fen2<
5)
=fen2+1;
elseif(fen2==5&
fen1==9&
elseif(fen1==9&
else
=fen2;
always@(posedgemiaoorclr)
if(clr)
shi1<
elseif(jiaos&
shi1=shi1+1;
shi1==4'
elseif(shi1==8'
d3&
fen1==8'
fen2==8'
d5&
shi2==4'
d2)
begin
shi2<
end
elseif(fen1==8'
shi1==8'
d9)
=shi1+1;
elseshi1<
=shi1;
shi2=shi2+1;
shi2==2)
=shi2+1;
elseshi2<
=shi2;
always@(fen1orfen2ormiao)
if(fen1==8'
d5)
case(a)
8'
d51:
Ring=1;
d53:
d55:
d57:
d59:
default:
Ring=1'
b0;
endcase
Ring=1'
endmodule
2.测试程序
moduleledtest1;
regclk,clr;
wire[3:
wiremiao;
wireRing;
wire[7:
regjiaos,jiaof;
ledu1(clk,clr,miao,fen1,fen2,shi1,shi2,a,jiaos,jiaof,Ring);
initial
#10clk=1;
#10clr=1;
#10clr=0;
#100jiaof=0;
#100jiaos=0;
#100000jiaof=1;
#100000jiaos=1;
clr=0;
always#10clk=~clk;
3.Modelsm程序仿真
4.程序仿真波形图
(2)Quartus
仿真
moduleled(clk,clr,miao,jiaos,jiaof,Ring,sel,seg);
inputjiaos,jiaof;
outputmiao,seg,sel;
reg[21:
0]div;
regmiao,clkd;
reg[7:
0]seg;
reg[3:
0]sel,nsel;
0]sfbz;
always@(posedgeclk)
if(~clr)
div<
elseif(div==21'
b111111111111111111111)
=div+1;
always@(posedgeclk)
if(~clr)
clkd<
elseif(div==21'
=~clkd;
elseclkd<
=clkd;
always@(posedgeclkd)
always@(posedgemiaoornegedgeclr)
elseif(!
jiaof&
fen2==5)
always@(posedgemiaoornegedgeclr)
if(~clr)
elseif(!
jiaos&
shi2<
=1&
shi2==2&
d3)
shi2==2&
d3)
d2&
shi1==9)
shi1==3)
end
always@(posedgeclkornegedgeclr)
sel<
=4'
b0000;
=nsel;
end
/*always@(posedgeclk)
seg=7'
b11000000;
end*/
always@(sel)
case(sel)
4'
b0000:
nsel=4'
b1000;
b1000:
b0100;
b0100:
b0010;
b0010:
b0001;
b0001:
nsel=4'
case(sel)
sfbz=fen2;
sfbz=fen1;
sfbz=shi2;
sfbz=shi1;
sfbz=4'
always@(sfbz)
case(sfbz)
seg=8'
4'
b11111001;
b10100100;
b0011:
b10110000;
b10011001;
b0101:
b10010010;
b0110:
b10000010;
b0111:
b11111000;
b10000000;
b1001:
b10010000;
default:
seg=7'
2.运行结果
5、课程设计心得体会
xx:
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。
通过这次课程设计,本人在多方面都有所提高。
通过这次课程设计,综合运用本专业所学课程的理论和生产实际知识进行一次汽车尾灯设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了Verilog等课程所学的内容,掌握设计的方法和步骤,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。
经过两周的实习,从刚开始拿到题目到后来做出题目,我学到了很多东西。
同时我也认识到自己的不足,所学知识不能灵活的运用,部分知识还有所欠缺。
本次课程设计,我主要负责硬件部分,通过本次课程设计的编程和对编程过程中遇到的问题的思考.
本次课程设计我们做的是数字钟,这项实验的重点在硬件部分,所以成功的关键就在于引脚的调试。
刚开始所写的程序在硬件调试的正确的,但是在给芯片里烧程序的时候结果出现了错误,经过我们的检查和老师的指导,原来是时钟那块的程序编写有点错误,后来经过几次修改之后,终于正确的显示了,连接电路板之后,一次就成功了。
经过本次课程设计,使我明白以后无论做什么事,一定要严谨,任何小细节都不能放过,有时候一个小问题都有可能是导致失败的原因。
xxx:
本次数字系统设计课程设计,我主要负责的是软件方面的编程。
在开始做该项目之前,首先需要对设计方案有一个全面的认识,把握整体与部分的关系,利用状态机确定相应的状态以及在相应状态下的系统输出控制,还有先态到下一状态的转换条件。
此外也要考虑在非正常状态下的跳转,如校时、校分,确保数字时钟运行中的准确。
在软件方面,我们组是由我和马若男两人来完成的,首先根据题目要求写出相应的主程序以实现计时、校时、响铃等功能,之后写出相应的测试程序以检测主程序是否可行。
期间,我们还遇到一些问题,如数码管的接入方式,测试程序的准确性等,在与同一课题小组的共同讨论及老师的指导中解决了问题,每一次遇到问题、解决问题都是很重要的成长机会,我们能够从中学到更多。
在这次课程设计中,我们组做的是实用多功能数字时钟设计,我们分为软件和硬件两部分,我和另一个同学负责软件,我们需要对quartusii软件和modelsim很熟悉,能够很熟练的应用这两个软件,针对课设题目对时钟设计的各方面功能的要求来编写程序,在编写程序时,首先要有个整体的设计,如:
程序分为几个模块、分别要实现什么功能,如何编写最清楚等。
整理好思路后,我们开始写程序,包括主程序以及测试程序,并通过编译和运行,保证程序的正确性。
同时,在这次课程设计中,我还参与了部分硬件方面的工作,关于硬件方面,首先熟悉并掌握了下载流程和硬件引脚配置问题,将软硬件很好地结合在一起。
后期系统调试以及纠错,需要适当调整程序逻辑以满足硬件对软件的契合度。
总而言之,通过本次课设将已有的理论知识很好地实践,达到了学以致用的目的,完善了知识体系的构成。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用 多功能 数字 时钟 设计 verilog 汇总