EDA课程设计任意波形产生器报告_第1页
EDA课程设计任意波形产生器报告_第2页
EDA课程设计任意波形产生器报告_第3页
EDA课程设计任意波形产生器报告_第4页
EDA课程设计任意波形产生器报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、目录第一章:绪论21.1概述EDA技术21.1.1 EDA技术的应用21.2数字通信系统模型简述31.2.1 DDS优点31.2.2 基于DDS技术的任意波形发生器3第二章:任意波形产生器介绍42. 1 应用场合与作用42.2任意波形产生器系统的构成5第三章:任意波形产生器的设计73.1设计要求73.2设计思路73.3设计流程83.4设计步骤及程序83.5 理论硬件调试结果14第四章:课程设计总结16参考文献17第一章:绪论1.1概述EDA技术EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造

2、(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、

3、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。 现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。1.1.1 EDA技术的应用EDA技术在进入21世纪后,得到了更大的发展应用,突出表现在以下几个方面:1.在FPGA上实现DSP应用成为可能,用纯数字逻辑进行DSP模块的设计,使得高速DSP实现成为现实,并有力地推动了软件无线电技术的实用化和发展。基于FPGA的DSP技术,为高速数字信号处理算法提供了实现途径。2.嵌入式处理器软核的成熟,使得SOPC(System On a Programmable

4、 Chip)步入大规模应用阶段,在一片FPGA中实现一个完备的数字处理系统成为可能。3.使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能。4.在仿真和设计两方面支持标准硬件描述语言且功能强大的EDA软件不断推出。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。1.2数字通信系统模型简述数字通信系统是指利用数字信号传递消息的通信系统。数字通信系统的模型如图所示。数字通信涉及的技术问题很多,其中有信源编码、信道编码、保密编码、数字调制、数字复接、同步问题等等。DDS是一种全数字化的频率合

5、成器,由相位累加器、波形ROM、D/A转换器和低通滤波器构成。时钟频率给定后,输出信号的频率取决于频率控制字,频率分辨率取决于累加器位数,相位分辨率取决于ROM的地址线位数,幅度量化噪声取决于ROM的数据位字长和D/A转换器位数。 1.2.1 DDS优点DDS有如下优点: 频率分辨率高,输出频点多,可达 个频点(N为相位累加器位数);频率切换速度快,可达us量级; 频率切换时相位连续; 可以输出宽带正交信号; 输出相位噪声低,对参考频率源的相位噪声有改善作用;可以产生任意波形; 全数字化实现,便于集成,体积小,重量轻,因此八十年代以来各国都在研制和发展各自的DDS产品,如美国QUALCOMM公

6、司的Q2334,Q2220;STANFORD公司的STEL-1175,STEL-1180;AD公司的AD7008,AD9850,AD9854等。这些DDS芯片的时钟频率从几十兆赫兹到几百兆赫兹不等,芯片从一般功能到集成有D/A转换器和正交调制器。1.2.2 基于DDS技术的任意波形发生器波形发生器电路系统结构图任意波形发生器(简称AWG)在1975年的开发成功为信号发生器产品增加了一个新品种。在任意波形发生器作为测量用信号激励源进入市场之前,为了产生非正弦波信号,已使用函数发生器提供三角波、斜波、方波和余弦波等几种特殊波形。声音和振动分析需要复杂调制的信号源,以便仿真真实的信号,只有借助任意波

7、形发生器,例如医疗仪器测试往往需要心电波形,任意波形发生器很容易产生各种非标准的振动信号。任意波形发生器的应用非常广泛,在原理上可仿真任意波形,只要数字示波器或其它记录仪捕捉到的波形,任意波形发生器都可复制出,特别有用的是仿真单次偶发的信号,例如地震波形、汽车碰撞波形等。第二章:任意波形产生器介绍2. 1 应用场合与作用波形发生器是在电路设计与调试中应用很多的一种信号发生装置和信号源。一般的信号源仅能产生几种固定形状的波形,而任意波形发生器(AWG)可以创造和产生任何可以设想的波形$其先导性,易用性和灵活性大大方便人们的设计与调试。对于模拟现场信号和各种信号合成能产生各种各样的波形。任意波形发

8、生器是信号源的一种$它具有信号源所有的特点和要领$我们传统都认为信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在电子实验和测试处理中$并不测量任何参数,而是根据使用者的要求,仿真各种测试信号$提供给被测电路$以达到测试的需要。任意波形发生器是一种特殊的信号源,具有综合其它信号源波形生成能力,因而适合各种仿真实验的需要。2.2任意波形产生器系统的构成下图为任意波形发生器的构成图,sel为控制波形输出 。Kk为分频模块,与k步长调整波形输出的频率。输出8位数字信号经过D/A转换输出负波形,再经过1:1比例反向放大器输出正向波形,施密特触发电路输出方

9、波然后经测频模块由数码管显示出频率。至少产生的波形如下:图一:正弦波形图二:三角波形图三:特殊波形图四:方波波形CPLD系统的分析分频系统 系统时钟信号1HZ分频与待测信号一起通过测频模块然后输出到驱动数码管显示。1HZ分频就是用1秒钟时间看有多少方波通过。第三章:任意波形产生器的设计3.1设计要求电路要求可以产生方波、正弦波、三角波,波形的频率可调,通过控制开关控制产生的波形,并通过控制按键控制设计信号的频率,改变频率的方法可以采用分频和DDS的原理进行控制信号频率。并进行D/A转换电路与滤波电路的设计,通过采用施密特触发器对波形进行整形,设计一频率测量电路对所产生的频率进行测量,通过数码管

10、显示出来,并在数码管上显示当前的波形代码。3.2设计思路(1)提出设计说明书,即用自然语言表达系统项目的功能特点和技术参数等。(2)建立VHDL行为模型,这一步是将设计说明书转化为VHDL行为模型。(3)VHDL行为仿真。这一阶段可以利用VHDL仿真器(如ModelSim)对顶层系统的行为模型进行仿真测试,检查模拟结果,继而进行修改和完善。(4)VHDL-RTL级建模。如上所述,VHDL只有部分语句集合可用于硬件功能行为的建模,因此在这一阶段,必须将VHDL的行为模型表达为VHDL行为代码(或称VHDL-RTL级模型)。(5)前端功能仿真。(6)逻辑综合。(7)测试向量生成。这一阶段主要是针对

11、ASIC设计的。FPGA设计的时序测试文件主要产生于适配器。对ASIC的测试向量文件是综合器结合含有版图硬件特性的工艺库后产生的,用于对ASIC的功能测试。(8)功能仿真。利用获得的测试向量对ASIC的设计系统和子系统的功能进行仿真。(9)结构综合。主要将综合产生的表达逻辑连接关系的网表文件,结合具体的目标硬件环境进行标准单元调用、布局、布线和满足约束条件的结构优化配置,即结构综合。(10)门级时序仿真。在这一级中将使用门级仿真器或仍然使用VHDL仿真器(因为结构综合后能同步生成VHDL格式的时序仿真文件)进行门级时序仿真,在计算机上了解更接近硬件目标器件工作的功能时序。(11)硬件测试。这是

12、对最后完成的硬件系统(如ASIC或FPGA)进行检查和测试。3.3设计流程3.4设计步骤及程序设计模块原理图分频模块 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fp ISport(clk:in std_logic; -input 1K Hz k:in std_logic_vector(3 downto 0); clko:buffer std_logic); -out 1 hzend fp;architecture a of fp issignal temp:std_logic_

13、vector(3 downto 0);beginprocess(clk)beginif clk'event and clk='1' thenif temp<k thentemp<=temp+1;elsetemp<="0000"clko<=not clko;end if;end if;end process;end a;正弦函数模块 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.a

14、ll;entity sin isport(clk4:in std_logic; k:in integer range 15 downto 0; dd4:out integer range 255 downto 0);end sin;architecture dacc of sin issignal q: integer range 63 downto 0;beginprocess(clk4)beginif (clk4'event and clk4='1') thenq<=q+k;end if;end process;process(q)begincase q is

15、when 00=>dd4<=255;.when others=>null;end case;end process;end dacc;三角波 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity tria isport(clk3:in std_logic; k:in integer range 15 downto 0; dd3:out integer range 255 downto 0);end tria;architecture dacc of tria issign

16、al b:std_logic;signal c:integer range 255 downto 0;beginprocess(clk3)beginif (clk3'event and clk3='1') thenif(b='0') thenc<=c+k;if(c>=250) thenb<='1'end if;elsif(b='1') thenc<=c-k;if(c<=1) thenb<='0'end if;end if;dd3<=c;end if;end proc

17、ess;end dacc;方波 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity square isport(clk1 : in std_logic; k:in integer range 15 downto 0; dd1 : buffer integer range 255 downto 0);end square;architecture dacc of square issignal q: integer range 25

18、5 downto 0;beginprocess(clk1)beginif (clk1'event and clk1='1') thenq<=q+k;end if;end process;process(q)begincase q iswhen 0 to 127=>dd1<=255;when 128 to 255=>dd1<=127;when others=>null;end case;end process;end dacc;特殊波形 library ieee;use ieee.std_logic_1164.all;use ieee.

19、std_logic_arith.all;use ieee.std_logic_unsigned.all;entity sintra isport(clk4:in std_logic; k:in integer range 15 downto 0; dd4:out integer range 255 downto 0);end sintra;architecture dacc of sintra issignal q: integer range 63 downto 0;beginprocess(clk4)beginif (clk4'event and clk4='1')

20、 thenq<=q+k;end if;end process;process(q)begincase q iswhen 00=>dd4<=255;.when 63=>dd4<=247;when others=>null;end case;end process;end dacc;分频1Hz LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fp1HZ ISPORT(clk:in std_logic; -10M clk1Hz: buffer STD_L

21、OGIC);END fp1hz;ARCHITECTURE one OF fp1hz ISSIGNAL test: integer range 0 to 6000000;beginprocess(clk)beginif clk'event and clk='1' thenif test<5000000 thentest<=test+1;elsetest<=0;clk1hz<=not clk1hz;end if;end if;end process;end one;测频模块 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.A

22、LL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY freq ISPORT(fsin: in STD_LOGIC; clk: IN STD_LOGIC; dout0,dout1,dout2,dout3: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END freq;ARCHITECTURE one OF freq ISSIGNAL test_en: STD_LOGIC; SIGNAL clear: STD_LOGIC; SIGNAL data: STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN PROCESS(clk

23、)BEGIN IF clk'event AND clk='1' THEN test_en<=NOT test_en; END IF; END PROCESS; clear<=NOT clk AND NOT test_en; PROCESS(fsin)BEGIN IF clear='1' THEN data<="0000000000000000"ELSIF fsin'event AND fsin='0' THENIF data(15 DOWNtO 0)="100110011001100

24、1" THEN data<=data+"0110011001100111" elsIF data(11 DOWNtO 0)="100110011001" THEN data<=data+"011001100111" ELSIF data(7 DOWNTO 0)="10011001" THEN data<=data+"01100111" ELSIF data(3 DOWNTO 0)="1001" THEN data<=data+"01

25、11" ELSE data<=data+1; END IF;END IF;END PROCESS;PROCESS(test_en,data) BEGIN IF test_en'event AND test_en='0' THEN dout0<=data(3 downto 0); dout1<=data(7 downto 4); dout2<=data(11 downto 8); dout3<=data(15 downto 12); END IF; END PROCESS;END one;控制模块 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.allentity control isport(sel:in std_logic_vector(1 downto 0); k0,k1,k2,k3:in integer range 255 downto 0; qout:out integer ra

温馨提示

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

评论

0/150

提交评论