EDA技术应用 论文.docx
- 文档编号:3618152
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:14
- 大小:1.03MB
EDA技术应用 论文.docx
《EDA技术应用 论文.docx》由会员分享,可在线阅读,更多相关《EDA技术应用 论文.docx(14页珍藏版)》请在冰豆网上搜索。
EDA技术应用论文
EDA技术应用
——直接数字频率合成器的设计与分析
院(系、部):
信息工程学院
姓名:
李凌霄
学号:
080766
年级:
三年级
专业:
计算机科学与技术
任课教师:
李洋
2010年11月10日·北京
目录
1EDA技术的概念及范范畴1
2EDA技术的发展1
3EDA技术的发展趋势1
4EDA技术的工程应用实例2
5系统仿真/硬件验证10
6系统的硬件验证11
7心得体会12
8参考文献12
一、EDA技术的概念及范范畴
EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。
现在对EDA的概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。
EDA设计可分为系统级、电路级和物理实现级。
二、EDA技术的发展
回顾近30年电子设计技术的发展历程,可将EDA技术分为三个阶段。
七十年代为CAD阶段,这一阶段人们开始用计算机辅助进行IC版图编辑和PCB布局布线,取代了手工操作,产生了计算机辅助设计的概念。
八十年代为CAE阶段,与CAD相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,以实现工程设计,这就是计算机辅助工程的概念。
CAE的主要功能是:
原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。
九十年代为ESDA阶段。
尽管CAD/CAE技术取得了巨大的成功,但并没有把人从繁重的设计工作中彻底解放出来。
在整个设计过程中,自动化和智能化程度还不高,各种EDA软件界面千差万别,学习使用困难,并且互不兼容,直接影响到设计环节间的衔接。
基于以上不足,人们开始追求贯彻整个设计过程的自动化,这就是ESDA即电子系统设计自动化。
三、EDA技术的发展趋势
从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用文泛、工具多样、软件功能强大。
中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分(约11%)的设计人员工发复杂的片上系统器件。
为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。
在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。
要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。
有条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际竞争。
开展“数控化”工程和“数字化”工程。
自动化仪表的技术发展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、通信与计算机(M3C)结构。
在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方向发展。
外设技术与EDA工程相结合的市场前景看好,如组合超大屏幕的相关连接,多屏幕技术也有所发展。
中国自1995年以来加速开发半导体产业,先后建立了几所设计中心,推动系列设计活动以应对亚太地区其它EDA市场的竞争。
在EDA软件开发方面,目前主要集中在美国。
但各国也正在努力开发相应的工具。
日本、韩国都有ASIC设计工具,但不对外开放。
中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。
相信在不久的将来会有更多更好的设计工具有各地开花并结果。
据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年复合增长率分别达到了50%和30%。
EDA技术发展迅猛,完全可以用日新月异来描述。
EDA技术的应用广泛,现在已涉及到各行各业。
EDA水平不断提高,设计工具趋于完美的地步。
EDA市场日趋成熟,但我国的研发水平沿很有限,需迎头赶上。
四、EDA技术的工程应用实例:
直接数字频率合成器的设计与分析
●系统设计要求
1971年,美国学者J.Tierncy、C.M.Reader和B.Gold提出了以全数字技术从相位概念出发直接合成所需波形的一种新的频率合成原理。
随着技术和水平的提高,一种新的频率合成技术——直接数字频率合成(DDS,DirectDigtalSynthesis)技术得到了飞速发展。
DDS技术是一种把一系列数字形式的信号通过DAC转换成模拟形式的信号合成技术,目前使用最广泛的一种DDS方式是利用高速存储器作查找表,然后通过高速DAC输出已经用数字形式存入的正弦波。
DDS技术具有频率切换时间短(<20ns),频率分辨率高(0.01Hz),频率稳定度高,输出信号的频率和相位可以快速程控切换,输出相位可连续,可编程以及灵活性大等优点,它以有别于其他频率合成方法的优越性能和特点成为现代频率合成技术中的姣姣者。
DDS广泛用于接受机本振、信号发生器、仪器、通信系统、雷达系统等,尤其适合跳频无线通信系统。
●系统设计方案
(一)DDS的工作原理
图1是DDS的基本原理图,频率控制字M和相位控制字分别控制DDS输出正(余)弦波的频率和相位。
DDS系统的核心是相位累加器,它由一个累加器和一个N位相位寄存器组成。
每来一个时钟脉冲,相位寄存器以步长M增加。
(二)DDS的FPGA实现设计
根据图1,并假定相位控制字为0,这时DDS的核心部分相位累加器的FPGA的设计可分为如下几个模块:
相位累加器SUM99、相位寄存器REG1、正弦查找表ROM和输出数据寄存器REG2,其内部组成框图如图2所示。
图中,输入信号有时钟输入CLK,使能端EN,复位端RESET,频率控制字K,输出信号为Q。
首先利用MATLAB或C语言编程对正弦函数进行采样;然后对采样数据进行二进制转换,其结果作为查找表地址的数值。
用MATLAB语言编写的正弦函数数据采集程序如下:
CLEARTIC;
T=2*PI/1024;
t=[0:
T:
2*pi];
y=255*sin(t);
round(y);
用C语言编写的正弦函数数据采样程序如下:
#include"stdio.h"
#include"math.h"
Main()
{intI;
Floats;
For(i=0;i<1024;i++)
{s=sin(actan
(1)*8*i/1024);
Printf("%d,%d;\n",(int)((s+1)*1023/2));
}
}
两个程序运行之后所得结果是一致的。
●主要VHDL源程序
(一)相位累加器SUM99的VHDL源程序
--SUM99.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSUM99IS
PORT(K:
INSTD_LOGIC_VECTOR(9DOWNTO0);
CLK:
INSTD_LOGIC;
EN:
INSTD_LOGIC;
RESET:
INSTD_LOGIC;
OUT1:
OUTSTD_LOGIC_VECTOR(9DOWNTO0));
ENDENTITYSUM99;
ARCHITECTUREARTOFSUM99IS
SIGNALTEMP:
STD_LOGIC_VECTOR(9DOWNTO0);
BEGIN
PROCESS(CLK,EN,RESET)IS
BEGIN
IFRESET='1'THEN
TEMP<="0000000000";
ELSE
IFCLK'EVENTANDCLK='1'THEN
IFEN='1'THEN
TEMP<=TEMP+K;
ENDIF;
ENDIF;
ENDIF;
OUT1<=TEMP;
ENDPROCESS;
ENDARCHITECTUREART;
(二)相位寄存器REG1的VHDL源程序
--REG1.VHD(REG2.VHD与REG1.VHD相似)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYREG1IS
PORT(D:
INSTD_LOGIC_VECTOR(9DOWNTO0);
CLK:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(9DOWNTO0));
ENDENTITYREG1;
ARCHITECTUREARTOFREG1IS
BEGIN
PROCESS(CLK)IS
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
Q<=D;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
(三)正弦查找表ROM的VHDL源程序
--ROM.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYROMIS
PORT(ADDR:
INSTD_LOGIC_VECTOR(9DOWNTO0);
CLK:
INSTD_LOGIC;
OUTP:
OUTSIGNED(8DOWNTO0));
ENDENTITYROM;
ARCHITECTUREARTOFROMIS
BEGIN
PROCESS(CLK)IS
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
CASEADDRIS
WHEN"0000000000"=>OUTP<="000000000";
WHEN"0000000001"=>OUTP<="000000010";
WHEN"0000000010"=>OUTP<="000000011";
WHEN"0000000011"=>OUTP<="000000101";
WHEN"0000000100"=>OUTP<="000000110";
WHEN"0000000101"=>OUTP<="000001000";
WHEN"0000000110"=>OUTP<="000001001";
WHEN"0000000111"=>OUTP<="000001011";
WHEN"0000001000"=>OUTP<="000001101";
WHEN"0000001001"=>OUTP<="000001110";
WHEN"0000001010"=>OUTP<="000010000";
WHEN"1111101001"=>OUTP<="111011100";
WHEN"1111101010"=>OUTP<="111011110";
WHEN"1111101011"=>OUTP<="111011111";
WHEN"1111101100"=>OUTP<="111100001";
WHEN"1111101101"=>OUTP<="111100010";
WHEN"1111101110"=>OUTP<="111100100";
WHEN"1111101111"=>OUTP<="111100101";
WHEN"1111110000"=>OUTP<="111100111";
WHEN"1111110001"=>OUTP<="111101001";
WHEN"1111110010"=>OUTP<="111101010";
WHEN"1111110011"=>OUTP<="111101100";
WHEN"1111110100"=>OUTP<="111101101";
WHEN"1111110101"=>OUTP<="111101111";
WHEN"1111110110"=>OUTP<="111110000";
WHEN"1111110111"=>OUTP<="111110010";
WHEN"1111111000"=>OUTP<="111110011";
WHEN"1111111001"=>OUTP<="111110101";
WHEN"1111111010"=>OUTP<="111110111";
WHEN"1111111011"=>OUTP<="111111010";
WHEN"1111111100"=>OUTP<="111111011";
WHEN"1111111101"=>OUTP<="111111101";
WHEN"1111111110"=>OUTP<="111111110";
WHEN"1111111111"=>OUTP<="000000000";
WHENOTHERS=>OUTP<="000000000";
ENDCASE;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
(四)系统的整体组装DDS的VHDL源程序
--DDS.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYDDSIS
PORT(K:
INSTD_LOGIC_VECTOR(9DOWNTO0);
EN:
INSTD_LOGIC;
RESET:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(8DOWNTO0));
ENDENTITYDDS;
ARCHITECTUREARTOFDDSIS
COMPONENTSUM99IS
PORT(K:
INSTD_LOGIC_VECTOR(9DOWNTO0);
EN:
INSTD_LOGIC;
RESET:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
OUT1:
OUTSTD_LOGIC_VECTOR(9DOWNTO0));
ENDCOMPONENTSUM99;
COMPONENTREG1IS
PORT(D:
INSTD_LOGIC_VECTOR(9DOWNTO0);
CLK:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(9DOWNTO0));
ENDCOMPONENTREG1;
COMPONENTROMIS
PORT(CLK:
INSTD_LOGIC;
ADDR:
INSTD_LOGIC_VECTOR(9DOWNTO0);
OUTP:
OUTSTD_LOGIC_VECTOR(8DOWNTO0));
ENDCOMPONENTROM;
COMPONENTREG2IS
PORT(D:
INSTD_LOGIC_VECTOR(8DOWNTO0);
CLK:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(8DOWNTO0));
ENDCOMPONENTREG2;
SIGNALS1:
STD_LOGIC_VECTOR(9DOWNTO0);
SIGNALS2:
STD_LOGIC_VECTOR(9DOWNTO0);
SIGNALS3:
STD_LOGIC_VECTOR(8DOWNTO0);
BEGIN
U0:
SUM99PORTMAP(K=>K,EN=>EN,RESET=>RESET,CLK=>CLK,OUT1=>S1);
U1:
REG1PORTMAP(D=>S1,CLK=>CLK,Q=>S2);
U2:
ROMPORTMAP(ADDR=>S2,CLK=>CLK,OUTP=>S3);
U3:
REG2PORTMAP(D=>S3,CLK=>CLK,Q=>Q);
ENDARCHITECTUREART;
五、系统仿真/硬件验证
(一)系统的有关仿真
系统的有关仿真如图3~5所示,请读者自己对仿真结果进行分析。
从仿真结果可以看出,对应模块的设计是正确的。
(二)系统的硬件验证
DDS的输入频率控制字K有10位数据,输出数据Q为9位,并且ROM需1024个存储单元,需要占用的系统比较大。
但我们所拥有的实验开发系统所配的适配板的资源可能有限,如我们在进行该实验时所用的芯片为ALTERA公司的EP1K30TC144芯片,这时我们直接进行硬件验证会遇到困难。
因此我们需要进行变通,想办法进行硬件验证或部分验证。
在本设计的硬件验证过程中,针对实验开发系统所提供的输入、输出资源的限制及芯片逻辑资源的限制,我们采取了如下变通办法:
(1)在DDS的前端增加一个信号发生器,该信号发生器实际就是一个数据锁存器,当控制信号LOCK有效时,将事先设定的频率控制字输出送入相位累加器。
设定的频率控制字可在程序中随时修改。
该信号发生器的VHDL源程序如下:
--REG0.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYREG0IS
PORT(CLK:
INSTD_LOGIC;
LOCK:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(9DOWNTO0));
ENDENTITYREG0;
ARCHITECTUREARTOFREG0IS
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
IFLOCK='1'THEN
Q<="0000011111";--此时设定的频率控制字为1FH,可根据需要进行修改
ENDIF;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
(2)由于能够使用的FPGA的芯片EP1K30TC144的逻辑资源不够,因此对DDS内部最占用资源的ROM模块进行了修改。
原模块是对一个完整的正弦波进行采样,我们可以只采样正弦波的上半周,这样就可以节省一半的硬件资源。
如果只对正弦波的上半周进行采样,那么在进行ROM的设计时,就可以将原来的输入数据由9位变成8位,可以将用来表示符号的最高位省去,这样也可以省去很多的硬件资源。
六、设计技巧分析
(1)在正弦查找表ROM的设计中利用MATLAB或C语言编程对正弦函数进行采样,非常方便地得到了正弦函数的采样数据。
(2)在本设计的硬件验证过程中,针对实验开发系统所提供的输入、输出资源的限制及芯片逻辑资源的限制,采用了如下变通的办法进行硬件验证:
①在输入环节加入了一个数据锁存器,用“软设置”代替按键“硬设置”;
②在ROM的验证中,降低了系统的设计规模,减少了系统对逻辑资源的需求。
其他类似问题也可参照该方法解决。
这在实际的开发设计中,是在硬件验证中最常用也最重要的一种办法。
七、心得体会
这次设计的目的就是通过实践了解EDA在现实生活中应用的重要性,并深入了解EDA与计算机组成原理的关系,以达到熟悉计算机原理、初步掌握VHDL硬件描述语言的目的。
EDA(ElectronicDesignAutomation)电子设计自动化技术,正如它的名字一样,我在平常的实验和此次的设计中,也看到了它的强大性。
它依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
通过这次设计,我学到了很多平时不会去接触的知识,深刻的明白在今后的学习和工作中,我不能只把目光停留在课本上,要多理论联系实际。
有的时候,理论上是正确的东西放在实际中,可能由于种种因素的制约,并不能达到实际的效果,还需要我们进行相应的修改才能完成要求。
这次的设计使我巩固了以前学习到的知识,掌握了以前没有掌握的知识,锻炼了自己的能力。
八、参考文献
[1]计算机组成与结构(第四版)王爱英北京:
清华大学出版社,2007
[2]EDA技术实用教程李洋北京:
机械工业出版社,2009
[3]EDA技术实用教程潘松,黄继业北京:
科学出版社,2010
[4]《数字电子技术基础》侯建军,北京,高等教育出版社,2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA技术应用 论文 EDA 技术 应用
![提示](https://static.bdocx.com/images/bang_tan.gif)