基于FPGA器件和VHDL语言实现波形及移相波形发生器的系统设计_第1页
基于FPGA器件和VHDL语言实现波形及移相波形发生器的系统设计_第2页
基于FPGA器件和VHDL语言实现波形及移相波形发生器的系统设计_第3页
基于FPGA器件和VHDL语言实现波形及移相波形发生器的系统设计_第4页
基于FPGA器件和VHDL语言实现波形及移相波形发生器的系统设计_第5页
全文预览已结束

下载本文档

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

文档简介

基于FPGA器件和VHDL语言实现波形及移相波形发生器的系统设计1.引言在一些试验、研究中,有时需要存在相位差的两同频信号。通常采用移相网络来实现,如阻容移相,变压器移相等。采用这些方法有许多不足之处,比如:输出波形受输入波形的影响,移相操作不方便,移相角度随信号频率和所接负载等因素的影响等。若采用直接数字频率合成及数字移相技术,能得到频率及相位差高度稳定精确的信号且实现方便。2.波形及移相波形发生器的系统组成原理如图1所示为波形及移相波形发生器的系统组成方框图。图1波形及移相波形发生器的系统组成原理框图标准时钟(由晶振电路产生)加于进制可编程的n进制计数器,其溢出脉冲加于可预置初值的地址计数器,生成波形存储器所需的地址信号,地址信号的产生频率正比于时钟频率,且周而复始地变化,从而使波形数据存储器输出周期的正弦序列,D/A转换器则输出连续的模拟正弦电压(或电流)波形,如图2所示。为移相方便,设一周期的正弦波共采样360个点,即波形数据存储器共存储360个正弦波形的数据。由于移相波形的地址计数器的第一次运行初值为m,故两正弦波存在相位差为m°。相邻采样点有n个标准时钟脉冲间隔,即

T0=N-1/Fclk。图1中波形数据存储器的全部数据被读出一次的频率为:

F=1/T0-360=Fclk/n-360。改变n和m,即可改变输出信号的频率和相位。若时钟频率

Fclk为100MHz,则。例如取n为1000,m为120,则产生相位为120°,频率为277.8Hz的正弦信号。当n=1时得最高信号频率为277.8KHz。3.系统的软硬件设计FPGA是20世纪90年代发展起来的大规模可编程逻辑器件,随着EDA技术和微电子技术的进步,FPGA的时钟延迟可达到ns级,结合其并行工作方式,在超高速、实时测控方面有非常广阔的应用前景,并且FPGA具有高集成度、高可靠性,几乎可将整个设计系统下载于同一芯片中,实现所谓片上系统,从而大大缩小其体积。为此,设计了一种基于FPGA的高精度数字式移相正弦波信号发生器,该装置能够产生频率、相位、幅度均可数字式预置并可调节的两路正弦波信号。相位差范围为0~359°,步进为1°。系统选用Xilinx公司的SpartanⅡ系列XC2S100E-6PQ208E现场可编程门阵列芯片。该芯片最高时钟频率可以达到200MHz,工作电压为2.5V,采用0.22μm/18μmCMOS工艺,6层金属连线制造,系统门数量为10万,CLB阵列数量为20×30,BlockRAM容量为40Kbit,最大用户I/O数量为202个。利用FPGA内部BlockRAM用来存储一周期的正弦波的360个采样点的数据,每个数据为8位,用一片8位A/D转换器AD7524来输出正弦波,再用一片10位A/D转换器AD7520的输出作为AD7524的参考电压,用来数字调节输出正弦波的幅度。另一路移相正弦波的产生采用同样的电路结构。整体电路原理图如图3所示。其中LED数码管用来显示输出信号的频率、相位差和幅度。BCD拨码开关用来对频率、相位和幅度值的预置。两按钮分别用来对频率、相位和幅度值的向上和向下调节。为节省硬件开销和FPGA的I/O口线,用一个2位拨码开关来设定显示、预置和调节的状态,即频率、相位差和幅度三个状态。系统采用硬件描述语言VHDL按模块化方式进行设计,共分为频率、相位差、幅度预置调节控制模块、正弦波形及移相波形产生模块、显示模块及顶层模块等。通过XilinxISE5.2软件开发平台和ModelSimXilinxEdition5.6XE仿真工具,对设计文件自动地完成逻辑编译、逻辑化简、综合及优化、逻辑布局布线、逻辑仿真,最后对FPGA芯片进行编程下载。限于篇幅,这里仅介绍正弦波形及移相波形产生模块的设计方法(完整程序可向作者索取)。该模块分为二个进程。其部分程序如下:process(clk)variabletemp:std_logic:=‘0’;beginifrising_edge(clk)theniftemp=‘1’thenv《=v1;temp:=nottemp;v11《=d;elsev《=v2;temp:=nottemp;v12《=d;endif;casevis--以下when语句为360个正弦波形的数据ROM表,这里只给出了首末几个。when“000000000”=》d《=“10000000”;when“000000001”=》d《=“10000010”;when“000000010”=》d《=“10000100”;when“000000011”=》d《=“10000111”;……when“101100100”=》d《=“01110111”;when“101100101”=》d《=“01111001”;when“101100110”=》d《=“01111100”;when“101100111”=》d《=“01111110”;whenothers=》null;endcase;endif;endprocess;process(clk)variablecount,coun,b:integerrange0to277778;beginifrising_edge(clk)thenifsw=‘0’thensign《=‘1’;else--利用减法实现除法运算。ifcoun《277778thencoun:=coun+n;b:=b+1;--信号n由频率预置、调节模块送来。elseifcount=bthencount:=1;ifsign=‘1’thenv1《=“000000000”;v2《=m;sign《=‘0’;endif;--信号m由相位预置、调节模块送来。ifv1=“101100111”thenv1《=“000000000”;elsev1《=v1+1;endif;ifv2=“101100111”thenv2《=“000000000”;elsev2《=v2+1;endif;elsecount:=count+1;endif;endif;endif;endif;endprocess;对该模块利用ModelSimXilinxEdition5.6dXE仿真工具进行仿真的

温馨提示

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

评论

0/150

提交评论