EDA课设报告--信号发生器的设计new_第1页
EDA课设报告--信号发生器的设计new_第2页
EDA课设报告--信号发生器的设计new_第3页
EDA课设报告--信号发生器的设计new_第4页
EDA课设报告--信号发生器的设计new_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、武汉理工大学EDA课程设计说明书 集成电路VHDL设计课程设计报告 设计题目专业班级: 电信0901 设 计 者:_03 庄威_ _06 邓智超_42 郭乐安_指导教师: 蔡剑华 设计时间: 2012-06-23 目录摘要.2Abstract.3绪论.41.VHDL简介51.1 VHDL的特点51.2 VHDL发展史52.设计的方案确定62.1AD558工作原理62.2 设计方案73.设计流程.84.结束语145.参考文献.15附录.16摘要本说明书首先介绍了VHDL语言的特点及发展史;接着简要说明了D/A接口(函数发生器)的工作原理及设计思想和设计方案的确定;然后着重解释了使用VHDL语言设

2、计D/A接口(函数发生器)的具体操作步骤及主要流程。为了更加详细的解释清楚主要流程在本课程设计说明书中还附加了相应的图片。最后还附加了实现设计的VHDL源程序。关键词:VHDL D/A接口 设计AbstractThis manual introduces the VHDL language features and development history; followed by a brief description of the D/A interface and the working principle and design ideas and the way that the des

3、ign program was confirmed; and then I explain the emphasis on the use of VHDL language to design D/A interface and the specific steps and the main process. In order to explain in more details of the main process I also attached the corresponding pictures. Finally I added the VHDL design source codes

4、 in the addendum.Keywords: VHDL D/A Interface Design绪论EDA是电子设计自动化(Electronic Design Automation)的缩写。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术使设计者的工作仅局限于利用软件的方式来完成对系统硬件功能的实现,可以说EDA技术的产生与发展是电子设计技术的一个

5、巨大进步。EDA技术融合了众多电子设计技术和计算机辅助技术,使得它在现代电子学方面的应用越来越广泛,也成为电子、电气类大学生必须熟练掌握的一种设计工具。硬件描述性语言HDL是EDA技术的重要组成部分,常见HDL的有VHDL、HDL、ABEL、Verilog、AHDL、SystemC等。其中VHDL、Verilog在现在的EDA设计中使用的最多,也拥有了几乎所有主流EDA工具的支持,而相对于其他语言VHDL更加完善。VHDL是英文全名是VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,是硬件描述语言的业

6、界标准之一。它作为一个规范语言和建模语言,具有与具体硬件电路无关及设计平台无关的特性,而且还有很强的电路行为描述和建模能力,能从多个层次的数字系统进行建模和描述,从而大大简化了硬件设计的任务,提高了设计效率和可靠性。D/A转换器的功能是把二进制数字信号转换为与其数值成正比的模拟信号。AD558是并行8位D/A转换芯片,应用CPLD可以完成对AD558的控制。CPLD与CPLD结合之后可以完成函数发生器的基本功能:波形输出。要实现这种结合就需要应用VHDL语言完成D/A接口的设计。通过合适的VHDL语言可以完成递增斜波、递减斜波、三角波、递增阶梯波的输出。1.VHDL简介1.1 VHDL的特点V

7、HDL语言功能强大、设计灵活。VHDL语言可以用简洁明确的源代码来描述复杂的逻辑控制,它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL还支持多种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。由于VHDL已经成为IEEE标准所规定的硬件描述性语言,目前大多数EDA工具几乎都支持VHDL。因为VHDL易读和结构化且易于修改设计所以在硬件电路设计过程中, VHDL语言得到广泛应用。VHDL语言独立于器件的设计与工艺无关。因而设计人员用VHDL进行设计时

8、,不需要考虑选择器件得问题,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。VHDL语言易于共享和复用。VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。这个特点很好

9、的符合了市场需求。对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述的设计转变成门级网表。总之,由于VHDL语言有的这些优良的特点,它被广泛的应用在电子线路和电子系统的设计中。1.2 VHDL发展史VHDL于1983年由美国国防部发起创建,由IEEE进一步发展,并在1987年作为“IEEE标准1076”发布。从此VHDL成为硬件描述语言的业界标准之一。随后各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具支持VHDL。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进

10、行了修订,从更高的抽象层次和系统描述能力上扩展了VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。现在公布的最新VHDL标准版本是IEEE1076-2002。在现代电子行业中,VHDL语言将承担起大部分的数字系统设计任务。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中,当然在一些实力较为雄厚的单位,它也被用来设计ASIC。2.设计方案的确定2.1AD558工作原理A/D转换器和D/A转换器是把微型计算机的应

11、用领域扩展到检测和过程控制的必要装置,是把计算机和生产过程、科学实验过程联系起来的重要桥梁。D/A转换器的功能是把二进制数字信号转换为与其数值成正比的模拟信号。D/A转换器相对于A/D转换器在时序上要求较低。在D/A参数中一个最重要的参数就是分辨率,它是指输入数字量发生单位数码变化时,所对应输出模拟量(电压或电流)的变化量。分辨率是指输入数字量最低有效位为1时,对应输出可分辨的电压变化量U与最大输出电压Um之比。D/A转换器AD558是EDA实验箱上自带的并行8位D/A转换芯片,它可以把输入的8位数字量转化为02.56V的电压量,它与CPLD器件联合使用可以产生几种波形。其芯片管脚外形和内部结

12、构框图分别如图1、图2所示:图1 AD558芯片管脚外形图图2 AD558内部结构框图AD558的真值表如图3所示。由真值表可知:当CS为低电平、CE为电平时,AD558保持上次的转换结果;当CS和CE同时为电平时,通过数据总线D7.0读入数据,同时讲转换结果输出。图3. AD558真值表2.2 设计方案本次D/A接口(函数发生器)的设计中,转换结果是时时输出的。根据对AD558真值表的分析可知:当CE和CS同时置0时AD558的工作模式为时时输出。因此在本次设计中我只需要将CE和CS同时置0即可。根据对AD558功能的分析可知:利用VHDL语言编写源程序通过CPLD完成对AD558的控制,并

13、与AD558结合可以完成四种波形的产生。具体设计方案如下:利用VHDL语言设计0255循环加法计数器、2550循环减法计数器、01280循环加减计数器、0224等梯度循环加法计数器便可分别完成递增斜波、递减斜波、三角波、递增阶梯波的输出。每个计数器还设计了片选端和清零端。当清零端为0时计数器恢复为初始状态。为了实现输出波形模式的选择,在本次设计中我使用了一个四选一选择器:输入为2位逻辑数组输出为4个一位逻辑量。每一种输入状态对于于一种输出状态,每个状态有且仅有一位为1,其余3位皆为0,每个输出量与一种计数器的片选端相连接,即每个输入状态都只选中一种输出状态。由于CPLD实验箱上没有D/A转换器

14、,为了显示设计结果检验设计成果我决定使用7段数码管显示产生波形的数字量。由于输出范围为0255,在十六进制数0HEEH的范围内,而且实验箱上只有8个7段数码管因此我各用2个7段数码管显示4种波形的输出。在每个计数器输出端口和7段译码器中间添加一个输入频率为1000HZ的4选1数据选择器,并利用两个拨码开关实现输入数据的选择。由于实验箱上自带的时钟源频率为20MHZ,为了得到1000HZ的频率,我还设计了一个分频器。以上即为本次D/A接口(函数发生器)的主要设计方案。3.设计流程首先启动Quartus II软件如图4所示:图4 Quartus II启动界面接着利用向导,建立一个新的工程。在Fil

15、e菜单中选择New Project Wizard选项启动项目向导。如图5所示,分别指定创建工程的路径,工程名和顶层文件名。工程名和顶层文件可以一致也可以不同。一个工程中可以有多个文件,但只能有一个顶层文件。这里我将工程名取为:keshe,顶层文件名取为zhuanhuan。如图5所示。图5 创建工程界面图在图5所示界面点击NEXT按钮出现对话框如图6所示直接点Finish按钮然后在出现的界面中依次点击File/new出现如图7所示界面。点击创建VHDL编辑界面中VHDLFile按钮即进入VHDL语言编辑区如图8所示。图6 创建工程的结束界面图7创建VHDLFile对话框图8 VHDL语言编辑框在

16、图8所示的VHDL语言编辑框中依次输入分频器、四选一选择器、循环加法计数器等4钟计数器、七段译码器等功能模块的VHDL语言源程序。输入完成之后单击保存图标并输入相应的文件名。保存之后即可对源程序进行编译。如果编译成功则源程序完全正确,否则应该返回到出错处改正错误直至编译成功为止。编译成功之后选中源程序依次单击File、NEW、create/update、create symbol file for current file便可对相应的模块生产元器件。本次设计中对顶层文件采取原理图输入法,利用前期设计的各模块的元器件图连接成整体电路图。修改设计直至编译成功为止,电路原理图如图9所示:图9 整体电

17、路图原理图设计成功之后,根据实验箱上相应的管教,锁定管教之后再次编译,编译成功之后就可以把程序下载到实验箱上进行功能验证了。若功能验证结果符合设计要求则设计至此结束。结束语通过这次EDA课程设计,我对课堂上所学到的理论知识的理解加深了许多,自己动脑、动手设计的能力也得到了较大提高。虽然我们这学期学习了EDA这门课,但是由于学时十分有限,当时学的有些不系统。而且在第八周课程及结束了,十一周考完考试之后就几乎没有再接触EDA的知识了。在此次课程设计之前,有许多细节我已经不是很清楚了,为此我特意花了两天的时间提前再次学习了EDA技术与VHDL这本教材。我想这和课堂上的学习一样是我能顺利完成本次课程设

18、计的一个重要原因。在这次课程设计的过程中,我对VHDL语言有了更深的认识。通过查阅相关资料和动手设计我发现我以前对VHDL语言的认识太过肤浅,认为VHDL语言只能用于设计小型的电路系统。但有了更深刻的认识之后我发现学好VHDL语言可以设计出大规模的、功能复杂的电路系统。以前之所以会有错误的认识是因为自己对VHDL语言的了解和掌握还不够。现在仔细想想,这次课程设计使得我对VHDL语言的理解与应用能力得到了较大的提升,也让我认识到只要升入学习,提升的空间永远的存在的。在设计的过程中我遇到了一些问题,如:编写源程序中出现了语法错误,使用原理图设计顶层文件是对输入输入输出端口的位数选择错误和端口命名错

19、误等。通过查阅书本和以前设计的程序我发现了产生错误的原因并解决了问题完成了设计。经过反思我发现较大一部分错误时因为操作的不熟练照成的,这也让我明白了要保持设计的高效率及必须经常练习。另一方面我也发现了动手实践的重要性。动手实践是理论知识得以灵活运用的必要前提,也是今后今后走上工作岗位之后能够很好的完成设计工作的技术保证。只有遇到实际问题并根据自己对课堂上获得的专业知识的理解来解决它才能真正的提高自己的能力。这也提醒我在平时的学习生活中不能一味埋头于课本知识,当今社会竞争越来越激烈,社会对人才的要求越来越全面,只有理论知识是远远不够的,必须靠动手能力做支撑。因此在学习之余我们应该积极参加各种与专

20、业知识有关的实践活动和知识竞赛,巩固所学的理论知识,多注重培养实际动手能力和专业技术能力,这样才能在以后的工作岗位上有所作为。参考文献【1】潘松 黄继业. EDA技术与VHDL(第二版).北京:清华大学出版社,2005.7【2】康华光.电子技术基础.北京:高等教育出版社.2006.1【3】付家才. EDA工程实践技术.北京:化学工业出版社,2007.1【4】汉泽西. EDA技术及其应用.北京:北京航空航天大学出版社,2004.5【5】赵刚.EDA技术简明教程.成都:四川大学出版社,2004.6【6】章彬宏 周正林.EDA应用技术.北京:北京理工大学出版社,2007.7【7】刘艳萍 高振斌 李志

21、平.EDA实用技术及应用.北京:国防工业出版社,2006.1附录分频器源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fpq isport(clk: in std_logic; f_out:out std_logic);end entity;architecture bhv of fpq issignal b:integer range 0 to 200000;beginprocess(clk)begin if clkevent and clk=1 then if b=200

22、00 then b=0;f_out=1;elsif b20000 then b=b+1;f_out=0; end if;end if;end process;end bhv;4选1选择器源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xuanze4_1 isport(a1:in std_logic; a2:in std_logic; q1:out std_logic; q2:out std_logic; q3:out std_logic; q4:out std_logic);

23、end entity xuanze4_1;architecture bhv of xuanze4_1 issignal q:std_logic_vector(3 downto 0);signal a:std_logic_vector(1 downto 0);beginprocess(a)begina q q q q=1000;end case;q1=q(0);q2=q(1);q3=q(2);q4=q(3);end process;end bhv;递增计数器源程序:llibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsig

24、ned.all;entity dizeng isport(clk,cs,ret:in std_logic; q1:buffer integer range 0 to 256);end entity dizeng;architecture bhv of dizeng isbeginprocess(clk,cs,ret)beginif cs=1 then if ret=0 then q1=0; elsif ret=1 then if clkevent and clk=1 then if q1=255 then q1=0; elsif q1255 then q1=q1+1; end if; end

25、if; end if; end if;end process;end bhv;递减计数器源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dijian isport(clk,cs,ret:in std_logic; q1:buffer integer range 0 to 256);end entity dijian;architecture bhv of dijian isbeginprocess(clk,cs,ret)beginif cs=1 then if ret=0 t

26、hen q1=0; elsif ret=1 then if clkevent and clk=1 then if q1=0 then q10 then q1=q1-1; end if; end if; end if; end if;end process;end bhv;三角波发生器源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sanjiao isport(clk,cs,ret:in std_logic; q:buffer integer range 0 to 256);e

27、nd entity sanjiao;architecture bhv of sanjiao issignal q1:integer range 0 to 256;beginprocess(clk,cs,ret,q1)beginif cs=1 then if ret=0 then q1=0; elsif ret=1 then if clkevent and clk=1 then if q1=255 then q1=0; elsif q1255 then q1=q1+1; end if; end if; end if;end if;if q1=128 then q128 then q=255-q1

28、;end if;end process;end bhv;递增阶梯波发生器源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jieti isport(clk,cs,ret:in std_logic; q1:buffer integer range 0 to 256);end entity jieti;architecture bhv of jieti isbeginprocess(clk,cs,ret)beginif cs=1 then if ret=0 then q1=0; elsif ret=1 then if clkevent and clk=1 then if q1=224 then q1=0; elsif q1224 then q1=q1+32; end if; end if; end if; end if;end process;end bhv;4选1选择器源程序:library ieee;use ieee.std

温馨提示

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

评论

0/150

提交评论