下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安大学毕业设计(论文)题 目_ 多功能波形发生器的设计_学院:_ 电子工程学院_系部: _光电子技术系_专业:_ 光电信息工程_班 级:_学生姓名:_导师姓名:_ 职称: 副教授_起止时间:20132013 年 3 3 月 4 4 日 20132013 年 6 6 月 1414 日毕业设计(论文)诚信声明书本人声明:本人所提交的毕业论文 多功能波形发生器的设计 是本人在指导教师指导下独立研究、写作的成果,论文中所引 用他人的文献、数据、图件、资料均已明确标注;对本文的研究做出 重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。矚慫润厲钐瘗睞枥庑赖。本人完全清楚本声明的法律后果,申请学
2、位论文和资料若有不实 之处,本人愿承担相应的法律责任。论文作者签名:指导教师签名:时间:年 月日时间:年 月日西安邮电大学毕业设计(论文)任务书任务:1.1.掌握可编程逻辑器件的工作原理;2.2.利用可编程逻辑器件完成多功能波形发生器的设计并且进行仿真验证;3.3.完成毕业设计论文的撰写。要求:1.1.熟悉可编程逻辑器件的工作原理及 VHDLVHDL 语言编程;2.2.熟悉 QUARTUSQUARTUS IIII 软件的使用; 有一定的数字系统设计能力。任务与要求开始日期2013-03-04完成日期2013-06-14系主任(签字)2013年3月17日起止时间工作内容2013.3.4- 201
3、3.3.17了解多功能波形发生器的功能及工作原理2013.3.18 2013.3.31熟悉可编程逻辑器件的工作原理,QUARTUSU软件的使用以及 VHDL 语言编程的相关知识聞創沟燴鐺險爱氇谴净。2013.4.1 - -2013.4.19结合多功能波形发生器需要实现的功能, 利用可编程逻辑器件完成多功能波形发生器 的设计;残骛楼諍锩瀨濟溆塹籟。2013.4.20 2013.5.19根据所得结果进行分析,用 Verilog 语 言编程进行仿真,验证设计方案是否能实现 多功能波形发生器的功能以及实现的效果如 何;酽锕极額閉镇桧猪訣锥。工作进程2013.5.202013614整理材料,撰写论文20
4、13年 3 月 6 日主要参考书目(资料):EDA 技术及应用ModelSim 电子系统分析及仿真等主要仪器设备及材料:计算机及相应资料论文(设计)过程中教师的指导安排:每周三下午三号实验楼 518 答疑对计划的说明:无指导教师签字:西安大学毕业设计(论文)开题报告课题名称:多功能波形发生器的设计电子工程学院_ 学院光电子技术系(部)光电信息工程专业_班学生姓名_学号指导教师:_报告日期:_1.本课题所涉及的问题及应用现状综述波形发生器亦称函数发生器,作为实验用信号源,是现今各种电子 电路实验设计应用中必不可少的仪器设备之一。所谓多功能波形发生器 是能够产生大量的标准信号和用户自定义信号,并保
5、证高精度、高稳定 性、可重复性和已操作性的电子仪器。因而它具有广阔的应用前景。可编程逻辑器件英文全称为:programmable logic device即PLD。PLD是作为一种通用集成电路产生的,它的逻辑功能按照用户对器件编 程来确定。对于可编程逻辑器件,设计人员可利用价格低廉的软件工具 快速开发、仿真和测试其设计。然后,可快速将设计编程到器件中,并立即在实际运行的电路中对设计进行测试。在设计阶段中客户可根据需要修改电路,直到对设计工作感到满意为止。这是因为PLD基于可重写的存储器技术一一要改变设计,只需要简单地对器件进行重新编程。传统波形发生器大多由振荡器、放大器、衰减器、指示器和调制器
6、 组成。这种传统设计方法的特点是硬件和软件截然不同,设计中不可相互 替代,而且硬件连线复杂,可靠性较差。硬件描述语言VHDL和可编程逻辑 器件的广泛应用打破了硬件和软件的屏障。基于Verilog语言,以EDA技术作为开发手段,采用现场可编程器件作为控制核心实现的波形发生器,与传统的设计相比较,不仅简化了硬件控制,提高了系统的整体性能和工 作可靠性,也为进一步提高系统集成创造了条件。本课题所涉及的问题包括了解多功能波形发生器的功能,熟悉可编 程逻辑器件的工作原理、QUARTUS软件的使用及Verilog语言编程,利 用可编程逻辑器件完成多功能波形发生器的设计并且进行仿真验证。2.本课题需要重点研
7、究的关键问题、解决的思路及实现预期目标的可行 性分析本课题需要重点研究的关键问题是利用可编程逻辑器件完成多功能 波形发生器的设计并进行仿真验证。解决思路是在深入理解多功能波形发生器的功能和可编程逻辑器件 的工作原理的基础上,用Verilog语言编程,利用可编程逻辑器件完成多 功能波形发生器的设计并且进行仿真,验证设计方案是否能实现多功能 波形发生器的功能以及实现的效果如何。3.完成本课题的工作方案2013342013317了解多功能波形发生器的功能及工作原理;2013.3.182013.3.31熟悉可编程逻辑器件的工作原理,QUARTUSH软件的使用以及VHDL语言编程的相关知识;2013.4
8、.12013.4.19结合多功能波形发生器需要实现的功能,利用可编程逻辑器件完成多功能波形发生器的设计;2013.4.20-2013.5.19根据所得结果进行分析,用Verilog语言编程进行仿真,验证设计方案是否能实现多功能波形发生器的功能以及实现的效果如何;2013.5.20-2013.6.14整理材料,撰写论文。4.指导教师审阅意见指导教师(签字):_ 2013 年月日I目录摘要.彈贸摄尔霁毙攬砖卤庑。ABSTRACT .I.II謀荞抟箧飆鐸怼类蒋薔。引言 .1.厦礴恳蹒骈時盡继價骚。1. EDA 与软件简介 .2.茕桢广鳓鯡选块网羈泪。1.1 EDA 技术发展 . 2鹅娅尽損鹌惨歷茏鴛
9、賴。1.2 FPGA 介绍 . 4籟丛妈羥为贍偾蛏练淨。1.3 Modelsim 介绍 . 5預頌圣鉉儐歲龈讶骅籴。1.4 Verilog 与 VHDL 语言介绍 .髦釤呛俨匀谔鱉调硯錦。1.5 测试激励文件介绍 . . 6铙誅卧泻噦圣骋贶頂廡。1.6 软件使用入门 .6擁締凤袜备訊顎轮烂蔷。1.6.1 系统仿真软件 Modulsim 使用 .6贓熱俣阃歲匱阊邺镓騷。1.6.2 Quartus II 软件使用 .9坛摶乡囂忏蒌鍥铃氈淚。2 系统总体设计 .1.0蜡變黲癟報伥铉锚鈰赘。2.1 硬件总体框图 .1.1買鲷鴯譖昙膚遙闫撷凄。2.2 软件总体框图 .1.1綾镝鯛駕櫬鹕踪韦辚糴。2.3
10、软件与硬件设计总结 . .12驅踬髏彦浃绥譎饴憂锦。3 系统各模块设计 .1.2猫虿驢绘燈鮒诛髅貺庑。3.1 时钟模块设计 .12锹籁饗迳琐筆襖鸥娅薔。3.2 增斜波设计 . 15構氽頑黉碩饨荠龈话骛。3.3 减斜波设计 . 18輒峄陽檉簖疖網儂號泶。3.4 方波设计 .21尧侧閆繭絳闕绚勵蜆贅。3.5 三角波设计 .24识饒鎂錕缢灩筧嚌俨淒。3.6 正弦波设计.26凍鈹鋨劳臘锴痫婦胫籴。3.7 阶梯波设计 . 29恥諤銪灭萦欢煬鞏鹜錦。4 系统软硬件联合调试 .3.2鯊腎鑰诎褳鉀沩懼統庫。4.1 系统整体模块结构图 . 32硕癘鄴颃诌攆檸攜驤蔹。4.2 系统仿真输出图 .33阌擻輳嬪諫迁择楨
11、秘騖。结论 .3.4.氬嚕躑竄贸恳彈瀘颔澩。II致 谢 .3.6.釷鹆資贏車贖孙滅獅赘。参考文献 .3.7.怂阐譜鯪迳導嘯畫長凉。附录 .3.8.谚辞調担鈧谄动禪泻類。译文 .5.0.嘰觐詿缧铴嗫偽純铪锩。摘要在函数发生器发展过程中,出现了很多波形发生的方法,其中大部分是利用 DDS 原理制作而成,比如说由晶体管、运放 IC 等通用器件制作而成,或者利用 单片集成芯片制做而成。但是随着 FPGA 的出现,波形发生的方法更加多元化。 将 DDS 原理成功的移植到 FPGA 中,就能产生多种波形,频率可调,相位可选的 波形发生装置,也可以自行设计方法产生波形,使得开发更加简单。熒绐譏钲鏌觶鷹 緇機
12、库。本文提出了一种基于可编程逻辑器件 FPGA 产生任意波形发生器的设计方 法。完成了在 FPGA 的控制下,产生递增斜波、递减斜波、方波、三角波、正弦 波及阶梯波行,利用 Modelsim 和 Quartus II 进行仿真,验证波形 ,并给出了实验 结果。实验结果表明,此任意波形发生器能够按照要求输出相应波形, 达到了设 计要求。鶼渍螻偉阅劍鲰腎邏蘞。关键字:FPGA,斜波;方波;三角波;正弦波;阶梯波IIABSTRACTABSTRACTWith function generator in the rapid development process, there have been man
13、yways to generate waveform,And most of them do it with DDS. For example, a transistor,op amp IC and other common devices made it , Or the use of monolithic integrated chipsystem to do. But with the emergence of FPGA, waveform generation method is morediversified. Produce a variety of waveforms, adju
14、stable frequency, phase, selectablewaveform generating device.FPGA can design their own methods of gen erat ingwaveforms, mak ing developme nt easie纣忧蔣氳頑莶驅藥悯骛。This paper proposes a method of arbitrary waveform generator ,which was basedon programmable logic device FPGA design .Under the control of t
15、he FPGA,it gnenratedincreasing oblique wave and decreasing oblique wave, square wave, triangle wave, sinesweep ladder wave line,and then verify the results by the softwave of Modelsim. Theexperimental results showed that the arbitrary waveform generator can output waveformaccordingly in accordance w
16、ith the requirements, and has reached the desig nrequireme nts颖刍莖峽饽亿顿裊赔泷。Keyword: FPGA,oblique wave, square wave, triangle wave, sine wave and step wave濫驂膽閉驟羥闈詔寢賻。1引言在电子、通信、实验教学等领域,高精度、高分辨率、幅度相位可控的信号发生 器有着广泛的应用。 信号发生器又称为信号源或者振荡器, 在生产实践和科技领 域中有着广泛的应用。銚銻縵哜鳗鸿锓謎諏涼。函数发生器是使用最广的通用信号源,提供正弦波、锯齿波、方波、脉冲波 等波形,有
17、的还同时具有调制和扫描功能。挤貼綬电麥结鈺贖哓类。函数波形发生器在设计上分为模拟式和数字合成式。 众所周知,数字合成式 函数信号源(DDS)无论就频率、幅度乃至信号的信噪比(S/N)均优于模拟式, 其锁相环(PLL)的设计让输出信号不仅是频率精准, 而且相位抖动(phaseJitte) 及频率漂移均能达到相当稳定的状态, 但数字式信号源中, 数字电路与模拟电路 之间的干扰始终难以有效克服, 也造成在小信号的输出上不如模拟式的函数信号 发生器。赔荊紳谘侖驟辽輩袜錈。本文引入利用 FPGA 来产生阶梯波、 三角波、递增斜波、 递减斜波、 正弦波、方波。具有以下优势:开发信号发生器简单,容易实现,成
18、本低廉,能够根据用 户需求进行定制等功能。塤礙籟馐决穩賽釙冊庫。FPGA 是作为专用集成电路领域中的一种半定制电路而出现的, 既解决了定 制电路的不足, 又克服了原有可编程器件门电路数有限的缺点。 因为其是一种半 定制的电路结构, 因而 FPGA 具有很多灵活性, 能够根据本系统的需求灵活改变 内部电路,以达到系统的需要。另外一方面,硬件描述语言出现,使得FPGA 开发随心应手, 方便快捷。 因为硬件描述语言具有设计的行为特性、 设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机 制,裊樣祕廬廂颤谚鍘羋蔺。这样使得从顶层整体架构到底层具体模块的开发, 以及后续的验
19、证, 时延等更加 方便快捷。从 FPGA 开发多功能信号发生器的角度来说, 因为有了自我定制电路以及灵 活高效的硬件描述语言,使得本系统开发简单,编程容易,可靠性高,代码冗余 量少。而且能够积极扩展,使得设计更加多元化,甚至能做成任意信号发生器。仓嫗盤紲嘱珑詁鍬齊驁。1.1. EDAEDA 与软件简介1.1 EDA 技术发展在电子设计自动化(英语:Electronic design automation,缩写:EDA)出现 之前,设计人员必须手工完成集成电路的设计、 布线等工作, 这是因为当时所谓 集成电路的2复杂程度远不及现在。工业界开始使用几何学方法来制造用于电路光 绘(photoplot
20、ter)的胶带。到了 1970 年代中期,开发人应尝试将整个设计过程 自动化,而不仅仅满足于自动完成掩膜草图。 第一个电路布线、 布局工具研发成 功。设计自动化会议(DesignAutomation Conferenc在这一时期被创立,旨在 促进电子设计自动化的发展。从 1981 年开始,电子设计自动化逐渐开始商业化。 1984 年的设计自动化会 议(Design Automation Conference 上还举办了第一个以电子设计自动化为主题 的销售展览。Gateway 设计自动化在 1986 年推出了一种硬件描述语言 Verilog, 这种语言在现在是最流行的高级抽象设计语言。 1987
21、 年,在美国国防部的资助 下,另一种硬件描述语言 VHDL 被创造出来。现代的电子设计自动化设计工具 可以识别、读取不同类型的硬件描述。 根据这些语言规范产生的各种仿真系统迅 速被推出, 使得设计人员可对设计的芯片进行直接仿真。 后来,技术的发展更侧 重于逻辑综合。目前的数字集成电路的设计都比较模块化(参见集成电路设计、设计收敛(Design closure 和设计流(Design flow (EDA)。半导体器件制造工艺需要标准化的设计描述,高抽象级的描述将被编译为信息单元( cell)的形式。设计人 员在进行逻辑设计时尚无需考虑信息单元的具体硬件工艺。 利用特定的集成电路 制造工艺来实现硬
22、件电路, 信息单元就会实施预定义的逻辑或其他电子功能。 半 导体硬件厂商大多会为它们制造的元件提供 “元件库 ”,并提供相应的标准化仿真 模型。相比数字的电子设计自动化工具, 模拟系统的电子设计自动化工具大多并 非模块化的,这是因为模拟电路的功能更加复杂, 而且不同部分的相互影响较强, 而且作用规律复杂,电子元件大多没有那么理想。Verilog AMS 就是一种用于模 拟电子设计的硬件描述语言。此文, 设计人员可以使用硬件验证语言来完成项目 的验证工作目前最新的发展趋势是将集描述语言、 验证语言集成为一体, 典型的 例子有 SystemVerilog。绽萬璉轆娛閬蛏鬮绾瀧。随着集成电路规模的扩
23、大、 半导体技术的发展, 电子设计自动化的重要性急 剧增加。这些工具的使用者包括半导体器件制造中心的硬件技术人员, 他们的工 作是操作半导体器件制造设备并管理整个工作车间。 一些以设计为主要业务的公 司,也会使用电子设计自动化软件来评估制造部门是否能够适应新的设计任务。电子设计自动化工具还被用来将设计的功能导入到类似现场可编程逻辑门阵列 的半定制可编程逻辑器件,或者生产全定制的专用集成电路。骁顾燁鶚巯瀆蕪領鲡赙。EDA 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人 员按照“自顶向下 ”的设计方法, 对整个系统进行方案设计和功能划分, 系统的关 键电路用一片或几片专用集成电路(A
24、SIC)实现,然后采用硬件描述语言(HDL)完 成系统行为级设计, 最后通过综合器和适配器生成最终的目标器件。 这样的设计 方法被称为高层次的电子设计方法。下面介绍与 EDA 基本特征有关的几个概念。瑣钋濺暧惲锟缟馭篩凉。1) “自顶向下 ”的设计方法310 年前,电子设计的基本思路还是选择标准集成电路自底向上”(Bottomp)的构造出一个新的系统, 这样的设计方法就如同一砖一瓦建造金字塔, 不仅效率 低、成本高而且容易出错。鎦诗涇艳损楼紲鯗餳類。高层次设计给我们提供了一种自顶向下” (TopDown)的全新设计方法,这种 设计方法首先从系统设计入手, 在顶层进行功能方框图的划分和结构设计。
25、 在方 框图一级进行仿真、 纠错, 并用硬件描述语言对高层次的系统行为进行描述, 在 系统一级进行验证。 然后用综合优化工具生成具体门电路的网表, 其对应的物理 实现级可以是印刷电路板或专用集成电路。 由于设计的主要仿真和调试过程是在 高层次上完成的, 这一方面有利于早期发现结构设计上的错误, 避免设计工作的 浪费,同时也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。栉缏歐锄 棗鈕种鵑瑶锬。2)ASIC 设计现代电子产品的复杂度日益加深, 一个电子系统可能由数万个中小规模集成 电路构成,这就带来了体积大、功耗大、可靠性差的问题,解决这一问题的有效 方法就是采用 ASIC(Applicat
26、ion Specific Integrated Circuits) 芯片进行设计。 ASIC 按照设计方法的不同可分为:全定制 ASIC,半定制 ASIC,可编程 ASIC(也称为 可编程逻辑器件 )。辔烨棟剛殓攬瑤丽阄应。设计全定制 ASIC 芯片时,设计师要定义芯片上所有晶体管的几何图形和工 艺规则,最后将设计结果交由 IC 厂家掩膜制造完成。优点是:芯片可以获得最 优的性能,即面积利用率高、速度快、功耗低。缺点是:开发周期长,费用高, 只适合大批量产品开发。峴扬斕滾澗辐滠兴渙藺。半定制 ASIC 芯片的版图设计方法有所不同, 分为门阵列设计法和标准单元 设计法,这两种方法都是约束性的设计
27、方法, 其主要目的就是简化设计, 以牺牲 芯片性能为代价来缩短开发时间。詩叁撻訥烬忧毀厉鋨骜。可编程逻辑芯片与上述掩膜 ASIC 的不同之处在于: 设计人员完成版图设计 后,在实验室内就可以烧制出自己的芯片 ,无须 IC 厂家的参与,大大缩短了开发 周期。则鯤愜韋瘓賈晖园栋泷。可编程逻辑器件自七十年代以来,经历了 PAL、 GAL、CPLD 、FPGA 几个 发展阶段,其中 CPLD/FPGA 属高密度可编程逻辑器件,目前集成度已高达 200 万门 /片,它将掩膜 ASIC 集成度高的优点和可编程逻辑器件设计生产方便的特点 结合在一起, 特别适合于样品研制或小批量产品开发, 使产品能以最快的速
28、度上 市,而当市场扩大时,它可以很容易的转由掩膜 ASIC 实现,因此开发风险也大 为降低。胀鏝彈奥秘孫戶孪钇賻。上述 ASIC 芯片,尤其是 CPLD/FPGA 器件,已成为现代高层次电子设计方 法的实现载体。41.2 FPGA 介绍FPGA( Field Programmable Gate Array ,即现场可编程门阵列,它是在 PAL、GAL 、CPLD 等可编程器件的基础上进一步发展的产物。 它是作为专用集成电路( ASIC ,领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克 服了原有可编程器件门电路数有限的缺点。鳃躋峽祷紉诵帮废掃減。以硬件描述语言( Verilog 或
29、 VHDL ,所完成的电路设计,可以经过简单的 综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主 流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如 AND、 OR、 XOR、 NOT ,或者更复杂一些的组合功能比如解码器或数学方程式。在大多数 的 FPGA 里面,这些可编辑的元件里也包含记忆元件例如触发器( Flip flop, 或者其他更加完整的记忆块。稟虛嬪赈维哜妝扩踴粜。目前市场上开发 FPGA 的主要有两大供应商,一个就是 ALTERA 公司,另 一个就是 Xilinx 公司。Altera 的主流 FPGA 分为两大类,一种侧重低成本应用,容量中
30、等,性能可 以满足一般的逻辑设计要求,如 Cyclone,Cyclonell;还有一种侧重于高性能应 用,容量大,性能能满足各类高端应用,如Startix, StratixII 等,用户可以根据自己实际应用要求进行选择。在性能可以满足的情况下,优先选择低成本器件。陽簍埡鲑罷規呜旧岿錟。MAX+PLUSll :普遍认为 Maxplusll 曾经是最优秀的 PLD 开发平台之一, 适 合开发早期的中小规模 PLD/FPGA 由 QuartusII 替代,不再推荐使用。沩氣嘮戇苌鑿 鑿槠谔應。QuartusII:Altera 新一代 FPGA/PLD 开发软件,适合新器件和大规模 FPGA 的开发,
31、已经取代 MaxplusII 。钡嵐縣緱虜荣产涛團蔺。SOPC Builder:配合 Quartusll,可以完成集成 CPU 的 FPGA 芯片的开发工 作DSP Builder: Quartusll 与 Matlab 的接口,利用 IP 核在 Matlab 中快速完成数 字信号处理的仿真和最终 FPGA 实现。懨俠劑鈍触乐鹇烬觶騮。Xilinx 的主流 FPGA 分为两大类,一种侧重低成本应用,容量中等,性能可 以满足一般的逻辑设计要求,如 Spartan 系列;还有一种侧重于高性能应用,容 量大,性能能满足各类高端应用, 如 Virtex 系列, 用户可以根据自己实际应用要 求进行选择。
32、在性能可以满足的情况下,优先选择低成本器件。謾饱兗争詣繚鮐癞别 瀘。lSE:Xilinx 公司集成开发的工具 Foundation: Xilinx 公司早期的开发工具, 逐步被 lSE 取代呙铉們欤谦鸪饺竞荡赚。嵌入式开发套件(EDK):用于开发集成 PowerPC 硬核和 MicroBlaze 软核 CPU的工具莹谐龌蕲賞组靄绉嚴减。System Generator for DSP :配合 Matlab, 在 FPGA 中完成数字信号处理的 工具麸肃鹏镟轿騍镣缚縟糶。51.3 Modelsim 介绍Mentor 公司的 ModelSim 是业界最优秀的 HDL 语言仿真软件,它能提供友 好的
33、仿真环境,是业界唯一的单内核支持 VHDL 和 Verilog 混合仿真的仿真器。 它采用直接优化的编译技术、 Tcl/Tk 技术、和单一内核仿真技术,编译仿真速度 快,编译的代码与平台无关,便于保护 lP 核,个性化的图形界面和用户接口, 为用户加快调错提供强有力的手段,是 FPGA/ASlC 设计的首选仿真软件。納畴鳗 吶鄖禎銣腻鰲锬。ModelSim 分几种不同的版本:SE、PE、LE 和 OEM,其中 SE 是最高级的 版本,而集成在 Actel、Atmel、Altera、Xilinx 以及 Lattice 等 FPGA 厂商设计工 具中的均是其 OEM 版本。SE 版和 OEM 版在
34、功能和性能方面有较大差别, 比如 对于大家都关心的仿真速度问题, 以 Xilinx 公司提供的 OEM 版本 ModelSim XE 为例,对于代码少于 40000 行的设计, ModelSim SE 比 ModelSim XE 要快 10 倍; 对于代码超过 40000行的设计, ModelSim SE 要比 ModelSim XE 快近 40 倍。ModelSim SE 支持 PC、UNlX和 LlNUX 混合平台;提供全面完善以及高性能的 验证功能;全面支持业界广泛的标准;Mentor Graphics 公司提供业界最好的技术 支持与服务。風撵鲔貓铁频钙蓟纠庙。1.4 Verilog 与
35、 VHDL 语言介绍Verilog HDL 语言是一种硬件描述语言,用于从算法级、门级到开关级的多 种抽象设计层次的数字系统建模。 其具有下述描述能力: 设计的行为特性、 设计 的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形 产生机制。 所有这些都使用同一种建模语言。此外, Verilog HDL 语言提供了编 程语言接口, 通过该接口可以在模拟、 验证期间从设计外部访问设计, 包括模拟 的具体控制和运行。灭嗳骇諗鋅猎輛觏馊藹。VHDL 语言是一种用于电路设计的高级语言。 VHDL 主要用于描述数字系统 的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外, VH
36、DL 的语 言形式、描述风格以及语法是十分类似于一般的计算机高级语言。 VHDL 的程序 结构特点是将一项工程设计, 或称设计实体 (可以是一个元件, 一个电路模块或 一个系统)分成外部(或称可视部分 ,及端口)和内部(或称不可视部分) ,既涉及 实体的内部功能和算法完成部分。 在对一个设计实体定义了外部界面后, 一旦其 内部开发完成后,其他的设计就可以直接调用这个实体。铹鸝饷飾镡閌赀诨癱骝。1.5 测试激励文件介绍测试激励也叫 testbench,它是一种验证的手段。首先,任何设计都是会有输 入输出的。 但是在软环境中没有激励输入, 也不会对你设计的输出正确性进行评 估。那么此时便有一种,
37、模拟实际环境的输入激励和输出校验的一种 “虚拟平台 ” 的产生。在这个平台上你可以对你的设计从软件层面上进行分析和校验。攙閿频嵘 陣澇諗谴隴泸。用通俗的话来表示:测试激励就是启动模块的钥匙,它能够模拟模块的输入 变量,6使其能够按照工程师的要求进行工作。趕輾雏纨颗锊讨跃满賺。1.6 软件使用入门1.6.1 系统仿真软件 Modulsim 使用Modulsim 是目前市场上最流行的 FPGA 仿真软件,以其卓越的性能和操作 简单性著称。下面以 Modelsim 10.0 来做个使用向导。夹覡闾辁駁档驀迁锬減。1)软件安装好之后, 打开软件 modulsim, 点击 FILE-new-projec
38、t,将出现 如图 1-4所示画面,起名为 test。视絀镘鸸鲚鐘脑钧欖粝。7图 1-4 新建工程2)在如图 1-5 所示界面添加 verilog 文件与测试文件,然后进行编译,将出 现图1-6 所示画面图 1-5 添加文件lltOF開亠咖才1匕时钾讥uvriiWili*tdufe检皿Ll3*YC inedMKh JD QC“HT就JtM弧pdLiawytMCCSL_1ti.九的lboit*1*fMCCiLltWJWtt_TEi,|.7ttCCa.TECH1It前HEL-HKlMy居叭fUOCnjE岬 JMMI1 1Utl#YF WioiMS.SE ESUSTiiHfe-kHrIE叭C !mrw
39、t*-5rb:n WrEJirciE1 fai *-r_b4dLEv#*r-Lfcsjryd inuitth_D Df l|3lhptt_ll/LJWKJ Ua町c inir*fai时h_l!D.IXJbLrT4L .皿冲c i.rM就就h Li HrW住 萱即JW4|3:小II.-Sr二MH1AL-f農&AAfc-A-AAA-iLA fl* p-m * |8图 1-6 编译结果93)双击测试文件,tb_sysgen 将出现图 1-7 所示现象,然后在测试文件tb_sysgen 上右击选中 start simulation,会出现如图 1-8 所示现象。偽澀锟攢鴛擋緬铹鈞錠。 *4 I Q H
40、l w t时i讣f.1w卑if E n 记Iff p4 !p j图 1-7 点击仿真图 1-8 添加波形4)运行仿真,将开始进行波形仿真,如图1-9 所示:H Ltrrf-.4WgBtliC+tr*c事irxSJypinYgHWEBArfMMlj gapJj*!*)L*UMMXEF. mLirATTF匚W fLH-n-l.lLtr卄F tlirtXLS比疋丄吁仍三如io匚葩 .Ltr&p止m*K?tEdhja.rei_lb5nrtiflmLtraryPt* h_ .I-! . l i _h H . ,血M鮒则L-vd nKtfcadi JiJ.fcfca-lnW;tLta-a-d wftK*k
41、e3Q.DctKijniifrsi:lir-Brd已Ji_i J.Lt .phL .JtifijTiinK.i林wtisifumod圍ih1; end else beginif(count=div_2) begin clk_out = clk_out; count = 0;end else count = count + 1;endend endmodule 从图 3-1 和时钟模块代码中可以得到以下信息:模块的输入变量是:外部基准时钟sysclk,模块复位输入 reset,分频系数输入 div,波形时钟输出 clk_out ;浹繢腻叢着駕骠構砀湊。复位输入 reset 低电平时,时钟模块复位
42、,系统不运作;分频系数 div 决定波形时钟,其分频计算公式是:输出时钟频率系统时钟频率,比如说 div 值为 1,则输出时钟是系div 1统时钟的二分之一;根据以上程序,编写了下列测试程序:module tb_clkdiv;/I nputsreg sysclk;reg reset;reg 7:0 div;/ Outputswire clk_out;/ Instantiate the Unit Under Test (UUT)clk_div uut (.sysclk(sysclk),.reset(reset),.div(div),.clk_out(clk_out);always #10 sys
43、clk = sysclk;in itial beg in/ I nitialize In putssysclk = 0;15reset = 0;div = 0;/ Wait 100 ns for global reset to fin ish#100;reset = 1;div = 1;#200;div = 2;enden dmodule从上述激励中看出, div=1, 也就是 2 分频, 系统的运行周期是 20ns。 利用 Modelsim软件对时钟模块进行仿真,结果如图3-2 所示:鈀燭罚櫝箋礱颼畢韫粝。图 3-2 两分频时钟波形从图中可以看出在 div=1,rest=1 的情况下,输出时
44、钟 clk_out 是输入时钟 clk_in的一半,这很好地证明了分频时钟的正确性。惬執缉蘿绅颀阳灣愴鍵。再用 Quartus II 软件进行综合仿真,结果如图 3-3 所示。图 3-3 两分频时钟波形从图 3-3 所示的时钟波形来看输出时钟 clk_out 时钟频率是输入时钟的一半, 但是存在小量的延时,比如说以 1us 为周期的情况下,延时大约是 0.25us,但是 由于我们采用分频后的时钟作为产生波形的基准时钟,所以这点延时不影响整个结果。贞廈给鏌綞牵鎮獵鎦龐。综上所述,该时钟分频模块能够将输入时钟频率按照自己系统需求分配出不3.2增斜波设计增斜波是指波形按照一定的步幅递增,达到最高点后
45、又回到值为零的状态, 这样循环进行。按照这种思想设计出来软件流程图如图3-4 所示。嚌鳍级厨胀鑲铟礦毁1617图 3-4 增斜波软件流程图根据图 3-4 所示软件流程图设计出增斜波模块的模块框图,如图3-5 所示图 3-5 增斜波模块框图从图 3-5 中来分析该模块的输入输出模块以及引脚定义:addrestdi= 8b1111_1111) begintmp_add = 0;endelse beginQout_add = tmp_add;end1920endenden dmodule通过以上的方法可以输出递增波形,其波形的频率决定于输入时钟和分频系 数。设计测试文件,将 div 设置为 1 即为
46、 2 分频,sysclk 设置周期为 20ns。通过Modelsim 仿真得到图 3-6 增斜波输出:齡践砚语蜗铸转絹攤濼。是 1,从 0 达到 255,到 255 溢出又变为 0 值。为了进一步验证该递增波形的正 确性,我们采用 Quartus II 进行波形仿真,得到的仿真波形图如图3-7 所示。绅薮疮颧訝标販繯轅赛。从图 3-6 和图 3-7 分别是 Modelsim 和 Quartus II 仿真出来的波形,从波形上来观察可以看出基本没有区别,进一步验证了该递增斜波产生模块的正确性。饪 箩狞屬诺釙诬苧径凛。3.3减斜波设计减斜波是指波形按照一定的步幅递减,达到最高点后又回到最大值的状态
47、,这样循环进行。根据模块需求设计出模块流程图如图3-8 所示。烴毙潜籬賢擔視蠶贲粵。图 3-6 增斜波输出图 3-7 增斜波输出21图 3-8 减斜波软件流程图根据图 3-8 所示软件流程图设计出减斜波模块的模块框图,如图mini5y$Clk QouLmin(丁:0) | ”,g图 3-9 减斜波模块原理图从图 3-9 中来分析该模块的输入输出模块以及引脚定义:模块的输入变量是:外部基准时钟 syscIk,模块复位输入 reset,分 频系数输入 div。 输出时钟波形时钟输出 Qout_min;鋝岂涛軌跃轮莳講嫗键。复位输入 reset低电平时,时钟模块复位,系统不运作; 分频系数 div
48、决定波形时钟,其分频计算公式是:输出时钟频率系统时钟频率,比如说 div 值为 1,则输出时钟是系div 1统时钟的二分之一;Qout_min 是减斜波模块的波形输出。根据软件流程图以及模块框图中输入输出引脚定义,使用Verilog 语言设计了以下代码:系统时钟/复位开关,低电平复位/分频3-9 所示。module min1(SysCIk ,rest ,divrestdiv(7.0j22/递增斜波);input SysClk;input rest;input 7:0 div;input SysClk;input rest; input 7:0 div; output 7:0 Qout_min;
49、 wire clk_out;clk_div clk(.sysclk(SysClk) ,.reset(rest) ,.div(div) ,.clk_out(clk_out);/产生递减斜波reg 7:0 tmp_min=8b1111_1111; always (posedge clk_out or negedge rest)begin if(!rest) beginQout_min = 0;tmp_min = 8b1111_1111; end else begintmp_min = tmp_min - 1 ; if(tmp_min = 0) begin tmp_min = 8b1111_1111
50、;endelse beginQout_min = tmp_min; end end endendmoduleQout_min23从上述代码可以分析出输出 Qout_min 从最大的 255 开始递减,每来一次分 频过的时钟减 1,一直到 0,然后又恢复到 255,这样循环往复。撷伪氢鱧轍幂聹諛詼庞。设计测试文件, 将 div 设置为 1 即为 2 分频, sysclk 设置周期为 20ns。 通过 Modelsim仿真得到图 3-10 波形:踪飯梦掺钓貞绫賁发蘄。图 3-10 减斜波波形输出图 3-10 可以清楚看出递减斜波的波形图,即从最大值开始依次往小减,直 到最小值 0,又重新恢复到最大
51、, 这样循环往复。 为了进一步验证该模块的正确 性, 采用 QuartusII 进行波形仿真,其结果如图 3-11 所示。婭鑠机职錮夾簣軒蚀骞。图 3-11 减斜波波形输出从图 3-11 中可以发现跟图 3-10 中发现的一样的周期性减斜波,进一步验证 了模块的正确性。3.4方波设计方波是指非正弦曲线的波形,输出的形状如矩形,只有0 两个值。根据模块需求设计出模块流程图如图 3-12 所示。譽諶掺铒锭试监鄺儕泻。24图 3-12 方波模块软件流程图squ15圈* -SysClk Qout_squ(7.0)rest-UuuLsqutF1)E;-坤oiE根据图 3-12 所示软件流程图设计出方波模
52、块的模块框图,如图3-13 所示。从图 3-13 中来分析该模块的输入输出模块以及引脚定义:模块的输入变量是:外部基准时钟sysclk,模块复位输入 reset,分频系数输入 div。输出时钟波形时钟输出 Qout_squ;俦聹执償閏号燴鈿膽賾。复位输入 reset 低电平时,时钟模块复位,系统不运作; 分频系数 div 决定波形时钟,其分频计算公式是:输出时钟频率系统时钟频率,比如说 div 值为 1,则输出时钟是系div 1统时钟的二分之一;Qout_squ 是方波波模块的波形输出。根据软件流程图以及模块框图中输入输出引脚定义,使用Verilog 语言设计了以下核心代码:产生方波reg 7
53、:0 tmp_squ=0;25reg squ_flag=0;always (posedge clk_out or n egedge rest) beg inif(!rest) begi nQout_squ = 0;tmp_squ = 0;squ_flag=0;end26else begi ntmp_squ = tmp_squ + 1;if(tmp_squ = 8b0000_1111) begintmp_squ = 0;squ_flag =squ_flag;end if(squ_flag)Qout_squ = 8b1111_1111;elseQout_squ = 0;endend简单分析下以上代
54、码:tmp_squ 是用来计内部时钟 clk_out 的脉冲次数,当达到 80000_1111 时, 重新计 0,这个时候,将输出变量翻转,产生方波。缜電怅淺靓蠐浅錒鵬凜。设计测试文件,将 div 设置为 1 即为 2 分频,sysclk 设置周期为 20ns。通过 Modelsim仿真得到图 3-14 波形:骥擯帜褸饜兗椏長绛粤。HUE:卢慚Dx3SC JmIBOlOxi駅Mu站OC皿UE “工l.-H n1.1S !l.SCi.*1J1111 jf111 STSEJ3烦呗畑 HE 加加mUTMlMLll讪帧让0:1匸口33i图 3-14 方波波形仿真图从图 3-14 中可以看出当 div=
55、1 和 reset=1 的情况下 clk_out_tmp 是输入时钟 的一办,每来 16 个周期 Qout_squ 输出电平翻转一遍,以产生标准的方波。为了 验证方波模块的正确性,采用 Quartus II 进行波形仿真,得到如图 3-15 所示仿真 波形图。癱噴导閽骋艳捣靨骢鍵。tri2图 3-15 方波波形仿真图从图 3-14 中也可以看到和图 3-15 同样的现象每经过 16 个周期电平翻转次,也就是说每 32 个周期产生一个方波波形,完全符合标准,另外,其频率取SysCIkrestQout_lri(7:0)Q0Ut lTi-:7 0)翊壮_-div(7:0)27决于分频系数 div 和
56、系统输入时钟。鑣鸽夺圆鯢齙慫餞離龐。3.5三角波设计三角波形是指波形值从最小值开始递增,到达最高点后又开始依次减小,直到减小到最小值,依次反复,形状想三角形。根据模块需求设计出模块流程图如图3-16 所示。榄阈团皱鹏緦寿驏頦蕴。根据图 3-16 所示软件流程图设计出方波模块的模块框图,如图3-17 所示。* fir料心ja it _nnpStl19inimirnnnirnnniuvi/imminViiunnnVrnniunnAVIU.IT If1HA/ mnJ ITiA/、rnnV40Vl! A 1 1 1 1i 1 1 1 1 i 1 l! 1 1 1 1 1 1 1 1 1 1! 1 1
57、1 1 1 1 1 1 1 N d 1 1 1 1图 3-17 三角波模块原理图从图 3-17 中来分析该模块的输入输出模块以及引脚定义:模块的输入变量是:外部基准时钟sysclk,模块复位输入 reset,分频系数输入 div。输出时钟波形时钟输出 Qout_tri ;逊输吴贝义鲽國鳩犹騸。复位输入 reset 低电平时,时钟模块复位,系统不运作; 分频系数 div 决定波形时钟,其分频计算公式是:输出时钟频率系统时钟频率,比如说 div 值为 1,则输出时钟是系div 1统时钟的二分之一;Qout_tri 是三角波模块的波形输出。根据软件流程图以及模块框图中输入输出引脚定义,使用Veril
58、og 语言设计了以28下代码:29/系统时钟/复位开关,低电平复位/分频Qout_tri);input SysClk;input rest;input 7:0 div;output 7:0 Qout_tri;wire Qout_tri;clk_div clk_out(.sysclk(SysClk) ,.reset(rest) ,.div(div) ,.clk_out(clk_out);/产生三角波reg 7:0 tmp_tri= 0;reg tri_flag = 0;always (posedge clk_out or negedge rest) begin if(!rest) beginQo
59、ut_tri = 0;tmp_tri = 0;tri_flag = 0;endelse beginif(!tri_flag) begintmp_tri = tmp_tri + 1;if(tmp_tri = 8b0000_1111) tri_flag = 1;endelse begintmp_tri = tmp_tri - 1;module tri2(SysClk ,rest ,div25if(tmp_tri = 0)tri_flag = 0;endQout_tri = tmp_tri ;endenden dmodule简单分析下代码:tmp_tri 用来记录时间脉冲的次数,以上升沿方式触发计
60、数;在未达到 80000_1111 时,输出上升波形,到达 80000_1111 时,输出下 降波形。幘觇匮骇儺红卤齡镰瀉。设计测试文件, 将 div 设置为 1 即为 2 分频, sysclk 设置周期为 20ns。 通过 Modelsim仿真得到图 3-18 波形:誦终决懷区馱倆侧澩赜。sine图 3-18 三角波形仿真图从图 3-18 可以看出输出的波形是标准的三角波,波形从开始的最小值到最大值再从最大值到最小值。为了验证三角波形产生模块的正确性,利用 Quartus II图 3-19 三角波形仿真图从图 3-18 和图 3-19 中可以看出,利用 Quarts II 和 Modelsi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江台州市温岭市中医院招聘(第三批) 编外员工1人考试参考试题及答案详解
- 2027中广核秋季校园招聘笔试备考题库及答案详解
- 2026年新乡市高新区消防救援大队招聘政府专职消防员30名笔试参考题库及答案详解
- 2026宜昌市第三人民医院招聘超声医师1人笔试备考试题及答案详解
- 2026南京大学YJGC20260810计算机学院特任助理研究员1人笔试备考试题及答案详解
- 2027年宜昌住房公积金中心高层次人才引进公开招聘考试参考试题及答案详解
- 2026年芜湖市镜湖文化旅游投资有限公司招聘工作人员5名考试备考试题及答案详解
- 2026年认证基础、管理体系认证基础主观题考试(附答案)解析
- 2026年法检助理考试题及答案解析
- 永州市宁远县2026年三下数学期末调研模拟试题(含答案解析)
- 医院护理人文关怀实践规范专家共识
- 《新实用汉语课本》课件2
- 《我是什么》 省赛获奖
- 厦门百路达高新材料有限公司高纯无氧铜、磷脱氧铜生产项目环境影响报告书
- 新任职科级干部能力提升培训班研讨发言材料心得体会6篇
- 0-3岁婴幼儿认知发展与教育PPT完整全套教学课件
- 谜语知识讲解(优秀教学课件)-人教版
- 功能高分子课件第一章
- (中职)电工技术基础与技能(第2版)项目五 磁场及电磁感应的认知电子课件()
- NB/T 10731-2021煤矿井下防水密闭墙设计施工及验收规范
- GB/T 9145-2003普通螺纹中等精度、优选系列的极限尺寸
评论
0/150
提交评论