基于FPGA的数字频率计设计报告.doc

(20页)

'基于FPGA的数字频率计设计报告.doc'
?电子技术综合试验实验报告 班级:测控一班 学号: 姓名:李大帅 指导老师:李颖基于FPGA的数字频率计设计报告一、 系统整体设计设计要求: 1、被测输入信号:方波 2、测试频率范围为:10Hz~100MHz 3、量程分为三档:第一档:闸门时间为1S时,最大读数为999.999KHz 第二档:闸门时间为0.1S时,最大读数为9999.99KHz 第三档:闸门时间为0.01S时,最大读数为99999.9KHz。4、显示工作方式:a、用六位BCD七段数码管显示读数。 b、采用记忆显示方法 c、实现对高位无意义零的消隐。 系统设计原理: 所谓“频率”,就是周期性信号在单位时间(1秒)内变化的次数。若在一定的时间间隔T内计数,计得某周期性信号的重复变化次数为N,则该信号的频率可表达为:f = N / T .基于这一原理我们可以使用单位时间内对被测信号进行计数的方法求得对该信号的频率测量,具体实现过程简述如下: 首先,将被测信号①(方波)加到闸门的输入端。由一个高稳定的石英振荡器和一系列数字分频器组成了时基信号发生器,它输出时间基准(或频率基准)信号③去控制门控电路形成门控信号④,门控信号的作用时间T是非常准确的(由石英振荡器决定)。门控信号控制闸门的开与闭,只有在闸门开通的时间内,方波脉冲②才能通过闸门成为被计数的脉冲⑤由计数器计数。闸门开通的时间称为闸门时间,其长度等于门控信号作用时间T。比如,时间基准信号的重复周期为1S,加到闸门的门控信号作用时间T亦准确地等于1S,即闸门的开通时间——“闸门时间”为1S。在这一段时间内,若计数器计得N=个数,根据公式f = N / T,那么被测频率就是Hz。如果计数式频率计的显示器单位为“KHz”,则显示100.000KHz,即小数点定位在第三位。不难设想,若将闸门时间设为T=0.1S,则计数值为10000,这时,显示器的小数点只要根据闸门时间T的改变也随之自动往右移动一位(自动定位),那么,显示的结果为100.00Khz。在计数式数字频率计中,通过选择不同的闸门时间,可以改变频率计的测量范围和测量精度。 系统单元模块划分:1)分频器,将产生用于计数控制的时钟分别为1HZ,10HZ,100HZ脉冲和1KHZ的用于七段显示数码管扫描显示的扫描信号。2)闸门选择器,用于选择不同的闸门时间以及产生后续的小数点的显示位置。3)门控电路,产生用于计数的使能控制信号,清零信号以及锁存器锁存信号。4)计数器,用于对输入的待测信号进行脉冲计数,计数输出。5)锁存器,用于对计数器输出数据的锁存,便于后续译码显示电路的对数据进行记忆显示,同时避免计数器清零信号对数据产生影响。6)译码显示,用于产生使七段显示数码管的扫描数字显示,小数点显示的输出信号,同时对高位的无意义零进行消隐。二、 单元电路设计1、 分频器:该电路将产生四个不同频率的信号输出,因为电路板上给出了一个48MHZ的晶振,所以我们只需要对48MHZ的信号进行适当分频即可得到我们所需的四个不同频率的信号输出,我们设计一个输入为48MHZ,有四个输出端分别为1HZ,10HZ和100HZ,1KHZ的分频器,原程序如下: library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity fenpinqi is Port ( clk : in STD_LOGIC; clkout1 : out STD_LOGIC; clkout10 : out STD_LOGIC; clkout100 : out STD_LOGIC;clkout1K : out STD_LOGIC);end fenpinqi;architecture Behavioral of fenpinqi issignal cnt1:integer range 1 to ;signal cnt10:integer range 1 to ;signal cnt100:integer range 1 to ;signal cnt1K:integer range 1 to 24000;signal c1:std_logic;signal c2:std_logic;signal c3:std_logic;signal c4:std_logic;beginprocess(clk)is begin if clk'event and clk='1' then if cnt1< then --对cnt1进行计数,当cnt1未计满后对其进行加1 cnt1<=cnt1+1; elsif cnt1= then --cnt1计满后对其进行赋一,并且令c1进行翻转,然后将c1的值赋给clkout1 c1<=not c1; --由于48MHZ的的信号,前一半的时候c1为0,则后一半是为1,就完成了对信号进行分频,产生了1HZ的信号 cnt1<=1; end if; end if;end process;process(clk)is begin if clk'event and clk='1' then --方法同上 if cnt10< then cnt10<=cnt10+1; elsif cnt10= then c2<=not c2; cnt10<=1; end if; end if;end process;process(clk)is begin if clk'event and clk='1' then --方法同上 if cnt100< then cnt100<=cnt100+1; elsif cnt100= then c3<=not c3; cnt100<=1; end if; end if;end process;process(clk)is begin if clk'event and clk='1' then --方法同上 if cnt1K< then cnt1K<=cnt1K+1; elsif cnt1=24000 then c4<=not c4; cnt1KDATADATADATADATADATADATADATASEGSEGSEGSEGSEGSEGSEGSEGSEGSEGSEG<=""; END CASE; if OVERIN='1' THEN --判断溢出,若溢出则令输出全部不显示 SEG CLK, SEL => SEL); tb : PROCESS BEGIN CLK<='0'; WAIT FOR 100 NS; CLK<='1'; WAIT FOR 100 NS; END PROCESS;END;结果如下:有仿真结果我们可以看出程序运行正常,逻辑上没有任何问题。至此所有的单元电路全部完成。三、设计实现 1、顶层文件: 创建图形文件FRYALL.sch,按照下图连接各模块生成的图形文件符号,完成后保存编译。 2、管脚分配:由系统的顶层文件可以看到该系统的输入端共有5个,输出端有11个,管脚分配文件FRYALL.ucf如下:NET "CLKIN" LOC = T8;NET "DCLK" LOC = C16;NET "DP" LOC = C11;NET "NECT" LOC = D7;NET "SE1" LOC = L6;NET "SE10" LOC = N5;NET "SE100" LOC = L7;NET "SEG" LOC = B14;NET "SEG" LOC = A13;NET "SEG" LOC = C13;NET "SEG" LOC = C12;NET "SEG" LOC = A12;NET "SEG" LOC = B12;NET "SEG" LOC = A11;NET "SEL" LOC = F8;NET "SEL" LOC = D8;NET "SEL" LOC = E7; 3、下载过程:光标移至【Generate Programing File】后单击鼠标右键,然后单击【Properties】在打开的对话框的左侧栏选中【Configuration Options】将右侧的Unused IOB Pins这一项改为Pull Up,单击OK。在界面的左下角双击【 Generate Programing File】,软件将自动对整个系统进行编译并生成可执行文件FRYALL.bit。将弹出的对话框关掉,双击【 Generate Prom, ACE,or JTAG File】在弹出的对话框中点击Finish,在随后出现的对话框中选择FRYALL.bit,然后点击打开,在随后的对话框中点击Bypass。右键单击左边图标选择Program,在随后的对话框中单击OK,文件将自动下载到开发板上,成功后,接入函数发生器进行测试。四、测试结果及结论经过了前三步,最后我们将所完成的工程下载到了板子上,连接好函数发生器,并设定好了函数发生器的输出信号电平(5Vpp),就可以进行使用了。 最后结果显示程序工作正常,读数清晰稳定,完全符合开始时的要求。 误差分析:我将函数发生器的频率调节到999,999HZ时,频率计不显示,即产生了计数溢出,然后我进行了进一步的调节,将函数发生器的频率调节到999,997时读书显示为999.999,单位为KHZ。由此可知相对误差为±0.0002%,误差很小。所以本次实验圆满成功。通过对数字频率计的设计实现,我深入的学习了ise软件的使用,VHDL语言的编写规范,语法结构等。在本次试验中我回顾了在《数字电路》课程中学过的关于数字电路的设计的部分,了解了VHDL和Verilog语言的区别与联系,以及它们的优缺点,以及它们主要针对的设计对象。我觉得我通过本次试验学会了很多。20
关 键 词:
频率计 设计 fpga 报告 数字 基于
 剑锋文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于FPGA的数字频率计设计报告.doc
链接地址: //www.wenku365.com/p-55129000.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给剑锋文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 //www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开