第一篇:EDA技术在数字电路开放实验中的应用
EDA技术在数字电路开放实验中的应用
周云波 刘小群
宝鸡文理学院物理与信息技术系
摘要:介绍了常用的EDA软件及开放性实验的实验教学方法,并通过实例阐述了EDA技术在开放性实验中的应用。关键词:EDA ;开放性实验;仿真
为了充分利用实验室资源,让学生能够自主选择实验的内容与时间,从而激发学生做实验的兴趣,提高学生思考问题、分析问题、解决问题的能力,近几年各高校都开设了开放实验。我们从2006年也开设了开放实验,开放实验由于学生可以自选题目,这对实验室的设备提出了很高的要求,但利用EDA设计实验电路,仿真实验结果,克服了实验设备不足的矛盾。“EDA”是Electronic Design Automation(电子设计自动化)的简写,是能够帮助人们设计电子电路或系统的软件工具。EDA是以计算机为工作平台、以硬件描述语言(VHDL)为设计语言、以可编程器件(CPLD/FPGA)为实验载体、以ASIC/SOC芯片为目标器件、进行必要的元件建模和系统仿真的电子产品自动化设计过程。目前进入我国并具有广泛影响的EDA软件有:muhisim7、OW_AD、Protel、Viewlogio、Mentor、Synopsys、PCBW Id、Cadence、MicmSim等等,这些软件各具特色,大体分为芯片级设计工具、电路板级设计工具、可编程逻辑器件开发工具和电路仿真工具等几类。利用EDA工具,可以从概念,算法、协议开始设计电子系统,从电路设计,性能分析直到IC版图或PCB版图生成的全过程均可在计算机上自动完成。EDA代表了当今电子设计技术的最新发展方向,其基本特征是设计人员以计算机为工具,按照自顶向下的设计方法,对整个系统进行方案设计和功能划分,由硬件描述语言完成系统行为级设计,利用先进的开发工具自动完成逻辑编译、化简、分割、综合、优化、布局布线、仿真及特定目标芯片的适配编译和编程下载,这被称为数字逻辑电路的高层次设计方法。下面以一个七段数码管的驱动为例,说明EDA设计的实验方法。1.实验教学方法
本实验是作为本科生的选修课,对全校电信、电子电气、自动化专业同学开放。做为模拟电路、数字电路、通讯原理、EDA软件等理论课的后续课程,学生具备了一定的相关理论知识。实验目标的实现都要经过一番努力才能达到,因此在实验的安排上不能简单地限定实验时间和固定内容,必须采取全面开放式和自主式的实验教学方法。实验进程包括初始阶段和提高阶段。
(1)初始阶段 要求教师先讲解操作步骤,给出程序清单,使实验按着先简单后复杂的顺序进行。(2)提高阶段 要求同学完成较为复杂的应用和算法编程,并独立完成实验内容。对于能力强的同学可以根据自己的兴趣来完成自己的题目。研究生可以结合自己的课题,利用实验室的资源完成课程的内容,最后写出一份完整的总结报告。
(3开放实验时,采用仿真实验和仿真设计与硬件实验相结合的方法,EDA的元件库提供了比实验室种类齐全的仪器、仪表和几千种元器件可供使用,利用图形方式创建电路,软件界面直观、操作使用方便,且容量极其丰富的元器件库,还可根据器件的发展随时扩充,使用时可直接调用和修改元件及参数。学生可用EDA先在计算机上模拟设计所选题目的内容,由于仿真设计元件连线简单,参数修改方便,任何一种设计方案都可以尝试,在对硬件电路设计方案进行仿真过程中,验证设计方案正确性与否,从而得到更加合理可行的实现方案。同时根据仿真结果,可对设计方案进行修改和调整,分析各元件参数对整个数字电路的作用与影响,利用仿真电子仪器仪表,按照设计可完成常规的瞬态分析、稳态分析和时域分析等多种电路分析方法,辅助学生完成对电路原理到电路硬件设计的分析,可以直接观察各子系统的波形及整个电路的实验结果,如果有错误,系统软件会有相应的提示。这样经过反复比较、反复分析、反复修改的过程,最后再用硬件完成开放实验的设计。实验时利用EDA仿真设计改变了传统的基于电路板的设计方法,提高了设计效率,掌握了用计算机软件设计、应用的方法,提高了实验的安全性、自诊断性、直观性、综合性、重组性和信息化等特点。根据实验模块间纵向发展和横向联系,进行组合调整,建立网络化的实践教学平台,每个实验室配备计算机及网络、常用仪器设备、相关实验装置等,充分提高了实验室的资源利用,实现理论与实践的紧密结合。2.实验实例:
设计一个七段数码管的译码器并下载到ispLSI1016中,验证其功能是否正确。输入在A,B,C三个按钮开关的控 制下,经ispGDS14,到译码器使输出a1,b1,c1,d1,e1,f1,g1驱动七段数码管为相应的数字。VHDL源程序:library ieee;
use ieee.std_logic_1164.all;entity liu1is port(datain:in std_logic_vector(2 downto 0);
led:out std_logic_vector(6 downto 0));end;architecture liu1_ architecture of liu1 is begin process(datain)begin case datain is
when “000”=>led<=“0111111”;
when “001”=>led<=“0000110”;
when “010”=>led<=“1011011”;
when “011”=>led<=“1001111”;
when “100”=>led<=“1100110”;
when “101”=>led<=“1101101”;
when “110”=>led<=“1111101”;
when “111”=>led<=“0000111”;
when others=>led<=“1111111”;end case;end process;end arch;测试向量程序: module z1
c,x=.c.,.x.;datain_0_,datain_1_,datain_2_ PIN;led_0_,led_1_,led_2_,led_3_,led_4_,led_5_,led_6_ PIN;TEST_VECTORS([datain_0_,datain_1_,datain_2_]->[led_0_,led_1_,led_2_,led_3_,led_4_, led_5_,led_6_])[0,0,0]->[x,x,x,x,x,x,x];[0,0,1]->[x,x,x,x,x,x,x];[0,1,0]->[x,x,x,x,x,x,x];[0,1,1]->[x,x,x,x,x,x,x];[1,0,0]->[x,x,x,x,x,x,x];[1,0,1]->[x,x,x,x,x,x,x];[1,1,0]->[x,x,x,x,x,x,x] [1,1,1]->[x,x,x,x,x,x,x];END 2 仿真结果: 程序下载:
写可编程数字开关器件ispGDS14的设计源文件(在TC下或在MS-DOS EDIT下)
device = ispgds14 PIN 6 = PIN 12 PIN 8 = PIN 16 PIN 9 = PIN 11
存,存时起名 *g.gds ,并注意路经,看PDSGDS存在那里。
用ispGDS的汇编GASM对*g.gds进行编译,即在C:PDSGDS下,打入 GASM *g 回车,则自动生成下载文件 *g.jed 输出引脚
I/O1(16)→a1 I/O6(21)→b1 I/O3(18)→c1
I/O4(19)→d1 I/O5(20)→e1 I/O2(17)→f1 I/O7(22)→g1 输入引脚
I/O28(7)→A I/O29(8)→B I/O30(9)→C 下载
在Design→Down load 下,或双击 IDCD 注意,实验板上按键松开为“1” 下面我们介绍PDS上设计。双击PDS图标
3.结论
[参考文献]:
[1] 王锁萍.龚建荣等.电子设计教程.成都:电子科技大学出版社,2000.2 [2] 潘松,黄蛀生.EDA技术实用教程.北京:科学出版社.2002.10.[3] 曾繁泰,李冰,李晓林.EDA工程概论[M].北京,清华大学出版社,2002.[4] 蒋卓勤,邓玉元.Multisim2001及其在电子设计中的应用[M].西安:电子科技大学出版社,2003.[5] 徐志军等.大规模可编程逻辑器件及其应用[M].电子科技大学出版社.[6] 符兴昌.EDA技术在数字系统设计分析中的应用[J].微计算机信息, 2006, 5-2: 267-269
作者简介:周云波(1965~),女,高级实验师。
刘小群(1977~),女,讲师,硕士研究生,研究方向为:通信与信息技术 项目:宝鸡文理学院项目(YK0822)
第二篇:EDA技术在数字电子技术实验中的应用
EDA技术在数字电子技术实验中的应用
摘要:在电子信息类的专业当中,数字电子技术的上实验教学是非常重要的。随着社会的发展和电子信息技术的逐渐进步,传统的实验教学方法已经不再适用了,我们需要引进更加新进的技术来对其进行改革。EDA技术的引进可以说是数字电子技术实验的一个进步,也可以说是教学改革的一个趋势。本文将对EDA技术在数字电子技术实验中的应用进行简单的分析和研究,并对EDA技术进行一些介绍,从而说明该技术的重要性。
关键词:EDA技术;数字电子技术教学;实验应用
数字电子技术在近些年得到了快速的发展,而该技术已经应用在了我们的日常生活中。在电子信息的学习过程中,数字电子技术实验是不可或缺的一部分,它的理论性和实践性都非常强,因此进行该试验要具备足够的专业知识以及一定的动手操作能力。随着计算机和电子技术的迅速发展,我们对于该方面的教学理念和模式也需要与时俱进,较为落后和过于传统的教学模式会严重影响到我们对于相关人才的培养,所以我们需要将EDA技术应用到数字电子实验当中。
一、EDA技术的概述
EDA又称为电子设计自动化。该技术的发展时间虽然只有短短的三十几年,但是它涉及的范围是非常广泛的。EDA技术是将具有较大规模的能够编程的控制器作为载体,将硬件的语言描述作为一种表达,运用计算机、相关的软件和编程器来进行电子和硬件系统设计的技术。它所拥有的功能是十分强大的,能够进行逻辑的布线规划、设计、简化、分割、优化、分析等工作。EDA技术是伴随着计算和电子信息等技术的发展而产生的,在后两者迅速发展而变得愈发复杂时,EAD技术的使用在极大程度上为电子电路设计提供了帮助,它在设计的每一个阶段都发挥着十分重要的作用,可以说该技术在电子信息技术的发展上起到了很大的推动作用。
二、基于EDA技术的数字电子技术实验构架
现阶段,我国很多相关的公司已经成功的建立起虚拟实验台,并且可以使用它做完整的数字电子技术实验。EDA技术的应用将数字电子技术的实验内容变得更加丰富,这样就可以做一些难度较高或者是实际操作难度大的电子实验。
(1)虚拟的数字电子技术实验构架。在搭建数字电子技术实验平台的过程当中,会使用到多种EDA的开发工具。而建立实验平台由主要分成了两个部分:第一部分就是在实验中加入了仿真模块,此功能是将EDA技术作为基础来提供学习的一个平台;第二部分是指实验在虚拟环境中进行,这样可以有效对信息进行功能以及管理上的评估。这两个部分之间存在着一定的联系,数据信息要做到互通和交换,这样才能建立起一个完整的EDA数字电子技术实验平台。
(2)各模块框架。仿真功能是该实验平台的一个非常重要的功能,而它又被分成了四个部分,分别是收集项目的信息数据、基础教育、进行虚拟实验、结果的分析。在进行实验的过程中需要在虚拟实验台中了解一些具体的要求,然后做好充足的准备并选择所能应用到的EDA开发工具,从而将获取的实验任务完成。在结束后要将实验数据、图表、仿真曲线、程序代码进行汇总,上传到服务器,以便日后查阅。
在进行基础学习时要把握好四个要素:①熟悉掌握软件编程语言;②了解并熟练使用EDA工具;③认真了解并熟记实验仪器的操作方法;④具有足够的专业知识。在实验中我们经常会使用到的EDA工具包括QuartusⅡ、Protel和Matlab等。而软件编程语言工具会经常使用汇编语言和VHDL语言。实验器具以常用数字芯片为主。除此之外,在网上可以通过相应的渠道可以找到实验案例并将其下载出来,案例中会对实验的设计思路和技术要点等方面进行详细的说明,会更有利于学习者的学习。
同样,信息功能和管理评估模块也是由四个部分所组成的:①提供实验信息;②审批阶段;③对实验进度进行实时掌控;④对信息数据的管理。负责该模块的管理者需要把实验内容在平台进行公布,让实验者了解实验内容。在实验完成后还要把一些相关数据和结果存储到数据库中。
三、在数字电子技术实验中引入EDA技术的优势
(1)提高实验可靠性。EDA技术在实验中的应用可以达到一个扬长避短的效果,对于实验的效率和结果的准确度上有很大程度上的提高,而且可以直观的显示出某些电路设计中存在的问题和错误。在实际中,因为每一个门电路中会存在延时现象,由此就会产生冒险竞争,这就会导致正常信号进入到不正常的尖峰脉冲当中,但是由于采样精度较低的缘故,该现象是很难被观察到的。而EDA技术的应用就可以将该现象显示出,然后再确定出解决问题的办法。
(2)加强实验者的动手操作能力。数字电子技术实验平台所需要的开发周期是比较短的,并且具有调试简单和容易更改电路的特点,这些都可以让实验人员很容易的了解设计要领。这样既可以调动人们的实验兴趣,还可以更容易的将理论知识运用到实践当中。
(3)实验开放性较好。EDA的仿真技术可以摆脱器材上的限制,很多工作都可以在计算机上进行,而实验的设计工作同样可以不在实验室中进行,在完成之后将其进行保存即可。而测试芯片具有实际的运行特性,可以将实验的灵活度进行提高。
(4)提高实验效率。数字电子技术实验的过程是十分复杂的,需要设计和产生的数据量是很大的,如果在中途出现错误就可能导致实验失败或者是将过程变得更加繁琐。EDA技术的应用将实验的操作过程进行了简化,更容易进行调整,在相同的时间内还可以进行多个实验方案从而进行比较,实验的效率也得到了很大的提高。
(5)弥补客观条件的短缺。进行数字电子技术实验需要一套完整的相关设备,但是这些设备装置的价格是十分昂贵的,由于经费不足的问题会导致实验无法进行。EDA的仿真技术可以让实验在计算机中进行,从而避免因客观条件限制而无法进行试验的情况,并且进行仿真实验还可以不用担心损坏仪器所产生的损失。
EDA技术的加入对于数字电子技术实验来说是非常重要的,它既降低了实验进行的难度,又提高了知识理论在实践中的应用,也可以说它为数字电子技术的发展起到了推动的作用。本文对EDA技术在数字电子技术实验中的应用进行简单的分析和研究,并介绍了该技术所拥有的一些优势,希望它能在数字电子技术实验中得到推广。
参考文献:
[1]蔡朝.利用EDA技术改造数字电路实验教学[J].孝感学院学报,2002(06).[2]艾明晶,康光宇.EDA教学实验平台的设计与实现[J].仪表技术与传感器,2002(10).[3]李清峰.对EDA课程教学的思考[J].湖南商学院学报,2001(06).[4]聂春燕、吴晓旭、张玲霞.加强实验室改革和建设培养学生实践能力[j].长春大学学报,2007,17(4):92-93.
第三篇:基于EDA技术的数字电路课程设计
基于EDA技术的数字电路课程设计
摘要:EDA技术结合数字电路课程设计课程是新教育改革的体现,创新的教学模式开启了学生的智慧,增强实践性与逻辑思维,激发学生热情。在阐述了EDA的特征及优势的同时,探究了它与数字电路课程设计的过程,最后对以新课程改革的观点分析课程设计的优势。
关键词:EDA技术 数字电路设计课 新课程改革
引言
随着社会科学技术不断发展,培养四有新人的重任略显重要。在日常生活中随处可见EDA技术的应用,电子信息时代,逐渐被HTML描述性语言代替。传统的理念及设计手段已经不能完全满足现代企业和社会的需求。在EDA(EleCTRonICs Design Automation)技术基础上,融入到数字电路课程是教育时代的要求,也是教学改革的新课程的要求。国家不仅重视创新发展,更注重培养人才,课程设计,直接影响学生的思想和培育。
1.EDA技术的特征及优势
1.1简单易于操作
计算机行业中,软件硬件的应用是相互结合的。那么,关于EDA技术应用的性质特征为整个设计过程简单可操作性强。在此方面涉及方面比较广泛,内容相对丰富,通过硬件描述与软件开发工具,实现特定的测试电路设计,在修改方面也达到便利的效果。
1.2产品的互换性强
EDA技术在设计上实现了逻辑编程器件,应用上可以自动的检测、编辑,以及对一些程序的重新建构,对其进行修改。设计芯片方法灵活性强,有别于传统的设计思路,在使用效率方面得到显而易见的效果。因而,产品的互换性较强。
1.3自动性能高
在传统的设计上,需要技术人员的操作,在人员辅助下操作完成设计。EDA技术设计突破以往的多人操作的难点,实现自动化设计。这不仅在人员调动方面节约了成本,而且实现了自动化设计。在性能上达到优化,测试全过程及及结果将会自动完成。
2.基于EDA技术结合数字电路课程设计的探究
2.1设计方法与要求
EDA在设计方法上遵循技术改革创新方式,将其传统的设计概念中,加入新的焊接模式的转变,达到了计算机自动化的性能;在设计要求上,运用于数字系统中,例如,在设计数字闹钟的过程中,增加了计时、整点报时等功能。在设计流程上,使用芯片也比传统芯片更实用。
2.2适配器件如何应用
这时代,EDA设计的特点,在底层配件上都尽显完善,适配对象包括布局线都进行了逻辑性操作。这增加了仿真设计的效果。根据所需要的设计文件类型,完成自动化设计过程。若设计有误,可自动下载编程,进行修改。可见器件的适配设计在实际应用中发挥其明显作用。
2.3编码电路与译码电路共占195个逻辑单元
数字电路课程设计应用在EDA中,通过目标系统,使用描述性编码完成设计工作,编译码电路在出错后会自动改错,编码电路与译码电路共同实现了逻辑性的功能,这个过程,体现了EDA技术在数字电路中越来越重要。
3.突破传统教学教程,注重能力的培养
3.1跟上时代脚步,注重教程改革
电路数字课程设计是电子信息专业的一门基础课程。教学课程方面,比以往的教学方案中增加更多互动模式,传教方式灵活简单易懂,注重培养学生的实践能力。目前,EDA技术涉及的领域遍布全国,它的发展已经步入科技前沿。
3.2根据社会需要,学以致用
数字电路课程设计,应用于实际生活的每个层面。在学校、医院、楼层、社区、企业、家庭、交通等领域中,随处可见,例如在医院里,病床疾病呼叫,还有密码解锁、楼层内的控灯、触摸延时灯、数字钟、还有循环彩灯以及在交通运输方面使用的交通灯等,要结合实际需求,达到教学与实践相结合。
3.3技术与课程设计相结合,利于能力的培养
DEA技术与数字电路课程设计的结合,在给学生逻辑思维上的灌输通通明朗。不论在教学教程上还是培育学生上都得到了实质性的提高。传统的数字电路课程设计制约了学生的分析能力,固定的教学模式,限制了学习设计思路,及其独立设计与组装的能力。因此,注重教学课程改革与培养实践技能成为发展趋势。
4高校开展EDA技术课程,教育教学不断完善
就目前状况来看,EDA技术的课程与实践课开展的十分普遍,对于高职电子专业人员来说,综合EDA技术的数字电路课程设计综合的实现了学生的应用能力,这是技术理论上的一场革命性的训练。新课程的培养目标理念深厚,这种教学方式,贯彻了“三个代表”的重要思想。
在课程上新改革,例如以往的法务部与税务部的分割线比较明显,而在大时代背景下,需要新型人才,也需要在企业中事倍功半,在以往的教程上综合了法务与税务的知识,在新课程的推动下,出现法务税务师,这不仅节约了人才,而且自身能力提高,实现个人独特的价值。基于EDA技术的数字电路课程设计理念也是如此,为节约人才与新型技术人员的培养提供可行性的策略。
总结
数字电路课程设计思路有两个,一个是仿真电路设计,一个是应用设计印刷电路板。课程设计的教程实践将会实现个人的独立设计与创新能力。能够培养具有逻辑性的思考和解决问题的高素质人才,提高学生积极性与学校热情,是实现基于EDA技术的数字电路课程设计的关键所在。
参考文献
[1] 李彩.科技视界.浅谈时序逻辑电路.2013(3)[2] 王璐,于冠龙,马永强.浅析航空电子元器件的质量控制.黑龙江科技信息.2015(32)
第四篇:EDA技术实验教案
一、课程名称:
EDA技术实验
二、教材名称: 《EDA技术使用教程》,潘松等编著。
三、本课程教学目的、要求:
介绍EDA的基本知识、常用的EDA工具的使用方法和目标器件的结构原理、VHDL设计输入方法(图形和文本)、VHDL仿真、VHDL的设计优化等。
EDA技术作为重要的专业课程,其实践性强。在教学时要注重理论和实践的紧密结合,通过大量上机操作,使学生掌握VHDL的基本结构和编程思想。实验1 原理图输入方法及8位全加器设计(4课时)
1)实验目的:
熟悉利用MAX+plusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行电子电路设计的详细流程。2)实验报告要求:
详细叙述8位加法器的设计流程;给出各层次的原理图及其对应的仿真波形图;给出加法器的延时情况。
3)实验步骤:
(1)设计一个一位半加器。
步骤1:输入设计项目和存盘 步骤2:输入半加器元件: 步骤3:将项目设置为工程文件 步骤4:选择目标器件并编译 步骤5:时序仿真 步骤6:包装元件入库
选择菜单“File”→“Open”,在“Open”对话框中选择原理图编辑文件选项“Graphic Editor Files”,然后选择h_adder.gdf,重新打开半加器设计文件,然后选择如图4-5中“File”菜单的“Create Default Symbol”项,将当前文件变成了一个包装好的单一元件(Symbol),并被放置在工程路径指定的目录中以备后用。
(2)利用半加器组成一个一位全加器,并记录仿真结果。(3)利用全加器组成一个八位全加器,并记录仿真结果。
实验二
简单组合电路和时序电路设计(4课时)
一、实验目的:
熟悉Max+plusⅡ的VHDL文本设计流程全过程,学习简单组合电路和时序电路的设计和仿真方法。
二、实验内容
1:首先利用MAX+plusⅡ完成2选1多路选择器和一位全加器的文本编辑输入和仿真测试等步骤,给出仿真波形,验证本项设计的功能。
2:设计触发器(J-K),给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。
3:先设计或门和一位半加器的VHDL描述文件,并进行仿真调试,再用元件例化的方法实现一位全加器,并仿真调试。要求记录VHDL文件内容和仿真波形结果。
4:用一位全加器设计8为全加器。要求记录VHDL文件内容和仿真波形结果。(选作)参考程序 ENTITY mux21a IS PORT(a, b : IN BIT;s : IN BIT;y : OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT;BEGIN d <= a AND(NOT S);e <= b AND s;y <= d OR e;END ARCHITECTURE one;
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a IS PORT(a, b :IN STD_LOGIC;c : OUT STD_LOGIC);END ENTITY or2a;
ARCHITECTURE fu1 OF or2a IS BEGIN c <= a OR b;END ARCHITECTURE fu1;
半加器描述(1)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY adder IS PORT(a, b : IN STD_LOGIC;co, so : OUT STD_LOGIC);END ENTITY adder;ARCHITECTURE fh1 OF adder is BEGIN so <= NOT(a XOR(NOT b));co <= a AND b;END ARCHITECTURE fh1;
1位二进制全加器顶层设计描述 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder IS PORT(ain,bin,cin : IN STD_LOGIC;cout,sum : OUT STD_LOGIC);END ENTITY f_adder;ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder PORT(a,b : IN STD_LOGIC;co,so : OUT STD_LOGIC);END COMPONENT ; COMPONENT or2a PORT(a,b : IN STD_LOGIC;c : OUT STD_LOGIC);END COMPONENT;
SIGNAL d,e,f : STD_LOGIC;BEGIN u1 : h_adder PORT MAP(a=>ain,b=>bin,co=>d,so=>e);u2 : h_adder PORT MAP(a=>e,b=>cin,co=>f,so=>sum);u3 : or2a PORT MAP(a=>d,b=>f,c=>cout);END ARCHITECTURE fd1;二选一多路选择器仿真结果:
实验三
含异步清0和同步时钟使能的4位加法计数器(4课时)
一、实验目的:
学习计数器的设计、仿真,进一步熟悉VHDL设计技术。
二、实验内容:
设计一含计数使能、异步复位和能进行计数值并行预置功能的4位加法计数器。RST是异步清零信号,高电平有效;clk是时钟输入信号;D0、D1、D2、D3是4位数据输入端(数据预置输入端)。Q0、Q1、Q2、Q3为计数器输出端。COUT为进位输出端。ENA为使能端,为„1‟时,计数器实现对CLK时钟脉冲信号的加1计数,为0时停止计数。
参考程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4B IS PORT(CLK : IN STD_LOGIC;RST : IN STD_LOGIC;ENA : IN STD_LOGIC;OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC);END CNT4B;ARCHITECTURE behav OF CNT4B IS SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN P_REG: PROCESS(CLK, RST, ENA)BEGIN IF RST = '1' THEN CQI <= “0000”;ELSIF CLK'EVENT AND CLK = '1' THEN IF ENA = '1' THEN CQI <= CQI + 1;ELSE CQI <= “0000”;END IF;END IF;OUTY <= CQI;END PROCESS P_REG;COUT <= CQI(0)AND CQI(1)AND CQI(2)AND CQI(3);--进位输出 END behav;
实验四
7段数码显示译码器设计(2课时)
一、实验目的:
1、学习7段数码显示译码器设计;
2、学习VHDL的多层次设计方法。
二、实验原理:
7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。但为了简化过程,首先完成7段BCD码译码器的设计。例如输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。
图6-21 共阴数码管及其电路
三、实验内容
1、编程实现7段数码显示译码器设计;
2、对7段数码显示译码器设计进行编辑、仿真,给出其所有信号的时序仿真波形; 参考程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECL7S IS PORT(A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END;ARCHITECTURE one OF DECL7S IS BEGIN PROCESS(A)BEGIN CASE A IS WHEN “0000” => LED7S <= “0111111”;WHEN “0001” => LED7S <= “0000110”;WHEN “0010” => LED7S <= “1011011”;WHEN “0011” => LED7S <= “1001111”;WHEN “0100” => LED7S <= “1100110”;WHEN “0101” => LED7S <= “1101101”;WHEN “0110” => LED7S <= “1111101”;WHEN “0111” => LED7S <= “0000111”;WHEN “1000” => LED7S <= “1111111”;WHEN “1001” => LED7S <= “1101111”;WHEN OTHERS => NULL;END CASE;END PROCESS;END;仿真结果:
综合后的计数器和译码器连接电路的顶层文件原理图:
实验五
用状态机实现序列检测器的设计(4课时)
一、实验目的:
1、掌握状态机的编程方法和步骤;
2、掌握用状态机设计序列检测器的方法和步骤;
二、实验内容
用状态机编程实现对系列数“11100101”的检测,当某一系列串(以左移方式)进入检测器后,若该串与预置的系列数相同,则输出“A”,否则输出“B”。
三、实验步骤:
1、编辑系列检测器的VHDL程序;
2、仿真测试并给出仿真波形,了解控制信号的时序;
3、将上述方案改为系列检测密码为可预置(外部输入)情况,重新编写程序、编译和仿真,并记录仿真结果。参考程序:
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK IS PORT(DIN,CLK,CLR : IN STD_LOGIC;AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END SCHK;ARCHITECTURE behv OF SCHK IS SIGNAL Q:INTEGER RANGE 0 TO 8;SIGNAL D:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN D<=“11100101”;PROCESS(CLK,CLR)BEGIN IF CLR= '1' THEN Q <= 0;ELSIF clk='1' AND clk'EVENT THEN CASE Q IS WHEN 0 => IF DIN = D(7)THEN Q<=1;ELSE Q<=0;END IF;WHEN 1 => IF DIN = D(6)THEN Q<=2;ELSE Q<=0;END IF;WHEN 2 => IF DIN = D(5)THEN Q<=3;ELSE Q<=0;END IF;WHEN 3 => IF DIN = D(4)THEN Q<=4;ELSE Q<=0;END IF;WHEN 4 => IF DIN = D(3)THEN Q<=5;ELSE Q<=0;END IF;WHEN 5 => IF DIN = D(2)THEN Q<=6;ELSE Q<=0;END IF;WHEN 6 => IF DIN = D(1)THEN Q<=7;ELSE Q<=0;END IF;WHEN 7 => IF DIN = D(0)THEN Q<=8;ELSE Q<=0;END IF;WHEN OTHERS=> Q<=0;END CASE;END IF;END PROCESS;PROCESS(Q)BEGIN IF Q=8 THEN AB<=“1010”;ELSE AB<=“1011”;END IF;END PROCESS;END behv;仿真结果:
提高型实验:
实验六
用VHDL实现数字钟及校园打铃系统(6课时)
一、实验目的及要求:
1、掌握VHDL语言的基本结构及编程思想。
2、掌握VHDL语言的进行系统设计的方法和步骤。
3、提高学生综合应用能力。
二、实验内容:
1、用VHDL实现数字钟及校园打铃系统的软件编辑。
2、用VHDL实现数字钟及校园打铃系统的软件仿真。
三、实验步骤
1、用VHDL编辑60进制计数器,并进行软件仿真。
2、用VHDL编辑24进制计数器,并进行软件仿真。
3、用VHDL编辑30进制计数器,并进行软件仿真。
4、用元件例化的方法实现数字钟的软件编辑及软件仿真。
5、实现数字钟的校时功能。
6、实现数字钟的打铃功能。
7、完成数字钟及校园打铃系统的实验报告。
实验七
A/D采样控制器设计
一、实验目的及要求:
1、掌握VHDL语言的基本结构及编程思想。
2、掌握A/D采样控制器的工作原理。
3、掌握A/D采样控制器的VHDL语言编程方法。
二、实验内容:
1、设计一A/D0809模数转换器控制器。
2、将转换结果送数码管显示器显示(2位)。
3、模拟输入通道为IN0。
三、实验步骤:
1、ADC0809特点介绍
(1)、单极性输入,8位A/D转换精度。(2)、逐次逼近式,每次采样时间约为100US(3)、8通道模拟输入
2、A/D转换器外部引脚功能结构图
3、A/D转换器时序图
4、AD转换控制器与AD转换器的接口电路框图
5、状态控制
S0状态:初始状态。ADDC=‘1’,选择1通道模拟信号输入。
ALE=START=OE=LOCK=‘0’;
S1状态:通道锁存。ALE=‘1’, START=OE=LOCK=‘0’;
S2状态:启动A/D转换。ALE=‘1’,START=‘1’,OE=LOCK=‘0’; S3状态:A/D转换等待状态。
ALE=START=‘0’,OE=LOCK=‘0’;
IF EOC=‘0’
保持当前状态不变,继续等待A/D转换。
ELSE
转换结束,进入下一状态。
S4状态:数据输出允许状态。A/D转换完毕,开启数据输出允许信号。
ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘0’;
S5状态:数据锁存状态。开启数据锁存信号,将转换结果送锁存器锁存。
ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘1’; S6状态:延时状态。为了保证数据可靠锁存,延时一个时钟状态周期。
ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘1’; 其它状态:返回到初始状态。ALE=START=OE=LOCK=‘0’;
6、参考程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY AD0809 IS
PORT(D :IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CLK0,EOC : IN STD_LOGIC;
ADDA,OE : OUT STD_LOGIC;
ALE,START : OUT STD_LOGIC;
Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
QQ : OUT INTEGER RANGE 15 DOWNTO 0);END AD0809;ARCHITECTURE behav OF AD0809 IS
TYPE ST_TYPE IS(S0, S1, S2, S3,S4,S5,S6,S7);
SIGNAL CURRENT_STATE,NEXT_STATE : ST_TYPE;
SIGNAL REGL:STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL LOCK :STD_LOGIC;
BEGIN
ADDA<='1';
PRO: PROCESS(CURRENT_STATE,EOC)
BEGIN
CASE CURRENT_STATE IS
WHEN S0 => QQ<=0;ALE<='0';START<='0';OE<='0';LOCK<='0';NEXT_STATE <= S1;
WHEN S1 => QQ<=1;ALE<='0';START<='0';OE<='0';LOCK<='0';NEXT_STATE <= S2;
WHEN S2 => QQ<=2;ALE<='1';START<='1';OE<='0';LOCK<='0';NEXT_STATE <= S3;
WHEN S3 => QQ<=3;ALE<='1';START<='1';OE<='0';LOCK<='0';
IF EOC='0' THEN NEXT_STATE <= S4;
ELSE NEXT_STATE <= S3;
END IF;
WHEN S4 => QQ<=4;ALE<='0';START<='0';OE<='0';LOCK<='0';
IF EOC='1' THEN NEXT_STATE <= S5;
ELSE NEXT_STATE <= S4;
END IF;
WHEN S5 => QQ<=5;ALE<='0';START<='1';OE<='1';LOCK<='0';NEXT_STATE <= S6;
WHEN S6 => QQ<=6;ALE<='0';START<='0';OE<='1';LOCK<='1';NEXT_STATE <= S7;
WHEN S7 => QQ<=7;ALE<='0';START<='0';OE<='1';LOCK<='1';NEXT_STATE <= S0;
WHEN OTHERS => NEXT_STATE <= S0;
END CASE;
END PROCESS PRO;REG:PROCESS(CLK0)
BEGIN
IF CLK0'EVENT AND CLK0='1' THEN
CURRENT_STATE<=NEXT_STATE;
END IF;
END PROCESS REG;
COM:PROCESS(LOCK)
BEGIN
IF LOCK'EVENT AND LOCK='1' THEN
REGL<=D;
END IF;
END PROCESS COM;
Q<=REGL;END behav;
实验八
数字频率计设计
一、实验目的及要求:
1、掌握VHDL语言的基本结构及编程思想。
2、掌握数字频率计的工作原理。
3、掌握数字频率计的VHDL语言编程方法。
二、实验内容:
1、设计8位十进制数字频率计。
2、测量频率范围为1Hz-50MHz
三、实验原理: 测频原理框图
四、实验步骤 1、8位十进制计数器设计
(1)用VHDL设计十进制计数器,并进行软件和硬件仿真 参考程序如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS
PORT(CLK,RST,EN : IN STD_LOGIC;
CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT : OUT STD_LOGIC);
END CNT10;ARCHITECTURE behav OF CNT10 IS BEGIN
PROCESS(CLK, RST, EN)
VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF RST = '1' THEN
CQI :=(OTHERS =>'0');--计数器复位
ELSIF CLK'EVENT AND CLK='1' THEN
--检测时钟上升沿
IF EN = '1' THEN
--检测是否允许计数
IF CQI < “1001” THEN
CQI := CQI + 1;--允许计数
ELSE
CQI :=(OTHERS =>'0');--大于9,计数值清零
END IF;
END IF;
END IF;
IF CQI = “1001” THEN COUT <= '1';--计数大于9,输出进位信号
ELSE
COUT <= '0';
END IF;
CQ <= CQI;
--将计数值向端口输出
END PROCESS;END behav;(2)8位十进制频率计电路图 2、32位锁存器设计 参考程序
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY reg32b IS
PORT(load : IN STD_LOGIC;
din: in STD_LOGIC_VECTOR(31 DOWNTO 0);
DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0));
END reg32b;ARCHITECTURE behav OF reg32b IS BEGIN
PROCESS(load,din)
BEGIN
IF load'EVENT AND load='1' THEN
dout<=din;
END PROCESS;END behav;3控制器设计
(1)控制器时序图
(2)参考程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY testctl IS
PORT(clk : IN STD_LOGIC;
tsten:out
STD_LOGIC;
clr_cnt: out
STD_LOGIC;
load:out
STD_LOGIC);
END testctl;ARCHITECTURE behav OF testctl IS
signal div2clk:std_logic;BEGIN
PROCESS(clk)
BEGIN
IF clk'EVENT AND clk='1' THEN
div2clk<=not div2clk;
END PROCESS;
process(clk,div2clk)
begin
if clk='0' and div2clk='0'
then
clr_cnt<='1';
else clr_cnt<='0';
end if;
end process;
load<=not div2clk;
tsten<=div2clk;END behav;
END IF;END IF;
实验九
DAC接口电路与波形发生器设计
一、实验目的及要求:
1、掌握VHDL语言的基本结构及编程思想。
2、掌握DA转换器接口方法。
3、掌握DA转换器的VHDL语言编程方法。
二、实验内容:
1、设计一DAC0832数模转换器控制器。
2、要求使用DAC转换器输出一正弦波,最大值为5V。(使用单缓冲方式)
3、要求正弦波频率能步进可调,步进间隔为100Hz。(使用2个按键控制,一个步进为加,另一个为步进减)
三、实验原理
1、DAC0832特点(1)、8位电流DAC转换,输出为电流信号,因此要转换为电压输出,必须外接集成运算放大器。(2)、转换时间约为50---500ns,转换速度比电压型DAC转换器快,电压型一般为1---10us(3)、20脚双列直插式封装的CMOS型器件。(4)、内部具有两极数据寄存器,可采用单或双缓冲方式。
2、D/A转换器外部引脚功能及内部结构图
3、工作方式
方式一:直通工作方式(本实验采用此种方式)
一般用于只有一路输出信号的情况。
接线情况:ILE=1,CS=WR1=WR2
=XFER=0 方式
二、双缓冲器工作方式
采用两步操作完成,可使DA转换输出前一数据的同时,将采集下一个数据送到8位输入寄存器,以提高转换速度。
一般用于多路DA输出。
4、DA转换器与控制器接口电路设计
5、实验仪实际接口电路图
6、DA转换器输出波形步进可调控制电路设计 设计思想:
设输入控制器的时钟频率为50MHz。
1、DA转换一次,需要一个时钟周期。若采用64点输出,则需要64个时钟周期。如果控制器时钟频率为64Hz,则输出的正弦波频率为1Hz。
2、因此,只需要控制DA转换控制器的时钟频率,则就可以控制正弦波频率,正弦波频率与时钟频率的 关系为1:64。
3、题目要求正弦波步进频率为100Hz,则时钟频率步进应为6400Hz。按“加”键,则时钟频率增加6400Hz,按“减”减,时钟频率减小6400Hz。
7、带按键控制DA转换器与控制器接口电路设计
四、实验程序 参考程序:
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DAC0832 IS
PORT(CLK :IN STD_LOGIC;
DD : OUT INTEGER RANGE 255 DOWNTO 0);END DAC0832;ARCHITECTURE behav OF DAC0832 IS SIGNAL Q:INTEGER RANGE 63 DOWNTO 0;SIGNAL D : INTEGER RANGE 255 DOWNTO 0;BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN Q<=Q+1;
END IF;
END PROCESS;PROCESS(Q)
BEGIN
CASE Q
IS
WHEN 00=>D<=254;WHEN 01=>D<=252;WHEN 02=>D<=249;WHEN 03=> D<=245;
WHEN 04=>D<=239;WHEN 05=>D<=233;WHEN
06=> D<=225;WHEN
07=> D<=217;
WHEN 08=>D<=207;WHEN 09=>D<=197;WHEN
10=> D<=186;WHEN
11=> D<=174;
WHEN 12=>D<=162;WHEN 13=>D<=150;WHEN 14=> D<=137;WHEN
15=> D<=124;
WHEN 16=>D<=112;WHEN 17=>D<=99;WHEN 18=> D<=87;
WHEN
19=> D<=75;
WHEN 20=>D<=64;WHEN
21=>D<=53;WHEN 22=>D<=43;
WHEN 23=> D<=34;
WHEN 24=>D<=26;WHEN 25=>D<=19;WHEN
26=> D<=13;
WHEN
27=> D<=8;
WHEN 28=>D<=4;
WHEN
29=>D<=1;
WHEN 30=>D<=0;
WHEN
31=> D<=0;
WHEN 32=>D<=1;WHEN 33=>D<=4;
WHEN 34=> D<=8;
WHEN 35=> D<=13;WHEN 36=>D<=19;WHEN 37=>D<=26;
WHEN 38=> D<=34;
WHEN
39=> D<=43;
WHEN 40=>D<=53;WHEN
41=>D<=64;WHEN 42=> D<=75;
WHEN
43=> D<=87;
WHEN 44=>D<=99;WHEN 45=>D<=112;WHEN 46=>D<=124;WHEN
47=> D<=137;
WHEN 48=>D<=150;WHEN 49=>D<=162;WHEN 50=> D<=255;WHEN 51=> D<=174;
WHEN 52=>D<=186;WHEN 53=>D<=197;WHEN 54=>D<=207;WHEN 55=> D<=217;
WHEN 56=>D<=225;WHEN 57=>D<=233;WHEN 58=> D<=239;WHEN
59=> D<=245;
WHEN 60=>D<=249;WHEN 61=> D<=252;WHEN 62=> D<=254;WHEN 63=>D<=255;WHEN OTHERS=>NULL;END CASE;END PROCESS;
DD<=D;
END;
实验十
七段显示器动态扫描电路设计(提高型)
实验目的及要求:
1、掌握VHDL语言的基本结构及编程思想。
2、掌握七段显示器动态扫描电路设计方法。设计要求:
1、设计一个七段数码管动态扫描电路。
2、数码管个数为8个,共阴极接法。
3、设计BCD码--七段字符码的转换电路;
4、设计一电路,控制上述电路实现“12345678”八个数字的显示,要求显示方式为:
(1)自左至右逐个点亮数码管,最后全亮;再重复以上动作,每次变化时间间隔为1秒。
(2)自左至右点亮数码管,每次只点亮一个,最后全息灭,再重复以上动作,每次变化时间间隔为1秒。
(3)先中间两个点亮,再依次向外点亮;全亮后,再依次向中间熄灭;重复上述步骤,每次变化时间间隔为1秒。一、七段显示器动态扫描电路设计框图
二、存储器设计(8位8字节静态随机存储器SRAM)LIBRARY ieee;
USE ieee.std_logic_1164.all;ENTITY MEMO_RD_WR IS PORT(WR,RD: IN STD_LOGIC;
A : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
B : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END MEMO_RD_WR;ARCHITECTURE a OF MEMO_RD_WR IS
SIGNAL Q0,Q1,Q2,Q3: STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL Q4,Q5,Q6,Q7: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(WR,A)
BEGIN
IF WR='1' THEN
CASE
A
IS
WHEN “000”=>Q0<=D;
WHEN “001”=> Q1<=D;
WHEN “010”=>Q2<=D;
WHEN “011”=> Q3<=D;
WHEN “100”=>Q4<=D;
WHEN “101”=> Q5<=D;
WHEN “110”=>Q6<=D;
WHEN “111”=> Q7<=D;
WHEN OTHERS=>NULL;
END CASE;
END IF;
END PROCESS;PROCESS(RD,B)
BEGIN
IF RD='1' THEN
CASE
B
IS
WHEN “000”=>Q<=Q0;
WHEN “001”=> Q<=Q1;
WHEN “010”=>Q<=Q2;
WHEN “011”=> Q<=Q3;
WHEN “100”=>Q<=Q4;
WHEN “101”=> Q<=Q5;
WHEN “110”=>Q<=Q6;
WHEN “111”=> Q<=Q7;
WHEN OTHERS=>NULL;
END CASE;
END IF;
END PROCESS;END a;
四、循环取数电路设计 LIBRARY ieee;
USE ieee.std_logic_1164.all;ENTITY GET_CODE IS PORT(CLK1: IN STD_LOGIC;
D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
RD:OUT STD_LOGIC;
A : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END GET_CODE;ARCHITECTURE a OF GET_CODE
IS
SIGNAL LOAD: STD_LOGIC;
SIGNAL QQ : STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGIN
RD<=„1‟;
LOAD<=CLK1;PROCESS(CLK1)
BEGIN
IF CLK1'EVENT AND CLK1='1' THEN
IF NUM<=7
THEN
NUM<=NUM+1;
ELSE NUM<=0;
END IF;
END IF;END PROCESS;PROCESS(NUM)
BEGIN
CASE NUM IS
WHEN 0 =>A<=“000”;
WHEN 1 =>A<=“001”;
WHEN 2 =>A<=“010”;
WHEN 3 =>A<=“011”;
WHEN 4 =>A<=“100”;
WHEN 5 =>A<=“101”;
WHEN 6 =>A<=“110”;
WHEN 7 =>A<=“111”;
WHEN OTHERS =>NULL;
END CASE;
END PROCESS;PROCESS(LOAD)
BEGIN
IF LOAD„EVENT AND LOAD=„1‟
THEN-------上升沿锁存
QQ<=D;
END IF;END PROCESS;DOUT(7 DOWNTO 0)<=QQ(7 DOWNTO 0);END a;
五、扫描控制器设计 LIBRARY ieee;
USE ieee.std_logic_1164.all;ENTITY SCAN_8 IS PORT(CLK2: IN STD_LOGIC;
C : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END SCAN_8;ARCHITECTURE a OF SCAN_8
IS
SIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGIN PROCESS(CLK2)
BEGIN
IF CLK2'EVENT AND CLK2=‘1' THEN
IF NUM<=7
THEN
NUM<=NUM+1;
ELSE NUM<=0;
END IF;
END IF;END PROCESS;Process(num)
begin
CASE
NUM
IS
WHEN 1=>C<=“11111110”;WHEN 2=> C<=“11111101”;
WHEN 3=>C<=“11111011”;WHEN 4=> C<=“11110111”;
WHEN 5=>C<=“11101111”;WHEN 6=> C<=“11011111”;
WHEN 7=>C<=“10111111”;WHEN 0=> C<=“01111111”;
WHEN
OTHERS=>NULL;
END CASE;END PROCESS;END A;
应用实例一:显示“01234567”八个数字
LIBRARY ieee;
USE ieee.std_logic_1164.all;ENTITY disp_data IS PORT(CLK: IN STD_LOGIC;
WR:OUT STD_LOGIC;
A:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END disp_data;ARCHITECTURE a OF disp_data
IS
--SIGNAL QQ : STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGIN
WR<=„1‟;PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF NUM<=7
THEN
NUM<=NUM+1;
ELSE NUM<=0;
END IF;
END IF;END PROCESS;PROCESS(NUM)
BEGIN
CASE NUM IS
WHEN 0 =>Q<=“00111111”;A<=“000”;
WHEN 1 =>Q<=“00000110”;A<=“001”;
WHEN 2 =>Q<=“01011011”;A<=“010”;
WHEN 3 =>Q<=“01001111”;A<=“011”;
WHEN 4 =>Q<=“01100110”;A<=“100”;
WHEN 5 =>Q<=“01101101”;A<=“101”;
WHEN 6 =>Q<=“01111101”;A<=“110”;
WHEN 7 =>Q<=“01111111”;A<=“111”;
WHEN OTHERS =>NULL;
END CASE;END PROCESS;END a;实验十一
彩灯控制器设计(提高型实验)
实验目的及要求:
1、掌握VHDL语言的基本结构及编程思想。
2、掌握VHDL语言的进行系统设计的方法和步骤。
3、培养学生综合应用能力。实验内容:
1、了解各类节日彩灯的显示方式(主要是动态方式)(上街观察);
2、将你所了解的情况,画出你的设计思想框图;
3、根据框图画出电路框图(用EDA技术);
4、用VHDL语言编程实现;
5、完成课程设计报告(约2000字)
实验
十二、红绿交通灯控制系统
实验目的及要求:
1、掌握VHDL语言的基本结构及编程思想。
2、掌握VHDL语言的进行系统设计的方法和步骤。
3、培养学生综合应用能力。实验内容:
设计一个简易十字路口交通灯控制器。要求:
1、每个路口有红、绿、黄三个指示灯指示交通运行情况。红灯亮,禁止车辆通行;绿灯亮,车辆正常通行。
2、利用两位数码管显示通行到计时时间。
3、用VHDL语言编程实现;
4、完成课程设计报告 实验步骤:
1、红绿黄灯秒计数选择控制电路(traffic_mux)SING_STATE:
00
绿灯20秒(横向路口);
01
黄灯5秒(横向路口)
绿灯20秒(直向路口)
黄灯5秒(直向路口)
RECOUNT:重新计数信号。=„1‟,发送倒计时时间数据; =„0‟,正常倒计时; LIBRARY IEEE;
USE IEEE.std_logic_1164.all;USE IEEE.std_logic_unsigned.all;
USE IEEE.std_logic_arith.all;entity traffic_mux is
port(reset,clk_1Hz,recount: in std_logic;
sign_state: in std_logic_vector(1 downto 0);
load: out integer range 255 downto 0);end;
begin
process(reset,clk_1s)
begin
if reset='1' then
load<=“00000000”;
elsif(clk_1Hz'event and clk_1Hz='1')
then
if
recount = '1‘
then
CASE sign_state IS
WHEN “00” => load <= 20;
WHEN “01” => load <= 5;
WHEN “10” => load <= 20;
WHEN “01” => load <= 5;
WHEN OTHERS =>null;
END CASE;
end if;
end if;end process;end BEHAVIOR;
2、倒计时控制电路(count_down)library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity count_down is port(reset,clk_1Hz: in std_logic;recount:in std_logic;load: in integer range 255 downto 0;seg7:out std_logic_vector(15 downto 0);next_state: out std_logic);end;architecture BEHAVIOR of count_down is signal cnt_ff: integer range 255 downto 0;begin process(clk_1Hz,reset)begin if(reset='1')then cnt_ff<=“00000000”;seg7<=“***0”;elsif(clk_1Hz'event and clk_1Hz='1')then if recount='1‘ then cnt_ff<=load-1;else cnt_ff<=cnt_ff-1;end if;end if;end process;process(cnt_ff)begin case cnt_ff is when 0=>seg7<=“***1”;when 1=>seg7<=“***0”;when 2=> seg7<=“***1”;when 3=> seg7<=“***1”;when 4=> seg7<=“***0”;when 5=> seg7<=“***1”;when 6=> seg7<=“***1”;when 7=> seg7<=“***1”;when 8=> seg7<=“***1”;when 9=> seg7<=“***1”;when 10=> seg7<=“***1”;when 11=> seg7<=“***0”;when 12=> seg7<=“***1”;when 13=> seg7<=“***1”;when 14=> seg7<=“***0”;when 15=> seg7<=“***1”;when 16=> seg7<=“***1”;when 17=> seg7<=“***1”;when 18=> seg7<=“***1”;when 19=> seg7<=“***1”;when 20=> seg7<=“***1”;when 21=> seg7<=“***0”;when 22=> seg7<=“***1”;when 23=> seg7<=“***1”;when 24=> seg7<=“***0”;when 25=> seg7<=“***1”;when 26=> seg7<=“***1”;when 27=> seg7<=“***1”;when 28=> seg7<=“***1”;when 29=> seg7<=“***1”;when others=> seg7<=“***1”;end case;end process;next_state <= '1' when cnt_ff=1 else '0';end BEHAVIOR;
3、红绿灯信号控制电路(traffic_fsm)LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_arith.all;USE IEEE.std_logic_unsigned.all;entity traffic_FSM is port(reset,clk,clk_1Hz,flash_1Hz: in std_logic;a_m:in std_logic;next_state: in std_logic;recount: out std_logic;sign_state: out std_logic_vector(1 downto 0);red: out std_logic_vector(1 downto 0);green: out std_logic_vector(1 downto 0);yellow: out std_logic_vector(1 downto 0));end;architecture BEHAVIOR of traffic_FSM is type Sreg0_type is(r0g1, r0y1, g0r1, y0r1, y0y1, y0g1, g0y1, r0r1);signal state : Sreg0_type;signal light: std_logic_vector(5 downto 0);begin if(reset='1')then state<=r0g1;
----设定当前为横向红灯亮,竖向绿灯亮 sign_state<=“01”;------选择20秒倒计时
recount<=‘1’;------装入计数初值并启动倒计时 else if(clk'event and clk='1')then case STATE is when r0g1 => if(a_m='1' and clk_1Hz='1')then if(next_state = ‘1’)then--当前计数完毕,转入下一种计时
recount<='1';state<=r0y1;sign_state <= “01”;else recount<=‘0’;state<=r0g1;----否则,继续倒计时 end if;when r0y1 =>--now state: red0 on yellow1 flash if(a_m='1' and clk_1Hz='1')then if(next_state = '1')then recount<='1';state<=g0r1;sign_state <= “10”;else recount<='0';state<=r0y1;end if;when g0r1 =>--now state: green0 on red1 on if(a_m='1' and ena_1Hz='1')then if(next_state = '1')then recount<='1';state<=y0r1;sign_state <= “11”;else recount<='0';state<=g0r1;end if;when y0r1 =>--now state: green0 on red1 on if(a_m='1' and ena_1Hz='1')then if(next_state = '1')then recount<='1';state<=r0g1;sign_state <= “00”;else recount<='0';state<=y0r1;--red=2'b10;green=2'b00;yellow=2'b01;end if;when others => state<=r0g1;recount<='0';sign_state <= “00”;end case;end if;end if;end process;--light: r(10)y(10)g(10)light <= “010010” when(state=r0g1)else “011000” when(state=r0y1)else “100001” when(state=g0r1)else “100100” when(state=y0r1)else “110000”;red <= light(5 downto 4);yellow <= light(3 downto 2)and(flash_1Hz & flash_1Hz);green <= light(1 downto 0);end BEHAVIOR;
第五篇:EDA技术应用读后感
EDA技术应用读后感
大三的第一学期我们学一门关于EDA技术的课程,虽然对于这个名称不算陌生,之前也听过,但是它有什么功能却什么也不知道。今天在老师的引导下我们读了一些关于这方面的文章,初步的对EDA有了一定的认识。DA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术已经成为当今世界电子技术发展的重要领域之一。
电子设计的必由之路是数字化,电子系统的发展到现在已经很多年了,经过多年的发展,现在的发展正是最迅速最完美的时期。EDA的发展涉及多方面,例如,教学方面,在科学研究和新产品开发方面,产品的设计与制作方面。随州EDA技术的发展,世界各国都积极的行动了起来,我国也积极响应世界的发展趋势大力提倡技术的发展。EDA技术越来越广泛的应用,电子产品的日新月异,这项技术已经成为电子设计的何核心,我们作为新一代的大学生更应该深刻认识这一点,努力学习知识,做一名有价值的中国人。
《EDA技术的应用与发展》 作者:张晓霞来源:《中国新技术新产品》 2012-5-25期刊
《EDA技术的发展与应用现状》 作者:张杨林来源:《当代农机》 2007-4-25期刊 《EDA技术的发展》作者:江冰来源:《河海大学常州分校学报》 2004-6-25期刊
建议:希望老师可以上课声音大一点,尽量有耐心的讲的细一点。课堂可以多做一些演示方
便我们理解。