基于FPGA的DDS仿真与设计报告

基于FPGA的DDS仿真与设计报告
基于FPGA的DDS仿真与设计报告

毕业论文声明

本人郑重声明:

1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。本人完全意识到本声明的法律结果由本人承担。

2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。

3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。

4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。

学位论文作者(签名):

年月

关于毕业论文使用授权的声明

本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。本人完全了解大学有关保存,使用毕业论文的规定。同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据

库和收录到《中国学位论文全文数据库》进行信息服务。在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。

论文作者签名:日期:

指导教师签名:日期:

Yibin University

电子信息科学与技术专业本科生EDA设计报告

题目基于FPGA的DDS仿真与设计专业电子信息科学与技术

基于FPGA的DDS仿真与设计

摘要:本文论述了直接数字频率合成技术(DDS)的信号发生器的设计与实现。本设计是以DDS芯片Cyclone Ⅱ:EP2C5T144C8为频率合成器的函数信号发生器。本文分析了DDS的设计原理,基于VHDL语言进行系统建模等,同时利用Quartus Ⅱ编译平台完成一个具体DDS 芯片的设计,详细阐述了基于VHDL编程的DDS设计方法步骤。利用Altera公司的Quartus Ⅱ开发软件,完成DDS核心部分即相位累加器和R A M查找表的设计,可得到相位连续、频率可变的信号,并通过单片机配置FPGA的E^2 PROM完成对DDS硬件的下载,最后完成每个模块与系统的时序仿真。由于FPGA的可编程性,使得修改和优化DDS的功能非常快捷。

关键字:DDS,Quartus Ⅱ,FPGA

中图分类号:TN

引言:随着现代电子技术的不断发展,在通信系统中往往需要在一定频率范围内提供一系列稳定和准确的频率信号,一般的振荡器己不能满足要求,这就需要频率合成技术。直接数字频率合成(Direct Digital Frequen2cy Synthesis ,DDS)是把一系列数据量形式的信号通过D/ A 转换器转换成模拟量形式的信号合成技术。目前在高频领域中,利用FPGA 来设计符合自己需要的DDS 系统就是一个很好的解决方法。

正文:

目录

第一章绪论 (5)

1.1、DDS引言 (5)

1.2、直接数字合成器的概念及其发展 (5)

1.3、DDS技术在国内研究状况及其发展趋势 (6)

1.4、频率合成器种类与技术发展趋势 (7)

1.5、DDS优势 (7)

1.6、课题主要研究内容和设计要求 (8)

第二章超大规模集成电路设计介绍 (8)

2.1、引言 (8)

2.1.1、EDA技术的含义及特点 (9)

2.1.2、EDA技术的主要内容 (9)

2.2、可编程逻辑器件FPGA (10)

2.3、硬件描述语言(HDL) (12)

2.3.1、VHDL简介 (12)

2.3.2、VHDL的主要特点 (13)

2.3.3、VHDL语言的优势 (13)

2.4、软件开发工具 (15)

第三章 DDS工作原理和主要特点 (15)

3.1、DDS的基本工作原理 (16)

3.1.1、DDS采样量化 (16)

3.1.2、DDS的基本参数推导 (18)

3.2、DDS的主要特点 (19)

3.3、DDS建模 (19)

第四章用VHDL来编程实现和仿真 (21)

4.1、VHDL编程实现 (21)

4.1.1、频率控制字的生成模块 (21)

4.1.2、频率控制字的VHDL实现程序 (22)

4.1.3、32位加法器的生成模块 (22)

4.1.4、32位加法器的宏模块 (23)

4.1.5、32位寄存器的生成模块及VHDL实现程序 (23)

4.1.6、存放波表Rom的生成模块及宏模块 (24)

4.1.7、整体模块设计 (25)

4.2、用Quartus Ⅱ进行DDS仿真 (25)

4.2.1、Quartus Ⅱ软件简介 (26)

4.2.2、用Quartus Ⅱ的仿真步骤和图像 (27)

4.2.3、注意事项 (30)

第五章结束语 (31)

5.1、总结 (31)

5.2、参考文献 (32)

5.3、致谢 (33)

5.4、附录 (33)

第一章绪论

1.1、DDS引言

频率合成技术是将一个(或多个)基准频率变换成另一个(或多个)合乎质量要求的所需频率的技术。在通信、雷达、导航、电子侦察、干扰等众多领域都有应用。

1971年3月美国学者J.Tierncy,C.M.Rader和B.Gold首次提出了直接数字频率合成(DDS—Direct Digital Synthesis)技术。这是一种从相位概念出发直接合成所需要的波形的新的全数字频率合成技术。同传统的频率合成技术相比,DDS技术具有极高的频率分辨率、极快的变频速度,变频相位连续、相位噪声低,易于功能扩展和全数字化便于集成,容易实现对输出信号的多种调制等优点,满足了现代电子系统的许多要求,因此得到了迅速的发展。

1.2、直接数字合成器的概念及其发展

随着通信、数字电视、卫星定位、航空航天和遥控遥测技术的不断发展,对频率源的频率稳定度、频谱纯度、频率范围和输出频率个数的要求越来越高。为了提高频率稳定度,经常采用晶体振荡器等方法来解决,但它不能满足频率个数多的要求,因此,目前大量采用频率合成技术—DDS即Direct Digital Synthesizer,中文名称是直接数字合成器,是一种新型的频率合成技术,具有较高的频率分辨率,可以

实现快速的频率切换,并且在改变时能够保持相位的连续,很容易实现频率、相位和幅度的数控调制,以其使用方便和品路分辨率高等优点,在现代通信领域得到越来越广泛的应用。用VHDL语言对DDS 进行功能描述,方便在不同的实现方式下移植和修改参数,因而逐步成为DDS设计主流,而且在Alter公司开发的Maxplus2中,不仅提供了方便的VHDL编译和综合平台,还集成了可供程序对应下载的FPGA器件等大量芯片,大大缩短了DDS的设计和开发周期。它是现代通信系统必不可少的关键电路,广泛应用于数字通信、卫星通信、雷达、导航、航天航空、遥控遥测以及高速仪器仪表灯领域。

1.3、DDS技术在国内研究状况及其发展趋势

频率合成器的技术复杂度很高,经过了直接合成模拟频率综合器、锁相式频率综合器、直接数字式频率综合器(DDS)三个发展阶段。目前,在我国,各种无限系统中使用的品路合成器普遍采用锁相式频率综合器,通过CPU控制,课获得不同的频点。锁相式频率综合器含有参考振荡器与分频器、可控分频器、压控振荡器及鉴相器、前置分频器等功能单元。频率合成器的最终发展方向是锁相式频率综合器、双环或多环锁相式频率合成器、DDS频率合成器,以及PPL 加DDS混合式频率合成器。因此,锁相式频率综合器和直接数字式频率综合器收到了国内各界关注,并得到了迅猛发展。

基于DDS波形产生的应用现阶段主要在两个方面:

1.设计通讯系统需要灵活的和极好的相噪,极低的失真性能的频

率源,它通常选用DDS综合它的光谱性能和频率调谐方案。

2.作为选择地,许多工业和医学应用DDS作为可编程波形发生器。因为DDS是数字可编程,它的相位和频率在不改变外围成分的情况下能很容易地改变,而传统的基于模拟编程产生波形的情况下要改变外围成分。DDS允许频率的实时调整去定位参考频率或者补偿温度漂移。

1.4、频率合成器种类与技术发展趋势

种类:直接模拟合成法、锁相环合成法、直接数字合成法

发展:直接模拟合成法利用倍频、分频、混频及滤波,从单一或几个参数频率中产生多个所需的频率。锁相环合成法通过锁相环完

成频率的加、减、乘、除运算。

1.5、DDS优势

如今在价格方面有竞争力的,高性能,功能集成的DDS芯片在通讯系统和传感应用方面已经变得非常常见了。它吸引工程师的优势主要包括:

数字控制微调频率调谐和轻微程度相位调制能力。

极快速度调谐输出频率(相位)

DDS的数字体系结构取消了像传统模拟合成方案那样的手动调谐和温度补偿的不方便,DDS的数字控制结构外围使系统的远程控制更为方便,在处理器控制下达到最优化。

1.6、课题主要研究内容和设计要求

本课题设计研究的主要内容就是基于FPGA的DDS仿真设计,在Quartus Ⅱ的基础上,运用VHDL的编程来实现各大模块,并对其进行实现和仿真。

第一章是简单的介绍了一下DDS的概念、现状、内容和发展前景;第二章是对DDS所采用的辅助工具的介绍;第三章是对DDS工作原理和主要特点的介绍;第四章是用VHDL来编程实现和仿真,第五章是最后的总结心得及附录。

第二章超大规模集成电路设计介绍

2.1、引言

随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升;电子类的高新技术项目的开发也逾益依赖于EDA技术的应用,即使是普通的电子产品的开发,EDA技术也常常使产品的开发周期大为缩减、性能价格比大幅提高。不言而喻,EDA技术将迅速成为电子设计领域中的及其重要的组成部分。

2.1.1、EDA技术的含义及特点

EDA(Electronic Design Automation,电子系统设计自动化)技术是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)、CAE(计算机辅助工程)的概念发展而来的。现代EDA技术就是以让计算机为工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,能自动地完成用软件方式描述的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。可见,利用EDA技术进行电子系统的设计,具有以下几个特点:

1)用软件的方式设计硬件;

2)用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;

3)采用自顶向下(top—down)的设计方法;

4)设计过程中可用有关软件进行各种仿真;

5)系统可现场编程,在线升级;

6)整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。

因此,EDA代表了当今电子设计技术的最新发展方向。

2.1.2、EDA技术的主要内容

EDA技术涉及面很广,内容丰富,从教学和使用的角度看,主要应掌握如下四个方面的内容:

1)大规模可编程逻辑器件;

2)硬件描述语言;

3)软件开发工具;

4)实验开发系统。

其中,大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体,硬件描述语言是利用EDA技术进行电子系统设计的主要表达手段,软件开发工具是利用EDA技术进行电子系统设计的智能化的自动设计工具,实验开发系统则是利用EDA技术进行电子系统设计的下载工具及硬件验证工具。

2.2、可编程逻辑器件FPGA

PLD(Programmable Logic Device,可编程逻辑器件)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称,两者的功能基本相同,只是实现原理略有不同,生于20世纪70年代。自问世以来,PLD经历了从PROM(Programmable Read—Only Memory,可编程序的只读存储器)、PLA(Programmable Logic Array,可编程序逻辑阵列)、PAL(Programmable Array Logic ,可编程序阵列逻辑)、GAL (Generic Array Logic,通用阵列逻辑)到FPGA、ispLSI(in system programmable large scale integration,在系统可编程大规模集成电路)等高密度PLD的发展过程。与中小规模通用型集成电路相比,用PLD 实现数字系统,有集成度高、速度快、功耗低、可靠性高等优点。与

大规模专用集成电路相比,用PLD实现数字系统,有研制周期短、先期投资少、无风险、修改逻辑设计方便、小批量生产成本低等优势。PLD是电子设计领域中最具活力和发展前途的一项技术,PLD能完成任何数字器件的功能。

FPGA是20世纪80年代中期,美国Altera公司推出的一种现场可编程门阵列,其结构主要分为三部分:可编程逻辑单元、可编程输入输出单元和可编程连线部分。FPGA器件采用逻辑单元阵列结构和静态随机存取存储器工艺,设计灵活,集成度高,可利用计算机辅助设计,绘出实现用户逻辑原理图、逻辑布尔方程或用硬件描述语言等方式设计输入;然后经一系列转换程序、自动布局布线、模拟仿真的过程;最后生成配置FPGA器件的数据文件,对FPGA器件初始化。这样实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成电路的目的。由此设计的DDS 电路简单,性能稳定, 也基本能满足绝大多数通信系统的使用要求。

概括来说,FPGA器件具有下列优点:高密度、高效率、系列化、标准化、小型化、多功能、低功耗、低成本、设计灵活方便,可缩短研制周期,可无限次反复编程,并可现场模拟调试验证。基于上述的优点,本设计采用FPGA芯片作为平台,这样可以把整个系统下载到一块芯片之中,实现了所谓的片上系统,从而大大缩小了体积,便于工程人员的管理和屏蔽外界干扰。

2.3、硬件描述语言(HDL)

硬件描述语言(HDL)是相对于一般的计算机软件语言如C、Pascal而言的。HDL是用于设计硬件电子系统的计算机语言,它描述电子系统的逻辑功能,电路结构和连接方式。HDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。用HDL进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。

就FPGA/CPLD开发来说,比较常用和流行的HDL主要有VHDL,Verilog HDL,ABEL,AHDL,System Verilog和Systern C。有专家认为,在新的世纪中,VHDL与Verilog HDL语言将承担起大部分的数字系统设计任务。

2.3.1、VHDL简介

VHDL语言的英文全名是Very High Speed Integrated Circuit Hardware Description Language,即超高速集成电路硬件描述语言,是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计,因此在实际应用中越来越广泛。HDL发展的技术源头是:在HDL形成发展之前,已有了许多程序设计语言,如汇编、C、Pascal、Fortran、Prolog等。这些语言运行在不同硬件平台和不同的操作环境中,它们适合于描述过

程和算法,不适合作硬件描述。CAD的出现,使人们可以利用计算机进行建筑、服装等行业的辅助设计,电子辅助设计也同步发展起来。在从CAD工具到EDA工具的进化过程中,电子设计工具的人机界面能力越来越高。在利用EDA工具进行电子设计时,逻辑图、分立电子原件作为整个越来越复杂的电子系统的设计已不适应。

2.3.2、VHDL的主要特点

作为硬件描述语言的第一个国际标准,VHDL具有很强的可移植性:1】具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将设计中逻辑上的错误消灭在组装之前,在大系统

的设计早期就能查验设计系统功能的可行性;

2】设计层次较高,用于较复杂的计算时能尽早发现存在的问题,从而缩短设计周期;

3】VHDL的设计不依赖于特定的器件,方便了工艺的转换;支持大规模设计的分解和已有设计的再利用;

4】对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把VHDL描述设计转变成门级网

表;

2.3.3、VHDL语言的优势

常用的硬件描述性语言有VHDL、Verilog和ABEL语言。VHDL 语言起源于美国国防部的VHSIC,VHDL是一种高级描述语言,适

用于行为级和RTL级的描述相对与Verilog语言和ABEL语言这些较低一级的适合描述门级电路的描述性语言而言,其具有以下的优点:1、设计方法灵活、支持广泛

VHDL语言可以支持自顶至下(Top—Down)和基于库(Library —Based)的设计方法,而且还支持同步电路、异步电路、FPGA以及其他随机电路的设计。

2、系统硬件描述能力强

VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的框图直到门级电路。另外,高层次的行为描述可以与低层次的RTL 描述和结构描述混合使用。

3、VHDL语言描述与工艺不发生关系

在用VHDL语言设计系统硬件时,没有嵌入工艺信息。采用VHDL语言的设计,当门级或门级以上层次的描述通过仿真检验以后,再用相应的工具将设计映射成不同的工艺(如MOS、CMOS等)。这样,在工艺变更时,只要改变相应的映射工具就行了。

4、VHDL语言标准、规范,易于共享和复用

由于VHDL语言已成为一种IEEE的工业标准,这样,设计成果便于复用和交流,反过来也更进一步推动VHDL语言的推广及完善。

基于上述的特点,可知VHDL语言可读性好,又能被计算机识别。VHDL语言中设计实体、程序包、设计库,为设计人员重复利用已有的设计提供了诸多技术手段。可重复利用他人的IP

(Intelligence Property)模块和软核(Soft Core)也是VHDL的另一特色,许多设计不必每次都从头再来,只要在更高层次上把IP模块组合起来,就能达到事半功倍的效果。因此本设计采用VHDL语言设计一个完善的HDB3码编、译码器。

2.4、软件开发工具

Altera公司开发的MaxplusⅡ和Quartus Ⅱ都是曾经最优秀的PLD开发平台之一,适合开发早期的中小规模PLD/FPGA,使用者众多。目前Altera已经停止开发MaxplusⅡ,而转向Quartus Ⅱ软件平台。

Xilinx公司开发的Foundation和ISE是Xilinx公司上一代的PLD 开发软件,目前Xilinx公司已经停止开发Foundation,转向ISE软件平台,现在的ISE是公司目前主体的PLD/FPGA开发软件。

Lattice公司开发了ispDesignEXPERT和ispLEVER。前者是Lattice公司的PLD开发软件,目前最新软件改名为:ispLEVER。这个软件是最新一代的PLD集成开发软件,取代了ispEXPERT,成为PLD/FPGA设计的主要工具。

第三章DDS工作原理和主要特点

DDS实现频率合成的原理主要是通过查找表的方式来进行的。

如下图:

图1中的存储表中存储了一个周期的波形采样值的ROM(如:要产生正弦波时,存储表中存储的就是一个周期的正弦波的采样值)。当周期地给出特定地址后,ROM就输出相应的采样值。

输入DDS的频率字和一确定的相位值是相对应的,在相位累加器的累加下产生所需要的地址。因为输入ROM的地址是周期重复的,输出的采样值经过D/A和滤波器后就得到和输入频率字唯一对应的频率的周期波形。因此只要给出一定范围的频率字就可以得到一定范围的周期波形,从而达到产生特定信号的功能。

3.1、DDS的基本工作原理

3.1.1、DDS采样量化

DDS是一种从相位概念出发直接合成所需波形的数字频率合成技术。与传统的频率合成技术相比,DDS技术具有很高的频率分辨率,可以实现快速的频率变化,并且在频率改变时能保持相位连续,容易实现对信号频率、相位的多种调制,易于功能扩展和数字化集成等优点,满足了现代电子系统的许多要求。随着数字技术的飞速发展,DDS正逐步取代PLL锁相环,得到越来越广泛的应用。

正弦信号可以用下式来描述:

式(1)中的时间t是连续的,为了用数字方式实现,必须进行离散化处理。用周期为Telk的基准时钟对信号进行采样和量化。如图2所示:

采样周期为Tdk采样频率Fclk=1/Tclk。不难看出,连续两次采样之间的相位增量

将整个周期分成2^N份,则相位的量化单位。若,代入式(2)可得。更一般的情况是为S的M倍,即可得到输出信号的频率;M称为频率控制字(tuning word)。由式(3)可见,M决定了输出信号的频率,且两者是简单的线性关系。可以看出,当采样频率一定时,通过控制两次连续采样之间的相位离散波形序列的频率:

M经保持和滤波后,可唯一地恢复出此频率的模拟信号。图1是DDS的原理图。相位累加器可在每一个时钟周期来临时将频率控制字M所决定的相位增量累加一次,如果记数大于2^N,则自动溢出:LUT(查找表)实际上是一个存储器(ROM),其中存储着一个周期正弦波的幅度量化数据,用于实现从相位到幅度的转换。相位累加器的输出作为LUT的地址值,LUT根据输入的地址(相位)信息读出幅度信号,达到D/A转换器中转换为模拟量,最后通过滤波器输出一个平滑的模拟信号。

3.1.2、DDS的基本参数推导

根据式(3),可以确定DDS的基本参数:

(4)此时每2^N个时钟周期输出一个周期的正弦波。

当N比较大时,对于较大范围内的M值,DDS系统都可以在一个周期内输出足够的点,保证输出波形失真很小。

当基准时钟确定后,输出信号频率Fclk频率控制字M之间必须满足采样定理,即Fclk应大于f0的2倍。实际应用中,为保证输出波形的质量,Fclk至少应为f0的4倍。由于D/A转换电路的转换时间应小于1/Fclk,因此DDS系统的时钟频率、信号输出频率主要由D/A转换器的性能决定。

3.2、DDS的主要特点

1】DDS的频率分辨率在相位累加器的位数N足够大时,理论上可以获得相应的分辨精度,这个传统方法难以实现的

2】DDS是一个全数字结构的开环系统,无反馈环节,因此其速度极快,一般在毫微秒量级

3】DDS的相位误差主要是依赖于时钟的相位特性,相位误差小。另外,DDS的相位是连续变化的,形成的信号具有良好的频谱,这是传统的直接频率合成方法无法实现的

4】频率切换时相位连续

5】可以输出带宽正交信号

6】输出相位噪声低,对参考频率源的相位噪声有改善作用

7】可以产生任意波形

8】全数字化实现,便于集成,体积小,重量轻

9】缺点DDS的采样特性以及DAC的非线性,DDS系统的输出中含有假信号干扰和杂散

3.3、DDS建模

如图3所示:

fpga数字钟课程设计报告

f p g a数字钟课程设计报告 Prepared on 24 November 2020

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 姓名:王一丁 指导教师:李世平 设计时间:2016年1月 摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟 目录 摘要 1 课程设计目的 2 课程设计内容及要求

设计任务 设计要求 3 VHDL程序设计 方案论证 系统结构框图 设计思路与方法 状态控制模块 时分秒模块 年月日模块 显示模块 扬声器与闹钟模块 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献 1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。

FPGA设计的报告课程设计

FPGA课程设计 实 验 报 告

实验一:设计一个可控的100进制可逆计数器 一、实验要求 用DE2-115开发板下载。 (1)计数器的时钟输入信号周期为200ns。 (2)以十进制形式显示。 (3)有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用 clr plus minus 功能 0 ××复位为0 1 1 0 递增计数 1 0 1 递减计数 1 1 1 暂停计数 二、关键词 可控制、可逆、100进制、复位、暂停、递增、递减 三、内容摘要 module updown_count(qout,reset,clk,plus,minus); output[7:0] qout;/*定义一个8位的输出,其目的是 低四位和高四位分别表示计数器的个位和十位。*/ input clk,plus,minus,reset;//定义四个输入,时钟,加计数,减计数和清零 reg[7:0] qout;//qout的数据类型为寄存器型 always @(posedge clk)//当clk上升沿到来时执行一遍下列程序 begin if(!reset) qout<=0;//当reset为低电平时,计数器执行清零功能,否则跳过else begin case({minus,plus})//case语句模块,包含加,减和暂停四个模块 2'b10: if (qout[3:0]==0)//判断个位是否为零,若不为零,跳到个位减一begin qout[3:0]<=9;//给个位赋值 if(qout[7:4]==0) qout[7:4]<=9;//判断十位是否为零,并且给十位赋值 else qout[7:4]<=qout[7:4]-1;//由于个位赋9,相当于向十位借一,因而十位减一end else qout[3:0]<=qout[3:0]-1;//个位减一 /*这一部分是减计数模块,其思路是:首先判断个位是否为零,若为零,则执行后面的程序,个位直接赋9,并且十位减一;否则个位减一*/ 2'b01: if (qout[3:0]==9)//判断个位是否为9,否则跳到个位加一begin

FPGA设计的秒表设计实验报告

《FPGA原理及应用》 实验报告书 (7) 题目秒表设计 学院专业 姓名学号 指导教师 2015年10-12月 一、实验目的 掌握小型电路系统的 FPGA 设计法。 二、实验内容

用文本法结合原理图的方法设计一个秒表,并在实验箱上进行验证。秒表基本功能要求如下: (1)要求设置复位开关。当按下复位开关时,秒表清零并做好计时准备。在任何情况下只要按下复位开关,秒表都要无条件地进行复位操作,即使是在计时过程中也要无条件地进行清零操作。 (2)要求设置启/停开关。当按下启/停开关后,将启动秒表并开始计时,当再按一下启/停开关时,将终止秒表的计时操作。 (3)要求计时精确度大于秒。要求设计的计时器能够显示分(2 位)、秒(2 位)、秒(1 位)的时间。 (4)要求秒表的最长计时时间为 1 小时。 要求外部时钟频率尽量高,分频后再给秒表电路使用。 三、实验条件 1、开发软件:QuartusⅡ 2、实验设备:KX_DN8EDS实验开发系统 3、拟用芯片:EP3C55F484C8 四、实验设计 1、六进制计数器 仿真波形

2、十进制计数器 3、分频计 4、七段数码管译码器

5、100进制原理图 6、60进制原理图 7、秒表原理图

8、管脚锁定 新建好工程文件,芯片选择Cyclone Ⅲ下面的EP3C55F484C8系列。然后锁定引脚:选择Assignments → Assignments Editor命令。

9、编译文件下载 将编译产生的SOF格式配置文件下载进FPGA中。 10、FPGA实验箱接线 在KX-EDA40A++实验箱上进行连线,分配J4,J5的引脚,输入CLK(PIN_接到时钟信号,输入的EN,RST 接到电平开关L1,L2。 五、实验总结 经过本次实验,我对QuartusⅡ的使用认识更加深刻,对FPGA技术有了更深层次的认识,有助于我对以后的电子电路设计有极大帮助。

FPGA课程设计报告

F P G A 课 程 设 计 报 告 学部:信息科学与技术学部 专业:通信工程 班级:10级1班 学号:100103011125 姓名:万洁 指导老师:祝宏 合作伙伴:张紫君 2012.12.13

一.《任务书》: 实验一100进制的可逆计数器(11——12周)实验二交通灯控制系统(15周) 实验三多功能数字钟系统(14-15周)二.实验书写格式: 一:题目要求 二:程序代码 三:操作步骤及运行结果截图 四:心得体会 三.实验附录: 一:老师提供的资源 二:关于实验所用EP4CE115F29板的简介

实验一100进制的可逆计数器 一、设计一个可控的100进制可逆计数器,要求用实验箱下载。 (1)计数器的时钟输入信号周期为200ns。 (2)以十进制形式显示。 (3)有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用下,计数器具有复位、增或减计数、暂停功能。 clr plus minus 功能 0 ××复位为0 1 1 0 递增计数 1 0 1 递减计数 1 1 1 暂停计数 二、程序如下: module keni100(CLR,CLK,PLUS,MINUS,OUT); //100进制的可逆计数器 input CLR,PLUS,MINUS,CLK; output [7:0]OUT; reg [7:0]OUT; always@(posedge CLK) begin if(!CLR) //如果CLR为零,输出为零;反之,运行else程序 OUT[7:0]<=0; else

begin if(PLUS==0 && MINUS==1) //100进制的递减计数 begin if (OUT[3:0]==0) begin OUT[3:0]<=9; if (OUT[7:4]==0) OUT[7:4]<=9; else OUT[7:4]<=OUT[7:4]-1; end else OUT[3:0]<=OUT[3:0]-1; end if(PLUS==1 && MINUS==0) //100进制的递增计数 begin if (OUT[3:0]==9) begin OUT[3:0]<=0; if (OUT[7:4]==9) OUT[7:4]<=0; else OUT[7:4]<=OUT[7:4]+1; end else OUT[3:0]<=OUT[3:0]+1; end if(PLUS==1 && MINUS==1) OUT<=OUT; //若PLUS和MINUS都为1,暂停计数 if(PLUS==0 && MINUS==0) OUT<=0; //若都为零,输出为零end end endmodule 三、运行程序 1、在quarters II9.1输入程序 打开quarters II界面,点击file→New,在出现的对话框,如图1.1所示,选择Text File,点击OK.

FPGA一位全加器设计实验报告

题目:1位全加器的设计 一.实验目的 1.熟悉QUARTUSII软件的使用; 2.熟悉实验硬件平台的使用; 3.掌握利用层次结构描述法设计电路。 二.实验原理 由于一位全加器可由两个一位半加器与一个或门构成,首先设计半加器电路,将其打包为半加器模块;然后在顶层调用半加器模块组成全加器电路;最后将全加器电路编译下载到实验箱,其中ain,bin,cin信号可采用实 验箱上SW0,SW1,SW2键作为输入,并将输 入的信号连接到红色LED管 LEDR0,LEDR1,LEDR2上便于观察,sum,cout 信号采用绿色发光二极管LEDG0,LEDG1来 显示。 三.实验步骤 1.在QUARTUSII软件下创建一工程,工程名为full_adder,芯片名为EP2C35F672C6; 2.新建Verilog语言文件,输入如下半加器Verilog语言源程序; module half_adder(a,b,s,co); input a,b; output s,co; wire s,co; assign co=a & b; assign s=a ^ b; Endmodule 3.保存半加器程序为,进行功能仿真、时序仿真,验证设计的正确性。 其初始值、功能仿真波形和时序仿真波形分别如下所示

4.选择菜单File→Create/Update→Create Symbol Files for current file,创建半加器模块; 5.新建一原理图文件,在原理图中调用半加器、或门模块和输入,输出引脚,按照图1所示连接电路。并将输入ain,bin,cin连接到FPGA的输出端,便于观察。完成后另保存full_adder。 电路图如下 6.对设计进行全编译,锁定引脚,然后分别进行功能与时序仿真,验证全加器的逻辑功能。其初始值、功能仿真波形和时序仿真波形分别如下所示

基于FPGA的VGA显示设计报告

正文 一,VGA时序标准 VGA是一种常用的显示输出接口,采用行场扫描控制结合RGB三色合成原理,输出 显示信号。每个VGA接口为15针接口,分三行排布,每行5针。如图所示: 图1.1 VGA接口 15针并未全部使用,有效的信号线共5根,即红绿蓝三基色信号线:R,G,B,每线电压从0V到0.71V变化,表示无色到饱和,依据电平高低,显示颜色的饱和程度。行同步控制信号,Hsync,控制每行扫描像素的有效和失效。场同步:Vsync,控制场方向,即整个图像显示过程的时间长度,场同步中的显示部分的时间长度,等于每行扫描时间的总和。 在不同刷新频率下,显示每个像素的时间是不同的,相同刷新频率下,每个像素显示时间是固定的,所以,不同的每个像素写入时间,导致了分辨率的不同。因为VGA的显示是逐行扫描,每行从左到右扫描,到了行尾,回归到下一行的行头,继续向尾部扫描。所以,显示原理是逐次写入每行的像素数据,直到整幅图像显示成功为止。 VGA显示的数据是不能锁存的,所以必须一次又一次的连续输入数据,72Hz的刷新率下,一秒钟显示72幅图像,所以,需要连续写入72幅图像,才能达到一秒的显示效果。所以,VGA显示图像,要反反复复写入图像数据,才能得到持续的显示效果。 图1.2 VGA接口线序 VGA显示,无法做到类似于TFT液晶屏的定点写入,VGA是扫描式暂时显示,所以时序显得尤为重要,时序出现失误,图像会出现走形,无法达到准确效果。而显示的时序控制主要依靠两条数据通道:行同步和场同步,即Hsync和Vsync,其控制了扫描显示的起点和终点,同时控制扫描起点的时间,通过时间的控制,达到确定的显示效果。 具体的控制时序图如下:

基于FPGA数字秒表设计报告

标准实验报告实验项目:基于FPGA数字秒表设计

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

FPGA课程设计报告

2014年FPGA课程设计 课程设计报告 课程名称:FPGA课程设计 实验名称:直接数字合成器设计 姓名:李思彧 学号: 20114690 班级:电子科11-1 班 指导教师:倪伟 合肥工业大学电子科学与应用物理学院制

一、实验原理 直接数字式频率合成器(DDS)是将先进的数字处理理论与方法引入频率合成的一项新技术,DDS把一系列数字量形式的信号通过数/模转换器转换成模拟量形式的信号。DDS的具体工作过程是由N位相位累加器、N位加法器和N位累加寄存器组成。每来一个时钟脉冲,N位加法器将频率控制字K与N 位累加寄存器输出的累加相位数据相加,并把相加后的结果送至累加寄存器的输入端。累加寄存器一方面将上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,使加法器在下一时钟的作用下继续与频率控制字K相加;另一方面将这个值作为取样地址送入幅度/相位转换电路,幅度/相位转换电路根据这个地址输出相应的波形数据。最后经D/A转换器和LPF将波形数据转换成所需要的模拟波形。 图1.直接数字式频率合成的基本框图 1 DDS的设计原理 DDS的原理图如图1所示。DDS实现频率合成主要是通过查表的方式进行的。正弦查询表是一个只读存储器(ROM),以相位为地址,存有1个或多个按0°~360°相位划分幅值的正弦波幅度信息。相位累加器对频率控制字进行累加运算,若需要还可以加入相位控制字,得到的结果作为正弦波查询表的地址。正弦查询表的输出为数字化正弦幅度值,通过D/A转换器转化为近似正弦波的阶梯波,

再通过低通滤波器滤除高频成分和噪声最终得到一个纯正度很高的正弦波。1.1 建模 正弦波y=sin(2πx),若以f量化的量化频率对其幅度值进行量化,一个周期可以得到M=f量化个幅度值。将这些幅度值按顺序存入到ROM。相位累加器在参考时钟的驱动下,每来1个脉冲,输出就会增加1个步长相位增量X,输出数据作为地址送入ROM中,读出对应的幅度值形成相应的波形。 1.2 参数设定 DDS输出信号频率: 其中,X为频率累加器设定值;N为相位累加器位数;fc为参考时钟频率。 例如,假定基准时钟为200 MHz,累加器的位数为32,频率控制字X 为: 0x08000000H,即为227,则: 再设定频率控制字X为0x80000000H,即为231,则: 可见,理论上通过设定DDS相位累加器位数N、频率控制字X和基准fc的值,就可以得到任一频率的输出。频率分辨率为:fres=fc/2N,由参考时钟和累加器的位数决定,当参考时钟的频率越高,相位累加器的位数越高,所得到的频率分辨率就越高。

FPGA课程设计题目

1、彩灯控制器设计 内容及要求: 设计一个彩灯控制器,具体设计要求如下: (1)要有多种花型变化(至少设计5种),led至少16路 (2)多种花型可以自动变化 (3)彩灯变换的快慢节拍可以选择 (4)具有清零开关 (5)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 2、数字秒表设计 内容及要求: 设计一用于体育比赛的数字秒表,具体设计要求如下: (1)6位数码管显示,其中两位显示min,四位显示see,显示分辨率为0.01 s。 (2)秒表的最大计时值为59min59.99see。 (3)设置秒表的复位/启动键,按一下该键启动计时,再按即清0。依此循环。 (4)设置秒表的暂行/继续键。启动后按一下暂行,再按继续。依此循环。 (5)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 3、交通信号控制系统设计 内容及要求: 设计一个十字路口交通控制系统,具体设计要求如下: (1)东西(用A表示)、南北(用B表示)方向均有绿灯、黄灯、红灯指示,其持续时间分别是40秒、5秒和45秒, 交通灯运行的切换示意图和时序图分别如图1、图2所示。 (2)系统设有时钟,以倒计时方式显示每一路允许通行的时间。 (3)当东西或南北两路中任一路出现特殊情况时,系统可由交警手动控制立即进入特殊运行状态,即红灯全亮,时钟停止计时,东西、南北两路所有车辆停止通行;当特殊运行状态结束后,系统恢复工作,继续正常运行。 图1 交通灯运行切换示意图

B红 CP A绿 A黄 A红 B黄 B绿 5S 5S 图2 交通灯时序图 (4)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 4、简易密码锁设计 内容及要求 设计一个4位串行数字锁。 (1)开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮一个指示灯。否则进入“错误”状态,并发出报警信号。 (2)锁内的密码可调,且预置方便,保密性好。 (3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停下。此时,数字锁又自动等待下一个开锁状态。 (4)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 5、出租车计价器设计 内容及要求 (1)设一个出租车自动计费器,计费包括起步价、行驶计费和等待计费三个部分,用4个数码管显示出金额数目,最大值为999.9元,最小计价单位为0.1元。行驶里程在3公里范围内且等待时间未超过三分钟时按起步价8元计费;行驶里程超过三公里后按每公里2元收费;等待时间超过三分钟后按每分钟1元收费。等待时间用两个数码管显示,最大值为59分钟。 总费用=起步价+(里程-3km )*里程单价+(等待时间-3)*等候单价 (2)能够实现的功能: 显示汽车行驶里程:用四位数字显示,单位为km 。 计程范围为0~99km ,计程分辨率为1km 。 显示等候时间:用两位数字显示分钟,单位为min 。计时范围为0~59min ,计时分辨率为1min 。

FPGA设计报告

西安邮电学院 FPGA课程设计报告 题目:采用RAM实现计数器及FPGA功能验证 院系:电子工程学院 专业班级: 学生姓名: 导师姓名: 起止时间:2012-06-18至2012-06-29 2012年07 月01 日

FPGA课程设计报告提纲 1.任务 用一个10×8的双口RAM完成10个8位计数器,计数器的初值分别为 1~10,时钟频率为1MHz,计数器计数频率为1Hz。 用FPGA开发板上的按键作为计数器计数值的输出选择控制,数码管 (或led)作为选择计数器的计数值输出。 2.目的 采用RAM实现计数器及FPGA功能验证 3.使用环境(软件/硬件环境,设备等) 前仿modelsim 6.1f 后仿Quartus II 10.1 xilinx ise 9.1 FPGA课程设计详细内容 4.1 技术规范 功能: 1.先由复位键从选定的RAM地址中读出预置的8位初值存入计数模块。 2.由开始键开始计数,暂停键暂停计数并同时存入RAM中以选定的存储单元。 3. 双端口RAM为10×8RAM由一个地址切换键按顺序切换1~10个地址端 口。 4.读出数据开始计数暂 停计数存入数据 计数流程 5输出到数 码管显示 读取结果输出流程 6.分频:1Hz的秒计时频率,用来进行秒计时;

4.2 设计方案 信号定义: 分频:1Hz 的秒计时频率, 用来进行秒计时 分频:时钟信号clk ; 分频信号 clk_1hz ; 开始计时(使能) rst_n ; 切换端口 开始计 暂停计数 存入数据 计数:开始计数 rst_n 计数器复位 reset ; 计数输出 ain ; 计数暂停 pause ; 计数置数 reduce ;

FPGA课程设计报告--简易电子琴的设计

邮电大学 FPGA课程设计报告 题目:简易电子琴设计及FPGA功能验证 院系: 专业班级: 学生:XX 导师:XX 起止时间:2012、6、18至2012、6、29

一、课程设计任务: 本设计一个简易电子琴,具体功能如下: 1、具有手动弹奏和自动播放功能; 2、以按键或开关作为电子琴的琴键,输出7个音节的音阶; 3、可以自动播放曲目至少两首。 二、课程设计目的: 1、培养综合运用知识和独立开展实践创新的能力; 2、深入学习Verilog HDL,了解其编程环境; 3、学会运用Modelsim和Quartus II等编程仿真软件; 4、将硬件语言编程与硬件实物功能演示相结合,加深理解Verilog HDL的学习; 三、使用环境: 1、软件:Modelsim和Quartus II等编程仿真软件; 2、硬件:FPGA开发板。 四、课程设计详细方案及功能验证: 1、总体实现方案: 1、简易电子琴的设计通过软硬件结合实现,硬件系统包括主控器芯片、9个按键、LED、蜂鸣器等,软件资源包括编写Verilog HDL程序的应用软件Modelsim和仿真软件Quartus II。电子琴有按键代替琴键的弹奏功能和自动播放功能。 2、整个程序总共分5个模块:主模块,按键模块,曲目1模块,曲目2模块,

曲目3模块。 整个方案总共用了9个按键(key1~key9),按键key1~key7作为琴键,通过这七个按键键入不同的音阶。主模块中key8、key9两个按键用于选择是自动播放还是弹奏曲目,令mm=(key8、key9),用mm值的不同选择调用不同模块。如果mm=00,则程序调用按键模块;如果mm=01,则调用曲目1模块,播放曲目1;如果mm=10,则调用曲目2模块,播放曲目2;如果mm11,则调用曲目3模块,播放曲目3。 本次设计的框图:

数字电路与逻辑设计实验报告,基于FPGA的数字电子钟的设计与实现

学生实验实习报告册 学年学期: 课程名称: 实验项目:基于FPGA的数字电子钟的设计与实现 姓名: 学院和专业: 班级: 指导教师: 重庆邮电大学教务处制

1.系统顶层模块设计(如:图一 0) 图一0

2.主要功能模块电路设计 2.1分频模块 这是分频模块的顶层设计图主要完成了把50MHz的时钟信号降频为1KHz、500Hz、1Hz 图一 1 图一 1 这是其中100分频计数器的计数器图一 2 图一 2 2.2计时模块 分、秒计时模块(实现模60计数)图二 1 这是两个模60计数器, 图二 1

其中是连在一起的,把秒钟的进位信号接到分钟计数模块的接收端 2.2.1小时计时模块(实现模24计数图二 2) 这是模24计数器(如图:图二 2),是用74390来实现,47390 是下降沿有效 图二 2 2.3数码管动态显示模块 这是动态显示模块的顶层设计图,如图:图二 3 图二 3 2.3.1扫描模块couner6(实现6位数码管的扫描图二 4) 该模块需使用74390设计一个模6的计数器。实现了模值为6的计数功能其中应该接好 global 用作延时

图二 4 位选模块dig_select(3-8译码器用作控制哪一个数码显示器亮) 图二 5 该模块用于选择 6位数码管中的某一位显示相应字形。74138为 图二 5 2.3.2段选模块seg_select 图二 6 该模块功能是从6组4bit信号中选择一组作输出。 图二 6

2.3.3译码模块decoder(实现了把8421码,译码成数码管的显示)图二 7 图二 7 2.4整点报时 设计思路:首先要做到在整点的时候报时(也就是说再整点的时候蜂鸣器响),那么我们就观察在整点的时候电路有什么特征。 我们观察到的特征就是:在整点的时候秒钟,分钟都是为零的,也就是说在正点的时候分钟秒钟的二进制数每位都是为零的,那么这就是我们控制蜂鸣器响的条件了。那就是把秒钟分钟的每个线或非一下就好了。但是我们要实现蜂鸣器响几秒,那么就再秒钟的低两位上就不接,就实现了响四秒。 图三 1 2.5调时功能 在设计调时间功能的时候,首先就想到我们直接在计数器的cp信号上接上一个开关然后手动给cp然后计数器增加,但是我们在不用调时的时候就是正常的时钟,那么我们就用一个二选一数选器来实现选择计数器的cp信号的来自我们手动给还是来自上一个计数器的进位信号。

FPGA课程设计报告--简易电子琴的设计[1].doc

西安邮电大学 FPGA课程设计报告 题目:简易电子琴设计及FPGA功能验证 院系: 专业班级: 学生姓名: XX 导师姓名: XX 起止时间: 2012、6、18至2012、6、29

一、课程设计任务: 本设计一个简易电子琴,具体功能如下: 1、具有手动弹奏和自动播放功能; 2、以按键或开关作为电子琴的琴键,输出7个音节的音阶; 3、可以自动播放曲目至少两首。 二、课程设计目的: 1、培养综合运用知识和独立开展实践创新的能力; 2、深入学习Verilog HDL,了解其编程环境; 3、学会运用Modelsim和Quartus II等编程仿真软件; 4、将硬件语言编程与硬件实物功能演示相结合,加深理解Verilog HDL的学习; 三、使用环境: 1、软件:Modelsim和Quartus II等编程仿真软件; 2、硬件:FPGA开发板。 四、课程设计详细方案及功能验证: 1、总体实现方案: 1、简易电子琴的设计通过软硬件结合实现,硬件系统包括主控器芯片、9个按键、LED、蜂鸣器等,软件资源包括编写Verilog HDL程序的应用软件Modelsim和仿真软件Quartus II。电子琴有按键代替琴键的弹奏功能和自动播放功能。 2、整个程序总共分5个模块:主模块,按键模块,曲目1模块,曲目2模块,曲目3模块。 整个方案总共用了9个按键(key1~key9),按键key1~key7作为琴键,通过这七个按键键入不同的音阶。主模块中key8、key9两个按键用于选择是自动播放还是弹奏曲目,令mm=(key8、key9),用mm值的不同选择调用不同模块。如果mm=00,则程序调用按键模块;如果mm=01,则调用曲目1模块,播放曲目1;如果mm=10,则调用曲目2模块,播放曲目2;如果mm11,则调用曲目3模块,播放曲目3。 本次设计的框图:

武汉理工大学 FPGA综合设计报告

附件1: 学号:0121109320426 课程设计 题目DAC0832接口电路及程序设计 学院信息工程学院 专业通信工程 班级通信1104班 姓名张亚男 指导教师陈适 2014年6 月18日

课程设计任务书 学生姓名:张亚男专业班级:通信1104班 指导教师:陈适工作单位:信息工程学院 题目: DAC0832接口电路及程序设计 初始条件: VHDL程序设计及Quartus II仿真 要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求) 1、根据DAC0832 输出控制时序,利用接口电路图,通过改变输出数据设计一个锯齿 波发生器。 2、DAC0832是8位的D/A转换器,转换周期为1μs。 3、锯齿波形数据可以由256个点构成,每个点的数据长度为8位。 4、因为FPGA的系统时钟为50MHz,必须对其进行分频处理,这里进行64分频,得到 的锯齿波的频率为762.9Hz。 时间安排: 1、2014年6 月14 日,布置课设具体实施计划与课程设计报告格式的要求说明。 2、2014年6 月14 日至2014年6 月15 日,方案选择和电路设计。 3、2014年6 月16 日至2014年6 月17 日,电路调试和设计说明书撰写。 4、2014年6 月18 日,上交课程设计成果及报告,同时进行答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要....................................................... 错误!未定义书签。Abstract.................................................... 错误!未定义书签。 1 设计原理................................................. 错误!未定义书签。 1.1 DAC0832的功能描述.................................. 错误!未定义书签。 1.1.1 DAC0832的主要功能 (1) 1.1.2 DAC0832的引脚功能 (1) 1.1.3 DAC0832的内部结构 (2) 1.1.4 DAC0832的工作时序 .............................. 错误!未定义书签。 1.2 FPGA与DAC0832的接口电路 (4) 1.3 DAC0832输出控制时序................................ 错误!未定义书签。 2 VHDL程序设计........................................... 错误!未定义书签。 2.1 设计任务 (7) 2.2 DAC0832接口电路程序符号图 (7) 2.3 VHDL程序 (7) 3 程序仿真及分析........................................... 错误!未定义书签。 3.1 QuartusⅡ软件简介 (9) 3.1.1 QuartusⅡ软件开发环境及基本流程 (9) 3.1.2 具体设计流程 (11) 3.2 仿真结果及分析 (13) 4 总结及体会 (14) 5.参考文献 (15)

fpga课程设计报告

第一部分 EDA技术的仿真 1、奇偶校验位产生器 1.1奇偶校验位的技术要求 奇偶校验是通信中常用的一种数据校验方式,试设计一个奇偶校验位产生器,根据输入字节(8位)产生相应的奇偶校验位(1的个数为奇数时输出低电平,即奇校验位为1)和偶校验位(1的个数为偶数时输出高电平,即偶校验位为1) 1.2奇偶校验位的原理 通过计算数据中“1”的个数是奇数还是偶数来判断数据的正确性。在被校验的数据后加一位校验位或校验字符用作校验码实现校验。 其生成方法是: 奇校验:确保整个被传输的数据中“1”的个数是奇数个,即载荷数据中“1”的个数是奇数个时校验位填“0”,否则填“1”; 偶校验:确保整个被传输的数据中“1”的个数是偶数个,即载荷数据中“1”的个数是奇数个时校验位填“1”,否则填“0”。 1.3奇偶校验位的功能及其仿真波形 奇偶校验位的功能具体见下表所示: 输入8位的二进制序列奇校验位 even 偶校验位 odd 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 其具体实现程序如下所示: module parity(data,odd,even); input [0:7]data; output odd,even; assign odd=^data; assign even=~odd; endmodule 根据程序我们得到如下的仿真波形: 图1 奇偶校验位仿真波形 中国计量学院信息工程学院课程设计报告P.2

2、十六位数据选择器 2.1数据选择器的原理 在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,数据选择器(MUX)的逻辑功能是在地址选择信号的控制下,从多路数据中选择一路数据作为输出信号。 在数据选择器中,我们设定一个控制输入端ENA ,当ENA=1时,电路不能工作,输出Y=0;而当ENA=0时,电路才处于工作状态。由于我们设计的是16选1数据选择器,因而其有4个数据控制端,即S0,S1,S2,S3,根据这4个控制端的状态有选择性的输出。 2.2数据选择器的实现电路图 我们知道一个16选1的数据选择器是由5个4选1的数据选择器组成的,4选1的基本电路如下图所示: W[0..3]S[1..0] ENA f mux_4 inst2 在左图中,ENA 为使能控制输入端,低 电平有效,S 为两位的数据控制端,W 为输入端,f 为输出端。有上述4选1的原理图我们可以得到16选1的原理图: W[0..3]S[1..0]ENA f mux_4 inst W[0..3]S[1..0]ENA f mux_4 inst1 W[0..3]S[1..0]ENA f mux_4 inst2 W[0..3]S[1..0]ENA f mux_4 inst3 W[0..3]S[1..0]ENA f mux_4 inst4S3\32控制端 S1\S0控制端 图2 16选1数据选择器原理图 2.3数据选择器的功能仿真

课程设计报告FPGA

课程设计报告 自动售货机 学院:电子与通信工程学院 班级:微电子1班 姓名:刁飞鹏 学号:09110038

自动售货机设计 任务分析 任务要求利用开发系统板,设计一个自动售货机控制芯片。自动售货机平时处于待机状态,当有钱投入之后开始工作。利用三个按键作为投币信号,分别代表投币5元、10元、20元,投入钱币以后,采用七段数码管显示投入的金额;利用另外4个按键代表4种货物,可以在售货机上选择购买的货物,假设4种货物的售价分别为3元、6元、10元、17元。选择了货物之后,七段数码管显示购物之后的找币余额,并且用LED数码管指示灯显示是否有足够的金额购买,如果投币不够,报警指示灯亮起,并且显示余额为零。选择了购买物品之后,可以按键出货或者余额不足退币。 系统的输入信号包括8个按键开关、时钟信号,输出部分有2个LED、4个七段数码管,系统框图如图所示。 自动售货机控制芯片的外部时钟由晶振产生,该开发板系统实例中晶振频率为50Mhz。

系统设计 自动售货机控制芯片系统结构框图如图所示,包括三个模块:分频器模块、核心控制模块和按键与七段数码管控制模块。其中,分频器模块主要用于产生供按键、七段数码管扫描的时钟,这个扫描时钟的周期应该大约为0.01~0.001&同时,这个分频时钟也可用于核心模块的基本控制,由于扫描时钟要和按键、七段数码管控制电路构成一个同步电路,因此,必须使用同一个分频时钟。 核心控制模块的作用主要是控制系统的状态。系统一共有三种状态,需要使用两位状态寄存器存储状态数据,每个状态之间的转换由外部按键控制,在每一个状态下,有不同的七段数码管和指示灯的输出。 按键和数码管显示控制电路是对外部的矩阵按键以及动态显示硬 件进行驱动,该模块对矩阵按键进行扫描,输出经过扫描之后的按 键结果。并且可以把核心模块输出的二进制显示数据转化为BCD码, 通过BCD译码,以及动态显示技术最终输出到动态七段数码管上显

FPGA课程设计报告

F P G A课程设计报告 (实现多功能数字钟) 专业班级: 07通信2班 姓名:朱绍兴 学号:0701******** 时间:2009.12.30

一、标题:设计多功能数字钟控制电路 二、任务书:用MAX+PLU SⅡ软件及Verilog HDL语言设计 一个多功能的数字钟,包括有时、分、秒的计 时,以及校时(对小时、分钟和秒能手动调整 以校准时间)、正点报时(每逢整点,产生“嘀 嘀嘀嘀-嘟”,4短一长的报时音)等附加功能。 三、关键词:24进制、60进制、正点报时、校时、数字钟 四、总体方案:多功能数字钟控制电路框图是由三部分组成 的,即秒分时控制电路、整点报时控制电路、 时段控制电路。用Verilog HDL硬件描述语 言完成编译和仿真。 五、原理框图如下: ↓ ↓ ↓

六、Verilog HDL硬件描述语言编写的功能模块: /*秒计数器m60*/ module m60(M,CP60M,CPM,RD); output [7:0]M; output CP60M; input CPM; input RD; reg [7:0]M; wire CP60M; always@(negedge RD or posedge CPM) begin if(!RD) begin M[7:0]<=0; end else begin if((M[7:4]==5)&&(M[3:0]==9)) begin M[7:0]<=0; end else begin if(M[3:0]==9) begin M[3:0]<=0; if(M[7:4]==5) begin M[7:4]<=0;end else M[7:4]<=M[7:4]+1; end

FPGA硬件电子琴电路设计实验报告

. FPGA实验报告 题目:硬件电子琴电路设计 一.实验目的:学习利用数控分频器设计硬件电子琴实验。 二.实验原理及内容:主系统由3个模块组成,顶层设计文件中包含三个功能模块,Speakera.v 和ToneTaba.v ,NoteTabs.v 。 模块ToneTaba是音阶发生器,当8位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code 输出对应该音阶简谱的显示数码,如‘5’,并由High输出指示音阶高8度显示。 模块Speakera中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块Speakera由端口Tone获得一个2进制数后,将以此值为计数器的预置数,对端口Clk12MHZ输入的频率进行分频,之后由Spkout向扬声器输出发声。 增加一个NoteTabs模块用于产生节拍控制(Index数据存留时间)和音阶选择信号,即在NoteTabs模块放置一个乐曲曲谱真值表,由一个计数器的计数值来控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。 图1 硬件电子琴电路结构 三.实验步骤. 1.在QUARTUSII软件下创建一工程,工程名为songer,芯片名为EP2C35F672C6; 2.输入数控分频器程序并命名为Speakera.v,保存与工程相同的文件夹中。

. 其功能仿真波形和时序仿真波形分别如下: 3.输入音阶发生器程序并命名为ToneTaba.v ,保存与工程相同的文件夹中。 PreClk<=1'b0; Count4<=Count4+4'b1; end end always@(posedge PreClk)begin if(Count11>=11'h7FF) begin Count11<=Tone; FullSpkS<=1'b1; end else begin PreClk<=1'b1; Count4<=1;end else begin Count11<=Count11+11'b1; FullSpkS<=0; end end always@(posedge FullSpkS)begin Count2<=~Count2; if(Count2==1'b1) SpkS<=1'b1; else SpkS<=1'b0; end endmodule Module ToneTaba (Index,Code,High,Tone); input[3:0] Index; output[3:0] Code; output High; output[10:0] Tone; reg[3:0] Code=0; reg High=0; reg[10:0] Tone=0; always begin case(Index) 4'b0000 :begin Tone<=11'b11111111111; Code<=4'b0000;High<=1'b0;end//2047 4'b0001 :begin Tone<=11'b01100000101; Code<=4'b0001;High<=1'b0;end//773 4'b0010 :begin Tone<=11'b01110010000; Code<=4'b0010;High<=1'b0;end//912

FPGA课程设计(最终版)

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:信息工程学院 题目: 电子琴的设计 课程设计目的: 《FPGA原理与应用》课程设计的目的是为了让学生熟悉基于VHDL语言进行FPGA开发的全流程,并且利用FPGA设计进行专业课程理论知识的再现,让学生体会EDA技术的强大功能,为今后使用FPGA进行电子设计奠定基础。 课程设计内容和要求 设计内容: (1)设计一个八音电子琴。 (2)由键盘输入控制音响,同时可自动演奏乐曲。 (3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。 要求每个学生单独完成课程设计内容,并写出课程设计说明书、说明书应该包括所涉及到的理论部分和充足的实验结果,给出程序清单,最后通过课程设计答辩。 时间安排: 所需时 序号阶段内容 间 1 方案设计1天 2 软件设计2天 3 系统调试1天 4 答辩1天 合计5天 指导教师签名:年月日

系主任(或责任教师)签名:年月日

目录 摘要 (1) Abstract (2) 1设计意义和要求 (3) 1.1设计意义 (3) 1.2功能要求 (3) 2方案论证及原理分析 (4) 2.1实现方案比较 (4) 2.2乐曲实现原理 (4) 2.3系统组成及工作原理 (6) 3系统模块设计 (8) 3.1顶层模块的设计 (8) 3.2乐曲自动演奏模块的设计 (8) 3.3音阶发生器模块的设计 (9) 3.4数控分频器模块的设计 (9) 4程序设计 (11) 4.1VHDL设计语言和ISE环境简介 (11) 4.2顶层模块的程序设计 (12) 4.3乐曲自动演奏模块的程序设计 (13) 4.4音阶发生器模块的程序设计 (13) 4.5数控分频模块的程序设计 (14) 5设计的仿真与实现 (15) 5.1乐曲自动演奏模块仿真 (15) 5.2音调发生模块仿真 (18) 5.3数控分频模块仿真 (19) 5.4电子琴系统的仿真 (20) 5.5设计的实现 (22) 5.6查看RTL视图 (23) 5.7查看综合报告 (25) 6心得体会 (31) 7参考文献 (32) 8附录 (33)

相关文档
最新文档