FPGA 频率计的设计_第1页
FPGA 频率计的设计_第2页
FPGA 频率计的设计_第3页
FPGA 频率计的设计_第4页
FPGA 频率计的设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程设计说明书课程:EDA技术基础题目: 频率计的设计显示及数制转换模块学生姓名:邓道聃学 号: 201256110232班 级: 电信1202专 业: 物理与电子科学学院指导教师: 贺慧勇2014年12月22日长沙理工大学课程设计任务书物理与电子科学 学院 电信 专业 1202 班 姓名 邓道聃 课程名称 EDA技术基础 题 目 频率计的设计 同组设计者:郭宇,文闯,魏月怡用FPGA设计一个频率计,测量TTL电平方波信号的频率。具体要求如下: (1)测量频率范围: 10Hz100kHz (2)数字显示,全测量范围精度:2 %(3)测量速度不低于每秒10次(4)量程选择:拨码开关或键控(5)

2、 自行设计简易方波信号发生器,测试验证频率计性能发挥部分:(1)自动量程(2)提高精度(3)拓宽量程(4)等精度方案(5)周期测量(6)上电自检或键控自检。 工作计划(1)时间本课程设计安排2周时间: 2014.12.22 2015.1.2 (2)进度安排第1周周一周二:查阅资料,拿出整体设计方案,划分模块;第1周周三至周五:各模块的设计、调试、验证。第2周周三前完成项目整体调试和测试。第2周周三周四文档写作整理第2周周五:答辩讨论指导教师:贺慧勇 唐立军 文勇军钟海丽 周晓萍 唐俊龙 2014年12月22 日教研室意见:同意。教研室主任 文勇军 2014年12月23 日长沙理工大学课程设计成

3、绩评定表学生姓名: 邓道聃 学号: 201256110232 专业班级: 电信1202 课程设计题目: 抢答计时器的设计 评分项目要求分值得分学习态度学习态度认真,遵守纪律。10设计方案调研充分,方案设计合理。20工作量完成了任务书规定的工作量。实际设计、调试效果好。40设计报告完全符合撰写规范要求,结构严谨,逻辑性强,层次清晰,表述准确,文字流畅。20答辩准备充分,概念清楚,能准确流利地回答各种问题。10总分备注:成绩: 指导教师: 年 月 日目 录1设计内容.12设计方案.23方案实施.34方案验证和结果分析.65心得体会.7参考文献.9附件.10设计内容:1. 二十进制转换:由于经过计数

4、器测量而后输出的频率为二进制常数,译码器无法处理,需要转换成十进制BCD码在输出给译码器。2. 显示模块:通过译码器处理BCD码输出给显示管使显示管能够显示出正确的数字。设计方案:1.二十进制转换:二十进制转换模块的功能是把二进制数转换成十迸制数BCD码。由于转换电路对速度没有要求,为节省硬件资源,转换电路由时序逻辑电路构成,由时钟控制转换过程的进行。本转换模块需要将20位二进制数转换成7位BCD码,设置7个BCD码计数器,分别为a00a06。如果除法运算未完成,则处于等待状态,完成了则开始转换,首先把二迸制数送入暂存器a,a00a06清零,当时钟上升沿到来时,如果a大于999999时,则a自

5、减1000000,同时a00自加l,如果a大于99999时,则a自减100000,同时a0l自加l,如此下去,直到a<9,则停止计算,同时把a的值赋给a09。然后再把a00a09相并后送给BCD则得到10位BCD码输出。2.显示模块:译码电路的主要功能是把二十进制转换得到的BCD码送给数码管显示,为节省管脚数,数码管采用动态扫描的方式显示,则译码输出由数据总线和数码管的位选总线构成,由于采用的数码管为共阴极数码管,则低电平表示该数码管被选中,同时相应位的数据被送到该数码管上显示。方案实施:部分二十进制转换程序:if clk0'event and clk0='1'

6、thenif clk='0'thena:=conv_integer(hd);a00<=0;a01<=0;a02<=0;a03<=0;a04<=0;a05<=0;a06<=0;elseif a>999999 then a:=a-1000000;a00<=a00+1;elsif a>99999 then a:=a-100000;a01<=a01+1;elsif a>9999 then a:=a-10000;a02<=a02+1;elsif a>999 then a:=a-1000;a03<=a

7、03+1;elsif a>99 then a:=a-100;a04<=a04+1;elsif a>9 then a:=a-10;a05<=a05+1;else a06<=a;if a<10 thenbcd6 <=conv_std_logic_vector(a00,4);bcd5 <=conv_std_logic_vector(a01,4);bcd4 <=conv_std_logic_vector(a02,4);bcd3 <=conv_std_logic_vector(a03,4);bcd2 <=conv_std_logic_ve

8、ctor(a04,4);bcd1 <=conv_std_logic_vector(a05,4);bcd0 <=conv_std_logic_vector(a06,4);led<='1'这个程序是实现二十进制转换功能,首先需要将20位二进制输入通过conv语句转化为十进制数,而后对十进制数进行处理。当时钟信号处于上升沿且使能端至0时a00a06清零,且将输入数据赋给a,其他时间处理数据,以避免前面模块数据还未处理完成就开始工作,或数据还在输入中就开始处理。若想将十进制数据按位赋予7个输出端口,则需要分别对每一位进行单独处理所以设置了a0a6七个处理项,当输入数据

9、被转化为十进制后若大于999999则使数据减1000000且a0加1,直到小于999999。若这时大于99999,则数据减100000且a1加1,如此往复直到处理后数据小于9,将这时的a值赋给a06。这时a00a06分别代表了输入数据十进制的每位数,而后再通过conv语句将数据转化为二进制bcd码分别输出。再输出一位常亮灯作为小数点使它的值恒等于1。 Clk0是频率为50MHz的时钟信号的输入端口,clk是使能端口,clk为1的情况下模块开始工作,为0的话则将数据清零。hd【19.0】是数据接收端口。bcd0【3.0】bcd6【3.0】为每位数据输出端口,按位将数据输出给各个译码器。led作为

10、小数点输出端口,恒等于1。RTL图:部分显示器程序: when "0000"=>duan(7 downto 1)<="1000000" when "0001"=>duan(7 downto 1)<="1111001" when "0010"=>duan(7 downto 1)<="0100100" when "0011"=>duan(7 downto 1)<="0110000" when

11、"0100"=>duan(7 downto 1)<="0011001" when "0101"=>duan(7 downto 1)<="0010010" when "0110"=>duan(7 downto 1)<="0000010" when "0111"=>duan(7 downto 1)<="1111000" when "1000"=>duan(7 down

12、to 1)<="0000000" when "1001"=>duan(7 downto 1)<="0010000" when others=>duan(7 downto 1)<="1111111"此程序是实现显示功能,在顶层调用时需要分别对此程序调用7次来实现对不同显示管的调用。对输入的二进制bcd码进行识别,若等于0000则代表输入十进制的0,需要控制数码管上灯的显示为0,则只有g管灭,其余管亮就会使数码管显示0。同理若为0001则输出1111001会显示1。如此循环识别一直到9,若

13、没有输入数据则全灭。框图:bcd3.0是数据输入端口,duan7.1是控制数码管上灯亮灭的输出端口,因为需要调用7次所以有7个模块。RTL图:方案验证和结果分析:二十进制转换仿真波形如下:由上面二十进制转化仿真波形可知,任何时候都需要由clk使能端给出一个0信号使得可以将二进制值转化为十进制值赋给a,而后需将clk的值赋1,才能开始数据的处理。数据的处理速度很快,小于1us。远远小于除法器乘法器的处理速度,所以不会产生这个数据还未处理好,下个数据已经到来的情况。而刷新频率则取决于clk使能信号,clk再次为0时会将内部数据清零,而后在为1进行新一次的处理。显示器仿真波形如下:由上面计时器仿真波

14、形可知:当输入bcd为0110时,duan正确的控制了数码管的亮灭,使其能显示出数字6。心得体会 EDA(Electronic design automation),中文解释为电子设计自动化,是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,

15、极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 近几年EDA技术发展突飞猛进,导致了其在电子信息,通信,自动控制及计算机应用等领域的重要性日益突出。也就致使我们作为21世纪的电子专业大学生,不去学习如何具体的使用,应用EDA技术是很难在本专业相关工作中立足的。而学校为我们安排的这次为期两周的EDA技术实习我想也是为了让我们能够从实践的角度,亲身体会如何编写应用EDA相关技术,也是为了能让我们在将来踏入社会的时候多出一种生活的手段。而我也从这次的实习中学到了许多,相信这些学到的东西将在我将来的生活中产生莫大的帮助。这两周的实习生活中,我几乎每时每刻都能感觉到一种紧迫感。我们组作为

16、所有组里人数最少的一组,需要我们每个人承担更多的任务。在实习任务刚刚发到我手里的时候,我顿时有一种无从下手的感觉,队里的每个人都是眉头紧皱。不过好在我们立刻做出了决定,理清了程序的整体思路,分配了任务。在而后的两天我一直在翻阅各种资料,向组内的同学求教。终于对我所负责模块的整体程序的逻辑有了一个整体思路设想,但是在刚开始写程序的时候总是出现这样那样的错误,例如if then 的语法错误,或是对于数字计算的逻辑错误,还好在组内同学的帮助下一一改正了过来。我用了两天时间将我所负责的模块全部写好,改好,而且写完一个自检程序并且烧录进板子里实现了正常显示。这个过程使我对EDA技术基础编程的掌握度更高了

17、,并且使我学习到了如何进行模块间的协调。但是后面发现这时候其实我们组内部应该就有互相对程序,对模块之间的交流,而交流不足直接导致了后面我们面临了整体内部协调的问题。在第五天,我们每个人都将自己的模块写好,并且都自己仿真自检过。可是在模块整合的时候又出现了许多模块之间不协调的问题。例如使能信号每个模块要求的频率不一,模块与模块之间输出与输入信号无法统一。编程期我们交流不足的缺点暴露无遗,这时候我们组所有人就需要集思广益共同解决每个问题,我们立刻作出决定,如果那两个模块出现问题则负责两个模块的人共同去解决,另两个则去写原理,为答辩做出准备。可是对我们每个人对于他人的模块基本等于一无所知,这使得两人

18、互相调节模块问题时都要去互相了解对方的程序,而且基本上我们每个人的程序都互有交集,这就需要我们每个人都去了解整体程序。就在这样的协调下,我们用了两天终于调好了整体程序并且实现了全部基本功能。在这个过程中我们学会了团体协作,互通有无,用自己所擅长的去补充或改进他人程序可以精进的部分。集思广益大家共同解决问题,一定比一个人快得多。三人行必有我师,每个人都有自己擅长和不善长的,在改进程序中互相取长补短,大家一起进步。团队协作才是老师将我们分成一个一个小组的原因。最后的一天我们写好了答辩要用的ppt,本想在实现一些拓展功能,怎奈时间实在吃紧,这也是一个小遗憾吧。这次的实习过程让我获益良多,在已经学习许

19、多理论知识的后面通过实践来加深理论的理解才是能让我们更好学习到知识的途径。我认为,学校应该多进行实习或实践活动以加强学生对理论的理解。这次实习是我大学生活中可能是最累但也是很开心很充实的一次过程,学习到了知识,加强了组内各位组员之间的友谊,最重要的是让我们有一次能类似工作的经验。真的很感谢这次的实习,感谢贺老师,感谢各位研究生学长一直无私的帮助我们。我想在我今后的人生路上是不会忘记这次实习的! 邓道聃 2015年1月2日参考文献:1 潘松,黄继业. EDA技术实用教程-VHDL版(第五版)科学出版社,20132 杨恢先,黄辉先. 单片机原理及应用M .人民邮电出版社. 2006-19-233

20、李国洪,沈明山.可编程逻辑器件EDA技术与实践,机械工业出版社4 Donald E. Thomas, Philip R. Moorby .硬件描述语言Verilog(第四版).清华大学出版社 ,2001-8-1 5 网络相关课题资源附件1参考程序: 二十进制转换模块: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity ershi isport(clk:in std_logic;clk0:in std

21、_logic;hd:in std_logic_vector(19 downto 0);bcd6,bcd5,bcd4,bcd3,bcd2,bcd1,bcd0:out std_logic_vector(3 downto 0);led:out bit;k0:out bit);end ershi;architecture vhf of ershi issignal a00,a01,a02,a03,a04,a05,a06:integer range 0 to 9;begin process(clk0,clk,hd)variable a:integer range 0 to 1000000;beginif

22、 clk0'event and clk0='1' thenif clk='0'thena:=conv_integer(hd);a00<=0;a01<=0;a02<=0;a03<=0;a04<=0;a05<=0;a06<=0;elseif a>999999 then a:=a-1000000;a00<=a00+1;elsif a>99999 then a:=a-100000;a01<=a01+1;elsif a>9999 then a:=a-10000;a02<=a02+1;el

23、sif a>999 then a:=a-1000;a03<=a03+1;elsif a>99 then a:=a-100;a04<=a04+1;elsif a>9 then a:=a-10;a05<=a05+1;else a06<=a;if a<10 thenbcd6 <=conv_std_logic_vector(a00,4);bcd5 <=conv_std_logic_vector(a01,4);bcd4 <=conv_std_logic_vector(a02,4);bcd3 <=conv_std_logic_vect

24、or(a03,4);bcd2 <=conv_std_logic_vector(a04,4);bcd1 <=conv_std_logic_vector(a05,4);bcd0 <=conv_std_logic_vector(a06,4);end if;end if;end if;end if;end process;led<='1'END vhf;显示模块:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xianshi isport ( bcd:std_logic_vector(3 downto 0);duan:out std_logic_vector(6 downto 0); end entity;architecture art of xian

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论