摘 要
抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者可以分为若干组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。当第一个人按下按键后,则在显示器上显示该组的号码,对应的灯亮,同时电路将其他各组按键封锁,使其不起作用。若抢答时间内无人抢答,则报警灯亮。回答完问题后,由主持人将所有按键恢复,重新开始下一轮抢答。因此基于EDA技术的抢答器的逻辑功能,该电路应包括抢答器鉴别模块、抢答器计数模块、报警模块、译码模块、分频模块。 关键词:抢答鉴别、FPGA、计数、报警
Abstract
Responder is the answer for the quiz participants to answer in the design when a priority decision circuit, and the race can be divided into several groups, answer in each group on the host issues raised in the shortest possible time to make judgments , and press the answer in answer key. After pressing the button when the first person, then the display shows the number of the group, the corresponding lights, while other groups will be key circuit block, it does not work. If the answer in time, no answer in, the alarm lights. Answering questions, all the keys from the host to restore and re-start the next round of the Responder. So to complete the answering device logic functions, the circuit should include Responder identification module, Responder counting module, alarm module, decoding module, frequency module.
Keywords:Responder Identification 、Blockade 、Count 、Alarm
1
目 录
摘 要 .............................................................................................................................................. 1 Abstract ............................................................................................................................................. 1 目 录 ................................................................................................................................................ 2 一、EDA的发展历史 ........................................................................................................................ 2 二、EDA技术的概念与应用 ............................................................................................................ 3
2.1 EDA技术的基本概念 ........................................................................................................ 3 2.2 EDA工具软件 .................................................................................................................... 3
2.2.1 电子电路设计与仿真工具 ................................................................................... 4 2.2.2 PCB设计软件 ........................................................................................................ 5 2.2.3 IC设计软件 .......................................................................................................... 6 2.2.4 PLD设计工具 ........................................................................................................ 7 2.2.5 其它EDA软件 ....................................................................................................... 9 2.3 EDA的应用 ........................................................................................................................ 9 2.4 EDA技术的发展趋势 ...................................................................................................... 10 三、选用的开发平台 ..................................................................................................................... 11 四、设计要求与方案 ..................................................................................................................... 12
4.1设计要求 .......................................................................................................................... 12 4.2方案设计与论证 .............................................................................................................. 12 4.3 单元电路设计 ................................................................................................................. 13
4.3.1 抢答鉴别模块 ..................................................................................................... 13 4.3.2 计数模块 ............................................................................................................. 14 4.3.3 报警模块 ............................................................................................................. 15 4.3.4 七段译码器模块 ................................................................................................. 16 4.3.5 分频模块 ............................................................................................................. 16 4.3.6 顶层文件 ............................................................................................................. 18
五、锁定引脚及下载 ..................................................................................................................... 20
5.1 选择锁定引脚,再重新编译一次 ................................................................................. 20 5.2 锁定引脚: ....................................................................................................................... 20 六、总结......................................................................................................................................... 20 参考文献......................................................................................................................................... 21
一、EDA的发展历史
20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,
2
已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
二、EDA技术的概念与应用
2.1 EDA技术的基本概念
EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。
EDA设计可分为系统级、电路级和物理实现级。
2.2 EDA工具软件
3
EDA工具软件可大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。
目前进入我国并具有广泛影响的EDA软件是系统设计软件辅助类和可编程芯片辅助设计软件:Quartus II、Protel、Altium Designer、PSPICE、multisim 10(原EWB的最新版本)、OrCAD、PCAD、LSIIogic、MicroSim、ISE、modelsim、Matlab等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同进还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。
下面按主要功能或主要应用场合,分为电路设计与仿真工具、PCB设计软件、IC设计软件、PLD设计工具及其它EDA软件,进行简单介绍。 2.2.1 电子电路设计与仿真工具
我们大家可能都用过试验板或者其他的东西制作过一些电子制做来进行实践。但是有的时候,我们会发现做出来的东西有很多的问题,事先并没有想到,这样一来就浪费了我们的很多时间和物资。而且增加了产品的开发周期和延续了产品的上市时间从而使产品失去市场竞争优势。有没有能够不动用电烙铁试验板就能知道结果的方法呢?结论是有,这就是电路设计与仿真技术。
电子电路设计与仿真工具包括SPICE/PSPICE;multiSIM7;Matlab;SystemView;MMICAD LiveWire、Edison、Tina Pro Bright Spark等。下面简单介绍前三个软件。
①SPICE(Simulation Program with Integrated Circuit Emphasis):是由美国加州大学推出的电路分析仿真软件,是20世纪80年代世界上应用最广的电路设计软件,1998年被定为美国国家标准。1984年,美国MicroSim公司推出了基于SPICE的微机版PSPICE(Personal-SPICE)。现在用得较多的是PSPICE6.2,可以说在同类产品中,它是功能最为强大的模拟和数字电路混合仿真EDA软件,在国内普遍使用。最新推出了PSPICE9.1版本。
它可以进行各种各样的电路仿真、激励建立、温度与噪声分析、模拟控制、波形输出、数据输出、并在同一窗口内同时显示模拟与数字的仿真结果。无论对哪种器件哪些电路进行仿真,都可以得到精确的仿真结果,并可以自行建立元器件及元器件库。
②multiSIM(EWB的最新版本)软件:是Interactive Image Technologies Ltd在20世纪末推出的电路仿真软件。其最新版本为multiSIM7,目前普遍使用的是multiSIM2001,相对于其它EDA软件,它具有更加形象直观的人机交互界面,特别是其仪器仪表库中的各仪器仪表与操作真实实验中的实际仪器仪表完全
4
没有两样,但它对模数电路的混合仿真功能却毫不逊色,几乎能够100%地仿真出真实电路的结果,并且它在仪器仪表库中还提供了万用表、信号发生器、瓦特表、双踪示波器(对于multiSIM7还具有四踪示波器)、波特仪(相当实际中的扫频仪)、字信号发生器、逻辑分析仪、逻辑转换仪、失真度分析仪、频谱分析仪、网络分析仪和电压表及电流表等仪器仪表。还提供了我们日常常见的各种建模精确的元器件,比如电阻、电容、电感、三极管、二极管、继电器、可控硅、数码管等等。模拟集成电路方面有各种运算放大器、其他常用集成电路。数字电路方面有74系列集成电路、4000系列集成电路、等等还支持自制元器件。MultiSIM7还具有I-V分析仪(相当于真实环境中的晶体管特性图示仪)和Agilent信号发生器、Agilent万用表、Agilent示波器和动态逻辑平笔等。同时它还能进行VHDL仿真和Verilog HDL仿真。
③MATLAB产品族:它们的一大特性是有众多的面向具体应用的工具箱和仿真块,包含了完整的函数集用来对图像信号处理、控制系统设计、神经网络等特殊应用进行分析和设计。它具有数据采集、报告生成和MATLAB语言编程产生独立C/C++代码等功能。MATLAB产品族具有下列功能:数据分析;数值和符号计算、工程与科学绘图;控制系统设计;数字图像信号处理;财务工程;建模、仿真、原型开发;应用开发;图形用户界面设计等。MATLAB产品族被广泛应用于信号与图像处理、控制系统设计、通讯系统仿真等诸多领域。开放式的结构使MATLAB产品族很容易针对特定的需求进行扩充,从而在不断深化对问题的认识同时,提高自身的竞争力。
2.2.2 PCB设计软件
PCB(Printed-Circuit Board)设计软件种类很多,如Protel、Altium Designer、OrCAD、Viewlogic、PowerPCB、Cadence PSD、MentorGraphices的Expedition PCB、Zuken CadStart、Winboard/Windraft/Ivex-SPICE、PCB Studio、TANGO、PCBWizard(与LiveWire配套的PCB制作软件包)、ultiBOARD7(与multiSIM2001配套的PCB制作软件包)等等。
目前在我国用得最多当属Protel,下面仅对此软件作一介绍。
Protel是PROTEL(现为Altium)公司在20世纪80年代末推出的CAD工具,是PCB设计者的首选软件。它较早在国内使用,普及率最高,在很多的大、中专院校的电路专业还专门开设Protel课程,几乎所在的电路公司都要用到它。早期的Protel主要作为印刷板自动布线工具使用,其最新版本为Altium Designer
5
10,现在普遍使用的是Protel99SE,它是个完整的全方位电路设计系统,包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印刷电路板设计(包含印刷电路板自动布局布线),可编程逻辑器件设计、图表生成、电路表格生成、支持宏操作等功能,并具有Client/Server(客户/服务体系结构), 同时还兼容一些其它设计软件的文件格式,如ORCAD、PSPICE、EXCEL等。使用多层印制线路板的自动布线,可实现高密度PCB的100%布通率。Protel软件功能强大(同时具有电路仿真功能和PLD开发功能)、界面友好、使用方便,但它最具代表性的是电路设计和PCB设计。 2.2.3 IC设计软件
IC设计工具很多,其中按市场所占份额排行为Cadence、Mentor Graphics和Synopsys。这三家都是ASIC设计领域相当有名的软件供应商。其它公司的软件相对来说使用者较少。中国华大公司也提供ASIC设计软件(熊猫2000);另外近来出名的Avanti公司,是原来在Cadence的几个华人工程师创立的,他们的设计工具可以全面和Cadence公司的工具相抗衡,非常适用于深亚微米的IC设计。
下面按用途对IC设计软件作一些介绍。 ①设计输入工具
这是任何一种EDA软件必须具备的基本功能。像Cadence的composer,viewlogic的viewdraw,硬件描述语言VHDL、Verilog HDL是主要设计语言,许多设计输入工具都支持HDL(比如说multiSIM等)。另外像Active-HDL和其它的设计输入方法,包括原理和状态机输入方法,设计FPGA/CPLD的工具大都可作为IC设计的输入手段,如Xilinx、Altera等公司提供的开发工具Modelsim FPGA等。
②设计仿真工作
我们使用EDA工具的一个最大好处是可以验证设计是否正确,几乎每个公司的EDA产品都有仿真工具。Verilog-XL、NC-verilog用于Verilog仿真,Leapfrog用于VHDL仿真,Analog Artist用于模拟电路仿真。Viewlogic的仿真器有:viewsim门级电路仿真器,speedwaveVHDL仿真器,VCS-verilog仿真器。Mentor Graphics有其子公司Model Tech出品的VHDL和Verilog双仿真器:Model Sim。Cadence、Synopsys用的是VSS(VHDL仿真器)。现在的趋势是各大EDA公司都逐渐用HDL仿真器作为电路验证的工具。
③综合工具
综合工具可以把HDL变成门级网表。这方面Synopsys工具占有较大的
6
优势,它的Design Compile是作为一个综合的工业标准,它还有另外一个产品叫Behavior Compiler,可以提供更高级的综合。
另外最近美国又出了一个软件叫Ambit,据说比Synopsys的软件更有效,可以综合50万门的电路,速度更快。今年初Ambit被Cadence公司收购,为此Cadence放弃了它原来的综合软件Synergy。随着FPGA设计的规模越来越大,各EDA公司又开发了用于FPGA设计的综合软件,比较有名的有:Synopsys的FPGA Express, Cadence的Synplity, Mentor的Leonardo,这三家的FPGA综合软件占了市场的绝大部分。
④布局和布线
在IC设计的布局布线工具中,Cadence软件是比较强的,它有很多产品,用于标准单元、门阵列已可实现交互布线。最有名的是Cadence spectra,它原来是用于PCB布线的,后来Cadence把它用来作IC的布线。其主要工具有:Cell3,Silicon Ensemble-标准单元布线器;Gate Ensemble-门阵列布线器;Design Planner-布局工具。其它各EDA软件开发公司也提供各自的布局布线工具。
⑤物理验证工具
物理验证工具包括版图设计工具、版图验证工具、版图提取工具等等。这方面Cadence也是很强的,其Dracula、Virtuso、Vampire等物理工具有很多的使用者。
⑥模拟电路仿真器
前面讲的仿真器主要是针对数字电路的,对于模拟电路的仿真工具,普遍使用SPICE,这是唯一的选择。只不过是选择不同公司的SPICE,像MiceoSim的PSPICE、Meta Soft的HSPICE等等。HSPICE现在被Avanti公司收购了。在众多的SPICE中,HSPICE作为IC设计,其模型多,仿真的精度也高。 2.2.4 PLD设计工具
PLD(Programmable Logic Device)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。目前主要有两大类型:CPLD(Complex PLD)和FPGA(Field Programmable Gate Array)。它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现。生产PLD的厂家很多,但最有代表性的PLD厂家为Altera、Xilinx和Lattice公司。
PLD的开发工具一般由器件生产厂家提供,但随着器件规模的不断增加,软件的复杂性也随之提高,目前由专门的软件公司与器件生产厂家使用,推出功能
7
强大的设计软件。下面介绍主要器件生产厂家和开发工具。
①ALTERA:20世纪90年代以后发展很快。主要产品有:MAX3000/7000、FELX6K/10K、APEX20K、ACEX1K、Stratix等。其开发工具-MAX+PLUS II是较成功的PLD开发平台,最新又推出了Quartus II开发软件。Altera公司提供较多形式的设计输入手段,绑定第三方VHDL综合工具,如:综合软件FPGA Express、Leonard Spectrum,仿真软件ModelSim。
②XILINX:FPGA的发明者。产品种类较全,主要有:XC9500/4000、Coolrunner(XPLA3)、Spartan、Vertex等系列,其最大的Vertex-II Pro器件已达到800万门。开发软件为Foundation和ISE。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。
③Lattice-Vantis:Lattice是ISP(In-System Programmability)技术的发明者。ISP技术极大地促进了PLD产品的发展,与ALTERA和XILINX相比,其开发工具比Altera和Xilinx略逊一筹。中小规模PLD比较有特色,大规模PLD的竞争力还不够强(Lattice没有基于查找表技术的大规模FPGA),1999年推出可编程模拟器件,1999年收购Vantis(原AMD子公司),成为第三大可编程逻辑器件供应商。2001年12月收购Agere公司(原Lucent微电子部)的FPGA部门。主要产品有ispLSI2000/5000/8000,MACH4/5。
④ACTEL:反熔丝(一次性烧写)PLD的领导者。由于反熔丝PLD抗辐射、耐高低温、功耗低、速度快,所以在军品和宇航级上有较大优势。ALTERA和XILINX则一般不涉足军品和宇航级市场。
⑤Quicklogic:专业PLD/FPGA公司,以一次性反熔丝工艺为主,在中国地区销售量不大。
⑥Lucent:主要特点是有不少用于通讯领域的专用IP核,但PLD/FPGA不是Lucent的主要业务,在中国地区使用的人很少。
⑦ATMEL:中小规模PLD做得不错。ATMEL也做了一些与Altera和Xilinx兼容的片子,但在品质上与原厂家还是有一些差距,在高可靠性产品中使用较少,多用在低端产品上。
⑧Clear Logic:生产与一些著名PLD/FPGA大公司兼容的芯片,这种芯片可将用户的设计一次性固化,不可编程,批量生产时的成本较低。
⑨WSI:生产PSD(单片机可编程外围芯片)产品。这是一种特殊的PLD,如最新的PSD8xx、PSD9xx集成了PLD、EPROM、Flash,并支持ISP(在线编程),集成度高,主要用于配合单片机工作。
8
⑦Altium:提供Actel、Altera、Lattice和Xilinx四家PLD/FPGA器件的通用跨厂商开发平台,最新推出了Altium Designer 10 软件中集成了Aldec HDL仿真功能。
顺便提一下:PLD(可编程逻辑器件)是一种可以完全替代74系列及GAL、PLA的新型电路,只要有数字电路基础,会使用计算机,就可以进行PLD的开发。PLD的在线编程能力和强大的开发软件,使工程师可以几天,甚至几分钟内就可完成以往几周才能完成的工作,并可将数百万门的复杂设计集成在一颗芯片内。PLD技术在发达国家已成为电子工程师必备的技术。 2.2.5 其它EDA软件
①VHDL语言:超高速集成电路硬件描述语言(VHSIC Hardware Deseription Languagt,简称VHDL),是IEEE的一项标准设计语言。它源于美国国防部提出的超高速集成电路(Very High Speed Integrated Circuit,简称VHSIC)计划,是ASIC设计和PLD设计的一种主要输入工具。
②Veriolg HDL:是Verilog公司推出的硬件描述语言,在ASIC设计方面与VHDL语言平分秋色。
2.3 EDA的应用
EDA在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。在教学方面,几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本概念和基本原理、掌握用HDL语言编写规范、掌握逻辑综合的理论和算法、使用EDA工具进行电子电路课程的实验验证并从事简单系统的设计。一般学习电路仿真工具(如multiSIM、PSPICE)和PLD开发工具(如Altera/Xilinx的器件结构及开发系统),为今后工作打下基础。
科研方面主要利用电路仿真工具(multiSIM或PSPICE)进行电路设计与仿真;利用虚拟仪器进行产品测试;将CPLD/FPGA器件实际应用到仪器设备中;从事PCB设计和ASIC设计等。
产品设计与制造方面,包括计算机仿真,产品开发中的EDA工具应用、系统级模拟及测试环境的仿真,生产流水线的EDA技术应用、产品测试等各个环节。如PCB的制作、电子设备的研制与生产、电路板的焊接、ASIC的制作过程等。
9
从应用领域来看,EDA技术已经渗透到各行各业,如上文所说,包括在机械、电子、通信、航空航航天、化工、矿产、生物、医学、军事等各个领域,都有EDA应用。另外,EDA软件的功能日益强大,原来功能比较单一的软件,现在增加了很多新用途。如AutoCAD软件可用于机械及建筑设计,也扩展到建筑装璜及各类效果图、汽车和飞机的模型、电影特技等领域。
2.4 EDA技术的发展趋势
从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。
中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PCB制板和小型ASIC领域,仅有小部分(约11%)的设计人员开发复杂的片上系统器件。为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要引进和学习一些最新的EDA技术。
在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。有条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际竞争。开展“数控化”工程和“数字化”工程。自动化仪表的技术发展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、通信与计算机(M3C)结构。在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方面发展。
外设技术与EDA工程相结合的市场前景看好,如组合超大屏幕的相关连接,多屏幕技术也有所发展。
中国自1995年以来加速开发半导体产业,先后建立了几所设计中心,推动系列设计活动以应对亚太地区其它EDA市场的竞争。
在EDA软件开发方面,目前主要集中在美国。但各国也正在努力开发相应的工具。日本、韩国都有ASIC设计工具,但不对外开放。中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具在各地开花并结果。据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年夏合增长率分别达到了50%和30%。
10
三、选用的开发平台
本次课题是在Altera公司提供的DE2开发板上完成的,其上的布局和组件如下图1所示:
图1 DE2开发板
设计所需要的DE2板上的资源,说明如下:
1).Power Supply Input:供电输入接口,给整块系统DE2板供电。 2). Power ON/OFF Switch:电源开关,控制整块板的电源供电情况。 3).16X2 LCD Interface:16X2液晶显示屏接口,供实验观察现象所用。 4).EPCS4:模块间的传输装置。
5). USB Blaster Circuit:USB传输线电路,供系统下载程序用。 6). 7-Segment Display (8) :七段数码显示管,供试验显示数据用。 7).RUN/PROG开关:下载模式的选择。
8). Slide Switches (18) :用高低电平来控制的十八个滑动开关。 9). User LEDs (18 ):18个发光二极管。 10). Cyclone III:FPGA的核心芯片。
11). 50-MHz Oscillator:50MHZ的晶振,给系统提供频率。
12). USB Blaster Connector:供程序下载到DE2开发板的USB连接线。
11
四、设计要求与方案
4.1设计要求
1.抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0~ S3表示。 2.设置一个系统清除和抢答控制开关rst,该开关由主持人控制。 3.抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED和数码管上显示,同时提示灯亮。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
4. 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如20秒) 5. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示20。
4.2方案设计与论证
概述
将该任务分成五个模块进行设计,分别为:抢答器鉴别模块、抢答器计时模块、报警模块、分频模块、译码模块。
抢答器鉴别模块:
在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余的抢答信号封锁的功能。其中有四个抢答信号s0、s1、s2、s3;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号warm。
抢答器计数模块:
在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行20秒的倒计时,并且在20秒倒计时后无人抢答显示超时并报警。其中有抢答时钟信号clk1;系统复位信号rst;抢答使能信号start;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。
报警模块:
12
在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内 人抢答或是计数到时蜂鸣器开始报警,计数停止信号stop;状态输出信号alm;计数脉冲clk。
译码模块:
在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。 分频模块:
在这个模块中主要实现抢答过程中所需的时钟信号。
4.3 单元电路设计
4.3.1 抢答鉴别模块
VHDL源程序
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity xuanshou is
port(rst,clk2:in std_logic; s0,s1,s2,s3:in std_logic;
states:buffer std_logic_vector(3 downto 0); light:buffer std_logic_vector(3 downto 0);
warm:out std_logic);
end xuanshou ;
architecture one of xuanshou is
signal st:std_logic_vector(3 downto 0); begin
p1:process(s0,rst,s1,s2,s3,clk2) begin
if rst='0' then
warm<='0';st<=\"0000\";
elsif clk2'event and clk2='1' then
if (s0='1' or st(0)='1')and not( st(1)='1' or st(2)='1' or st(3)='1' )
then st(0)<='1'; end if ;
if (s1='1' or st(1)='1')and not( st(0)='1' or st(2)='1' or st(3)='1' )
13
then st(1)<='1'; end if ;
if (s2='1' or st(2)='1')and not( st(0)='1' or st(1)='1' or st(3)='1' )
then st(2)<='1'; end if ;
if (s3='1' or st(3)='1')and not( st(0)='1' or st(1)='1' or st(2)='1' )
then st(3)<='1'; end if ;
warm<=st(0) or st(1) or st(2) or st(3); end if ;
end process p1;
p2:process(states(0),states(1),states(2),states(3),light) begin
if (st=\"0000\") then states<=\"0000\"; elsif (st<=\"0001\") then states<=\"0001\"; elsif (st<=\"0010\") then states<=\"0010\"; elsif (st<=\"0100\") then states<=\"0011\"; elsif (st<=\"1000\") then states<=\"0100\"; end if; light<=st;
end process p2; end one;
4.3.2 计数模块
VHDL源程序
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity JS is
port(clk1,rst,start,stop:in std_logic;
ta,tb:buffer std_logic_vector(3 downto 0)); end JS;
architecture one of JS is signal co:std_logic; begin
p1:process(clk1,rst,start,stop,ta) begin
if rst='0' or stop='1' then
14
ta<=\"0000\";
elsif clk1'event and clk1='1' then co<='0';
if start='1' then if ta=\"0000\" then ta<=\"1001\";co<='1'; else ta<=ta-1; end if; end if; end if; end process p1;
p2:process(co,rst,start,stop,tb) begin
if rst='0' or stop='1' then tb<=\"0010\";
elsif co'event and co='1' then if start='1' then
if tb=\"0000\" then tb<=\"0011\"; else tb<=tb-1; end if; end if; end if; end process p2; end one ;
4.3.3 报警模块
VHDL源程序
library ieee;
use ieee.std_logic_1164.all; entity shengyin is port(rst:in std_logic; warn:in std_logic; clk:in std_logic;
ta,tb:in integer range 0 to 9; stop:in std_logic; alm:out std_logic ); end;
architecture bhv of shengyin is begin
process(warn,ta,tb,stop,clk) begin
15
if rst='0'then alm<='0';
elsif stop='1'then alm<='0';
elsif ta=0 and tb=0 then alm<=clk;
elsif warn='1'then alm<=clk;
else alm<='0'; end if;
end process; end;
4.3.4 七段译码器模块
VHDL源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY YMQ IS
PORT(bcd:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
dout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END YMQ ;
ARCHITECTURE rtl OF YMQ IS BEGIN
PROCESS(bcd) BEGIN
CASE bcd IS
WHEN \"0000\"=>dout<=\"1000000\"; WHEN \"0001\"=>dout<=\"1111001\"; WHEN \"0010\"=>dout<=\"0100100\"; WHEN \"0011\"=>dout<=\"0110000\"; WHEN \"0100\"=>dout<=\"0011001\"; WHEN \"0101\"=>dout<=\"0010010\"; WHEN \"0110\"=>dout<=\"0000010\"; WHEN \"0111\"=>dout<=\"1111000\"; WHEN \"1000\"=>dout<=\"0000000\"; WHEN \"1001\"=>dout<=\"0010000\"; WHEN OTHERS=>dout<=\"1111111\";
END CASE;
END PROCESS; END rtl; 4.3.5 分频模块
16
(用500HZ的时钟和1HZ的计数时钟)
1.Div100
library ieee;
use ieee.std_logic_1164.all; entity div100 is port(
clk:in std_logic; clk100:out std_logic );
end div100;
architecture art of div100 is
signal num: integer range 0 to 99; signal temp:std_logic; begin
process(clk) begin
if clk'event and clk='1'then if num=99 then
num<=0;temp<=not temp; else num<=num+1; end if;
clk100<=temp; end if;
end process; end art;
2.DIV50M:
这是一个50M分频,将50MHZ的信号分为1HZ。 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpin IS
PORT(clk : IN STD_LOGIC; clk50 : OUT STD_LOGIC); END fenpin;
ARCHITECTURE rtl OF fenpin IS
SIGNAL count : STD_LOGIC_VECTOR(25 DOWNTO 0); BEGIN
PROCESS(clk) BEGIN
IF (clk'event AND clk='1') THEN
17
IF(count=\"10111110101111000010000000\") THEN Count <=\"00000000000000000000000000\"; ELSE
Count <= count +1; END IF ; END IF ; END PROCESS; PROCESS(clk) BEGIN
IF (clk'event AND clk='1') THEN
IF(count=\"10111110101111000010000000\") THEN clk50 <= '1'; ELSE
clk50 <= '0'; END IF ; END IF ; END PROCESS; END;
4.3.6 顶层文件 1.仿真图:
18
2. QDQ_1主电路图连线
3.顶层电路
s0INPUTVCCINPUTVCCINPUTVCCINPUTVCCPIN_N25PIN_N26PIN_P25PIN_AE14PIN_AF14s1s2s3rstQDQ_1rsts0s1s2s3clkclk1startstopinstYMQINPUTVCCdiv10clkclk10div100clkclk100div100clkclk100NUM[3..0]LED[3..0]soundta[3..0]tb[3..0]bcd[3..0]dout[6..0]OUTPUTnum[6..0]inst4OUTPUTled[3..0]PIN_V13PIN_V14PIN_AE11PIN_AD11PIN_AC12PIN_AB12PIN_AF10PIN_AC22PIN_AB21PIN_AF23PIN_AA14PIN_AE23inst1inst7inst2OUTPUTsoundfenpinclkclk50YMQbcd[3..0]dout[6..0]OUTPUTta[6..0]inst3clkINPUTVCCinst5YMQbcd[3..0]dout[6..0]OUTPUTPIN_N2startINPUTVCCINPUTVCCtb[6..0]PIN_AD13PIN_AC13stopinst6PIN_Y24PIN_AB25PIN_AB26PIN_AC26PIN_AC25PIN_V22PIN_AB23PIN_W24PIN_U22PIN_Y25PIN_Y26PIN_AA26PIN_AA25PIN_Y23 19
五、锁定引脚及下载
5.1 选择锁定引脚,再重新编译一次
在编程窗的Mode中选择Active Serial programming编程模式,打开编程文件,选中QDQ.pof,并选中打钩前3个编程项目,在ED2板上选择PROG模式,然后下载。
5.2 锁定引脚:
时钟信号 clk N2
发光二极管 LEDRO-LEDR3(AE23.AF23.AB21.AC22)
数码管 num0-num6 (AB12.AC12.AD11.AE11.V14.V13)
ta0-ta6 (AB23.V22.AC25.AC26.AB26.AB25.Y24) tb0-tb6 (Y23.AA25.AA26.Y26.Y25.U22.W24)
开关rst AF14
SW0-SW3(N25.N26.P25.AE14) SOUND AA14 START AD13 STOP AC13
六、总结
总的来说,这次设计的抢答器还是比较成功的,在设计中遇到了一些问题,比如:时钟信号的选取,时间延时问题,计数停止方式等,最后在老师的指导和大家的努力下,终于将设计时间问题处理好,性能有了很大的改进。
由于我的知识非常有限,所以在此次毕业设计的过程中遇到了不少困难。在XX老师的悉心指导下终于克服了困难顺利完成任务。XX老师渊博的学识、严谨的治学态度和认真负责的工作作风深深地激励着我,她对问题的真知灼见和清晰的学术思路给了我极大的启迪和教育。在毕业设计完成之际,谨向尊敬的指导老师XX表示由衷的谢意!
20
参考文献
[1]宋烈武《EDA设计与实践教程》.电子工业出版社,2009.8
[2]潘松,黄继业.《EDA技术实用教程》(第二版).科学出版社,2005.2 [3]曹昕燕,周风臣,聂春燕:《EDA技术试验与课程设计》,清华大学出版社 [4]黄仁欣:《EDA技术实用教程》,清华大学出版社
[5]王振红:《数字电路设计与应用实践教程》,机械工业出版社
21
因篇幅问题不能全部显示,请点此查看更多更全内容