EDA应用技术 第2版 课件 项目3 四路抢答器编程下载_第1页
EDA应用技术 第2版 课件 项目3 四路抢答器编程下载_第2页
EDA应用技术 第2版 课件 项目3 四路抢答器编程下载_第3页
EDA应用技术 第2版 课件 项目3 四路抢答器编程下载_第4页
EDA应用技术 第2版 课件 项目3 四路抢答器编程下载_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

项目3四路抢答器设计制作方案基于FPGA的最小系统板,用VHDL程序设计制作四路抢答器。通过四路抢答器电路设计,理解VHDL程序的结构及语言要素,熟悉VHDL程序的数据对象、数据类型及基本运算符。教学目标项目3四路抢答器设计制作方案技能目标知识目标素质目标(1)能使用QuartusPrime软件,应用文本输入法设计数字电路。(2)能将数字电路转化为硬件语言描述文件。(3)能用按键开关、数码管、蜂鸣器设计数字电路的输入与输出部分。(4)能进行VHDL程序与FPGA的在线联合调试。(5)会设置信号数据对象的主要属性。(6)能自定义数据类型。(1)了解常用硬件描述语言类型。(2)熟悉VHDL程序的基本格式和规范。(3)熟悉VHDL程序的数据对象。(4)知道信号数据对象的主要属性。(5)熟悉VHDL程序的数据类型。(6)熟悉VHDL程序的基本运算符。(1)训练程序语言编写规范。(2)培养遵守电子设计的规范流程。(3)培养勤于动手、乐于实践的习惯。任务描述项目3四路抢答器设计制作方案

四路抢答器功能要求:主持人控制开关可控制抢答起始时刻;四位参赛者的抢答按键按下时,抢答器能准确的判断出抢答者,用LED灯指示或数码管显示;抢答器应具有互锁功能,当某位参赛者完成抢答后,其他各位参赛者抢答键无效。四路抢答器设计要求:在QuartusPrime20.1软件平台,基于VHDL程序设计四路抢答器控制器;通过ModelSim-Altera2020.1仿真软件仿真检查设计结果;选用FPGA-EP4CE6E22C8最小系统板,按钮开关、LED灯、数码管等元件进行硬件测试。设计方案项目3四路抢答器设计制作方案

抢答信号通过输入电路输入四路抢答控制器,经控制器锁存对应的抢答者信息并输出显示信号与提示信号,通过输出电路显示抢答信息与提示信息。四路抢答控制器的逻辑电路包括判断、锁存、译码等逻辑电路。四路抢答控制器根据输出的复杂程度可设计为:用发光二极管指示抢答成功与否、用数码管显示抢答成功者的编号、用数码管显示抢答成功者编号的同时发出提示声音等等。本项目设计的四路抢答器用数码管显示抢答成功者的编号。1.抢答信号输入电路设计项目3四路抢答器设计制作方案

用按钮开关控制抢答信号的输入,当按钮开关闭合时,向FPGA输入高电平,指示发光二极管发光;当按钮开关断开时,向FPGA输入低电平,指示二极管不发光。4个抢答输入电路的原理图,如图3.1所示。图3.1抢答信号输入电路原理图2.主持人控制信号输入电路设计项目3四路抢答器设计制作方案用自锁开关控制什么时候开始抢答。当开关闭合时,向FPGA输入高电平,指示发光二极管发光,四路抢答器处于抢答状态;当开关断开时,向FPGA输入低电平,指示二极管不发光,四路抢答器处于抢答准备状态。主持人控制信号输入电路的原理图,如图3.2所示。图3.2主持人控制输入电路原理图3.输出电路设计项目3四路抢答器设计制作方案(1)用发光二极管显示抢答成功与否的输出电路原理图,如图3.3所示图3.3发光二极管显示输出电路原理图项目3四路抢答器设计制作方案(2)用数码管显示抢答成功者编号的输出电路原理图,如图3.4所示。图3.4数码管显示输出电路原理图项目3四路抢答器设计制作方案(3)用数码管显示抢答者编码的同时发出提示声音,蜂鸣器提示音输出电路原理图,如图3.5所示。图3.5蜂鸣器输出电路原理图设计流程项目3四路抢答器设计制作方案1.VHDL程序数据对象VHDL程序使用的数据对象包括常量、变量、信号和文件4种类型。前3种属于可综合的数据对象,在硬件电路系统中通常有一定的物理含义。文件数据对象仅在行为仿真时使用。项目3VHDL程序的数据对象与基本运算符(1)常量常量是一个固定的值,相当于数字电路中的电源与地等。定义和设置常量是为了程序更易阅读和修改。常量语句允许在实体、结构体、程序包、进程和子程序中定义,常量的适用范围取决于它被定义的位置。常量定义的一般格式如下:

constant常量名:数据类型:=表达式;【例3.1】常量的定义constantDATA:integer:=50;constantVCC:real:=5.0;constantRISE:time:=25ns;项目3VHDL程序的数据对象与基本运算符定义了一个名为“DATA”的整数常量,并且赋予初值50;定义了一个名为“VCC”的实数常量,并且赋予初值5.0;定义了一个名为“RISE”的时间常量,并且赋予初值25纳秒。项目3VHDL程序的数据对象与基本运算符(2)变量

变量是一种内容可发生变化的数据对象,其主要作用是在进程中作为临时的数据存储单元。变量只能在进程语句和子程序中使用,它是一个局部量,在仿真过程中执行到变量赋值语句后,变量就被即时赋值。变量定义语句的格式如下:variable变量名:数据类型[约束条件][:=初值表达式];变量数值的改变是通过变量赋值来实现,变量赋值的一般形式:目标变量名:=表达式;变量赋值符号为“:=”,变量赋值语句后的“表达式”必须与目标变量名具有相同的数据类型,这个数值可以是运算表达式,也可以是一个数值。项目3VHDL程序的数据对象与基本运算符【例】二进制计数器VHDL程序中变量的使用

libraryieee;useieee.std_logic_1164.all;entitybinary_counterisgeneric(MIN_COUNT:natural:=0;MAX_COUNT:natural:=255);port(clk:instd_logic;reset:instd_logic;enable:instd_logic;q:outintegerrangeMIN_COUNTtoMAX_COUNT);endentity;architecturertlofbinary_counterisbeginprocess(clk)variablecnt:integerrangeMIN_COUNTtoMAX_COUNT:=0;beginif(rising_edge(clk))thenifreset='1'thencnt:=0;elsifenable='1'thencnt:=cnt+1;endif;endif;q<=cnt;endprocess;endrtl;变量定义语句:在进程内定义变量cnt,整数类型,数值范围限定在255-0内,赋初值0。变量赋值语句:cnt赋0值变量赋值语句:cnt赋cnt+1表达式,实现加1计数(3)信号信号信号相当于组合电路中门与门之间的硬件连接线或数值寄存器。信号通常在结构体、包集合和实体中说明,是个全局量。信号的定义语句格式:

Signal信号名:数据类型[约束条件][:=表达式];给信号赋初值用“:=”符号,在程序中,给信号赋值用“<=”符号,信号赋值语句形式:

目标信号名<=表达式[after时间量];这里的“表达式”可以是一个运算表达式,也可以是数据对象(变量、信号或常量),信号赋值时可附加延时。

项目3VHDL程序的数据对象与基本运算符项目3VHDL程序的数据对象与基本运算符【例】异步清零十进制加法计数器VHDL程序中信号的使用

libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt10yisport(clr:in

std_logic;

clk:in

std_logic;

cnt:out

std_logic_vector(3downto0));endcnt10y;architectureexample9ofcnt10yissignalcnt_temp:std_logic_vector(3downto0):="0000";beginprocess(clr,clk)beginifclr='0'thencnt_temp<="0000";elsif

clk'eventandclk='1'thenif(cnt_temp="1001")thencnt_temp<="0000";elsecnt_temp<=cnt_temp+'1';endif;endif;endprocess;cnt<=cnt_temp;endexample9;信号定义语句:在结构体内定义变量cnt_temp,4位宽标准逻辑矢量数据类型,赋初值“0000”。信号赋值语句:cnt_temp赋”0000”值信号赋值语句:cnt_temp赋cnt_temp+’1’表达式,实现加1计数信号赋值语句:cnt_temp赋”0000”值信号赋值语句:端口信号cnt赋cnt_temp信号值(4)变量、信号的比较信号和变量是VHDL程序中重要的数据对象,它们间主要区别有:①物理意义不同:信号用于电路中的信号连接,变量用于进程中局部数据存储。②定义位置不同:信号的使用和定义位置在结构体、程序包和实体中,不能在进程、函数和子程序中使用,而变量只能在进程、函数和子程序中定义。③赋值符号不同:变量用“:=”,信号用“<=。④附加延时不同:变量赋值语句一旦被执行,其值立即被赋予变量。信号实际赋值过程和赋值语句的处理是分开进行的,也即信号赋值语句执行时附加了延时。

项目3VHDL程序的数据对象与基本运算符2.VHDL程序数据类型VHDL程序的每个数据对象都有确定的数据类型,不同类型的数据间无法直接进行操作,数据类型相同而位长不同时,也不能直接代入,数据类型不匹配时必须使用转换函数,VHDL程序提供了多种预定义的标准数据类型。

项目3VHDL程序的数据对象与基本运算符(1)标准数据类型标准的数据类型有10种,这些数据类型及其含义如表3.1所示。10种标准数据类型中,实数、时间、错误等级和字符串等数据类型不可综合,只可用于系统仿真。

项目3VHDL程序的数据对象与基本运算符(2)用户自定义数据类型VHDL程序允许用户定义新的数据类型,用户自定义数据类型书写格式为:type数据类型名is数据类型定义of基本数据类型;或type数据类型名is数据类型定义;可以综合的常用的用户自定义数据类型。①枚举类型枚举类型是把类型中的各个可能的取值都列举出来,枚举类型可以用符号来代替数值,在使用状态机时常采用枚举类型来定义状态参数。枚举类型的定义格式:

type数据类型名is(元素1,元素2,…);例:typestatesis(s0,s1,s2,s3);--自定义数据类型“states”有4种状态

项目3VHDL程序的数据对象与基本运算符②数组类型数组是将相同的数据集合在一起所形成的一个新的数据类型。它可以是一维的,也可以是二维或多维的。数组的定义格式如下:

type数组名isarray(数组范围)of数据类型;例:定义一个名为“ram”的一维数组表述如下: typeramisarray(0to63)ofstd_logic;定义一个名为“matrix”的二维数组表述如下: typematrixisarray(15downto0)ofstd_logic_vector(15downto0);项目3VHDL程序的数据对象与基本运算符③纪录类型记录类型是将不同类型的数据和数据名组织在一起而形成的数据类型。记录类型的一般书写格式如下:type数据类型名isrecord元素名1:数据类型名;元素名2:数据类型名;…endrecord;项目3VHDL程序的数据对象与基本运算符(3)数据类型转换VHDL程序是一种强类型的语言,不同类型的数据之间不能直接进行运算和赋值操作,必须要对信号或者变量的数据类型进行类型转换。IEEE库各程序包提供的数据类型的转换函数如表3.2所示。

项目3VHDL程序的数据对象与基本运算符(4)数值类属性数值类属性用于返回有关数据类型或数组类型的特定值,通常用单引号“'”指定属性。常用的各数值类属性的含义说明如下:①'left:返回数据类区间最左端值;②'right:返回数据类区间最右端值;③'high:返回数据类区间高端值;④'low:返回数据类区间低端值;⑤'length:返回限制性数组中的元素数。

项目3VHDL程序的数据对象与基本运算符3.VHDL程序基本运算符IEEE库预定义的运算符,主要有算术运算符、关系运算符、逻辑运算符、移位运算符、赋值运算符、关联运算符、并置运算符等。VHDL程序的各运算符如表3.3所示

项目3VHDL程序的数据对象与基本运算符3.VHDL程序基本运算符IEEE库预定义的运算符,主要有算术运算符、关系运算符、逻辑运算符、移位运算符、赋值运算符、关联运算符、并置运算符等。VHDL程序的各运算符如表3.3所示

项目3VHDL程序的数据对象与基本运算符3.VHDL程序基本运算符IEEE库预定义的运算符,主要有算术运算符、关系运算符、逻辑运算符、移位运算符、赋值运算符、关联运算符、并置运算符等。VHDL程序的各运算符如表3.3所示

项目3VHDL程序的数据对象与基本运算符3.VHDL程序基本运算符IEEE库预定义的运算符,主要有算术运算符、关系运算符、逻辑运算符、移位运算符、赋值运算符、关联运算符、并置运算符等。VHDL程序的各运算符如表3.3所示

项目3VHDL程序的数据对象与基本运算符3.VHDL程序基本运算符VHDL程序设计中的运算符与其他程序设计语言一样也有其优先级,其优先级的顺序如表3.4所示。

项目3VHDL程序的数据对象与基本运算符3.VHDL程序基本运算符VHDL程序设计中的运算符与其他程序设计语言一样也有其优先级,其优先级的顺序如表3.4所示。

项目3VHDL程序的数据对象与基本运算符项目3四路抢答器编程下载编程下载的目的是将设计所生成的文件通过计算机下载到目标器件,验证设计是否满足实际要求或能否在实际中应用。四路抢答器硬件测试基于EP4CE6E22C8-FPGA最小系统板,用按钮开关控制抢答信号的输入,用自锁开关控制主持人控制信号输入,用共阴数码管显示抢答者编号。项目3四路抢答器编程下载1.四路抢答控制器

用VHDL程序设计的四路抢答控制器输入输出端口,如图3.10所示。【clk】为系统时钟信号输入端,与FPGA最小系统板所提供的50MHz时钟信号相连接;【answer[3..0]】为抢答信号输入端;【host】为主持人控制信号输入端;【smg[6..0]】为7段数码管抢答编号显示信号输出端。硬件电路连接图3.10四路抢答器输入输出端口项目3四路抢答器编程下载2.输入电路4按钮开关作为抢答信号输入元件;可自锁按钮开关作为主持人控制信号输入元件。四路抢答器输入原理图,如图3.10所示。图3.10四路抢答器输入原理图项目3四路抢答器编程下载图3.11四路抢答器输入PCB图2.输入电路4按钮开关作为抢答信号输入元件;可自锁按钮开关作为主持人控制信号输入元件。四路抢答器输入PCB图,如图3.11所示。项目3四路抢答器编程下载图3.12四路抢答器输入模块实物图2.输入电路4按钮开关作为抢答信号输入元件;可自锁按钮开关作为主持人控制信号输入元件。四路抢答器输入模块实物图,如图3.12所示。项目3四路抢答器编程下载3.输出电路

共阴数码管作为抢答编号显示元件,输出模块原理图、PCB图及元件实物图,如图3.14所示。图3.14四路抢答器输出模块项目3四路抢答器编程下载4.各元件连接抢答信号输入按钮开关、主持人控制信号输入自锁按钮开关、数码管与EP4CE6E22C8-FPGA最小系统板的20×2双排直插针连接原理图,如图3.15所示。图3.15四路抢答

温馨提示

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

评论

0/150

提交评论