您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 基于VHDL语言的数字式移相信号发生器的设计报告
摘要EDA技术是一门涉及多学科的综合性技术,是以大规模器件为设计载体,以硬件描述语言为系统逻辑表达的主要方式,以计算机大规模可编程逻辑器件的开发软件自动完成用软件方式的电子系统到硬件系统的逻辑编译、化简、分割、综合、优化、布局、布线及仿真,直至对对特定目标芯片的适配编译、逻辑适配、编辑下载等工作,最终形成集成电子系统或专业集成芯片的一门新技术。本次课程设计中我们基于EDA技术,运用VHDL编程,完成低频数字式移相信号发生器的程序编辑,最终下载到EP2C5Q208C8芯片上,加以简单的外围电路,构成移相信号发生器。该装置能测出频率在1Hz-99999999Hz之间的正弦波信号频率,并指定相位差的两路同频信号。本次课程设计利用目前广泛应用的VHDL硬件电路描述语言,实现低频数字式移相信号发生器的设计,采用QuartusⅡ集成开发环境进行综合、仿真,并下载到FPGA现场可编程门阵列中,从而完成低频数字式移相信号发生器的设计。该低频数字式移相信号发生器包括数字式移相信号发生器、频率测量仪和波形显示三部分。其中数字式移相信号发生器可以产生预置相位差的两路可移相的正弦信号。频率测量仪对移相信号频率的测量和显示,均采用基于FPGA的数字技术实现,使得该系统具有抗干扰能力强,可靠性好。波形显示采用D/A转换后接示波器完成。目录1课程设计的任务与要求························12设计方案······························12.1数字频率计的整体结构图······················22.2数字式移相信号发生器的整体结构图·················23逻辑模块的功能、设计方法与仿真···················43.11MHZ信号源的设计与仿真······················43.2分频器CNT的设计与仿真······················53.3测频控制信号发生器TESTCTL的设计与仿真··············63.4十进制计数器CNT10的设计与仿真··················83.5锁存器REG32B的设计与仿真·····················103.6显示器DISPLAY的设计与仿真····················113.7正弦波移相YX的设计与仿真·····················144系统硬件与引脚锁定设置·······················185下载设置与调试···························216总结································22参考文献·······························23-1-1课程设计的任务与要求任务:设计一个数字式移相信号发生器:(1)输出二路可移相的正弦信号;(2)正弦信号频率范围:20HZ—200KHZ;输入阻抗≥100KΩ;(3)具有正弦信号频率数字显示功能;(4)二路正弦信号具有0--350相位功能;相位测量绝对误差≤2º;(5)拟采用的芯片的型号为EP2C5Q208C8进行硬件证。要求:(1)画出系统的原理框图,说明系统中各主要组成部分的功能;(2)编写各个模块VHDL源程序;并上机调试通过;(3)根据软件编好用于系统仿真的测试文件;(4)编好用于硬件验证的管脚锁定文件;(5)记录系统仿真验证结果;(6)记录调试过程中出现的问题及解决办法。2设计方案数字式移相信号发生器的系统框图如图2-1所示,通过一给定频率的时钟输入信号,使数字移相模块(FPGA)产生正弦信号Q1,同时产生与Q1同频的方波信号送给数字频率计模块,测出方波频率再通过显示模块译码后,逐一送8个LED显示。同时通过键盘输入二进制的移相信号给数字移相模块,来输出与正弦信号Q1有指定相位差的同频正弦信号Q2。正弦信号Q1正弦信号Q2时钟输入信号移相信号同频方波..1HZ时钟信号图2-1数字式移相发生器的系统框图数字移相模块数字频率计模块显示模块-2-2.1数字频率计的整体结构图(1)数字频率计的主要功能是测量周期信号的频率。频率是单位时间(1S)内信号发生周期变化的次数。如果我们能在给定的1S时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。数字频率计首先必须获得相对稳定与准确的时间,同时将被测信号转换成幅度与波形均能被数字电路识别的脉冲信号,然后通过计数器计算这一段时间间隔内的脉冲个数,将其换算后显示出来。数字频率计的关键组成部分包括测频控制信号发生器、计数器、锁存器、译码驱动电路和显示电路,其原理框图如图2-2所示:图2-2数字频率计系统组成框图数字频率计的原理图如图2-3所示,她是数字频率计顶层程序的另一种表示。具体流程为:pin_name输入50MHZ,经过PIN1MHZ_1输出1MHZ的信号源给分频器cnt,将1MHZ分为多个输出频率。其中1HZ作为测控信号发生器的输入来控制待测方波fsin的计数,然后用八位十进制计数器实现计数,输出的数据由REG32B锁存后,进行稳定输出。最后,通过display和138译码器选择输出,display的时钟信号表示在显示器上显示的快慢,与后面的正弦波的频率无关。2.2数字式移相信号发生器的整体结构图(1)数字式移相信号发生器的整体结构图如图2-4所示。首先,输入50MHZ的频率在PIN1MHZ_1输出1MHZ的频率给分频器cnt,在分频器输出端可以选择多个频率作为正弦波采样频率的输入,data[5..0]用键盘来调节两正弦波的相位信号源计数模块锁存器显示器控制信号50MHzCLK1Hz用于测量用于测量用于扫描显示被测信号fsinTESTENLOADCLR产生1MHz信号产生多种频率输出-3-差。ppcl端为分频器输出的频率除以64,即正弦波的输出频率。这里通过原理图的方式将各个模块连接起来,让其组成数字式移相信号发生器的总程序。图2-3数字频率计的整体结构图图2-4数字式移相信号发生器的整体结构图-4-3逻辑模块的功能、设计方法与仿真数字式移相信号发生器的设计总体由信号源发生器PIN1MHZ_1,分频器cnt,一个测频控制信号发生器TESTCTL,八个有时钟使能的十进制计数器CNT10,一个32位锁存器REG32B,显示器display和正弦波发生器yx组成。3.11MHZ信号源的设计与仿真本器件主要是将50MHZ的输入频率转换为1MHZ的信号源。其时序关系如图3-1所示:图3-11MHZ信号源的时序关系模块程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYPIN1MHZ_1ISPORT(CLKIN:INSTD_LOGIC;CLK10M:OUTSTD_LOGIC;CLKOUT:OUTSTD_LOGIC);ENDPIN1MHZ_1;ARCHITECTUREAOFPIN1MHZ_1ISBEGINPROCESS(CLKIN)VARIABLECNTTEMP:INTEGERRANGE0TO49;BEGINIFCLKIN='1'ANDCLKIN'EVENTTHENIFCNTTEMP=49THENCNTTEMP:=0;ELSEIFCNTTEMP25THENCLKOUT='1';ELSECLKOUT='0';-5-ENDIF;CNTTEMP:=CNTTEMP+1;ENDIF;ENDIF;ENDPROCESS;ENDA;3.2分频器CNT的设计与仿真CNT主要是将1MHZ的频率分为多个输出频率,其中选择1HZ的频率给测控信号。时序关系如图3-2所示。图3-2分频器的时序关系模块程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNTISPORT(CLK:INSTD_LOGIC;--1MHZ输入FREQ1:OUTSTD_LOGIC;--1HZ输出FREQ488:OUTSTD_LOGIC;--488HZ输出FREQ1953:OUTSTD_LOGIC;--1953HZ输出FREQ7812:OUTSTD_LOGIC;--7812HZ输出FREQ31250:OUTSTD_LOGIC;--31250HZ输出FREQ125K:OUTSTD_LOGIC;--125KHZ输出FREQ500K:OUTSTD_LOGIC);--500KHZ输出ENDCNT;ARCHITECTUREBEHVOFCNTIS-6-SIGNALTEMP:STD_LOGIC_VECTOR(19DOWNTO0);BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENIFTEMP=11110100001000111111THENTEMP=00000000000000000000;ELSETEMP=TEMP+1ENDIF;ENDIF;ENDPROCESS;FREQ1=TEMP(19);FREQ488=TEMP(10);FREQ1953=TEMP(8);FREQ7812=TEMP(6);FREQ31250=TEMP(4);FREQ125K=TEMP(2);FREQ500K=TEMP(0);ENDBEHV;3.3测频控制信号发生器TESTCTL的设计与仿真8位数字频率计的原理框图如下图3-3所示。该数字频率计通过1HZ标准信号,使控制模块控制计数器在1s内对输入方波进行计数,从而测出其频率,送到锁存模块锁存。输入方波信号TSTEN待显示频率信号1HZ信号CLR_CNTLOAD图3-38位数字频率计的原理框图控制模块是产生测量所需的各种控制,如图3-4所示,CLK为1HZ的标准时钟信号;TSTEN为使能信号,当CLK上升沿时,发生翻转,若为高电平,计数器开始计数;LOAD为锁存信号,其值是TSTEN的反向信号,真好当TSTEN变为0,控制模块计数模块锁存模块-7-一次计数完成时,它就变为高电平,把计数器的值锁存;CLR_CNT为置位信号,当CLKT、TSTEN都为低电平时,对计数器进行置位清零,好进行下一轮计数。通过图3-4控制信号时序关系可看出,在时钟信号的两个周期内,完成一个计数周期(2s),一次计数的时间为1s。在一个计数周期内,对待测信号的上升沿进行计数,正好是待测信号的频率。CLKTSTENLOADCLR_CNT图3-4控制信号时序关系控制模块程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYTESTCTLISPORT(CLK:INSTD_LOGIC;--1HZ测频控制时钟TSTEN:OUTSTD_LOGIC;--计数器时钟使能CLR_CNT:OUTSTD_LOGIC;--计数器清零LOAD:OUTSTD_LOGIC);--输出锁存信号ENDTESTCTL;ARCHITECTUREARTOFTESTCTLISSIGNALDIV2CLK:STD_LOGIC;SIGNALCLR:STD_LOGIC;SIGNALLOADCNT:STD_LOGIC;BEGINPROCESS(CLK)IS-8-BEGINIFCLK'EVENTANDCLK='1'--1HZ时钟二分频THENDIV2CLK=NOTDIV2CLK;ENDIF;ENDPROCESS;PROCESS(CLK,DIV2CLK)BEGINIFCLK='0'ANDDIV2CLK='0'THEN--产生计数器清零信号CLR='1';ELSECLR='0';ENDIF;IFCLR='0'ANDDIV2CLK='0'THENLOADCNT='1';ELSELOADCNT='0';ENDIF;ENDPROCESS;LOAD=NOTDIV2CLK;TSTEN=DIV2CLK;CL
本文标题:基于VHDL语言的数字式移相信号发生器的设计报告
链接地址:https://www.777doc.com/doc-4279430 .html