电路综合设计实验设计实验2实验报告

上传人:仙*** 文档编号:99455153 上传时间:2022-05-31 格式:DOC 页数:10 大小:184.50KB
收藏 版权申诉 举报 下载
电路综合设计实验设计实验2实验报告_第1页
第1页 / 共10页
电路综合设计实验设计实验2实验报告_第2页
第2页 / 共10页
电路综合设计实验设计实验2实验报告_第3页
第3页 / 共10页
资源描述:

《电路综合设计实验设计实验2实验报告》由会员分享,可在线阅读,更多相关《电路综合设计实验设计实验2实验报告(10页珍藏版)》请在装配图网上搜索。

1、. .设计实验2:多功能函数信号发生器一、 摘要任意波形发生器是不断开展的数字信号处理技术和大规模集成电路工艺孕育出来的一种新型测量仪器,能够满足人们对各种复杂信号或特殊信号的需求,代表了信号源的开展方向。可编程门阵列FPGA具有高集成度、高速度、可重构等特性。使用FPGA来开发数字电路,可以大大缩短设计时间,减小印制电路板的面积,提高系统的可靠性和灵活性。此次实验我们采用DE0-CV开发板,实现函数信号发生器,根据按键选择生产正弦波信号、方波信号、三角信号。频率围为10KHz300KHz,频率稳定度,频率最小不进10kHz。提供DAC0832,LM358。二、 正文1.方案论证基于实验要求,

2、我们选择了教师提供的数模转换芯片DAC0832,运算放大器LM358以及DE0-CV开发板来实现函数信号发生器。 DAC0832是基于先进CMOS/Si-Cr技术的八位乘法数模转换器,它被设计用来与8080,8048,8085,Z80和其他的主流的微处理器进展直接交互。一个沉积硅铬R-2R 电阻梯形网络将参考电流进展分流同时为这个电路提供一个非常完美的温度期望的跟踪特性0.05%的全温度围过温最大线性误差。该电路使用互补金属氧化物半导体电流开关和控制逻辑来实现低功率消耗和较低的输出泄露电流误差。在一些特殊的电路系统中,一般会使用晶体管晶体管逻辑电路TTL提高逻辑输入电压电平的兼容性。另外,双缓

3、冲区的存在允许这些DAC数模转换器在保持一下个数字词的同时输出一个与当时的数字词对应的电压。DAC0830系列数模转换器是八位可兼容微处理器为核心的DAC数模转换器大家族的一员。 LM358是双运算放大器。部包括有两个独立的、高增益、部频率补偿的双运算放大器,适合于电源电压围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。LM358的封装形式有塑封8引线双列直插式和贴片式。本次实验选用的FPGA是Altera公司Cyclone系列FPGA芯片。Cyclone V系列器件延

4、续了前几代Cyclone系列器件的成功,提供针对低本钱应用的用户定制FPGA特性,支持常见的各种外部存储器接口和I/O协议,并且含有丰富的存储器和嵌入式乘法器,这些嵌的存储器使我们在设计硬件电路时省去了外部存储器,节省了资源,而其硬件乘法器资源那么非常适合用来实现高速DDS调制器。另外,Cyclone V系列器件使用极低的1.2V核电压,大大降低了芯片的功耗。在本文的设计中,FPGA对主要实现DDS的功能,对外主要为外围器件提供控制信号和数据总线接口。除了上述元器件以及相对应的软件的使用,我们要对经过DAC0832数模转换器输出的波形进展放大之后再进展低通滤波,以防止外界环境的干扰和系统部元器

5、件在工作时产生的噪声。2.理论分析与计算DDS原理: DDS原理的背景1973年,J.Tiemey和等人在A Digital Frequency Synthesizer一文中首次提出了DDS的概念,但限于当时的技术条件,DDS并没有引起人们的足够重视。上世纪90年代以来,随着数字集成电路和微电子技术的开展,DDS技术的优越性才日益表达出来。 DDS的根本构造DDS与大多数的数字信号处理技术一样,它的根底仍然是奈圭斯特采样定理。奈圭斯特采样定理是任何模拟信号进展数字化处理的根底,它描述的是一个带限的模拟信号经抽样变成离散值后可不可以由这些离散值恢复原始模拟信号的问题。奈圭斯特采样定理告诉我们,当

6、抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散信号无失真地恢复出原始模拟信号。只不过在DDS技术中,这个过程被颠倒过来了。DDS不是对模拟信号进展抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。DDS电路一般由参考时钟、相位累加器、波形存储器、D/A转换器DAC和低通滤波器LPF组成。其构造框图如以下图所示:其中,为参考时钟频率,为频率控制字,为相位累加器位数,为波形存储器位数,为波形存储器的数据位字长和D/A转换器位数。 DDS系统中的参考时钟通常由一个高稳定度的晶体振荡器来产生,用来作为整个系统各个组成局部的同

7、步时钟。频率控制字Frequency Control Word,FCW实际上是二进制编码的相位增量值,它作为相位累加器的输入累加值。相位累加器由加法器和存放器级联构成,它将存放器的输出反响到加法器的输入端实现累加的功能。在每一个时钟脉冲,相位累加器把频率字累加一次,累加器的输出相应增加一个步长的相位增量,由此可以看出,相位累加器的输出数据实质上是以为步长的线性递增序列在相位累加器产生溢出以前,它反映了合成信号的相位信息。相位累加器的输出与波形存储器的地址线相连,相当于对波形存储器进展查表,这样就可以把存储在波形存储器中的信号抽样值二进制编码值查出。在系统时钟脉冲的作用下,相位累加器不停的累加,

8、即不停的查表。波形存储器的输出数据送到D/A转换器,D/A转换器将数字量形式的波形幅度值转换成所要求合成频率的模拟量形式信号,从而将波形重新合成出来。假设波形存储器中存放的是正弦波幅度量化数据,那么D/A转换器的输出是近似正弦波的阶梯波,还需要后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯洁的正弦波信号。如以下图所示为DDS各个局部的输出信号:由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周。相位累加器的溢出频率即为合成信号的频率。可见,频率控制字K越大,相位累加器产生溢出的速度越快,输出频率也就越高。故改变

9、频率字即相位增量,就可以改变相位累加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率。 DDS原理根据傅立叶变换定理,任何满足Dirichlet条件的周期信号都可以分解为一系列正弦或者余弦信号之和。为了不失一般性,下面以正弦信号的产生为例来说明DDS的根本原理。我们知道,正、余弦信号用可以用复数形式表示为:式(2-1)式(2-2)上图描述了矢量绕原点沿正方向逆时针旋转时,其模值与轴夹角相位角及在轴上的投影三者之间的关系。当连续地绕原点旋转,将取之间的任意值,将以为模取之间的任意值。如果将看作我们欲重构正弦信号的幅度值,那么相位角和的关系为:。现将相位数字化采样、量化,将量化成等份,

10、那么相位量化的最小间隔为,这样造成的结果是重构信号的幅度值也相应离散化:式(2-3)由式(2-3)可以看出,只能取与相位对应的幅度值。如上图所示,设此时不是绕原点连续旋转,而是在系统时钟的控制下以相位增量进展阶跃式旋转上图中,很容易可以看出来,在相位周期变化的同时,输出信号的幅度也在周期重复着,因此,重构信号的周期在幅度中也就表达出来了。为了进一步探讨相位增量对输出信号频率的影响,我们分别以相位增量为和重构信号幅度,分别如以下图1和2所示。在此,我们假设相位累加是在一样的系统时钟的进展的,即对于不同的相位增量,是固定不变的,这是理解相位增量和重构信号频率关系的根底。图1 相位增量为时相位幅度的

11、映射关系图2 相位增量为时相位幅度的映射关系比照图1和图2,我们很容易发现,当相位增量减少为原来的二分之一时,输出信号的采样值密集度就成了原来的两倍,那么旋转一周的时间自然也增大为原来的两倍,即。周期与频率成倒数关系,由此可得两种情况下输出重构信号的频率关系:,如图3所示。图3 相位增量不同对重构信号频率的影响仿真分析到这里,我们可以得出结论,在DDS系统中,在参考时钟固定不变的前提下,通过改变相位增量的值,就可以得到不同频率的重构信号。我们假设有一个频率为的正弦信号:式(2-4)现以采样频率对该信号进展抽样,得到离散序列为:式(2-5)其中为采样周期。习惯上将式(2-5)写成式(2-6)的形

12、式:式(2-6)式(2-6)对应的相位序列为:式(2-7)该序列的显著特性是线性,即相邻样值之间的相位增量是一常数,且仅与信号频率有关,当式(2-7)中的取1时得到量化相位增量为:式(2-8)倘假设我们将相位均匀量化等份,人为构造一个相位值:式(2-9)并且使得,那么就可以得到如下关系:式(2-10)根据以上原理,如果我们用变量构造一个量化序列:式(2-11)然后完成到另一个序列的映射,即由构造序列:式(2-12)将式(2-10)代入式(2-12)可得:式(2-13)比照式(2-6)跟式(2-13),我们不难发现,其实就是信号经过采样频率抽样后的离散时间序列。在满足奈圭斯特采样定律的的条件下,

13、即:式(2-14)可以经过D/A转换和低通平滑滤波唯一地恢复出。可见,通过上述变换,变量将唯一地确定一个单频模拟正弦信号:式(2-15)该信号的频率为:式(2-16)式(2-16)就是DDS的根本方程,是利用DDS进展频率合成的立足点。在实际的DDS应用中,一般取,为正整数,于是DDS的根本方程可写成:式(2-17)由式(2-17)可以看出,当时,DDS系统输出信号频率最小,而这个最小频率同时也是DDS系统的频率分辨率:式(2-18)对于DDS系统从波形存储器中读数据的过程,我们可以将其看作是对波形存储器中的波形数据再次采样的过程,也就是说,DDS系统查表的过程就是从波形存储器中二次采样过程,

14、一个周期查表的点数即为采样的点数。DDS系统要恢复出原始波形,其在一个周期至少要取样两点,这是受我们一直都在强调的奈圭斯特采样定理的限制。那么DDS系统在理论上能输出的最大频率是:式(2-19)经过以上的分析,我们得出以下几点结论:1DDS系统的输出频率只与频率控制字、系统时钟频率、相位累加器位数有关。在系统时钟频率和相位累加器位数固定时,通过改变频率控制字的值,就可以方便地改变输出信号的频率。2DDS系统的频率分辨率只与系统的系统时钟频率和相位累加器位数有关。想要提高系统的分辨率,可以增加相位累加器位数或者是降低系统时钟频率。3DDS理论上最大输出频率不会超过系统时钟频率的二分之一,但在实际

15、应用中,由于DDS系统中的低通滤波器非理想特性,由通带到阻带之间存在着一个过渡带,工程中DDS最高输出频率只取到左右。DDS技术特点1DDS技术可以用于产生任意波形基于前面对DDS系统的根本构造分析,很容易理解,只要改变存储在波形存储器中的波形数据,就可以改变输出波形。所以对于任何周期性波形,只要满足采样定理,都可以利用DDS技术来实现。2DDS系统具有很高的频率分辨率DDS系统输出频率的分辨率和频点数随相位累加器的位数成指数增长,由可知,在系统时钟频率不变的情况下,只要增大相位累加器的位数,就可以得到几乎是任意小的频率分辨率,可以满足精细频率控制的要求。DDS如此精细的频率分辨率,使其输出频

16、率已十分逼近连续变化。3输出频率切换速度快且相位保持连续与锁相频率合成相比,由于DDS系统是一个开环系统,所以当一个新的频率控制字送到时,它会迅速合成这个新的频率,实际的频率切换时间可以达ns级。同时,频率切换时,DDS系统的输出波形的相位是连续的。DDS系统的频率字改变时,输出波形的变化过程可以用图4描述。图4频率控制字改变时累加器的输出值和输出波形的变化仿真在波形输出到点时,频率字发生了改变变小,相位累加器的累加值即相位步进变小,其输出值斜率也变小,系统的输出波形的频率也在同时刻变小。DDS系统在频率字发生改变后的一个时钟周期,其输出频率就可以就转换到了新的频率上,也即在频率字的值改变以后

17、,累加器在经过一个时钟周期后就按照新的频率字进展累加,开场合成新的频率。所以我们可以认为DDS的频率切换是在一个系统时钟周期完成的,系统时钟频率越高,切换速度越快。另外,从前面对DDS技术原理的分析可知,要改变输出频率,实际上改变的是频率字,也就是相位增量。当频率字的值从改变为之后,相位累加器是在已有的累积相位上,再对进展累加,相位函数曲线是连续的。从图2.12也可以看出,只是在频率字改变的瞬间相位函数曲线的斜率发生了突变,相位值并没有发生跳跃,因此DDS能够在频率切换的过程中保持相位连续,输出波形能够平滑地从一个频率过渡到另外一个频率。由于DDS采用数字化技术,最终合成信号是经过D/A转换得

18、到的,所以不可防止的存在着以下缺点:1DDS在工程中的最高输出频率一般只能到达系统时钟频率的40%,要想获得较高的频率,就必须提高系统时钟频率,也就是说DDS的相位累加器、波形存储器和D/A转换器都将工作在较高的时钟频率下,它的实现依赖于高速数字电路和高速D/A转换器。这也是DDS系统在早期没有受到重视,而直到最近几年才迅速开展的原因。2DDS系统采用数字合成技术,先离散信号再变换成模拟信号输出,这其中导致了各种误差,尤其是相位截断误差,因此各种杂波是不可防止的。为了具有较高的输出频率,DDS系统的参考时钟频率一般都比较高,根据式(2-18),在较高的时钟频率下,要想获得较高的频率分辨率,只有

19、通过增加相位累加器的位数,故一般的取值都较大。如果相位累加器的所有输出都用来作为波形存储器的寻址地址,那么存储器的容量会大得惊人。例如,如果32位累加器的所有位都用来作为存储器的地址,那么需要4G个存储单元,而如果换成48位的累加器,那么就需要256T1T=1024G个存储单元,这样的设计显然是没有方法承受的。因此存储器的地址线位数一般都小于。这样存储器的地址线就只能接到相位累加器的输出的高位上,而低位那么要舍弃,也就产生了相位截断误差,表现在输出频谱上就是杂散分量。3.电路与程序设计:针脚连接方式程序设计的顶层设计代码如下:详细代码请查看的工程文件LIBRARY IEEE; USE IEEE

20、.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; - ENTITY mydds IS - 顶层设计 PORT ( CLK : IN STD_LOGIC; FWORD : IN STD_LOGIC_VECTOR(4 DOWNTO 0); MODE : IN STD_LOGIC_VECTOR(1 DOWNTO 0); FOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END mydds; - ARCHITECTURE behav OF mydds IS - COMPONENT REG8B -load even

21、t and load = 1 -dout = din; PORT ( LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(12 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(12 DOWNTO 0); END COMPONENT; - COMPONENT ADDER8B PORT ( A : IN STD_LOGIC_VECTOR(5 DOWNTO 0); B : IN STD_LOGIC_VECTOR(12 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(12 DOWNTO 0); END CO

22、MPONENT; - COMPONENT lpm_rom8 PORT ( address : IN STD_LOGIC_VECTOR(12 DOWNTO 0); inclock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END COMPONENT; - COMPONENT lpm_romsq PORT ( address : IN STD_LOGIC_VECTOR(12 DOWNTO 0); inclock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END C

23、OMPONENT; - COMPONENT lpm_romsj PORT ( address : IN STD_LOGIC_VECTOR(12 DOWNTO 0); inclock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END COMPONENT; - COMPONENT proceofk PORT ( k_in : IN STD_LOGIC_VECTOR(4 DOWNTO 0); k_out : OUT STD_LOGIC_VECTOR(5 DOWNTO 0); END COMPONENT; - COMPONENT mo

24、dechoose PORT ( mode_in : IN STD_LOGIC_VECTOR(1 DOWNTO 0); data_sin: in std_logic_vector(7 downto 0); data_sq: in std_logic_vector(7 downto 0); data_sj: in std_logic_vector(7 downto 0); data_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END COMPONENT; - SIGNAL F8B : STD_LOGIC_VECTOR( 4 DOWNTO 0); SIGNAL F

25、8B_out : STD_LOGIC_VECTOR( 5 DOWNTO 0); SIGNAL A8B : STD_LOGIC_VECTOR( 12 DOWNTO 0); SIGNAL B8B : STD_LOGIC_VECTOR( 12 DOWNTO 0); SIGNAL C8B : STD_LOGIC_VECTOR( 12 DOWNTO 0); SIGNAL wire_sin : STD_LOGIC_VECTOR( 7 DOWNTO 0); SIGNAL wire_sq : STD_LOGIC_VECTOR( 7 DOWNTO 0); SIGNAL wire_sj : STD_LOGIC_V

26、ECTOR( 7 DOWNTO 0); -signal modeall : std_logic_vector( 1 downto 0 );- BEGIN F8BF8B,k_out=F8B_out); U1 : ADDER8B PORT MAP( A=F8B_out,B=B8B, S=A8B ); U2 : REG8B PORT MAP( DOUT=B8B,DIN=A8B, LOAD=CLK ); U3 : REG8B PORT MAP( DOUT=C8B,DIN=B8B, LOAD=CLK ); U4 : lpm_ROM8 PORT MAP( address=C8B(12 downto 0),

27、 q=wire_sin, inclock=CLK ); U5 : lpm_ROMsq PORT MAP( address=C8B(12 downto 0), q=wire_sq, inclock=CLK ); U6 : lpm_ROMsj PORT MAP( address=C8B(12 downto 0), q=wire_sj, inclock=CLK ); U7 : modechoose PORT MAP (mode_in=mode,data_sin=wire_sin,data_sq=wire_sq,data_sj=wire_sj,data_out=FOUT);END behav; 4.测

28、试方案与测试结果要求:1实现方波,正弦波,三角波输出。2通过按键进展频率控制3频率围为10KHz300KHz。(因实验仪器达不到精度因此下调了围指标) 4频率可以设置,最小设置单位为10kHz。(因实验仪器达不到精度因此下调了指标)5可以进展点频测量,幅频测量误差的绝对值0.5dB,相频测量误差的绝对值5%。首先是用Quartus II 13.0软件编译源程序,分配管脚,定义时钟、复位、选择波形、八位数据、DA时钟管脚。编译生成.sof文件通过JTAG接口下载到FPGA板子上,连接DA模块和示波器。分别按键选择不同的波形,调试程序。其次,通过锁相环改动波形频率,编译下载程序。对不同频率的波形,

29、进展调试。最后,编译生成.sof文件,转换成.jic文件通过JTAG接口固化到FPGA芯片里。测试:给DE0板供给5V的直流电压,使其能够正常工作。然后分别按下相应的按钮使其分别输出三角波,sin波和方波。假设三个波形能够正常输出且不产生严重的失真,那么我们认为该函数信号发生器满足第一条指标,是合格的。其次,按动DE0板上对应控制频率的按钮,观察示波器上的波形参数,如果每按动一次按钮,输出波形的频率都会发生改变,且每次改变都为10KHZ,而且输出波形的频率围为10KHZ-300KHZ,那么我们认为该函数信号发生器满足这三条指标,是合格的。最后,我们要该函数信号发生器进展点频测量。对于10KHZ-300KHZ围的每个频率点,我们都要对其进展测量。首先确定该函数信号发生器在某一频率点上的标准频率,然后用示波器测得该点的实际频率,那么该点幅频测量误差=100%,经过换算得到以dB为单位的数值。同理可得相频测量的误差。如果测得幅频测量误差的绝对值0.5dB,相频测量误差的绝对值5%,那么我们认为该函数信号发生器满足这一指标,合格。综上所述,如果我们设计的函数信号发生器能满足以上所有的指标,那么该函数信号发生器为合格器件。优选

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!