ImageVerifierCode 换一换
格式:DOCX , 页数:46 ,大小:1.39MB ,
资源ID:5950098      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5950098.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FPGA秒表实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FPGA秒表实验报告.docx

1、FPGA秒表实验报告现代电子技术综合实验秒表实验报告 时间:2013年6月6日 摘 要随着电子信息产业的不断发展,基于FPGA的应用技术发展迅速,在某些领域FPGA正逐步代替dsp、arm、单片机等微处理器。本文设计一个基于FPGA技术的数字秒表。首先,我们把晶振产生的50MHZ时钟信号送入FPGA芯片内,经FPGA内分频模块处理产生1KHZ时钟信号。秒表的功能模块由VHDL语言编写,在Xilinx的ISE环境下调试,并在Modelsim上完成仿真,在最后把产生的信号送入LED显示电路里进行显示。本文从电子秒表的具体设计触发,详细阐述了基于FPGA的数字秒表的设计方案,设计了各模块的代码,并对

2、硬件电路进行了仿真。关键词:FPGA,VHDL,电子秒表第一章 引言随着电子信息产业的发展,数字系统的规模越来越大,更多采用自顶而下的模块化设计方法,这就要求技术人员对于基本的模块有着深入的理解。随着FPGA技术的发展和成熟,用FPGA来做为一个电路系统的控制电路逐渐显示出其无与伦比的优越性。因此本文采用FPGA来做为电路的控制系统,采用模块化的设计方法设计一个能显示从00-00-00到59-59-99,并且具备秒表所有功能的小型数字系统。第二章 基于FPGA的VHDL设计流程2.1 概述数字秒表是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造

3、成测量误差、可靠性差。秒表的设计有传统方法和现代方法,传统的设计方法耗时耗功,设计强度大,且容易出错,设计的质量不一定是最好的。自然我们考虑到现代方法,即二十世纪八十年代兴起的电子设计自动化技术,英文为Electronic Design Auto,缩写为EDA。在EDA设计工具中,用的最广泛的是VHDL和VERILOG,当然还有其它的。比较VHDL和VERILOG,在顶层设计方面VHDL优于VERILOG,在门级电路设计方面VERILOG优于VHDL。随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言,将使整个系统大大简化,提高整体的性能和可靠性。2.2

4、VHDL语言介绍VHDL(Very-high-speed Integrated Circuit Hardware Description Language)诞生于1982年。1987年底,VHDL被IEEE(The Institute of Electrical and Electronics Engineers)和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本(IEEE-1076)之后,各EDA公司相继推出了自己的VHDL设计环境,并宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言。1993年,IEE

5、E对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。现在,VHDL和VERILOG作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL和VERILOG语言将承担起几乎全部的数字系统设计任务。2.2.1 VHDL的特点VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式,描述风格以及句法十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称为

6、设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(又称为可视部分,即端口)和内部(又称为不可视部分),即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的,具体如下:1、与其它的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。就目前流行的EDA工具和VHDL综合器而言,将基于抽

7、象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器件的网表文件已不成问题,只是在综合与优化效率上略有差异。2、VHDL最初是作为一种仿真标准格式出现的,因此VHDL既是一种硬件电路描述和设计语言,也是一种标准的网表格式,还是一种仿真语言。其丰富的仿真语句和库函数,使得在任何大系统的设计早期(即尚未完成),就能用于查验设计系统的功能可行性,随时可对设计进行仿真模拟。即在远离门级的高层次上进行模拟,使设计者对整个工程设计的结构和功能的可行性做出决策。3、VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能,符合市场所需求的,大规模系统高效、

8、高速的完成必须由多人甚至多个开发组共同并行工作才能实现的特点。VHDL中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有力的支持。4、对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把VHDL描述设计转变成为门级网表。这种方式突破了门级电路设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。应用EDA工具的逻辑优化功能,可以自动地把一个综合后的设计变成一个更高效、更高速的电路系统。反过来,设计者还可以容易地从综合和优化后的电路获得设计信息,返回去更新修改VHDL设计描述,使之更为完善。5、VHDL对设计的描述具有相对

9、独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。正因为VHDL硬件描述与具体的工艺技术和硬件结构无关,VHDL设计程序的硬件实现目标器件有广阔的选择范围,其中包括各系列的CPLD、FPGA及各种门阵列实现目标。6、由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需要改变端口类属参量或函数,就能轻易地改变设计的规模和结构。2.2.2 基于VHDL的自顶向下设计方法2.2.2.1 自顶向下设计的步骤1、设计说明:用自然语言表达系统项目的功能特点和技术参数等。2、建立VHDL行为模型,即将设计说明已转化为VHDL行

10、为模型。建立模型是为了通过VHDL仿真器对整个系统进行系统行为仿真和性能评估。3、VHDL行为仿真。这一阶段可以利用VHDL仿真器对顶层系统的行为模型进行仿真测试,检查模拟结果,继而进行修改和完善。4、VHDL-RTL级建模。即将VHDL的行为模型表达为VHDL行为代码。5、前端功能仿真。即对VHDL-RTL级模型进行仿真,简称功能仿真。6、逻辑综合。使用逻辑综合工具将VHDL行为代码描述转化为结构化的门级电路。7、测试向量生成。8、功能仿真。9、结构综合。10、门级时序仿真。11、硬件测试。2.2.2.2 Top-down设计方法的优点1、完全符合设计人员的设计思路;从功能描述开始,到最后的

11、物理实现。2、功能设计可完全独立于物理实现;采用Top-Down设计方法,功能输入采用国际标准的HDL输入方法,HDL可不含有任何器件的物理信息,因此工程师可以有更多的空间去集中精力进行功能描述。设计师可以在设计过程的最后阶段任意选择或更改物理器件,不会在设计一开始就受到最终所采用器件的约束。3、设计可再利用;设计结果完全可以以一种知识产权(IP-Intellectual Property)的方式作为设计师或设计单位的设计成果,应用于不同的产品设计中,做到成果的再利用。4、易于设计的更改;设计工程师可在极短的时间内修改设计,对各种FPGA/CPLD结构进行设计结果规模(门消耗)和速度(时序)的

12、比较,选择最优方案。5、设计和处理大规模复杂电路;目前的FPGA/CPLD器件正向高集成度、深亚微米工艺发展。为设计系统的小型化,低功耗、高可靠性等提供了集成的手段。6、设计周期缩短,生产率大大提高,产品上市时间提前,性能明显提高,产品竞争力加强。据统计,采用Top-Down设计方法的生产率可达到传统设计方法2到4倍。2.3 FPGA开发介绍2.3.1 FPGA简介现场可编程门阵列(FPGA)器件是八十年代中期出现的新产品,它的应用大大地方便了IC的设计,因而随着数字技术日益广泛的应用,以FPGA为代表的ASIC器件得到了迅速的普及和发展,器件集成度和速度都在高速增长。传统的电路设计过程是:先

13、画原理图、把原理图绘制成印制电路板图、再制版、安装、调试。有了FPGA,我们只需要在计算机上绘出原理图,再运行相应的软件,就可把所设计的逻辑电路在FPGA中实现。所有步骤均可自动完成。电子设计工程师自己设计专用集成电路成为了一件很容易的事情。FPGA作为专用集成电路(ASIC)概念上的一个新型范畴和门类,以其高度灵活的用户现场编程方式,现场定义高容量数字单片系统的能力,能够重复定义、反复改写的新颖功能,为复杂数字系统设计、研制以及产品开发提供了有效的技术手段。电子应用设计工程师应用FPGA技术不仅可避免通常ASIC单片系统设计周期长,前期投资风险大的弱点,而且克服了过去板级通用数字电路应用设计

14、的落后,繁琐和不可靠性。目前FPGA的两个重要发展与突破是,大多数厂商在其高端器件上都提供了片上的处理器(如CPU、DSP)等硬核(Hard Core)或固化核(Fixed Core)。比如Xilinx的Virtex II Pro芯片可以提供Power PC,而Altera的Stratix、Excalibur等系列芯片可以提供Nios、DSP和Arm等模块。在FPGA上集成微处理器,使SOPC设计更加便利与强大。另一个发展是在不同器件商推出的高端芯片上大都集成了高速串行收发器,一般能够达到3Gb/s以上的数据处理能力,在Xilinx、Altera、Lattice都有相应的器件型号提供该功能。这

15、些新功能使FPGA的数据吞吐能力大幅度增强。2.3.2 FPGA设计流程对于目标器件为FPGA和CPLD的HDL设计,其工程设计的基本流程如图 2-1所示。现具体说明如下。图 2-1 EDA设计流程1、文本编辑用任何文本编辑器都可以进行,通常VHDL文件保存为vhd文件,Verilog文件保存为v文件。2、使用编译工具编译源文件HDL的编译器有很多,ACTIVE公司,MODELSIM公司,SYNPLICITY公司,SYNOPSYS公司,VERIBEST公司等都有自己的编译器。3、逻辑综合将源文件调入逻辑综合软件进行综合。综合的目的是在于将设计的源文件由语言转换为实际的电路。但是此时还没有在芯片

16、中形成真正的电路。这一步的最终目的是生成门电路级的网表(Netlist)。4、布局、布线将第3步生成的网表文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到CPLDFPGA内。这一步的目的是生成用于下载(编程Programming)的编程文件。在这一步,将用到第3步生成的网表,并根据CPLDFPGA厂商的器件容量,结构等进行布局、布线。这就好像在设计PCB时的布局布线一样。先将各个设计中的门根据网表的内容和器件的结构放在器件的特定部位。然后,在根据网表中提供的各门的连接,把各个门的输入输出连接起来。最后,生成一个供编程的文件。这一步同时还会加一些时序信息(Timing)到你的设计项

17、目中去,以便于你做后仿真。5、后仿真利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫布局布线仿真或时序仿真)。这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的设计要求。6、编程,下载如果前几步都没有发生错误,并且符合设计要求,这一步就可以将由适配器等产生的配置或下载文件通过编程器或下载电缆下载到目标芯片中。7、硬件测试硬件测试的目的是为了在更真实的环境中检验HDL设计的运行情况,特别是对于HDL程序设计上不是十分规范,语义上含有一定歧义的程序。第三章 数字秒表的软件开发环境本章主要介绍项目中将要用到了一系列软件,包括用于VHDL语言编写和编译的ISE软件和用于程

18、序仿真的仿真软件ModelSim。3.1 开发环境随着可编程器件纷纷超越百万门级,设计者面临的产品性能与设计效率的挑战也越来越大。设计者必须合理选择各EDA厂家提供的加速设计的工具软件,这样才能在较短的时间内设计出高效稳定的产品。在本次设计中,由于选择的FPGA芯片是由Xilinx公司生产的,所以我们主要使用ModelSim和ISE软件进行仿真和综合。3.2 ModelSim介绍ModelSim支持PC和UNIX平台,是单一内核支持VHDL和Verilog混合仿真的HDL语言仿真器。ModelSim不仅可以完成设计的功能验证,也可实现逻辑综合后的门级仿真以及布局布线后的功能与时序验证。Mode

19、lSim完全支持VHDL和Verilog标准;采用直接编辑技术,大大提高HDL编译和仿真速度。还可以利用ModelSim调用设计文件进行仿真分析。在调试环境中,设计者可以通过ModelSim的快速调试步骤以及对各种信号的监控功能(无论信号处于VHDL层,还是处于混合语言层)使仿真的执行过程形象直观化,帮助设计者及时发现漏洞,缩短设计周期。ModelSim最大的特点是其强大的调试功能:先进的数据流窗口,可以迅速追踪到生产不定或者错误状态的原因;性能分析工具帮助分析性能瓶颈,加速仿真;代码覆盖率检查确保测试的完备;多种模式的波形比较功能;先进的 SignalSpy功能,可以方便地访问VHDL或者V

20、HDL和Verilog混合设计中的底层信号;支持加密IP;可以实现与Matlab的Simulink的联合仿真。3.2.1 ISE环境中ModelSim的使用ModelSim是一个独立的仿真工具,它在工作的时候并不需要其他软件的协助,在Xilinx公司的ISE集成开发环境中给ModelSim仿真软件预留了接口,通过这个接口可以从ISE集成环境中直接启动ModelSim工具进行仿真。这个过程通常会给初学者一个错觉,以为ISE集成环境和ModelSim工具是联合工作的,其实ISE并没有集成ModelSim工具,只是预留了软件接口。为了说明ModelSim的用户接口,将使用从ISE集成开发环境中直接启

21、动ModelSim仿真工具的方法。使用此种方法启动ModelSim工具需要具备3个条件:第一,启动ISE集成开发环境并建立了一个FPGACPLD的工程项目;第二,添加设计源代码并且编译通过;第三,使用ISE中的TestFixture或者TestBenchWaveform工具为当前的设计提供一个测试模板(Testbench),并且在测试模板中添加设计激励。只有上述条件具备之后才可以从ISE的当前资源操作窗中直接启动ModelSim工具并运行仿真,以下使用ISE自带的一个例子加以说明。在ISE中直接启动ModelSim1、在Windows操作系统中选择开始程序Xilinx ISE 6Project

22、 Navigator命令,启动ISE集成开发环境。2、在ISE主窗口中选择FileOpen Example命令,弹出Open Example对话框,如图所示,然后在Select an Example Project栏目中选择“goldcode-ver-217”,在Destination Directory中选择项目存放的目录,单击OK按钮打开例子程序。图3-1 打开例子程序3、在资源管理窗口(Source in Project)中的模块视图(Model View)中选中的测试文件“testbench.tf”,在相应的当前资源操作窗口(Process for Current Source)中将会

23、出现与Modelsim仿真器相关的行为仿真(Simulate Behavioral Verilog Model),翻译后仿真(Simulate Post-Map Verilog Model)和布局布线后仿真(Simulate Post-Place & Route Verilog Model)等4个不同的操作选项,如图所示:图 3-2 Modelsim 仿真4、双击Simulate Behavioral Model操作选项,将启动Modelsim仿真器。5、在Modelsim主窗口中选择View/All命令,将显示所有的窗口。在当前资源操作窗口中选择任意一个操作选项都可以启动相应阶段的仿真操作,

24、如果相应阶段的仿真文件不存在,那么集成环境将自动生成仿真文件。例如,当双击资源操作窗口中的Simulate Post-Place & Route Verilog Model操作选项时将启动时序仿真,而这一仿真过程所需要的布局布线后仿真文件以及时序标注文件都还没有产生,那么ISE集成开发环境将自动开始对这个工程进行编译,综合,翻译,映射和布局布线等操作,得到布局布线后仿真文件以及时序标注文件,然后再启动ModelSim仿真器进行时序仿真。3.3 ISE介绍本节主要介绍在XILINX的ISE集成软件环境中,如何用VHDL和原理图的方式进行设计输入,如何用ModelSim仿真工具对设计进行功能仿真和

25、时序仿真,如何实现设计。3.3.1 建立项目工程建立新的项目工程,选择【File】,再选择【New Project】,如图就可以了。图 3-3 ISE建立新工程选择使用的可编程器件类型device family-器件族名device-器件型号package封装speed grade-速度top-level module type-顶层文件类型synthesis tool-综合工具simulator-仿真工具generated simulation language生成的仿真模型语言。图 3-4 选择器件然后一路NEXT,最后点击完成。刚生成的工程是没有类型的,需要自己加入。方法是在 sourc

26、es in project中右击,选择add sources,选择你写的文件加入即可。如果要新写程序,用同样的方法,选择new sources即可,会弹出如下对话框,让你选择New Sources的类型。图 3-5 选择New Sources的类型选择vhdl module,写上文件名,在下一页可以写上输入输出口,也可以不写。一路NEXT到完成就可以。这样就可以开始写代码或继续下一步综合了。要打开或编辑新建的文件,直接在sources in project窗口中双击该文件即可。3.3.2 行为仿真1、在工程项窗口Project Window的源文件中选中计数器(counter.vhd)。2、选

27、择Project/New Source。3、在新的对话框中选择新文件类型为Test Bench Waveform。4、键入文件名为counter_tbw。5、点击Next,在其他工程项中你可以将你的testbench波形与其他源文件关联。6、一直Next直到Finish,此时HDL Bencher 程序自动启动并等候你输入所需的时序需求,你现在可以指定仿真所需的时间参数、时钟高电平时间和时钟低电平时间一起定义了设计操作必须达到的时钟周期,输入建立时间定义了输入在什么时候必须有效,输出有效延时,定义了有效时钟沿到达后多久必须输出有效数据。默认的初始化时间设置如下:时钟高电平时间: Clock h

28、igh time: 50 ns 。时钟低电平时间: Clock low time: 50 ns 。输入建立时间: Input setup time: 10 ns 。输出有效时间: Output valid delay: 10 ns 。7、点击OK,接受默认的时间设定。Testbench waveform窗口如下。图 3-6 Testbench Waveform在HDL Bencher 的波形中,初始化计数器输入如下:在每个单元的蓝色区域输入激励。a、在CLK第1周期下点击RESET单元直到该单元变为。b、在CLK第2周期下点击RESET单元直到该单元变为低。c、在CLK第3周期下点击CE单元直

29、到该单元变为高。d、在CLK第2周期下点击DIR单元直到该单元变为高。图 3-7 激励输入e、将你的testbench文件存盘,选择File/Save Waveform或点击工具栏的存盘图标,接下来HDL Bencher会提示你设置你希望仿真的时钟周期数。f、在End the testbench _ cycles after the last input assignment对话框中输入8,默认值为1。g、点击OK.退出HDL Bencher新的testbench波形源文件counter_tbw.tbw自动加入到该工程项中。8、生成预期的输出响应:我们进行行为仿真以验证计数器模块的功能。a、在

30、Sources in Project窗口中选择counter_tbw.tbw文件。b、在Processes for Current Source窗口中点击 + 符号展开ModelSim仿真器的层次结构找到并双击Simulate Behavioral VHDL Model,此时ModelSim仿真器自动启动。c、对于第一次运行ModelSim的用户会显示一个对话框需要在其中做以下处理:选中Do not show this dialog again选项,点击Run ModelSim此对话框在你重新安装或重新配置ModelSim之前将不再显示你的仿真结果现在显示在ModelSim的波形窗口(wave

31、 window)。d、点击Zoom / Zoom Full;点击Zoom / Zoom in。e、拖动波形窗口下端的滚动条至窗口的最左端。图 3-8 仿真图3.3.3 建立顶层原理图3.3.3.1 生成原理图符号1、在Sources in Project窗口中选中计数器模块counter.vhd。2、在Processes for Current Source窗口中,点击设计输入实用程序(Design Entry Utilities)之前的“+”符号然后双击创建原理图符号(Create Schematic Symbol)经过以上步骤,名称为“counter”的图形化元件被放入到工程项库中。3.3

32、.3.2 创建顶层原理图1、在工程项导航器(Project Navigator)菜单中,选择Project/New Source。2、选择原理图(Schematic)为源类型。3、输入原理图名为“top”。4、先点击“Next”再点击“Finish”,此时原理图编辑器(ECS)自动启动并在其原理图窗口中打开一张空图。3.3.3.3 例化VHDL模块1、在菜单中选择Add / Symbol或者在工具栏中点击(Add Symbol)图标。2、从元件符号列表(在屏幕右侧)中选择计数器counter,注意不要在类别(Categories)窗口中作任何选择。3、点击左键可将计数器counter放置在光标所在的位置出现。4、按ESC键退出添加符号(Add Symbol)模式。图 3-9

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1