通信工程应用技术综合训练与实习课设报告.docx

上传人:牧羊曲112 文档编号:2094583 上传时间:2023-01-09 格式:DOCX 页数:30 大小:159.62KB
返回 下载 相关 举报
通信工程应用技术综合训练与实习课设报告.docx_第1页
第1页 / 共30页
通信工程应用技术综合训练与实习课设报告.docx_第2页
第2页 / 共30页
通信工程应用技术综合训练与实习课设报告.docx_第3页
第3页 / 共30页
通信工程应用技术综合训练与实习课设报告.docx_第4页
第4页 / 共30页
通信工程应用技术综合训练与实习课设报告.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《通信工程应用技术综合训练与实习课设报告.docx》由会员分享,可在线阅读,更多相关《通信工程应用技术综合训练与实习课设报告.docx(30页珍藏版)》请在三一办公上搜索。

1、武汉理工大学通信工程应用技术综合训练与实习报告课程设计任务书学生姓名: 王博弈 专业班级: 通信gj1001 指导教师: 黄 铮 工作单位: 武汉理工大学 题 目: 初始条件:要求学生已完成通信专业各主干课程的学习,通过本课设进一步掌握专业课程群的综合原理、操作技能,形成基本的解决实践问题的知识体系,提高学生对现代通信系统的全面认识。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.阅读verilog语言相关数据2.完成数字钟功能分析3.编写各个模块verilog代码4.综合、编译5.通过仿真波形和RTL验证功能6.完成说明书撰写时间安排:2014年1月 6

2、日 布置任务;2014年1月 7日10日 查阅资料,确定设计方案;2014年1月 11日16日 完成仿真、制作实物等;2014年1月 17日 完成答辩。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录摘要4Abstract51综述62分频模块设计72.1 分频模块verilog代码72.2代码分析82.2.1信号定义82.2.2功能分析82.3仿真93校时模块设计103.1校时模块代码103.2代码分析103.2.1信号定义103.2.2功能分析113.3仿真114计时处理模块设计134.1计时处理模块代码134.2代码分析144.2.1信号定义144.2.2功能分析144

3、.3仿真155显示模块设计165.1显示模块代码165.2代码分析185.2.1信号定义185.2.2功能分析185.3仿真196顶层模块设计206.1顶层模块代码206.2代码分析206.2.1信号定义207总结21参考文献22附录 verilog代码清单23(一)分频模块23(二)校时模块24(三)计时处理模块25(四)显示模块26(五)顶层模块29摘要本设计运用所学的verilog语言设计一个数字钟,实现基本计时、校时功能。Verilog语言是用来进行FPGA项目开发的标准程序语言,不同于c语言的是,verilog语言是一种硬件编程语言。语句通过综合器综合出来的器件之间的连接关系来实现功

4、能。运用FPGA进行项目开发,相比于运用传统的数字电子技术开发具有速度快、效率高、容易修改和调试等优点。故本设计采用了硬件编程语言进行数字钟的设计,通过设计实现了数字钟的基本功能,碍于硬件条件限制无法获取FPGA芯片或开发板,本设计在quartus2开发环境下进行仿真验证功能。AbstractThe use of design verilog language learned to design a digital clock, basic time, school functions.Verilog language is a standard programming language us

5、ed for FPGA development projects, unlike the c language is, verilog language is a hardware programming language. Statement to implement the functions by connecting the synthesizer integrated relationship between devices out. Using FPGA project development, compared to the use of traditional digital

6、electronic technology development with high speed, high efficiency, easy to modify and debug advantages.Therefore, the design uses a digital clock hardware programming language design, by designing the basic functions of digital clock, due to hardware constraints can not obtain FPGA chip or board, t

7、he design in quartus2 development environment for simulation functions.1综述一个完整的时钟应该由五部分组成:秒脉冲发生电路、计数处理模块、显示模块、校时模块和报时模块。由于本设计并没有硬件实现条件(无FPGA芯片或开发板),故省略报时模块的设计。故本设计将围绕分频模块、校时模块、计时处理模块、显示模块和顶层设计模块来讲述,其中显示模块以DE2开发板的数码管为硬件连接进行设计,在实际应用中可根据相应电路进行数码管显示参数微调即可。一个时钟的准确与否主要取决于秒脉冲的精确度,为了保证设计准确,本设计以常用的24MHz晶振作为时

8、钟源进行分频从而得打1Hz的秒脉冲。分频获得正常即使信号sec_1(1Hz)、校秒信号sec_s、校分信号sec_m和校时信号sec_h。色丁四个键:正常/校时模式选择键keysel、校秒键key_s、校分键key_m、校时键key_h,通过这四个键可用于控制时钟的正常计时、校时。除了校时电路以外,还要完成暂停和清零功能。2分频模块设计2.1 分频模块verilog代码module divclk( clk, sec_1, sec_s, sec_m, sec_h );input clk;output sec_1, sec_s, sec_m, sec_h ;reg23:0 count1;reg22

9、:0 count2;reg19:0 count3;reg12:0 count4;reg sec_1, sec_s, sec_m, sec_h;always( negedge clk )begincount1 = count1 + 1;if( count1 = 24d12582912 )begincount1 = 25h0;sec_1 = sec_1;endendalways( negedge clk )begincount2 = count2 + 1;if( count2 = 23d6291456 )begincount2 = 24h0;sec_s = sec_s;endendalways(

10、negedge clk )begincount3 = count3 + 1;if( count3 = 20d629146 )begincount3 = 21h0;sec_m = sec_m;endendalways( negedge clk )begincount4 = count4 + 1;if( count4 = 13d6292 )begincount4 = 16h0;sec_h = sec_h;endendendmodule2.2代码分析2.2.1信号定义Clk:基准时钟信号输入Sec_1:周期为1秒的信号输出Sec_s:周期为0.5秒的信号输出Sec_m:周期为0.01秒的信号输出Se

11、c_h:周期为0.0005秒的信号输出2.2.2功能分析分频的关键在于设置不同进位规则的计数器。模块开始定义了count1、count2、count3、count4位宽不同的寄存器,分别用于四种输出信号的计数。以1s信号输出为例,在always引导的过程语句中设置了negedge clk条件,即当时钟下降沿到来时执行always块中的语句,即count1计数器加1,然后通过if语句判断count1是否到达24d12582912,即是否达到0.5s。若达到则清零计数器并将sec_1取反。通过上述过程便实现了将24Mz信号分频成1Hz秒信号的目的。另外三种信号的产生机制与秒信号一样,只是改变了计数

12、器的范围。2.3仿真由于verilog硬件编程语言的特性,需要综合出多个计数器和计数过程,对24MHz分频成1Hz的仿真耗时太久,故本设计采用RTL图方式来分析结果。图2-1 模块RTL图可以看到模块RTL图中的clk作为所有器件的时钟信号,四个计数器分别与1送入加法器实现加1操作,结果送入一个等号判断器,当判断结果为真时使能寄存器,输出结果。通过RTL图分析设计符合功能要求。3校时模块设计3.1校时模块代码module modify( clk, keysel, key_s, key_m, key_h, sec_1, sec_s, sec_m, sec_h, sec );input clk,

13、keysel, key_s, key_m, key_h;input sec_1, sec_s, sec_m, sec_h;output sec;reg sec;always( negedge clk )beginif(!keysel)beginif(!key_s)sec = sec_s;if(!key_m)sec = sec_m;if(!key_h)sec = sec_h;endelsesec = sec_1;endendmodule3.2代码分析3.2.1信号定义Clk:基准时钟信号输入Keysel:校时状态/正常计时状态选择键输入Key_s:校秒信号选择键输入Key_m:校分信号选择键输入

14、Sec_1:周期为1s的信号输入Sec_s:周期为0.5秒的信号输入Sec_m:周期为0.01秒的信号输入Sec_h:周期为0.0005秒的信号输入Sec:计时信号输出3.2.2功能分析校时模块有always引导的过程块构成,在时钟下降沿到来时执行操作。通过if语句判断按键keysel状态,低电平则进入其内,继续判断是否为key_s,、key_m、 key_h中的任何一个,若是则将相应的校时信号赋值给sec计时信号输出。若keysel为高电平则不进行校时。通过上述语句块便可以实现校时/正常计时状态切换以及校时输入功能。3.3仿真图3-1 仿真结果上图为方正结果图,可以看出sec信号在对应的各个

15、功能按键按下的过程中均进行了对应的变化。以16us左右key_h被置为低电平,此时sec_h信号被幅值给sec,可以看到sec在这个时间段内的频率和相位与sec_h一致,说明校时成功。为了保证设计的严谨性,本设计在时序分析成功的条件下给出RTL图。图3-2 RTL图4计时处理模块设计4.1计时处理模块代码module counttime( sec, keyclr, keyen, min );input sec;input keyclr, keyen;output23:0 min;reg23:0 min;always(posedge sec)beginif(!keyclr)beginif(!ke

16、yclr)beginmin = 24h0;endelseif(!keyen)beginmin = min+1 ;if(min3:0 = 4h6)beginmin7:4 = 4h0;min11:8 = min11:8+1;if(min11:8 = 4ha)beginmin11:8 = 4h0;min15:12 = min15:12+1;if(min15:12 = 4h6)beginmin15:12 = 4h0;min19:16 = min19:16 + 1;if(min19:16 = 4ha )beginmin19:16 = 4h0;min23:20 = min23:20 + 1;endif(

17、min23:16 = 8h24 )min23:16 = 0;endendendendendendendmodule4.2代码分析4.2.1信号定义Sec:计时信号输入Keyclr:计时清零键Keyen:计时开始键Min:计时结果输出4.2.2功能分析计时处理模块属于本设计中比较复杂和重要的部分。通过if判断清零和计时开始按键的状态,计时开始后执行min信号加1,然后判断min信号的低四位是否取到10,若取到则需要向秒十位进位,即在min信号47位做加1处理。当秒信号十位满6时则想分信号进位,以此实现逐级的秒、分、时计时功能。在最后需要判断min信号的1623位是否为24,若为24则说明24小时

18、计时已满,需要对计数器清零。至此可实现计数处理的功能。4.3仿真本模块RTL图如下所示。图4-1 RTL图5显示模块设计5.1显示模块代码module display( clk, sec, min, sled_reg, sl_reg, seg_reg );input clk, sec ;input23:0 min ;output7:0 sled_reg ;output3:0 sl_reg;output7:0 seg_reg ;reg7:0 sled_reg ;reg3:0 sl_reg ;reg7:0 seg_reg ;reg15:0 count ;reg3:0 ledbuf;always(n

19、egedge clk)begincount = count+1;endalways(count11:10)begincase(count11:10)2h0:ledbuf = min3:0;2h1:ledbuf = min7:4;2h2:ledbuf = min11:8;2h3:ledbuf = min15:12;endcasecase(count11:10)2h0:sl_reg = 4b0111;2h1:sl_reg = 4b1011;2h2:sl_reg = 4b1101;2h3:sl_reg = 4b1110;endcaseendalways(ledbuf)begincase(ledbuf

20、)4h0:sled_reg = 8hc0;4h1:sled_reg = 8hf9;4h2:sled_reg = 8ha4;4h3:sled_reg = 8hb0;4h4:sled_reg = 8h99;4h5:sled_reg = 8h92;4h6:sled_reg = 8h82;4h7:sled_reg = 8h8;4h8:sled_reg = 8hc80;4h9:sled_reg = 8hc90;4ha:sled_reg = 8hc88;4hb:sled_reg = 8hc83;4hc:sled_reg = 8hcc6;4hd:sled_reg = 8hca1;4he:sled_reg =

21、 8hc86;4hf:sled_reg = 8hc8e;endcaseif( ( count11:10 = 2b10 )&sec )sled_reg = sled_reg&8h7f;endalways(min23:16)begincase(min23:16)8h0:seg_reg = 8h3f ;8h1:seg_reg = 8h06 ;8h2:seg_reg = 8h5b ;8h3:seg_reg = 8h4f ;8h4:seg_reg = 8h66 ;8h5:seg_reg = 8h6d ;8h6:seg_reg = 8h7d ;8h7:seg_reg = 8h07 ;8h8:seg_reg

22、 = 8h7f ;8h9:seg_reg = 8h6f ;8h10:seg_reg = 8h77 ;8h11:seg_reg = 8h7c ;8h12:seg_reg = 8hbf ;8h13:seg_reg = 8h86 ;8h14:seg_reg = 8hdb ;8h15:seg_reg = 8hcf ;8h16:seg_reg = 8he6 ;8h17:seg_reg = 8hed ;8h18:seg_reg = 8hfd ;8h19:seg_reg = 8h87 ;8h20:seg_reg = 8hff ;8h21:seg_reg = 8hef ;8h22:seg_reg = 8hf7

23、 ;8h23:seg_reg = 8hfc ;endcase endendmodule5.2代码分析5.2.1信号定义Clk:基准时钟信号输入Min:当前计时结果输入Sec:计时的秒信号输入Sled_reg:数码管段码输出Sl_reg:数码管位码输出Seg_reg:单个数码管输出5.2.2功能分析实现显示功能的代码虽然比较多,但是基本思路比较简单,通过case语句块将对应的数据幅值给数码管,从而完成显示功能。数码管的赋值编码根据不同的硬件电路连接有不同形式,本设计仅针对DE2开发板的数码管形式进行编码。5.3仿真图5 显示模块RTL鸟瞰图由于无法获取FPGA芯片或开发板,显示功能无法通过下载到

24、硬件进行验证,故本设计生成了显示模块的RTL图。因显示模块的RTL图较长,排版的限制故只截取鸟瞰图。6顶层模块设计6.1顶层模块代码module digitalclocktop(clk, keysel, key_s, key_m, key_h, keyen, keyclr, sled,sl,seg);output7:0 sled;output3:0 sl;output7:0 seg;input clk;input keysel, key_s, key_m, key_h, keyen, keyclr;reg24:0 count;wire23:0 min;wire sec;wire sec_s,

25、sec_m, sec_h, sec_1;divclk Q1(clk, sec_1, sec_s, sec_m, sec_h );modify Q2( clk, keysel, key_s, key_m, key_h, sec, sec_1, sec_s, sec_m, sec_h );counttime Q3(sec, keyclr, keyen, min);diaplay Q4( clk, sec, min, sled, sl,seg );endmodule6.2代码分析6.2.1信号定义Clk:基准时钟信号输入Keysel:校时状态/正常计时状态选择键输入Key_s:校秒信号选择键输入Ke

26、y_m:校分信号选择键输入Key_h:校时信号选择键输入Keyclr:计时清零建Keyen:计时开始键Sled:四位数码管段码输出Sl:四位数码管位码输出seg:单个数码管输出7总结通过这次设计,我发现自身在verilog语言运用上还有很多不足。虽然在大三的时候学过verilog的课程,但是当时并没有做太多的编程练习,这次设计中发现自己对于硬件编程语言的特性和语法并没有完全掌握,比如各个模块之间的例化、verilog语法等等都不是很熟。设计中查阅了相关书籍,巩固了自己的verilog知识,这是在设计层面的收获。通过体会FPGA的开发方法,让我意识到数字电子系统的快速开发流程是怎么样的,数字电子

27、技术早已不是上个世纪的那种门电路组合的游戏,而是通过EDA工具在PC上进行大规模设计和应用的一门专业。运用EDA软件可以大大缩短项目的时间成本,改进后的开发方式更加人性化和个性需求化。今后在工作和学习中还是应该更多地将理论与实践相结合,多动手操作各种软件和CPU,才能真正提高自身的综合研究与开发能力。参考文献1 陈明义.电工电子实验教程.中南大学出版,2010年2 康华光.电子技术基础模拟部分(第四版).高等教育出版社,1999年3 康华光.电子技术基础数字部分(第四版).高等教育出版社,2000年4 李振声.实验电子技术.国防工业出版社,2001年5 任为民.电子技术基础课程设计.中央广播电

28、视大学出版社,1997年附录 verilog代码清单(一)分频模块module divclk( clk, sec_1, sec_s, sec_m, sec_h );input clk;output sec_1, sec_s, sec_m, sec_h ;reg23:0 count1;reg22:0 count2;reg19:0 count3;reg12:0 count4;reg sec_1, sec_s, sec_m, sec_h;always( negedge clk )begincount1 = count1 + 1;if( count1 = 24d12582912 )begincount

29、1 = 25h0;sec_1 = sec_1;endendalways( negedge clk )begincount2 = count2 + 1;if( count2 = 23d6291456 )begincount2 = 24h0;sec_s = sec_s;endendalways( negedge clk )begincount3 = count3 + 1;if( count3 = 20d629146 )begincount3 = 21h0;sec_m = sec_m;endendalways( negedge clk )begincount4 = count4 + 1;if( co

30、unt4 = 13d6292 )begincount4 = 16h0;sec_h = sec_h;endendendmodule(二)校时模块module modify( clk, keysel, key_s, key_m, key_h, sec_1, sec_s, sec_m, sec_h, sec );input clk, keysel, key_s, key_m, key_h;input sec_1, sec_s, sec_m, sec_h;output sec;reg sec;always( negedge clk )beginif(!keysel)beginif(!key_s)sec

31、 = sec_s;if(!key_m)sec = sec_m;if(!key_h)sec = sec_h;endelsesec = sec_1;endendmodule(三)计时处理模块module counttime( sec, keyclr, keyen, min );input sec;input keyclr, keyen;output23:0 min;reg23:0 min;always(posedge sec)beginif(!keyclr)beginif(!keyclr)beginmin = 24h0;endelseif(!keyen)beginmin = min+1 ;if(m

32、in3:0 = 4h6)beginmin7:4 = 4h0;min11:8 = min11:8+1;if(min11:8 = 4ha)beginmin11:8 = 4h0;min15:12 = min15:12+1;if(min15:12 = 4h6)beginmin15:12 = 4h0;min19:16 = min19:16 + 1;if(min19:16 = 4ha )beginmin19:16 = 4h0;min23:20 = min23:20 + 1;endif( min23:16 = 8h24 )min23:16 = 0;endendendendendendendmodule(四)

33、显示模块module display( clk, sec, min, sled_reg, sl_reg, seg_reg );input clk, sec ;input23:0 min ;output7:0 sled_reg ;output3:0 sl_reg;output7:0 seg_reg ;reg7:0 sled_reg ;reg3:0 sl_reg ;reg7:0 seg_reg ;reg15:0 count ;reg3:0 ledbuf;always(negedge clk)begincount = count+1;endalways(count11:10)begincase(co

34、unt11:10)2h0:ledbuf = min3:0;2h1:ledbuf = min7:4;2h2:ledbuf = min11:8;2h3:ledbuf = min15:12;endcasecase(count11:10)2h0:sl_reg = 4b0111;2h1:sl_reg = 4b1011;2h2:sl_reg = 4b1101;2h3:sl_reg = 4b1110;endcaseendalways(ledbuf)begincase(ledbuf)4h0:sled_reg = 8hc0;4h1:sled_reg = 8hf9;4h2:sled_reg = 8ha4;4h3:

35、sled_reg = 8hb0;4h4:sled_reg = 8h99;4h5:sled_reg = 8h92;4h6:sled_reg = 8h82;4h7:sled_reg = 8h8;4h8:sled_reg = 8hc80;4h9:sled_reg = 8hc90;4ha:sled_reg = 8hc88;4hb:sled_reg = 8hc83;4hc:sled_reg = 8hcc6;4hd:sled_reg = 8hca1;4he:sled_reg = 8hc86;4hf:sled_reg = 8hc8e;endcaseif( ( count11:10 = 2b10 )&sec

36、)sled_reg = sled_reg&8h7f;endalways(min23:16)begincase(min23:16)8h0:seg_reg = 8h3f ;8h1:seg_reg = 8h06 ;8h2:seg_reg = 8h5b ;8h3:seg_reg = 8h4f ;8h4:seg_reg = 8h66 ;8h5:seg_reg = 8h6d ;8h6:seg_reg = 8h7d ;8h7:seg_reg = 8h07 ;8h8:seg_reg = 8h7f ;8h9:seg_reg = 8h6f ;8h10:seg_reg = 8h77 ;8h11:seg_reg =

37、8h7c ;8h12:seg_reg = 8hbf ;8h13:seg_reg = 8h86 ;8h14:seg_reg = 8hdb ;8h15:seg_reg = 8hcf ;8h16:seg_reg = 8he6 ;8h17:seg_reg = 8hed ;8h18:seg_reg = 8hfd ;8h19:seg_reg = 8h87 ;8h20:seg_reg = 8hff ;8h21:seg_reg = 8hef ;8h22:seg_reg = 8hf7 ;8h23:seg_reg = 8hfc ;endcase endendmodule(五)顶层模块module digitalc

38、locktop(clk, keysel, key_s, key_m, key_h, keyen, keyclr, sled,sl,seg);output7:0 sled;output3:0 sl;output7:0 seg;input clk;input keysel, key_s, key_m, key_h, keyen, keyclr;reg24:0 count;wire23:0 min;wire sec;wire sec_s, sec_m, sec_h, sec_1;divclk Q1(clk, sec_1, sec_s, sec_m, sec_h );modify Q2( clk, k

39、eysel, key_s, key_m, key_h, sec, sec_1, sec_s, sec_m, sec_h );counttime Q3(sec, keyclr, keyen, min);diaplay Q4( clk, sec, min, sled, sl,seg );endmodule本科生课程设计成绩评定表姓 名性 别专业、班级题 目:答辩或质疑记录:成绩评定依据:序号内容分值得分1态度认真、学习刻苦、遵守纪律202实验方法正确,仪器使用得当,测试结果正确253电路原理及实验结果分析正确254设计报告的规范化、参考文献充分105课程设计答辩20最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号