《通信电路EDA》课程设计报告基于VHDL语言的8路抢答器设计_第1页
《通信电路EDA》课程设计报告基于VHDL语言的8路抢答器设计_第2页
《通信电路EDA》课程设计报告基于VHDL语言的8路抢答器设计_第3页
《通信电路EDA》课程设计报告基于VHDL语言的8路抢答器设计_第4页
《通信电路EDA》课程设计报告基于VHDL语言的8路抢答器设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、长沙理工大学通信电路eda课程设计报告 * 学 院 城南学院 专 业 通信工程 班 级 通信0801 学 号 学生姓名 * 指导教师 课程成绩 完成日期 2010年12月31日课程设计任务书城南学院 计算机与通信工程系 通信工程专业课程名称通信电路eda课程设计时间20102011学年第1学期1618周学生姓名*指导老师题 目基于vhdl语言的8路抢答器设计主要内容:本课程设计要求设计一个8路抢答器。要求如下:1. 抢答器具有八路抢答输入。2. 抢答器具有逻辑设计合理(具有抢答锁定),抢答编码显示,抢答成功指示,抢答完成后状态复位等功能。3. 主持人按键清零,数码显示0,蜂鸣器不叫,进入抢答状

2、态。4. 主持人发出开始命令,8人开始抢答。其中一人先按下抢答键,蜂鸣器发出鸣叫,数码显示该人号码,其他人再按键,系统不再响应,直至主持人按键清零,下一次抢答开始。要求:(1)要求能独立地运用vhdl语言、eda相关知识和max plus ii仿真软件,编制一个简单的课程设计。(2)学生按要求编写课程设计报告书,能正确阐述设计和实验结果。(3)通过课程设计培养学生严谨的科学态度和团队协作精神。(4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以及实现,给出个人分析、设计以及实现。应当提交的文件:(1)课程设计报告。(2)课程设计附件(源程序、各类图纸、实验数据、仿真截图等

3、实证材料)。课程设计成绩评定学 院 城南学院 专 业 通信工程 班 级 通信0801 学 号 学生姓名 * 指导教师 完成日期 2010年12月31日 指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩 指导教师签字 年 月 日基于vhdl语言的8路抢答器设计学生姓名:* 指导老师: 摘 要 本课程设计分为主体电路和扩展电路两部分共同实现抢答器的锁存、显示与报警功能。在本次设计中,系统开发平台为max plus,硬件描述语言是vhdl。

4、竞赛者可以分为8组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。当第一个人按下按键后,则在显示器上显示该组的号码,对应的灯亮,同时电路将其他各组按键封锁,使其不起作用。若抢答时间内无人抢答,则报警灯亮。回答完问题后,由主持人将所有按键恢复,重新开始下一轮抢答。并且依据设计方案和设计平台完成了程序编写和程序调试,通过运行程序及时序波形的仿真有效验证了设计的正确性,初步实现了设计目标。关键词 锁存、显示;抢答器;max plus ;vhdl。abstract:this course design is divided into two main circuit a

5、nd expansion circuit realized partly joint inverter latch responder, display and alarm function. in this design, system developing platform for max plus , hardware description language is vhdl. competitors may be divided into eight groups, vies to answer first when each to the host puts forward the

6、problems in the shortest possible time to make judgments, and press the buttons vies to answer the question. when the first man press buttons, then on screen display supervisor number, the corresponding lights, and other groups circuit will buttons blockade, make it doesnt work. if responder time no

7、 contest, the alarm light. answers questions, by a host will restore all keys and start again next contest. and according to the design scheme and design platform completed programming and program test, through to run the program in time sequence waveform simulation verified effectively the correctn

8、ess of design, and then realized the design goal. keywords: latch, display, scare-answering manometers; max plus ; vhdl. 目录1 引 言11.1 课程设计目的11.2 课程设计具体要求及功能12 eda和max plus简介22.1 eda简介22.2 max plus23 设计方案43.1 抢答器控制系统的设计思路43.2 抢答器的系统结构及工作原理43.3 具体实现64 系统仿真194.1 顶层模块及管脚介绍194.2 仿真结果分析20小结21参考文献22附录23 * 基

9、于vhdl语言的8路抢答器设计 第 30页 共29页1 引 言随着科学技术的不断发展,促使人们学科学、学技术、学知识的手段多种多样。抢答器作为一种工具,已广泛应用于各种竞赛场合。本课程设计以8路抢答器为理念,实现优先抢答、判决、锁存及数码管显示等功能。在本次计中,系统开发平台为max plus2 。max plus是altera公司提供的fpga/cpld开发集成环境,altera是世界上最大可编程逻辑器件的供应商之一。max plus界面友好,使用便捷,被誉为业界最易用易学的eda软件。在max plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无

10、关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。在本次设计中,采用的硬件描述语言是vhdl1(very-high-speed integrated circuit hardware description language)。vhdl语言是一种用于电路设计的高级语言。vhdl主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,vhdl的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。1.1 课程设计目的学习altera公司的fpga/cpld的结构、特点和性能。学习集成开发软件max plus ii/quartus ii的使用及设计过程。

11、熟悉eda工具设计数字电路设计方法,掌握vhdl硬件描述语言设计方法。根据给定题目设计数字电路,来加深对可编程逻辑器件的理解和掌握。1.2 课程设计具体要求及功能在所选择器件内完成八路抢答器的设计,要求设计完成后芯片具有抢答器的全部功能、包括显示和操作接口。抢答器要求有八路抢答输入,抢答逻辑设计合理(具有抢答锁定),抢答编号显示,抢答成功指示,抢答完成后状态复位。在相应的器件平台上完成设计的输入、编译、综合或适配通过。8路抢答器控制系统是娱乐活动中经常使用的重要基础设备之一,根据抢答要求,系统所需实现的功能如下:(1) 主持人按键清零,数码显示0,蜂鸣器不叫,进入抢答状态。(2) 主持人发出开

12、始命令,8人开始抢答。其中一人先按下抢答键,蜂鸣器发出鸣叫,数码显示该人号码,其他人再按键,系统不再响应,直至主持人按键清零,下一次抢答开始。2 eda及max plus 简介2.1 eda简介eda(electronics design automation)技术是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。它是为解决自动控制系统设计而提出的。eda在通信行业(电信)里的另一个解释是企业数据架构,eda给出了一个企业级的数据架构的总体视图,并按照电信企业的特征,进行了框架和层级的划分。eda技术就是以计算机为工具,设计者在eda软件平台上,用硬件描述

13、语言hdl完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。eda技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 利用eda工具,电子设计师可以从概念、算法、协议等开始设计进行八路抢答器的系统,大量工作可以通过计算机完成,并可以将抢答器从电路设计、性能分析到设计出ic版图或pcb版图的整个过程的计算机上自动处理完成。现在对eda的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有eda的应用。目前eda技术已在各大公司、企事

14、业单位和科研教学部门广泛使用。2.2 max plus 简介max plus是altera公司提供的fpga/cpld开发集成环境,altera是世界上最大可编程逻辑器件的供应商之一。max plus界面友好,使用便捷,被誉为业界最易用易学的eda软件。在max plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。max plus的编译器还提供了强大的逻辑综合与优化功能,使用户比较容易地将设计集成到器件中。设计输入max plus ii软件的设计输入方式有多种,主要包括原理图输入方式、文

15、本输入方式、波形设计输入方式、层次设计输入方式和底层设计输入方式。因此,设计人员可以根据自己的实际情况灵活选择使用。设计编译max plus ii编译一个设计时,compiler在设计文件中读取信息并产生编程文件和仿真文件,message processor(信息处理程序)可自动定位错误。设计校验设计校验过程包括设计仿真和定时分析,仿真起的作用是测试逻辑操作和设计功能的完备性;timing analyzer(定时分析程序)可分析设计的定时和延时情况。器件编程 max plus ii programmer是使用compiler生成的编程文件对altera器件进行编程的。它可以用来对器件编程、校验

16、和试验,是对设计功能进行的测试。altera公司器件的编程方法有许多种,可根据具体情况选择使用。编译生成的配置文件经计算机并行通信口接到altera专用编程电缆上,再接到器件的编程接口6,利用应用软件提供的编程软件,programmer即可对器件进行配置。这种方法的优点是配置方便、迅速,便于修改。max plus2在windows 2000/xp上一旦安装完毕,经过设置即可使用硬件下载功能。在windows 2000上除了安装软件外,为了使用byteblaster(mv)下载功能,还必须安装硬件驱动(drivers)以支持max plus2对pc机并行口的操作。3设计方案3.1 八路抢答器控制

17、系统的设计思路抢答器同时供8名选手或8个代表队比赛,分别用8个按钮a1a8。设置一个系统清除和抢答控制开关reset, 该开关由主持人控制。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,扬声器发出声响提示,数码显示选手号码。其他人再按键,系统进行了优先锁存,不再响应,优先抢答选手的编号一直保持到主持人将系统清除为止,下一次抢答开始。扩展功能:该电路具有犯规报警功能。当主持人未按下开关开始抢答前,参赛选手若按下开关,则抢答系统发出蜂鸣声报警并显示犯规组别。3.2 抢答器的系统结构及工作原理(1)系统结构:如图3.1所示为抢答器的结构框图,它由主体电路和扩展电路两部分组成。主体电路完成

18、基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。扩展电路完成检测数码管工作情况。其工作原理为:接通电源后,主持人将开关拨到清除状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置于开始状态,宣布开始抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作清除和开始状态开关。抢答按纽优先编码电路锁存器译码电路控制电路报警电路定时电路译码电路显示电路译码显示

19、主持人控制开关秒脉冲产生电路图3.1 抢答器结构框图(2)工作流程:加载程序运 行行开始开始数码管显示fff开始抢按时间倒计时开始前有选手抢按显示犯规选手号码并伴有语音报警倒计时结束,超时有选手抢按显示fff显示选手号码,倒计时时间,语音报警,答题,答题时间倒计时正常流程犯规流程若超过答题时间,则数码管显示fff答题完毕根据选手表现,规则由主持人减分图3.2抢答器工作流程抢答器的基本工作原理:在抢答竞赛或呼叫时,有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定时器开始工作,记录有关时间并产生超时信号。在整个抢答器工作过程中,显示电路、语音电路等还

20、要根据现场的实际情况向外电路输出相应信号。抢答器的工作流程分为、系统复位、正常流程、犯规流程等几部分。3.3 具体实现(1)抢答器的电路设计1、抢答器电路总体结构:如图3.3所示为总体方框图。接通电源后,后台工作人员将检测开关s置“检测”状态,数码管在正常清除下,显示“”;当后台工作人员将检测开关s置“抢答”状态,主持按系统清除按键,抢答器处于禁止状态,编号显示器灭灯;主持人松开,宣布“开始”,抢答器工作。选手按动抢答按键,抢答器完成:优先判断、编号锁存、编号显示。当一轮抢答之后,优先抢答选手的编号一直保持到主持人将系统清除为止。如果再次抢答必须由主持人再次按动系统清除按键。 抢答按键优先编码

21、器锁存器支持人按钮译码显示器检测按钮图3.3 抢答器总体方框图2、优先判断与编号锁存电路:其电路如图3.4所示。电路选用优先编码器 74ls148 和锁存器 74ls279 来完成。该电路主要完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号;二是禁止其他选手按键,其按键操作无效。工作过程:系统清除按键按动时,74ls279的四个rs触发器的置0端均为0,使四个触发器均被置0。1q为0,使74ls148的使能端 =0,74ls148处于允许编码状态,同时1q为0,使74ls48的灭灯输入端 =0,数码管无显示。这时抢答器处于准备抢答状态。当系统清除按键松开时,抢答器处于等待状态。当

22、有选手将按键开关按下时,抢答器将接受并显示抢答结果,假设按下的是s4,则74ls148的编码输出为011,此代码送入74ls279锁存后,使4q3q2q=100,亦即74ls148的输入为0100;又74ls148的优先编码标志输出 为0,使1q=1,即 =1,74ls148处于译码状态,译码的结果显示为“4”。同时1q=1,使74ls148的 =1,74ls148处于禁止状态,从而封锁了其他按键的输入。此外,当优先抢答者的按键松开再按下时,由于仍为1q=1,使 =1,74ls148仍处于禁止状态,确保不会接受二次按键时的输入信号,保证了抢答者的优先性。(74ls148为8线3线优先编码器,图

23、3.5为74ls148和74ls279的引脚图和真值表。)图3.4 74ls148为8线3线优先编码器inputsoutputsh hlnot sure 图3.5 74ls148和74ls279的引脚图和真值表(2) 抢答器的单元电路设计简易逻辑数字抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。现简单介绍抢答器设计中的抢答电路、定时电路、报警电路、时序控制电路、显示及译码电路。1、抢答电路:参考电路如图3

24、.6所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。工作过程:开关s置于“清除”端时,rs触发器的端均为,4个触发器输出置,使74ls148的,使之处于工作状态。当开关s置于“开始”时,抢答器处经rs锁存后,1q=1,=1,74ls48处于工作状态,4q3q2q=101,经译码显示为“5”。此外,1q,使74ls148,处于禁止状态,封锁其他按键的输入。当按键松开即按下时,74ls148的此时由于仍为1q,使,所以74ls148仍处于禁止状态,确保不会出二次按键时输入信号,保证了抢答者的优先性。如有再次抢答需由

25、主持人将开关重新置于“清除”然后再进行下一轮抢答。(ls148为线线优先编码器。)图3.6 抢答电路2、定时电路:由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。可预置时间的电路选用十进制同步加减计数器74ls192进行设计,具体电路如图3.7所示。本设计是以555构成震荡电路,由74ls192来充当计数器,构成抢答器的倒计时电路。该电路简单,无需用到晶振,芯片都是市场上容易购得的。设计功能完善,能实现直接清零、启动。图3.7 定时电路3、报警电路:由555定时器和三极管构成的报警电路如图3.8所示。其中555构成多谐振

26、荡器,振荡频率fo143(ri2r2)c,其输出信号经三极管推动扬声器。pr为控制信号,当pr为高电平时,多谐振荡器工作,反之,电路停振。图3.8 报警电路4、时序控制电路:时序控制电路是抢答器设计的关键,它要完成以下三项功能:(a) 主持人将控制开关拨到开始位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。(b) 当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。(c) 当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作。根据上面的功能要求,设计的时序控制电路如图 3.9所示。图中,门g1 的作用是控制时钟信号cp的放行与禁止,门g2的作用是控

27、制74ls148的输人使能端 。图4-3的工作原理是:主持人控制开关从清除位置拨到开始位置时,来自于图4-1中的74ls279的输出 1q=0,经g3反相, a1,则时钟信号cp能够加到74ls192的cpd时钟输入端,定时电路进行递减计时。同时,在定时时间未到时,则定时到信号为1,门g2的输出=0,使 74ls148处于正常工作状态,从而实现功能的要求。当选手在定时时间内按动抢答键时,1q1,经 g3反相, a0,封锁 cp信号,定时器处于保持工作状态;同时,门g2的输出=1,74ls148处于禁止工作状态,从而实现功能的要求。当定时时间到时,则定时到信号为0,=1,74ls148处于禁止工

28、作状态,禁止选手进行抢答。同时, 门g1处于关门状态,封锁 cp信号,使定时电路保持00状态不变,从而实现功能的要求。集成单稳触发器74ls121用于控制报警电路及发声的时间。图3.9 时序控制电路5、显示与译码电路:七段显示译码器与数码管如下图3.10 7段显示译码所示,74ls48将锁存器74ls279的信号译码,输出给数码管。当后台工作人员将s置于gnd,=0,使灯测试输入端(图中3号)=1,这时测试数码管工作情况;当后台工作人员将s置于vcc,=1,使灯测试输入端(图中3号)=1,这时正常译码。(74ls48为4线七段译码器/驱动器,下图3.11为逻辑图)图3.10 7段显示译码器与数

29、码管图3.11 74ls48逻辑图(3) 基于vhdl的实体设计:1、程序设计编码程序:library ieee;use ieee.std_logic_1164.all;entity change isport(q1,q2,q3,q4,q5,q6,q7,q8: in std_logic; clr : in std_logic; m: out std_logic_vector(3 downto 0); en: out std_logic);end change;architecture a of change isbeginprocess(q1,q2,q3,q4,q5,q6,q7,q8,clr)

30、variable temp:std_logic_vector(7 downto 0);begintemp:=q1&q2&q3&q4&q5&q6&q7&q8;case temp iswhen01111111=mmmmmmmmm=1111;end case;en = temp(7) and temp(6) and temp(5) and temp(4) and temp(3) and temp(2) and temp(1) and temp(0) and clr;end process;end a;对应的管脚图和仿真图如下:图3.12 编码模块管脚图图3.13 编码模块仿真图锁存程序:librar

31、y ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity lock isport(s1: in std_logic;s2: in std_logic; s3: in std_logic;s4: in std_logic;s5: in std_logic;s6: in std_logic;s7: in std_logic;s8: in std_logic;clr: instd_logic; q1,q2,q3,q4,q5,q6,q7,q8: outstd_logic);end lock;architectur

32、e a of lock isbeginprocess(s1,s2,s3,s4,s5,s6,s7,s8,clr)beginif(clr =0) thenq1=1;q2=1;q3=1;q4=1;q5=1;q6=1;q7=1;q8=1;elseq1=s1;q2=s2;q3=s3;q4=s4;q5=s5;q6=s6;q7=s7;q8=s8;end if;end process;end a;对应的管脚图和仿真图如下:图3.14 锁存模块管脚图图3.15 锁存模块仿真图抢答成功扬声器发声相关程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_l

33、ogic_unsigned.all;entity cnt isport(clk,en: in std_logic; sound1:out std_logic);end cnt;architecture a of cnt isbeginprocess(en,clk)beginif(clkevent and clk=1) then if(en=1) then sound1=1; else sound1 bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd mmmmmmmmm=1111; / 当temp为其他情况则m显示fend case;en = temp(7)

34、and temp(6) and temp(5) and temp(4) and temp(3) and temp(2) and temp(1) and temp(0) and clr;end process;end a;锁存模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity lock is / 程序名称:lockport(s1: in std_logic; / 定义输入端s1 s2: in std_logic; / 定义输入端s2 s3: in std_logic; / 定义输

35、入端s3 s4: in std_logic; / 定义输入端s4 s5: in std_logic; / 定义输入端s5 s6: in std_logic; / 定义输入端s6 s7: in std_logic; / 定义输入端s7 s8: in std_logic; / 定义输入端s8clr: instd_logic; q1,q2,q3,q4,q5,q6,q7,q8: outstd_logic); / 定义输出端q1q8end lock;architecture a of lock isbeginprocess(s1,s2,s3,s4,s5,s6,s7,s8,clr)beginif(clr

36、=0) then / 整个if语句实现锁存功能,当clr=0时,s1s8锁住;当clr=1q时,s1s8解锁,q1q8对应输出s1s8的值q1=1;q2=1; q3=1;q4=1;q5=1;q6=1;q7=1;q8=1;elseq1=s1;q2=s2;q3=s3;q4=s4;q5=s5;q6=s6;q7=s7;q8=s8;end if;end process;end a;抢答成功扬声器发声模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt is / 程序名称:cutpo

37、rt(clk,en: in std_logic; / 定义输入:clk,en sound1:out std_logic); / 定义输出:sound1end cnt;architecture a of cnt isbeginprocess(en,clk)beginif(clkevent and clk=1) then / 当抢答控制开关打开即:clk=1时 if(en=1) then / 当en=1抢答成功 sound1=1; / 扬声器sound1=1 发声 else sound1 bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd bcd =00000000; /当m为其他数时,输出bcd=00end case;end proces

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论