资源描述
苏 州 市 职 业 大 学
课程设计说明书
名称 任意波形产生电路设计
2009年1月5日至2009年1月9日共1 周
院 系 电子信息工程系
班 级
姓 名
系 主 任
教研室主任 陆春妹
指导教师
目录
第一章:绪论 1
1.1概述EDA技术 1
1.1.1 EDA技术的应用 2
1.2数字通信系统模型简述 2
1.2.1 DDS优点 3
1.2.2 基于DDS技术的任意波形发生器 3
第二章:设计要求 4
2. 1 设计流程图 4
2.2电路模块组成原理图 4
第三章:系统的设计 5
3.1设计要求 5
3.2设计思路 5
3.3设计流程 6
3.4设计步骤及程序 7
3.5管脚定义 12
3.6 硬件调试结果 13
第四章:课程设计总结 15
参考文献 16
第一章:绪论
1.1概述EDA技术
EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。 现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
1.1.1 EDA技术的应用
EDA技术在进入21世纪后,得到了更大的发展应用,突出表现在以下几个方面:
1.在FPGA上实现DSP应用成为可能,用纯数字逻辑进行DSP模块的设计,使得高速DSP实现成为现实,并有力地推动了软件无线电技术的实用化和发展。基于FPGA的DSP技术,为高速数字信号处理算法提供了实现途径。
2.嵌入式处理器软核的成熟,使得SOPC(System On a Programmable Chip)步入大规模应用阶段,在一片FPGA中实现一个完备的数字处理系统成为可能。
3.使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能。
4.在仿真和设计两方面支持标准硬件描述语言且功能强大的EDA软件不断推出。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
1.2数字通信系统模型简述
数字通信系统是指利用数字信号传递消息的通信系统。数字通信系统的模型如图所示。数字通信涉及的技术问题很多,其中有信源编码、信道编码、保密编码、数字调制、数字复接、同步问题等等。
DDS是一种全数字化的频率合成器,由相位累加器、波形ROM、D/A转换器和低通滤波器构成。时钟频率给定后,输出信号的频率取决于频率控制字,频率分辨率取决于累加器位数,相位分辨率取决于ROM的地址线位数,幅度量化噪声取决于ROM的数据位字长和D/A转换器位数。
1.2.1 DDS优点
DDS有如下优点:
⑴ 频率分辨率高,输出频点多,可达 个频点(N为相位累加器位数);⑵频率切换速度快,可达us量级;⑶ 频率切换时相位连续;⑷ 可以输出宽带正交信号;⑸ 输出相位噪声低,对参考频率源的相位噪声有改善作用;⑹可以产生任意波形;⑺ 全数字化实现,便于集成,体积小,重量轻,因此八十年代以来各国都在研制和发展各自的DDS产品,如美国QUALCOMM公司的Q2334,Q2220;STANFORD公司的STEL-1175,STEL-1180;AD公司的AD7008,AD9850,AD9854等。这些DDS芯片的时钟频率从几十兆赫兹到几百兆赫兹不等,芯片从一般功能到集成有D/A转换器和正交调制器。
1.2.2 基于DDS技术的任意波形发生器
波形发生器电路系统结构图
任意波形发生器(简称AWG)在1975年的开发成功为信号发生器产品增加了一个新品种。在任意波形发生器作为测量用信号激励源进入市场之前,为了产生非正弦波信号,已使用函数发生器提供三角波、斜波、方波和余弦波等几种特殊波形。声音和振动分析需要复杂调制的信号源,以便仿真真实的信号,只有借助任意波形发生器,例如医疗仪器测试往往需要心电波形,任意波形发生器很容易产生各种非标准的振动信号。任意波形发生器的应用非常广泛,在原理上可仿真任意波形,只要数字示波器或其它记录仪捕捉到的波形,任意波形发生器都可复制出,特别有用的是仿真单次偶发的信号,例如地震波形、汽车碰撞波形等。
第二章:设计要求
2. 1 设计流程图
电路要求可以产生方波、正弦波、三角波,波形的频率可调,通过控制开关控制产生的波形,并通过控制按键控制设计信号的频率,改变频率的方法可以采用分频和DDS的原理进行控制信号频率。并进行D/A转换电路与滤波电路的设计,通过采用施密特触发器对波形进行整形,设计一频率测量电路对所产生的频率进行测量,通过数码管显示出来,并在数码管上显示当前的波形代码。
至少产生的如下波形
图1 正弦波形 图2 三角波形
图3 方波波形 图4特殊波形
2.2电路模块组成原理图
第三章:系统的设计
3.1设计要求
电路要求可以产生方波、正弦波、三角波,波形的频率可调,通过控制开关控制产生的波形,并通过控制按键控制设计信号的频率,改变频率的方法可以采用分频和DDS的原理进行控制信号频率。并进行D/A转换电路与滤波电路的设计,通过采用施密特触发器对波形进行整形,设计一频率测量电路对所产生的频率进行测量,通过数码管显示出来,并在数码管上显示当前的波形代码。
3.2设计思路
(1)提出设计说明书,即用自然语言表达系统项目的功能特点和技术参数等。
(2)建立VHDL行为模型,这一步是将设计说明书转化为VHDL行为模型。
(3)VHDL行为仿真。这一阶段可以利用VHDL仿真器(如ModelSim)对顶层系统的行为模型进行仿真测试,检查模拟结果,继而进行修改和完善。
(4)VHDL-RTL级建模。如上所述,VHDL只有部分语句集合可用于硬件功能行为的建模,因此在这一阶段,必须将VHDL的行为模型表达为VHDL行为代码(或称VHDL-RTL级模型)。
(5)前端功能仿真。
(6)逻辑综合。
(7)测试向量生成。这一阶段主要是针对ASIC设计的。FPGA设计的时序测试文件主要产生于适配器。对ASIC的测试向量文件是综合器结合含有版图硬件特性的工艺库后产生的,用于对ASIC的功能测试。
(8)功能仿真。利用获得的测试向量对ASIC的设计系统和子系统的功能进行仿真。
(9)结构综合。主要将综合产生的表达逻辑连接关系的网表文件,结合具体的目标硬件环境进行标准单元调用、布局、布线和满足约束条件的结构优化配置,即结构综合。
(10)门级时序仿真。在这一级中将使用门级仿真器或仍然使用VHDL仿真器(因为结构综合后能同步生成VHDL格式的时序仿真文件)进行门级时序仿真,在计算机上了解更接近硬件目标器件工作的功能时序。
(11)硬件测试。这是对最后完成的硬件系统(如ASIC或FPGA)进行检查和测试。
3.3设计流程
3.4设计步骤及程序
分频模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY fp IS
port(clk:in std_logic; --input 1K Hz
k:in std_logic_vector(3 downto 0);
clko:buffer std_logic); --out 1 hz
end fp;
architecture a of fp is
signal temp:std_logic_vector(3 downto 0);
begin
process(clk)
begin
if clk'event and clk='1' then
if temp<k then
temp<=temp+1;
else
temp<="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.all;
entity sin is
port(clk4:in std_logic;
k:in integer range 15 downto 0;
dd4:out integer range 255 downto 0);
end sin;
architecture dacc of sin is
signal q: integer range 63 downto 0;
begin
process(clk4)
begin
if (clk4'event and clk4='1') then
q<=q+k;
end if;
end process;
process(q)
begin
case q is
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 is
port(clk3:in std_logic;
k:in integer range 15 downto 0;
dd3:out integer range 255 downto 0);
end tria;
architecture dacc of tria is
signal b:std_logic;
signal c:integer range 255 downto 0;
begin
process(clk3)
begin
if (clk3'event and clk3='1') then
if(b='0') then
c<=c+k;
if(c>=250) then
b<='1';
end if;
elsif(b='1') then
c<=c-k;
if(c<=1) then
b<='0';
end if;
end if;
dd3<=c;
end if;
end process;
end dacc;
方波
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity square is
port(clk1 : in std_logic;
k:in integer range 15 downto 0;
dd1 : buffer integer range 255 downto 0);
end square;
architecture dacc of square is
signal q: integer range 255 downto 0;
begin
process(clk1)
begin
if (clk1'event and clk1='1') then
q<=q+k;
end if;
end process;
process(q)
begin
case q is
when 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.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity sintra is
port(clk4:in std_logic;
k:in integer range 15 downto 0;
dd4:out integer range 255 downto 0);
end sintra;
architecture dacc of sintra is
signal q: integer range 63 downto 0;
begin
process(clk4)
begin
if (clk4'event and clk4='1') then
q<=q+k;
end if;
end process;
process(q)
begin
case q is
when 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 IS
PORT(clk:in std_logic; --10M
clk1Hz: buffer STD_LOGIC);
END fp1hz;
ARCHITECTURE one OF fp1hz IS
SIGNAL test: integer range 0 to 6000000;
begin
process(clk)
begin
if clk'event and clk='1' then
if test<5000000 then
test<=test+1;
else
test<=0;
clk1hz<=not clk1hz;
end if;
end if;
end process;
end one;
测频模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY freq IS
PORT(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 IS
SIGNAL test_en: STD_LOGIC;
SIGNAL clear: STD_LOGIC;
SIGNAL data: STD_LOGIC_VECTOR(15 DOWNTO 0);
BEGIN
PROCESS(clk)
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'
THEN
IF data(15 DOWNtO 0)="1001100110011001"
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+"0111";
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.all
entity control is
port(sel:in std_logic_vector(1 downto 0);
k0,k1,k2,k3:in integer range 255 downto 0;
qout:out integer range 255 downto 0);
end control;
architecture a of control is
begin
process(sel,k0,k1,k2,k3)
begin
if sel=“00” then
qout<=k0;
elsif sel=“01” then
qout<=k1;
elsif sel=“10” then
qout<=k2;
elsif sel=“11” then
qout<=k3;
end if;
end process;
end a;
3.5管脚定义
3.6 硬件调试结果
1、不同分频产生方波如图
2、不同分频产生三角波如图
3、不同分频产生任意波如图:
4、不同分频产生正弦波如图:
第四章:课程设计总结
这次EDA课程设计历时一个星期,在整整一个星期的日子里,有苦有乐。虽然遇到不少困难,通过老师的细心讲解与同学的热情帮助,最终圆满的完成任务。可贵的是这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能从根本上提高自己的实际动手能力和独立思考的能力。在设计的过程中,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,这说明自己对所学过的知识理解得不够深刻,掌握得不够牢固。总的来说这次课程设计我学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
参考文献
1. 王英军,黄小辉.数字电视新形势下的综合业务管理[J].有线电视技术,2004(6):78-80.
2. 吴小强. 数字电视用户管理系统[J].有线电视技术,2004(4):83-86.
3. ErichGamma,RichafdHelm,RalphJohnson,etal.设计模式[M]. 李英军,译.北京:机械工业出版社,2003:199-210.
4. 宋万杰,罗丰,吴顺君.CPLD技术及其应用.西安:西安电子科技大学出版社,1999
17
展开阅读全文