现代电子综合实验报告.docx
《现代电子综合实验报告.docx》由会员分享,可在线阅读,更多相关《现代电子综合实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
现代电子综合实验报告
UESTC
数字式秒表的设计与实现总结报告
电子技术综合实验
指导老师:
刘曦
姓名:
王诗翔
学号:
2012091030013
2015-11-22
摘要
利用EDA软件和VHDL语言在EEC-FPGA实验板上完成秒表的设计与实现。
关键字:
VHDL、秒表、EEC-FPGA
第1章引言
1.1实验背景
《电子技术综合实验》课程通过引入模拟电子技术和数字逻辑设计的综合应用、基于MCU/FPGA/EDA技术的系统设计等综合型设计型实验,对学生进行电子系统综合设计与实践能力的训练与培养。
通过《电子技术综合实验》课程的学习,使学生对系统设计原理、主要性能参数的选择原则、单元电路和系统电路设计方法及仿真技术、测试方法拟定及调测技术有所了解;使学生初步掌握电子技术中应用开发的一般流程,初步建立起有关系统设计的基本概念,掌握其基本设计方法,为将来从事电子技术应用和研究工作打下基础。
1.2实验方式
⏹教师引导下的自主实验
⏹设计的全过程:
方案、电路设计与仿真、设计与实现、测试与调整、总结报告
1.3技能培养
⏹数字电路的综合设计应用
⏹HDL语言
⏹FPGA应用
⏹EDA软件:
ISE、Modelsim
⏹硬件电路制作或设计,调整与实现
⏹设计文档撰写
⏹资料查阅
第2章相关概念与技术
2.1概述
本章介绍实验需要使用到的FPGA实验板、VHDL语言、ISE以及Modelsim的相关知识。
2.2FPGA实验板
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
Xilinx是全球领先的可编程逻辑完整解决方案的供应商。
Xilinx研发、制造并销售范围广泛的高级集成电路、软件设计工具以及作为预定义系统级功能的IP(IntellectualProperty)核。
本实验使用的是以XILINX公司设计的FPGA芯片为核心的实验板,如下图所示:
其实物图如下:
2.3VHDL语言
VHDL的英文全名是VHSICHardwareDescriptionLanguage(VHSIC硬件描述语言)。
VHSIC是VeryHighSpeedIntegratedCircuit的缩写,是20世纪80年代在美国国防部的资助下始创的,并最终导致了VHDL语言的出现。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
本实验所有的代码均由VHDL书写,因为篇幅所限以及要点不在此,具体语法不再陈述。
2.4ISE以及Modelsim
2.4.1ISE
ISE的全称为IntegratedSoftwareEnvironment,即“集成软件环境”,是Xilinx公司的硬件设计工具。
相对容易使用的、首屈一指的PLD设计环境!
ISE将先进的技术与灵活性、易使用性的图形界面结合在一起,不管您的经验如何,都让您在最短的时间,以最少的努力,达到最佳的硬件设计。
ISE的主要功能包括设计输入、综合、仿真、实现和下载,涵盖了可编程逻辑器件开发的全过程,从功能上讲,完成CPLD/FPGA的设计流程无需借助任何第三方EDA软件。
下面简要说明各功能的作用:
设计输入:
ISE提供的设计输入工具包括用于HDL代码输入和查看报告的ISE文本编辑器(TheISETextEditor),用于原理图编辑的工具ECS(TheEngineeringCaptureSystem),用于生成IPCore的CoreGenerator,用于状态机设计的StateCAD以及用于约束文件编辑的ConstraintEditor等。
综合:
ISE的综合工具不但包含了Xilinx自身提供的综合工具XST,同时还可以内嵌MentorGraphics公司的LeonardoSpectrum和Synplicity公司的Synplify,实现无缝链接。
仿真:
ISE本身自带了一个具有图形化波形编辑功能的仿真工具HDLBencher,同时又提供了使用ModelTech公司的Modelsim进行仿真的接口。
实现:
此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及增量设计等高级功能。
下载:
下载功能包括了BitGen,用于将布局布线后的设计文件转换为位流文件,还包括了IMPACT,功能是进行芯片配置和通信,控制将程序烧写到FPGA芯片中去。
2.4.2Modelsim
ModelSim是Mentor公司的产品。
在业界,它被认为是最优秀的HDL语言仿真软件。
它提供友好的仿真环境,是支持VHDL和Verilog混合仿真的仿真器。
它采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核。
其个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。
其主要特点可概括如下:
RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;
VHDL和Verilog混合仿真;
源代码模版、项目管理;
集成了性能分析、波形比较、代码覆盖、数据流ChaseX、SignalSpy、虚拟对象(VirtualObject)、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;
C和Tcl/Tk接口,C调试;
对SystemC的直接支持和HDL任意混合;
支持SystemVerilog的设计功能;
对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL;
ASICSignoff。
ModelSim分几种不同的版本:
它们分别是SE、PE、LE和OEM,其中SE(SystemEdition)是最高级的版本,PE是版本,LE是版本,而集成在Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM(OriginalEquipmentManufacture,原始设备生产商)版本。
SE版和OEM版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSimXE为例,对于代码少于40000行的设计,ModelSimSE比ModelSimXE要快10倍;对于代码超过40000行的设计,ModelSimSE要比ModelSimXE快近40倍。
ModelSimSE支持PC、UNIX和LINUX混合平台;提供全面完善以及高性能的验证功能;全面支持业界广泛的标准;MentorGraphics公司提供业界最好的技术支持与服务。
2.5本章小结
FPGA实验板是硬件功能实现平台,VHDL是硬件语言,ISE将硬件语言转化为机器能识别的代码,Modelsim为功能的实现和验证提供仿真依据,几者的结合使得实验从构思转变为现实。
第3章设计与实现
3.1概述
本章将从实验任务出发,详细阐述数字式秒表的设计与实现。
3.2实验任务:
设计一个数字式秒表
本次实验任务是设计一个数字式的秒表,具体的相关任务要求如下图:
3.3实验条件及原理
相关条件与原理如下图:
3.4解决方案与方框图
按照秒表的设计要求以及具备的客观条件,在FPGA上设计的电路包括下面这些组成部分:
✧分频器:
对晶体振荡器产生的时钟信号进行分频,产生时钟基准信号。
✧计数器:
对时间基准脉冲进行计数,完成计时功能。
✧数据锁存器:
锁存数据,使显示保持锁定。
✧控制器:
控制计数器的运行、暂停和复位;产生锁存器的使能信号。
✧扫描显示的控制电路:
包括扫描计数器、3-8译码器、数据选择器和七段译码器;控制8个数码管以扫描方式显示计时结果。
✧按键消抖电路:
消除按键输入信号抖动的影响,输出单脉冲。
得到设计方框图如下图所示:
3.5电路设计
由得到的方框图,设计对应的一些重要结构单元电路,此处仅列出书写代码需要的参考图形,其余均以VHDL代码形式生成。
3.5.1
控制器的状态图
3.5.2扫描控制及显示译码的电路框图
3.5.3
按键消抖电路
3.6秒表的实现
最终通过代码书写,生成相应网表和底层机器码,功能仿真,下载到FPGA板实现进行测试等步骤,实现了实验任务要求的秒表。
因为此报告不粘贴代码,所以将所有通过VHDL代码实现的相关功能模块截图呈现如下:
图1.顶层模块图
图2.消抖电路模块
图3.控制电路模块
图4.计数器连接图
图5.计数器内部电路图
图6.锁存器
图7.显示电路图
第4章实验总结
4.1实验结论
本次实验成功利用所学数字电路知识,完成实验任务要求设计秒表的所有功能。
成功地将之前课程所学习过的模电、数电以及EDA知识融合在一起,根据设计框图合理地利用ISE、Modelsim软件平台和FPGA实验版硬件平台。
对系统设计原理、主要性能参数的选择原则、单元电路和系统电路设计方法及仿真技术、测试方法拟定及调测技术加深了了解;初步掌握电子技术中应用开发的一般流程,初步建立起有关系统设计的基本概念,掌握其基本设计方法,为自己将来从事电子技术应用和研究工作打下基础。
4.2问题与思考
本次实验经过两周时间,本人编写代码、测试用时五十学时以上完成。
是首次接触的系统级别的设计和实现实验。
所以在两周的学习中产生了大量的问题,对于其中代码语法错误相关问题就不再赘述,仅挑感觉重要的呈现。
4.2.1模块与整体的兼容性
编写完成的每个模块内部功能都已实现,但是通过顶层模块信号线连接起来时整体的功能却出现问题。
以下两点值得思考:
Ø代码书写的规范性,硬件语言首倡的是并行逻辑,而以前的程序课程学习和一般的逻辑思维让我习惯地从过程性的逻辑出发思考,模块内部功能虽然实现,但是不同模块的时序连接却可能因此出现问题。
Ø全局角度:
对于设计习惯从片面出发,对系统需求缺乏认识,如何简单有效地简化编码,整合各模块的资源,尽量减少整体资源的使用做的不好。
4.2.2从软件时钟到硬件时钟
代码正确完成之后,在实现设计过(ImplementDesign)程第三步报错,我和同学后面经过XX查询.ucf文件相应输入端口添加CLOCK_DEDICATED_ROUTE解决。
这个问题让我思考到,我们所学习的系统设计并不仅仅只限于软件相关正确就整体没问题了,最终的功能还会涉及到硬件的约束。
这是我之前学习软件语言和单独学习硬件知识和进行相关实验所碰不到,如何把握设计结果与软件硬件之间的融合值得深思。
4.3实验建议:
这是一次非常好的将所学融合贯通的课程,值得花更多的时间来学习。
建议以后的本科生培养计划多些这样的课程。
参考文献
[1]ISE开发流程
[2]Modelsim仿真流程
[3].
致谢
首先必须感谢的是刘曦老师对我的教导,在实验过程中对我的帮助,在此对刘曦老师致于最衷心的感谢。
其次感谢我的同学们,在我遇到问题时,能给我分析以及解决。