
EDA课程设计(论文)任意波形发生器.doc
21页摘 要摘要: 随着信息科技的发展,波形发生器在科技社会等多个领域发挥着越来越重要作用信号发生器一般指自动产生正弦波、方波、三角波等电压波形的电路或者仪器传统信号发生器大多由模拟电路构成,存在连线复杂、调试繁琐且可靠性较差等缺点本次设计课题为应用VHDL语言及MAX+PLUSII软件提供的原理图输入设计功能,组合电子线路的设计加以完成一个任意波形信号发生器它具有结构紧凑,性能稳定,设计结构灵活,方便进行多功能组成的特点,经济实用,成本低廉可产生正弦波、方波、三角波和锯齿波等多种波形信号,并可使用示波器观察波形实现了系统信号实时快速测量,也为其广泛应用于实际领域创造了条件关键词:信号发生器 VHDL MAX+PLUSII 示波器 目 录绪 论 3第一章 系统设计 41任意波形信号发生器的概述: 42设计的意义 4第二章 系统设计方案 51系统框图 52系统电路图 53基本工作原理 6第三章单元电路模块源程序及功能 71分频模块 72频率选择模块 83波形选择模块 94.输出波形选择模块 115.幅度控制模块 136.DA转化模块: 147系统总的仿真 14第四章 实验结果及硬件验证 15实验心得 18致谢词 19参考文献 20 绪 论随着电子技术的发展,产品的技术含量越来越高,是得芯片的复杂程度越来越高,人们对数万门乃至数百万门设计的需求也越来越多,特别是专门集成电路(ASIC)设计技术的日趋进步和完善,推动了数字系统设计的迅速发展。
仅靠原理图输入方式已不能满足要求,采用硬件设计描述语言VHDL的设计方式应运而生,解决了传统用电路原理图设计大系统工程时的诸多不便,成为电路设计人员的最得力助手设计工作从行为、功能级开始,并向着设计的高层次发展信号发生器是数字设备运行工作中必不可少的一部分,没有良好的信号发生器,最终会导致系统不能正常工作,更不必谈什么实现其它功能了不论是处于开发还是故障检修阶段,输出标准且性能优越的信号发生器总是能够带来工作效率的大幅提升新产品有一个标准的信号源,损坏的系统得到正确校验,不会被一些故障所蒙蔽在传统的信号发生器中,大都使用分立元件,而且体积庞大携带不便,且大部分只能输出一种波在设计领域,不管采用什么技术生产,生产的产品用在哪里,其产品设计的宗旨都是离不开以下几点:实用性高、成本低、可升级、功能完善、可扩展等使用专门的数字电路设计的信号发生器,设备成本高、使用复杂基于以上考虑,在中小型数字电路的设计和测试中,迫切需要设计一种小型易用成本低廉的信号发生器此课题的设计以小型经济、集成度高、性能稳定、方便使用为知道,在功能上力求完善实用,同时兼顾商业价值与应用价值的体现 第一章 系统设计1任意波形信号发生器的概述: 随着信息科技的发展,波形发生器在科技社会等多个领域发挥着越来越重要作用。
采用EDA技术利用MAX+PLUSII软件平台,设计的多功能波形发生器系统,大大简化其结构,降低成本,提高了系统的可靠性和灵活性设计中运用计数器,数据选择器,对所需的频率进行选择和同步使用宏功能模块存储波形然后多波形进行幅度的选择产生满足需要的不用频率和幅度的波形2设计的意义 信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛地应用凡是产生测试信号的仪器,统称为信号源,也称为信号发生器,它用于产生被测电路所需特定参数的电测试信号信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量参数可见,信号源在电子实验和测试处理中,并不测量任何参数,而是根据使用者的要求,仿真各种测试信号,提供给被测电路,以达到测试的需要它能够产生多种波形,如三角波、矩形波(含方波)、正弦波等,在电路实验和设备检测中具有十分广泛地用途例如,在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的信号发生器。
本设计采用EDA来设计制作多功能信号发生器该信号发生器可以产生正弦波、三角波、方波等波形 第二章 系统设计方案1系统框图图1.任意波形信号发生器系统框图2系统电路图 图2.任意波形信号发生器系统电路图3基本工作原理将要产生的波形数据存入波形存储器中, 然后在参考脉冲的作用下, 对输入的频率数据进行累加, 并将累加器输出的一部分作为读取波形存储器的地址, 将读出的波形数据经D/A 转换为相应的电压信号,D/A 转换器输出的一系列的阶梯电压信号经低通滤波器滤波后便输出了光滑的合成波形的信号选择八种基础波形为设计与实现的对象,而八个波形作为同一个任意波形发生器里的四个部分,是有着同一个输入与输出,因此在设计上还需要对波形进行选择与控制的部分,通过对时钟脉冲输入的选择,使得八个波形模块只有一个输入为时钟脉冲,其他三个模块则输入始终为0在波形输出时,设计一个模块控制输出的波形是所要求输出的波形,在时钟脉冲选择与输出波形选择两模块之间对于频率的选择可以选择分频器,同时也可以选择计数器,本实验采用的是计数器以实现分频的效果,输出分别为二分频,四分频,八分频,十六分频用以实现不同的频率。
幅度调节可以使用lpm_divide,可以实现八种不同的幅度调节第三章单元电路模块源程序及功能1分频模块以下为分频模块(CT74161)的VHDL语言编程源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CT74161 ISPORT(clk : IN STD_LOGIC;clk_div2 : OUT STD_LOGIC;clk_div4 : OUT STD_LOGIC;clk_div8 : OUT STD_LOGIC;clk_div16 : OUT STD_LOGIC);END CT74161;ARCHITECTURE rtl OF CT74161 ISSIGNAL count : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk)BEGINIF (clk'EVENT AND clk='1') THENIF(count="1111") THENCount <= (OTHERS =>'0');ELSECount <= count +1;END IF ;END IF ;END PROCESS;clk_div2 <= count(0);clk_div4 <= count(1);clk_div8 <= count(2);clk_div16 <= count(3);END rtl;在MAX+PLUSII下得到的电路模块图形:图1软件仿真数据: 图 22频率选择模块以下为频率选择模块(tiaopin)的VHDL语言编程源程序library ieee;use ieee.std_logic_1164.all;entity tiaopin is port(s1,s0: in std_logic; a,b,c,d: in std_logic; y: out std_logic);end tiaopin;architecture one of tiaopin is signal s: std_logic_vector(1 downto 0); signal y_temp: std_logic; begin s<=s1&s0; process(s1,s0,a,b,c,d) begin case s is when "00"=>y_temp<=a; when "01"=>y_temp<=b; when "10"=>y_temp<=c; when "11"=>y_temp<=d; when others=>y<='X'; end case; end process; y<=y_temp;end one;在MAX+PLUSII下得到的电路模块图形:图33波形选择模块以下为波形选择模块(decoder)的VHDL语言编程源程序library ieee;use ieee.std_logic_1164.all;entity DECODER is port(a0,a1,a2,s0,s1,s2:in std_logic; y0,y1,y2,y3,y4,y5,y6,y7:out std_logic);end DECODER;architecture ymq of DECODER issignal a:std_logic_vector(2 downto 0);begin a<=a2&a1&a0;process(a,s0,s1,s2) variable y:std_logic_vector(7 downto 0); begin if(s2='0' and s1='0' and s0='1')then case a is when"000"=>y:="11111110"; when"001"=>y:="11111101"; when"010"=>y:="11111011"; when"011"=>y:="11110111"; when"100"=>y:="11101111"; when"101"=>y:="11011111"; when"110"=>y:="10111111"; when"111"=>y:="01111111"; when others=>y:="XXXXXXXX"; end case; else y:="11111111"; end if; y0<=y(0); y1<=y(1); y2<=y(2); y3<=y(3); y4<=y(4); y5<=y(5); y6<=y(6); y7<=y(7); end process; end ymq;在MAX+PLUSII下得到的电路模块图形:图4软件仿真数据:图 54.输出波形选择模块以下为输出波形模块(lpm)的VHDL语言编程源程序library ieee;use ieee.std_logic_1164。
