ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:40.39KB ,
资源ID:1065609      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1065609.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA课程设计简易数字频率计设计.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

EDA课程设计简易数字频率计设计.docx

1、EDA课程设计简易数字频率计设计1 引言 . . 1 2 简易数字频率计设计原理 . . 22.1基本原理 . . 2 2.2原理框图 . . 2 3 各模块程序及仿真 . . 43.1测频控制发生器ctr 模块的设计 . 4 3.2待测信号计数器counter 模块的设计 . . 4 3.3锁存器regist 模块的设计 . . 5 3.4顶层模块的设计 . . 6 3.5 引脚锁定 . . 7 4 心得体会 . . 9 参考文献 . . 10 附 录 . . 111 引言EDA 技术是以硬件语言为主要的描述方式,以EDA 软件为主要的设计软件,以大规模课编程逻辑器件为载体的数字电路的设计过

2、程。其设计的灵活性使得EDA 技术得以快速发展和广泛应用。 EDA 技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,因此频率计常受到人们的青睐。众所周知,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。本设计基于我们对EDA 技术、数字电子技术的基础知识的理解,用硬件描述语言进行模块电路的设计,用元件例化语句写出频率计的顶层文件,要求我们设计一个四位十进制的简易数字频率计,对1HZ-10MHZ 的方波信号进行测量,测量的方波频率值要在4位数码管上进行显示,根据

3、不同的待测方波信号,频率计分为4个量程进行测量,四个量程分别为乘1,乘10,乘100,乘1000量程,要有一个整体复位控制,并且当量程选择不恰当或者超出10MHZ 时要有错误报告。附录中是用多进程实现的简易频率计设计,实现了本设计要求的所有功能。2 简易数字频率计设计原理2.1基本原理数字频率计的主要功能是测量周期信号的频率。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。频率是单位时间(1秒)内方波信号发生周期变化的次数。在给定的1秒时间内对方波信号波形计数,并将所计数值显示出来,就能读取被测信号的频率。数字频率计首先必须获得相对稳定与准确的时间,然后通过计

4、数器计算这一段时间间隔内的方波脉冲个数并显示出来。这就是数字频率计的基本原理。脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为f N T ,其中f 为被测信号的频率,N 为计数器所累计的脉冲个数,T 为产生N 个脉冲所需的时间。本设计要求基准时钟的频率为6MHZ ,所以需要分频设计产生脉宽为1秒的脉冲。再利用这个脉宽为1秒的脉冲计数,计数器所记录的结果,就是被测信号的频率。因为待测方波信号的频率在1HZ-10MHZ ,所以仅用四位7段数码管无法完全正确显示,所以需要选择恰当的量程来显示待测风波信号的频率,当量程选择不当或者频率超出10MHZ 时,用一个LED 灯点亮来警告我们这样测量

5、有错误。2.2原理框图本设计要求用基准时钟信号(f=6MHZ)的控制完成对1HZ-10MHZ 的方波信号进行测量,使得所测量的方波频率值在4位7段数码管上进行显示,并根据不同的待测方波信号,将频率计分为4个量程进行测量,四个量程分别为乘1,乘10,乘100,乘1000量程,量程的选择分为手动和自动两种。当手动选择量程时,自动量程显示为零,手动量程部分依手动所选量程而定;当手动选择信号不工作时,频率计自动选择比较合适的量程进行显示,手动量程部分显示为零。而且此频率计具有记忆功能,在测量过程中不刷新数据,等数据测量过程结束后才显示测量值,显示测量的频率值,并保存到下一次测量结束。数字频率计还有一个

6、整体的异步清零端,随时可以进行清零操作。此外,数字频率计还有一个不能正确显示待测方波信号频率时的警告灯。数字频率计通过测频控制发生器将基准信号转换成所需要的控制信号clk1和en ,待测信号计数器在en 的控制下对待测信号进行测量并通过锁存器在clk1的控制下按要求进行显示,数字频率计包括测频控制发生器ctr 、待测信号计数器counter 、锁存器regist 三个功能模块,其原理框图如图1所示。 图1 原理框图其中a 是手动选择量程输入端,sd 代表手动量程的显示,rst 是整体异步清零输入端,clk 是频率为6MHZ 的基准时钟,clkin 是待测的方波信号,b 是显示是否超出了频率计的

7、测量范围,zd 是在手动选择量程不工作时频率计进行的自动选择合适的量程显示,q1q4是四位数值从高位到低位的显示结果。3 各模块程序及仿真此设计运用元件例化的方法进行功能的实现,所以各个模块即使相互独立又是彼此联系的,三个模块共同完成方波信号的测量。3.1测频控制发生器ctr 模块的设计设本计要求为该模块ctr 提供的基准信号频率为6MHZ ,所以要做一个12M 分频器控制产生一个脉宽为1秒的周期信号en 和一个锁存信号clk1。rst 为高电平时进行整体异步清零。当en 处于高电平的时候对输入的待测方波信号进行计数测量,当en 处于低电平的时候停止计数,并保持所计数值。当clk1是上升沿的时

8、候将所保持的数值输出显示。此测频控制发生器的仿真结果如图2所示。图2 测频控制发生器的仿真结果 此模块如果仿真12M 分频器很困难,为了看到仿真效果,改成20倍分频器,得到了此仿真结果。如果按程序下载,在硬件上能很清楚的看到由6MHZ 的基准信号得到了脉宽为1秒的控制信号en 和控制输出信号clk1,rst 实现了整体异步清零的功能。3.2待测信号计数器counter 模块的设计该模块通过ctr 模块所产生的脉宽为1秒的en 信号来对待测信号进行计数。用28位二进制数d 进行对待测信号的计数,同时用sel 表示自动量程根据所得数值d 变化,sel 为“0001”时代表乘1,sel 为“0010

9、”时代表乘10,sel 为“0100”时代表乘100,sel 为“1000”时代表乘1000。如果测量选择量程太小或者待测方波信号频率超出10MHZ ,均无法正确显示测量结果,则将b 置高电平进行警告。此待测信号计数器的仿真结果如图3所示。 该模块实现了在en 为高电平时对输入的待测信号clkin 进行测量,当en 为低电平时停止测量并将所计数值输出,即在1秒内待测信号的脉冲数,也就是待测信号的频率值。sel 为根据所计数值自动合理选择的量程,此时sel 为“0001”,代表乘1HZ 的量程,即所测方波信号的频率在9999HZ 之内。3.3锁存器regist 模块的设计该模块用于实现记忆显示,

10、在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。其功能是对四位BCD 码进行锁存并且转换成为对应的4组七段码,用于驱动数码管。其中rst 为高电平时对锁存器进行异步清零。rst 为低电平时正常工作。输入信号a 对锁存器进行控制即手动选择量程,当a 为“0001”时,代表选择乘1档,自动量程显示为零,手动量程显示乘1HZ ,只输出计数所得值d 的低四位并显示在四个十进制数码管上;当a 为“0010”时,代表选择乘10档,自动量程显示为零,手动量程显示乘10HZ ,只输出计数所得值d 的次低四位并显示在四个十进制数码管上;当a 为“0100”时,代表选择

11、乘100档,自动量程部分清零,手动量程显示乘100HZ ,只输出计数所得值d 的次高四位并显示在四个十进制数码管上;当a 为“1000”时,代表选择乘1000档,自动量程部分清零,手动量程显示乘1000HZ ,只输出计数所得值d 的高四位并显示在四个十进制数码管上。当a 为“0000”时,代表不进行手动选择,则手动量程显示为零,自动量程部分根据所计数值进行合理选择。sel 为“0001”代表所测得的频率值在09999HZ 之内,则自动量程显示乘1HZ ,输出所测数值的有效部分并显示在四个十进制数码管上;sel 为“0010”代表所测得的频率值在1000099999HZ 之内,则自动量程显示乘1

12、0HZ ,输出所测数值的有效部分的高四位并显示在四个十进制数码管上;sel 为“0100”代表所测得的频率值在100000999999HZ 之内,则自动量程显示乘100HZ ,输出所测数值的有效部分的高四位并显示在四个十进制数码管上;sel 为“1000”代表所测得的频率值在10000009999999HZ 之内,则自动量程显示乘1000HZ ,输出所测数值的有效部分的高四位并显示在四个十进制数码管上。此锁存与译码器的仿真结果如图4所示。图4 锁存器的仿真结果 提前将sel 的值进行设定并不影响整体的功能。此仿真图中a 为“0001”代表乘1量程,只显示所计数值d 的低四位,即十六进制的“0”

13、 “3” “6” “8”“9”,此时手该模块的仿真为了将各个功能都清晰的显示出来将sel 进行了提前设置,并不是根据所测频率值进行的自动选择。Sel 是输入信号,前提我们已经知道sel 和a 不能同时工作,所以为了使用a ,将sel 人为的提前设成“0000”了,不过如此动量程sd 显示为“0001”, 自动量程zd 显示“0000”代表不工作。3.4顶层模块的设计该模块用元件调用(元件例化语句)实现本设计要求的整体功能。顶层文件的作用是将三个底层文件联系到一起,共同实现该简易数字频率计数器的功能。此处定义了en0,d0,sel0,clko 等四个信号进行底层文件之间以及底层与顶层之间的连接。

14、此模块的仿真结果如图6所示:图5 整体仿真结果 由于顶层模块调用ctr 模块,所以仿真时遇到类似的问题,我们改用12倍分频器来仿真, 则在6个基准信号周期时间内对待测信号计数,所以得到的数值除以6就是待测信号与基准信号的频率倍数关系。所以整体功能仿真结果显示,基准信号周期为200ns ,即频率为5MHZ ,所以此待测信号的频率为50MHZ 。当a 为“0001”时,代表选择乘1HZ 的量程,即显示低四位,此时,手动量程显示为“0001”表示乘1HZ 量程,自动量程显示为“0000”表示不工作。当a 为“0010”时,代表选择乘10HZ 的量程,即显示次低四位,此时,手动量程显示为“0010”表

15、示乘10HZ 量程,自动量程显示为“0000”表示不工作。当rst 为高电平时,输出均为0,则进行了整体异步清零。3.5 引脚锁定硬件下载前,进行引脚锁定,各引脚锁定情况如图6所示图6 引脚锁定图 引脚锁定完成后,再次对设计文件进行编译。重新编译完成后,执行QuartusII 主窗口“Processing”菜单下“Start Programming”,将配置文件下载到ACEX1K 系统的目标芯片EP1K30144-3上,下载适配后,将clk0的6MHZ 频率用短路帽短路,再将clk5的各个频率段不同时用短路帽进行短路并观察数码管上的显示数字,检查是否正确,同时还可以按动键1到键4进行手动选择量

16、程,查看各个部分是否能够完成其功能。可以按键8进行异步清零。最右边四个数码管从左向右是从高位到低位的显示的频率。最左边数码管显示手动选择的量程数值,左边第二个是自动默认选择的量程数值。硬件电路简捷,体积小,所有电路都在一块芯片里,因此性能稳定。4 心得体会作为电信专业的学生,第一次真正体会到自己要完成一个大型的程序还真不是件容易的事。通过上期学的EDA 技术,加上这几天边查资料边请教老师,终于理清了头绪,完成了此次课程设计。刚开始拿到本次程序设计题的时候确实有点儿兴奋,心想着尽量要独立快速而又高质量的完成这次课程设计。但是大概思路有了,觉得特别复杂,我害怕了,一阵慌乱后,终于定下心来了终于找到

17、了一个比较类似的VHDL 程序就尝试着自己开始作起了这个系统的总体框图。平时觉得老师讲课时都特别简的简易数字频率计设计。这也使得我今天的程序颇有类同的感觉。看了几遍课题设计要求和书上给的源程序后对如何写这一方面的程序有了一定的了解,于是单清楚,但是现在自己拿到一个设计要求时,乱阵脚了,但是经过努力,先把封装图画了出来,最终把原理框图画出来了。时间过得真快,马上到周四了,要进实验室做仿真和下载的时候了,刚开始在实验室有点着急,但是老师的新要求提出时,我冷静了,修改程序,做调试,在最后终于成功的完成了符合设计要求的程序,下载后仍有点小问题需要修改。但是毕竟得到了老师的肯定,我的信心更足了。下午又重

18、新整理了自己的思路,功夫不负有心人,终于把问题都解决了。通过这次EDA 课程设计,我对课堂上所学到的理论知识的理解加深了许多, 自己动脑、动手设计的能力也得到了较大提高。在这次课程设计的过程中,我对 VHDL 语言有了更深的认识。通过查阅相关资料和动手设计我发现我以前对 VHDL 语言的认识太过肤浅,认为 VHDL 语言只能用于设计小型的电路系统。但有了更深刻的认识之后我发现学好 VHDL 语言可以设计出大规模的、功能复杂的电路系统。我发现了动手实践的重要性。动手实践是理论知识得以灵活运用的必要前提,也是今后走上工作岗位之后能够很好的完成设计工作的技术保证。只有遇到实际问题并根据自己对课堂上获

19、得的专业知识的理解来解决才能真正的提高自己的能力。这也提醒我在平时的学习生活中不能一味埋头于课本知识,当今社会竞争越来越激烈,社会对人才的要求越来越全面,只有理论知识是远远不够的,必须靠实践作支撑。虽然课设完成了,但是我意识到,我对FPGA 技术仅仅只是停留在入门的阶段,想要有更大的发展,更深入的研究,还需要更多的努力与实践。因此在学习之余我们应该积极参加各种与专业知识有关的实践活动和知识竞赛,巩固所学的理论知识,多注重培养实际动手能力和专业技术能力,这样才能在以后的工作岗位上有所作为。课程设计说明书 参考文献 1 Voknei A.Pedroni.VHDL 数字电路设计教程.电子工业出版社,

20、2008.5 2 潘松,黄继业.EDA 技术实用教程(第二版).科学出版社,2005.2 3 焦素敏.EDA 应用技术.清华大学出版社,2002.4 10 课程设计说明书 附 附录 1: 录 module cymometer(seg7,scan,sysclk,clkin; output6:0seg7; output7:0scan; output led; reg led; input sysclk; /20MHz 时钟信号 input clkin; reg6:0seg7; reg7:0scan; reg25:0cnt; reg clk_cnt; reg2:0cntp1,cntp2,cntp3,

21、cntp4; reg2:0cntq1,cntq2,cntq3,cntq4; reg3:0dat; always(posedge sysclk begin if(cnt=26b1_0111_1101_0111_1000_0100_0000 begin clk_cnt=clk_cnt;cnt=0;end else begin cnt=cnt+1;end end always(posedge clkint begin if(clk_cnt begin if(cntp1=b1001 begin cntp1=b0000; cntp2=cntp2+1; if(cntp2=b1001 begin cntp2

22、=b0000; cntp3=cntp3+1; if(cntp3=b1001 begin cntp3=b0000; cntp4=cntp4+1; if(cntp4=b1001 begin cntp4=b0000; led=1;end end end end else begin cntp1=cntp+1;end end else begin if(cntp1!=b0000|cntp2!=b0000|cntp3!=b0000|cntp4!=b0000 | begin cntq1=cntp1;cntq2=cntp2;cntq3=cntp3;cntq4=cntp4; cntp1=b0000;cntp2

23、=b0000;cntp3=b0000;cntp4=b0000; end end end always begin case(cnt14:13 b00:begin scan=b00000001;dat=cntq1; end b01:begin scan=b00000010;dat=cntq2; end b10:begin scan=b00000100;dat=cntq3; end b11:begin scan=b00001000;dat=cntq4; end 11 课程设计说明书 default:begin scan=bx;dat=bx; end endcase case(dat3:0 4b00

24、00:begin seg76:0=7b1111110:end 4b0001:seg76:0=7b0110000; 4b0010:seg76:0=7b1101101; 4b0011:seg76:0=7b1111001; 4b0100:seg76:0=7b0110011; 4b0101:seg76:0=7b1011011; 4b0110:seg76:0=7b1011111; 4b0111:seg76:0=7b1110000; 4b1000:seg76:0=7b1111111; 4b1001:seg76:0=7b1111011; default:seg76:0=bX; endcase end endmodule 12

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2