好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于FPGA的高精度频率计设计实验报告.doc

5页
  • 卖家[上传人]:ss****gk
  • 文档编号:208957089
  • 上传时间:2021-11-08
  • 文档格式:DOC
  • 文档大小:108.26KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于FPGA的高精度频率计设计实验一. 实验目的1. 熟悉数字存储示波器基本工作原理2. 掌握硬件测频和测周的基本原理3. 掌握在现有综合实践平台上开发DSO硬件频率U•模块的方案及流程二. 实验内容1. 结合数据采集、存储和触发模块的FPGA代码,理解DSO的基本工作原理2. 编写FPGA代码完善DSO的频率计模块,实现高精度测频和测周功能三. 预备知识1. 了解综合实践平台硬件结构2. 熟悉Xilinx ISE Design Suite 13.2开发环境使用方法3. 熟悉Verilog HDL硬件描述语言的语法及运用四. 实验设备与工具硬件:测试技术与嵌入式系统综合实践平台,PC机Pentium 100以上,XILINX USB调试下载器软件:PC机Win XP操作系统,Xilinx ISE Design Suite 13.2 开发环境五. 实验步骤1. 打开工程文件SYPT_FPGA.xise2. 打开freq_measure.v和period_measure.v文件,先根据定义好的模块端口输入输山信号, 结合测频和测周的原理,在提示添加代码处补充代码:a.测频模块(freq_measure.v)测频模块的基本功能是测量闸门吋间内被测信号的脉冲个数。

      实现过程如下:(1) 由标准时钟计数产生一个预设闸门信号,然后用被测信号同步预设闸门信号产生实际闸门信号;要求:预设闸门时间可根据用户选择信号(select_parameter)在50ms、100ms、Is、10s中切换具体代码如下阁//select gate value: CNT_GATA_VALUEalways @(posedge clkin)begincase (select_parauceter [1:0])2*b00: CNT_GATA_VALUE = 500000; //gate 50ms2*b01: CNT:GATA:VALUE = 1000000; //gate 100ms2*bl0: CNT:GATA:VALUE = 10000000; //gate Is2^11: CNT:GATA:VALUE = 100000000; //gate 10sendcaseend(2) 标准时钟和被测信号在实际闸门内计数标准时钟的计数结果从放到mea_cnt_fs 中,被测信号的计数结果为M.放到mea_cnt_fx中,输出以上计数结果,并同时输出测频完 成标志mea_flag,具体代码如下图。

      //generate gate: cnt^gate always @(posedge clkin) beginif (! rsc) data一cnt<=0;| else data_cnt<=data_cn,c + 1;end//generate measure finish flag: gate一statusalways @(posedge clkin)beginif (!rst) begincmp—result<=lfcO;endelse if (data^cnt == CNT_DATA_VALUE) cmp—result <= 1bl; elsecmp_result <=lbO;endb.测周模决(period_measure.v)测周模块的基本功能是把被测信号作为闸门信号,在它的一个周期的时间内,对标准时 钟信号计数实现过程如下:(1)被测信号相当于一个预设闸门信号,为了提高测量精度,采取扩大闸门时间25倍(即取被测信号25个周期为预设闸门信号); //avoid losting narrow pulse in low frequency//generate gate: gate_ccl_prealways @(posedge clkinx or negedge rst beginif (rst=WbO) begingate czl pre <= 1*b0;gace^cnt <= 5hOO;endelse beginif (gate—cut != 5*hl9) //cnc 25 periods begingate—ctl一pre <= 1; gate_cnt <= gate^cnt + 1*bl;endelse if (gate—cnt = 51h!9) begingate_ctl_pre <= 0;endendend(2)用标准时钟同步预设闸门信号产生实际闸门信号;//generate real gate: gate_ctl always @ (posedge clkin } begingate_ctl <= gate_ctl_pre;end(3) 在实际闸门lAl对标准时钟计数。

      计数结果放到cnt_Out中,输出计数结果,并同 时输出测周完成标志mea_flag,以及测周计数溢出信号full_flag//generate measure finish flag: mea一flag always @ (posedge cllcin or negedge gate—ctl) beginif(gate_ctl = VbO) beginmea_flag <= 1fbl; end else beginmea_flag <= l"b0;endend3. 添加完相关模块代码后,在左下方的小窗门中双it Generate Programming File,产生一个 utlOOO_top.bit 调试下载文件,双it? Configure Target Device,弹出 Warning,点 OK,此 时打开了 ISEiPACT,在左上方小窗口上双击Boundary Scan,右边窗口将山现一片空白处, 点击右键Add Xilinx Device,在对应的E:/work/频率计设计实验/学生实验用未完成程序 /PG1000/PG1000_FPGA_ADC目录下找到utlOOO_top.bit,选中并打开,将鼠标移至打开的 小图标上,点右键Program,如图6所示。

      lb今险IQX ::^禱11教|纟辛13^>吩File Edit View Operations Output Debug Window HelpiMPACI Processes w □ ff xAvailibl Operati ons r:Progr^Get Device IDGt Dovic Signalurc/Vsarcodo 時 Read Device Status 岭 One Step SVFOne Step XSVPAdd SPI/BPI Flask .AssiKv Confijuration File .. Si Progrftirming Proporti os ..St Erase Prop^rtiesLaunch File Assigruient Wizard Set Target Device图6 Xilinx仿真器配置六. 思考题1 .计算本实验平台频率计模块的中界频率因为本实验中测周时选用的频标,即标准频率为/() = 10MHz由中频计算式/w = a/ZZ可 知:当测周时间数为50zm,吋,fm= 7ZX =扣7* 3 =14.14kHz当测周时间数为lOOzrn时,/w=7ZZ = JlO7ioo*i(r= lOkHz当测周时间数为b时, = 4fJo= J107*y = 3A6kHz当测周时间数为1 Ox时,人,=7ZX = JlO7 ^— = ikHz2.试分析并计算木实验平台频率计能测:W:的信号频率范围。

      测频法适用于高频信号的频率测量,测周法适用于低频信号的频率测景 当信号频率较高时,我们选用测频法,巾直接测频知,其中乂为被测信号频率,7Vv为计数值,7;为闸门时间由上式知,乂与7;成反比,本实验平台A, 2VA.为32位计数器,所以,人最大力85.893GHz同理可知,该平台测周最新为0.037Hz 该实验平台的测试信号的频率范围为0.037Hz〜85.893G//Z。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.