9bg[高等教育]6位十进制频率计实践报告.doc

上传人:仙人指路1688 文档编号:4136185 上传时间:2023-04-07 格式:DOC 页数:12 大小:727KB
返回 下载 相关 举报
9bg[高等教育]6位十进制频率计实践报告.doc_第1页
第1页 / 共12页
9bg[高等教育]6位十进制频率计实践报告.doc_第2页
第2页 / 共12页
9bg[高等教育]6位十进制频率计实践报告.doc_第3页
第3页 / 共12页
9bg[高等教育]6位十进制频率计实践报告.doc_第4页
第4页 / 共12页
9bg[高等教育]6位十进制频率计实践报告.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《9bg[高等教育]6位十进制频率计实践报告.doc》由会员分享,可在线阅读,更多相关《9bg[高等教育]6位十进制频率计实践报告.doc(12页珍藏版)》请在三一办公上搜索。

1、六位十进制频率计引言在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更加重要。数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。一、 课程设计题目和设计要求简易频率计要求:设计一个简易的6位十进制频率计。功能分析:可以测量的频率范围:0999999Hz,并在数码管显示器频率的值二、 设计思路分析与方案选

2、择1、 频率计设计原理在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。数字式频率计的测量原理有两类:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如周期测频法。直接测频法适用于高频信号的频率测量,通常采用计数器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短在达到不同的测量精度;间接测频法适用于低频信号的频率测量。本设计中使用的就是直接

3、测频法,即用计数器在计算1S内输入信号周期的个数,其测频范围为1Hz999999Hz。2、 频率计设计思路频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求测频控制信号发生器TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的使能端ENA进行同步控制。当TSTEN为高电平时,允许计数;为低电平时停止计数,并保持其计数结果。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1 秒种的计数值锁存进24位锁存器REG24B中,并由外部的7段译码器译出,并稳定显示。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不

4、断闪烁。锁存信号之后,必须有一个清零信号CLR-CNT对计数器进行清零,为下1 秒的计数操作做准备。测频控制信号发生器的工作时序如所示。寄存器REG24B设计要求是:若已有24 位BCD码存在于此模块的输入口,在信号LOAD的上升沿后即被锁存到寄存器REG24B的内部,并由REG24B的输出端输出,然后由7段译码器译成能在数码管上显示输出的相应数值。计数器CNT10设计要求:有一时钟使能输入端,用于锁定计数值。当高电平时计数允许,低电平时禁止计数。3、 系统的总体框图分频电路模块测频信号控制模块计数模块锁存模块译码显示模块三、 频率计的层次化设计方案1、 分频模块由于KHF3型实验箱上基准时钟

5、信号没有1Hz的频率,本设计采用10MHz的频率,首先通过设计一个10分频的电路,然后将七个10分频电路级联就可以将10MHz的方波信号变为1Hz的方波信号。10分频电路的源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clk_div is port(clk:in std_logic; clk_div10:out std_logic);end;architecture one of clk_div is signa

6、l count:std_logic_vector(2 downto 0); signal clk_temp:std_logic;begin process(clk) begin if(clkevent and clk=1) then if (count=100)then count0); clk_temp=not clk_temp; else count=count+1; end if; end if; end process; clk_div10clk1,clk_div10=s1); u2:clk_div port map(clk=s1,clk_div10=s2); u3:clk_div p

7、ort map(clk=s2,clk_div10=s3); u4:clk_div port map(clk=s3,clk_div10=s4); u5:clk_div port map(clk=s4,clk_div10=s5); u6:clk_div port map(clk=s5,clk_div10=s6); u7:clk_div port map(clk=s6,clk_div10=clk_div10m);end;将程序进行编译、仿真成功后生成一个电路图可供顶层设计调用。电路图如图(1)所示:图(1)2、 测频控制信号发生器测频控制信号发生器使能信号tsten 能产生一个1秒脉宽的周期信号,并

8、对频率计的每一个计数器CNT10 的ENA使能端进行控制。当tsten为高电平时允许计数,当为低电平时禁止计数,并保持其所计的脉冲个数。源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div2clk is port(clk:in std_logic; tsten:out std_logic; clr_cnt:out std_logic; load:out std_logic);end;architecture one of div2clk is signal div2cl

9、k:std_logic;begin process(clk) begin if clkevent and clk=1then div2clk=not div2clk; end if ; end process; process (clk ,div2clk) begin if( clk=0and div2clk=0)then clr_cnt=1; else clr_cnt=0; end if; end process; load=not div2clk; tsten=div2clk;end ;将程序进行编译、仿真成功后生成一个电路图可供顶层设计调用,电路图如图(2)所示:图(2)3,计数模块 首

10、先设计一个10进制计数器,要求在计到9的时候产生一个进位输出,然后将用6个10进制计数器相连接形成6位的计数器,能够从0计到999999。10进制计数器,当清零端为高电平时,将计数值清零,在时钟上升沿处,并且要在使能端为高电平时才能计数。源程序如下:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count10 is port(clr,en,clk: in std_logic; cq: out std_logic_vector(3 downto 0); cout: out std_

11、logic);end;architecture atr of count10 is signal cqi:std_logic_vector(3 downto 0);begin process(clk,clr,en) begin if clr=1 then cqi=0000; elsif (clkevent and clk=1) then if en=1 then if cqi=1001 then cqi=0000; cout=1; else cqi=cqi+1; cout=0; end if; end if; end if; cqclk,clr=clr,en=en,cq=q1(3 downto

12、 0),cout=s1); u2:count10 port map(clk=s1,clr=clr,en=en,cq=q2(7 downto 4),cout=s2); u3:count10 port map(clk=s2,clr=clr,en=en,cq=q3(11 downto 8),cout=s3); u4:count10 port map(clk=s3,clr=clr,en=en,cq=q4(15 downto 12),cout=s4); u5:count10 port map(clk=s4,clr=clr,en=en,cq=q5(19 downto 16),cout=s5); u6:co

13、unt10 port map(clk=s5,clr=clr,en=en,cq=q6(23 downto 20),cout=co);end;将程序进行编译、仿真成功后生成一个电路图可供顶层设计调用。电路图如图(3)所示:图(3)4、24位锁存器 当load端到达上升沿,产生锁存信号,将前面计数器的计数值输入到锁存器里进行锁存,当clr端为高电平时,将锁存器里的值清零。锁存器的源程序如下:library ieee;use ieee.std_logic_1164.all;entity reg24 is port(load,clr:in std_logic; din:in std_logic_vect

14、or(23 downto 0); dout:out std_logic_vector(23 downto 0);end;architecture atr2 of reg24 is signal data:std_logic_vector(23 downto 0);begin process(clr,load) beginif clr=1 thendata0);elsif(loadevent and load=1) then data=din; end if;dout=data; end process;end;将程序进行编译、仿真成功后生成一个电路图可供顶层设计调用。电路图如图(4)所示:图(

15、4)5、显示译码模块将锁存器保存的计数值送到译码器里译码,在将译码后的数送到七段共阴数码管,这样就能将计数值显示出来,即将频率计的频率在数码管上显示出来。显示译码模块的源程序如下:library ieee;use ieee.std_logic_1164.all;entity led7 is port(d_in:in std_logic_vector(3 downto 0); led:out std_logic_vector(6 downto 0);end;architecture art3 of led7 isbegin with d_in select led=0111111 when 00

16、00, 0000110 when 0001, 1011011 when 0010, 1001111 when 0011, 1100110 when 0100, 1101101 when 0101, 1111101 when 0110, 0000111 when 0111, 1111111 when 1000, 1101111 when 1001, 0000000 when others;end;将程序进行编译、仿真成功后生成一个电路图可供顶层设计调用。电路图如图(5)所示:图(5)6、顶层设计将每个模块的程序编译仿真后生成的电路图进行调用,然后将每个模块连起来,形成一个系统,然后再进行编译、仿

17、真,验证其功能是否达到设计要求,频率计的总体电路图如图(6)所示:图(6)四、在Quartus软件平台上将各个模块和顶层设计的程序进行编译、综合、仿真和适配情况1、分频模块的仿真波形如图(7)所示:图(7)2、测频控制信号模块的仿真波形如图(8)所示:图(8)3、计数模块的仿真波形如图(9)a、b所示:图(9)a图(9)b4、24位锁存器的仿真波形如图(10)所示:图(10)5、显示译码模块的仿真波形如图(11)所示:图(11)6、顶层设计系统的仿真波形如图(12)所示:图(12)五、下载验证在电脑上将顶层设计的电路图进行管脚绑定,通过下载软件CPLDDN2005将顶层设计下载到KHF3型实验

18、箱上进行验证,结果在实验箱上正确地显示出了一个频率值,通过实验箱上的调节短路夹J1(粗调)和J2(细调)改变输出频率的值,将调节短路夹逆时针旋转,结果发现频率值增加,而顺时针旋转发现频率值减小,验证成功,符合设计要求。引脚绑定如图(13)所示:图(13)六、设计与下载过程遇到的问题及解决方法在设计过程中,发现网上搜索的资料里面的某些程序和参考书上的某些程序有点小错误,但是通过自己所学的知识,我加以修改,最后终于能编译通过并顺利仿真出来。在下载过程中并不是一帆风顺的,刚开始时,我以为能够一次就验证成功,结果在实验箱上连一个数也没显示,只显示了6个0,通过反复查看程序,我发现了我的程序有点小问题,

19、通过反复翻查资料,进行修改,结果终于验证成功了,不过还是有点小瑕疵。七、总结这次课程设计我觉得是很有意义的,因为以前的课程设计都是2个人或三个人一起合作完成的,而这次课程设计是我单独完成的,我感到很有成就感。这次课程设计对我来说是一个很好的锻炼机会,这次课程设计通过上网搜索资料还有参考一些书籍,我发现即使是发布到网上的程序或者是书里的程序都不是百分之百正确的,在设计过程中我发现了自己本身的一些不足之处,通过发现问题,通过寻求老师的指导,最后把存在的问题都解决了。这次课程设计,使我对Quartus软件的使用更加熟练,也对书本里的理论知识更加巩固,也加强了我对程序的分析能力,除此之外,这次课程设计

20、开阔了我的视野,增强了我的动手能力和查询资料的能力。虽然这次课程设计最后验证成功了,但是新的问题又出现了,在调节频率计的时候,变化要等很久才能显示出来,但是我相信这个问题我能够解决的。总之,这次课程设计我获益匪浅,我相信我的能力在一点一点地增强,在以后的人生道路上,我相信我能排除万难,直达理想的桃园。参考文献:1、硬件描述语言与EDA技术实践指导书,陈先朝编,2010年11月。 2、EDA工程实践技术,付家才等编,北京工业大学出版社,2007年3月。 3、EDA技术实验与课程设计,曹昕燕、周凤臣、聂春燕编,2006年5月。 4、EDA技术课程设计,刘海红主编,华中科技大学出版社,2009年1月。

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号