EDA数字分频器的实验.doc_第1页
EDA数字分频器的实验.doc_第2页
EDA数字分频器的实验.doc_第3页
EDA数字分频器的实验.doc_第4页
EDA数字分频器的实验.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

现代EDA技术课程设计实验报告题 目: 基于FPGA技术的数字频率计的设计 学 院: 研究生学院专业名称: 检测技术与自动化装置班 级: 2010 (7)班学 号: 100081102001学生姓名: 司红伟指导教师: 徐精华二O一一 年 五 月 基于FPGA技术的数字频率计的设计1实验目的(1)熟悉QUARTUS的基本使用。(2)熟悉FPGA实验开发系统的基本使用。(3)学习VHDL基本单元电路的综合设计应用。2实验内容设计并调试好一个八位十进制的数字频率计,要求具有以下基本功能:1) 测频范围:1HZ-50MHZ。2) 测频精度:测频采用等精度频率测量,其全范围相对误差恒为万分之一。3) 响应时间:小于5S。4) 具有记忆显示功能,即在测量过程中不刷新数据,测量结束才将测量结果送显示。3试验原理(1)采用直接测频法。直接测频法就是在确定的闸门时间内,记录被测信号的脉冲个数。由于闸门时间通常不是待测信号的整数倍,这种方法的计数值也会产生最大为1个脉冲误差。进一步分析测量准确度:设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s时,测量准确度为=Tx/T=1/Fx。由此可知直接测频法的测量准确度与信号的频率有关:当待测信号频率较高时,测量准确度也较高,反之测量准确度也较低。因此直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度保持不变的要求。(1)采用等精度测频法。频率是周期信号在单位时间内的重复次数,电子计数器可以对一个周期信号发生的次数,进行计数。如果某一信号在T 秒时间间隔内的重复次数为N 次,则该信号的频率f 为 在直接测频率的基础上发展的多周期同步测频率法,在目前的测频系统中得到越来越多广泛的应用。多周期同步法测频原理如图3.1 所示。图3.1 等精度测频原理波形图首先,由控制线路给出闸门开启信号,此时,计数器并不开始计数,而是等到被测信号的上升沿到来时,来真正开始计数。然后,两组计数器分别对被测信号子和标准信号分别进行计数,要等到被测信号下降沿到来时才真正结束计数,完成一次测量过程。计数器的开闭与被测信号是完全同步的。从图1 中可以得到闸门时间不是固定的值,而是被测信号的整周期倍,即与被测信号同步,因而不存在对被测信号计数的1 误差,可得到: 变形后可得:对上式进行微分,可得:可推出:从式中可以看出:(1)测量误差与被测信号频率无关,即实现了被测频带内的等精度测量;(2)增大T 或提高fS 可以提高测量精度;(3)标准频率误差为d fS/fS,因为晶体稳定度很高,标准频率误差可以进行校准,校准后的标准频率误差可以忽略。4功能仿真波形FPGA 程序框图如图所示,由同步门D 触发器、标准信号计数器、被测信号计数器和64-8多路选择器构成。其中预置门控信号CL、清零信号CLR、数据输出选择SEL2.0由DSP 发出,FPGA 通过START 的下降沿通知DSP 计数结束,可以分8 次取数。图 4.1 FPGA 结构框图图4.2 是FPGA 仿真波形。其中SCLK 是标准信号,XCLK 是被测信号,EN 是计数使能,CLR 是清零端,CL 是预置门,START 为同步门,SL 是测频或测占空比功能选择(测频时为1,测占空比时为0),SEL2.0是输出数据的通道选择信号。从图中可以看出,标准信号和被测信号的计数值分别是220 和11,根据式(3),当标准信号频率为20MHz 时,被测信号的频率1120M2201MHz。图 4.2 FPGA 仿真波形图5VHDL代码信号源模块源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PIN1MHZ_1 IS PORT (clkin : IN STD_LOGIC; clkout : OUT STD_LOGIC); END PIN1MHZ_1; ARCHITECTURE A OF PIN1MHZ_1 IS BEGIN PROCESS(clkin) variable cnttemp : INTEGER RANGE 0 TO 99; BEGIN IF clkin=1 AND clkinevent THEN IF cnttemp=99 THEN cnttemp:=0; ELSE IF cnttemp50 THEN clkout=1; ELSE clkout=0; END IF; cnttemp:=cnttemp+1; END IF; END IF; END PROCESS; END A; 分频器源程序library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt is port(clk : in std_logic; freq1 : out std_logic; freq488 : out std_logic; freq1953 : out std_logic; freq7812 : out std_logic; freq31250: out std_logic; freq125k : out std_logic; freq500k : out std_logic ); end cnt; architecture behv of cnt is signal temp: std_logic_vector(19 downto 0); begin process(clk) begin if clkevent and clk =1 then if temp=11110100001000111111 then temp=00000000000000000000; else temp=temp+1; end if; end if; end process; freq1=temp(19); freq488=temp(10);freq1953=temp(8); freq7812=temp(6); freq31250=temp(4); freq125k=temp(2); freq500k=temp(0); end behv; 测频控制信号发生器源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TESTCTL IS PORT ( CLK: IN STD_LOGIC; TSTEN: OUT STD_LOGIC; CLR_CNT: OUT STD_LOGIC; LOAD: OUT STD_LOGIC); END TESTCTL;ARCHITECTURE ART OF TESTCTL IS SIGNAL DIV2CLK :STD_LOGIC;SIGNAL CLR :STD_LOGIC;SIGNAL loadcnt :STD_LOGIC;BEGIN PROCESS ( CLK ) IS BEGIN IF CLKEVENT AND CLK= 1 THEN DIV2CLK=NOT DIV2CLK; END IF ; END PROCESS; PROCESS ( CLK,DIV2CLK ) BEGIN IF CLK= 0 AND DIV2CLK = 0 THEN CLR= 1; ELSE CLR= 0 ; END IF; if clr=0 and div2clk=0 then loadcnt=1; else loadcnt=0; end if; END PROCESS; LOAD=not div2clk; TSTEN=DIV2CLK;CLR_CNT=CLR;END ARCHITECTURE ART;32位锁存器源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B IS PORT(LOAD: IN STD_LOGIC; DIN: IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT: OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END ENTITY REG32B;ARCHITECTURE ART OF REG32B IS BEGINPROCESS ( LOAD, DIN ) ISBEGIN IF LOAD EVENT AND LOAD= 1 THEN DOUT=DIN; END IF;END PROCESS;END ART;时钟使能的十进制计数器的源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT10 IS PORT (CLK:IN STD_LOGIC; CLR:IN STD_LOGIC; ENA:IN STD_LOGIC; CQ :OUT INTEGER RANGE 0 TO 15; CARRY_OUT:OUT STD_LOGIC); END CNT10;ARCHITECTURE ART OF CNT10 IS SIGNAL CQI :INTEGER RANGE 0 TO 15;BEGINPROCESS(CLK,CLR,ENA) ISBEGIN IF CLR= 1 THEN CQI= 0; ELSIF CLKEVENT AND CLK= 1 THEN IF ENA= 1 THEN IF CQI=10 THEN cqi=1; ELSE CQI=cqi+1;END IF; END IF; END IF; END PROCESS;PROCESS (CQI) IS BEGIN IF CQI=10 THEN CARRY_OUT= 1; ELSE CARRY_OUT= 0; END IF;END PROCESS; CQ=CQI;END ART; 显示模块源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity display isport(in7,in6,in5,in4,in3,in2,in1,in0:in std_logic_vector(3 downto 0);lout7:out std_logic_vector(6 downto 0);SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);clk:in std_logic);end display;architecture a of display issignal s:std_logic_vector(2 downto 0);signal lout4:std_logic_vector(3 downto 0);beginprocess (clk)beginif (clkevent and clk=1)thenif (s=111) thens=000;else s=s+1;end if;end if;sellout4lout4lout4lout4lout4lout4lout4lout4lout4lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7=XXXXXXX;end case;end process;end a;6实验总结本文设计的数字频率计的总结如下:(1) 多周期同步测频法因为消除了对被测信号计数产生的1 误差,测量精度大大提高,不需要在测量范围内修改量程就可以达到在整个频段的等精度测量。(2) 利用 FPGA 的高速、灵活,结合DSP 的运算和控制功能。(3) 高频小信号处理部分受限于宽带放大器的性能,放大电路需要附有高速整形电路。(4) 由于高频小信号容易受到干扰,可采用净化电源,在布线时合理安排接地。(5) 由于 FPGA 具有易失性,又要保证系统能在线升级,设计采用EPC2 对其

温馨提示

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

评论

0/150

提交评论