




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1实验注意事项1做实验前,先连接好下载线,然后才能接上电源。2做完实验后,先拨掉实验箱上的电源,然后才能拨下载线。实验一简单逻辑门实验目的掌握QUARTUS使用及基于VERILOG的FPGA开发的基本流程实验要求掌握QUARTUS使用及基于VERILOG的FPGA开发的基本流程,注意设备及人身安全,严禁带电插拔JTAG下载线,防止损坏设备所需器材FPGA教学实验系统,带并口的普通计算机实验介绍本实验是在FPGA教学实验系统上实现简单的逻辑门,例如2输入的与门、与非门、或门、异或门等,对应部分的原理图如图1所示。当K0(K1)按键断开时,FPGA引脚175(173)的输入为低电平,对应发光二极管D2(D3)熄灭,当K0(K1)按键按下时,FPGA引脚175(173)的输入为高电平,对应发光二极管D2(D3)发光。FPGA引脚175、173在本实验中可用作输入引脚。FPGA引脚64、65、66、73分别接有发光二极管(LED)DR0DR3,在实验中可用作输出引脚,当引脚输出高电平时,对应的LED被驱动发光。这些输出引脚可用于实现2个输入的不同逻辑功能。D2K0FPGAD3K1DR0DR1DR2DR317517364736566图1部分按键与LED的原理图实验步骤1为工程建立工作目录为了方便工程涉及到的文件的管理,以后的每一个工程,都需要为其建立专门的工作目录,目录路径中不要包含有非英文或数字的字符(例如不要包含空格或中文字符等)。请利用系统自带的“我的电脑”或“资源管理器”建立目录。在此假设在EWORK目录下建立名为MYLOGIC的工程工作目录,其目录路径为EWORKMYLOGIC,本实验所涉及的文件都需要放置在该目录当中。22运行QUARTUSII程序方法1(通过开始菜单)开始程序PALTERAQUARTUSII72QUARTUSII7232BIT方法2(桌面快捷方式)双击桌面的快捷方式图标打开QUARTUSII后,其界面如图2所示。图2QUARTUSII集成环境3建立工程在QUARTUSII上进行FPGA的开发是针对工程进行的,所有的设计任务都应当建立对应的工程。运行菜单命令FILENEWPROJECTWIZARD,打开新建工程向导,分别如图3图8所示。完成后,即可在QUARTUSII中建立起对应的工程。3图3新建工程向导介绍图4工作目录、工程名、顶层实体名图5添加文件图6选定器件图7第三方工具设置图8信息汇总在图4所示的对话框中,我们将工作目录(WORKINGDIRECTORY)设定为EWORKMYLOGIC,将工程名(NAMEOFTHISPROJECT)设定为MYLOGIC,将顶层实体4名(TOPLEVELDESIGNENTITY)设定为MYLOGIC。顶层实体名最好和工程名一致,如不一致,应根据实际情况修改。在图7中,我们需要根据实际情况选中EP2C20Q240C8芯片,该芯片为CYCLONEII系列的芯片之一,引脚为240个。因此,可以先在FAMILY中选定CYCLONEII系列,然后在PINCOUNT中选定引脚为240,通过这些过滤条件,可以快速找到EP2C20Q240C8。在其他图中的设置,不需要更改,直接点击NEXT即可。4编辑VERILOG设计文件可以使用记事本等任何的文本编辑器编辑VERILOG设计文件,QUARTUSII自带有编辑器,支持VERILOG等多种设计文件的语法彩色显示,使用它来编辑可以帮助我们减少语法错误。运行菜单命令FILENEW,或点击工具栏上的按钮,打开新建文件对话框,如图9所示。在其中选择VERILOGHDLFILE,并点击OK按钮。然后编辑下面所示的VERILOG代码,并以MYLOGICV作为文件名将文件保存在EWORKMYLOGIC目录中,如图10所示,在其中默认选择上了ADDFILETOCURRENTPROJECT选项,将会添加进当前工程当中。图9新建文件对话框5图10保存文件/FILENAMEMYLOGICVMODULEMYLOGICK0,K1,DR0,DR1,DR2,DR3INPUTK0/按键K0输入,按下为高电平1INPUTK1/按键K1输入,按下为高电平1OUTPUTDR0/输出1则发光二极管DR0点亮OUTPUTDR1/输出1则发光二极管DR1点亮OUTPUTDR2/输出1则发光二极管DR2点亮OUTPUTDR3/输出1则发光二极管DR3点亮REGDR2REGDR36ASSIGNDR0K0/实现与门ASSIGNDR1K0/实现与非门ALWAYSBEGINDR2K0|K1/实现或门ENDALWAYSBEGINDR3K0K1/实现异或门ENDENDMODULE5分析设计分析设计这个步骤不是必需的,但是通过分析设计,可以对设计文件进行错误检查,并给出相应的提示、警告、错误等信息,检查过后,还可以提取出整个工程的结构层次、端口列表等信息,方便进行引脚锁定。如果直接对工程进行完整的编译,将会耗费比较多的时间,并且修改锁定引脚后,还是得完整编译一次。运行菜单命令PROCESSINGSTARTSTARTANALYSISINPUTK0/按键K0输入,按下为高电平1INPUTK1/按键K1输入,按下为高电平1OUTPUTDR0/输出1则发光二极管DR0点亮OUTPUTDR1/输出1则发光二极管DR1点亮OUTPUTDR2/输出1则发光二极管DR2点亮OUTPUTDR3/输出1则发光二极管DR3点亮REGDR0REGDR1REGDR2REGDR3ALWAYSBEGINIFK11B0BEGINIFK01B0BEGINDR3,DR2,DR1,DR04B0001ENDELSEBEGINDR3,DR2,DR1,DR04B0010ENDENDELSEBEGINIFK01B0BEGINDR3,DR2,DR1,DR04B0100ENDELSEBEGINDR3,DR2,DR1,DR04B1000ENDENDENDENDMODULE编译过后,对应的RTL视图如图38所示。22图38RTLVIEWER编译过后,运行菜单命令TOOLSNETLISTVIEWERSTECHNOLOGYMAPVIEWERPOSTMAPPING,可以打开设计的工艺映射后的视图,如图39所示。双击其中的各个框图模块,可查看其内的详细结构,如图40所示。图39工艺映射后视图23DR311DR24DR111DR04DR0DR1DR2DR3K1K0图40工艺映射后视图(显示底层结构)使用IF语句描述组合逻辑时,描述单个节点变量的单个IFELSE语句通常和2选1选择器相对应,即当IF的条件成立时,该节点变量取其中一个选项值输出,当IF的条件不成立时,该节点变量取其中另一个选项值输出。实验三简单组合逻辑之CASE语句实验目的掌握VERILOG语言中用CASE语句描述组合逻辑电路实验要求掌握VERILOG语言中用CASE语句描述组合逻辑电路,注意设备及人身安全,严禁带电插拔JTAG下载线,防止损坏设备所需器材FPGA教学实验系统,带并口的普通计算机实验介绍本实验是在FPGA教学实验系统上实现24译码器,对应部分的原理图如图1所示。按键K0和K1用作译码的输入控制,发光二极管DR0DR3用作译码的输出显示。24译码器是纯粹的组合逻辑电路,其真值表(功能表)如表1所示,我们在此作用CASE语句进行描述。实验步骤本次实验的步骤及工程设置和实验一的相似,只是设计代码不一样。/FILENAMECASE2TO4VMODULECASE2TO4K0,K1,DR0,DR1,DR2,24DR3INPUTK0/按键K0输入,按下为高电平1INPUTK1/按键K1输入,按下为高电平1OUTPUTDR0/输出1则发光二极管DR0点亮OUTPUTDR1/输出1则发光二极管DR1点亮OUTPUTDR2/输出1则发光二极管DR2点亮OUTPUTDR3/输出1则发光二极管DR3点亮REGDR0REGDR1REGDR2REGDR3ALWAYSBEGINCASEK1,K02B00BEGINDR3,DR2,DR1,DR04B0001END2B01BEGINDR3,DR2,DR1,DR04B0010END2B10BEGINDR3,DR2,DR1,DR04B0100END2B11BEGINDR3,DR2,DR1,DR04B1000ENDDEFAULTBEGINDR3,DR2,DR1,DR04B0000ENDENDCASEENDENDMODULE图41RTLVIEWER25图42工艺映射后视图(显示底层结构)实验四计数器设计LED输出实验目的掌握简单的时序电路设计方法及单时钟使能结构计数器的设计技巧实验要求掌握简单的时序电路设计方法及单时钟使能结构计数器的设计技巧,注意设备及人身安全,严禁带电插拔JTAG下载线,防止损坏设备所需器材FPGA教学实验系统,带并口的普通计算机实验介绍本实验是在FPGA教学实验系统上实现一个计数器,计数器是一常用的功能电路,它为简单的时序逻辑电路,其一般结构如图43所示。时序逻辑电路设计中应包含时钟和复位的输入,且应包含记忆性元件D触发器。计数器工作时,其工作方式为在每次时钟的上升沿将D触发器组里保存的当前计数值加1后的结果再寄存进D触发器组当中,实现计数值的递增更新。QQSETCLRD1B144CLKRST_NCNT26图43计数器结构1复位电路在本教学实验系统中,复位电路如图44所示,复位芯片U4产生的低电平有效复位信号(电路图上的信号名为SYSTEM_RESET)连接到FPGA的238引脚上,因此可以使用238引脚作为低电平有效复位信号的输入。图44复位电路2时钟电路在本教学实验系统中,时钟电路如图45所示,其中有源晶振Y1产生的20MHZ的时钟(电路图上的信号名为OSC_CLK1)同时连接到FPGA的30和31引脚上,因此可以使用30引脚或31引脚作为时钟输入。27图45时钟电路我们在此实现一个4位模16的计数器,计数器的4位输出连接到DR0DR3上(对应引脚参看图1),当对应计数位为1时,相应的发光二极管点亮。如果直接使用有源晶振Y1产生的20MHZ的时钟进行计数,则计数频率太快,计数位上的跳变频率也会过快,导致人眼看不到发光二极管的状态变化。在此,我们使用一个预分频计数器用于降低主功能计数器的计数频率,其方法有两种一是利用前者计数器对原有时钟进行分频,使用分频过后的时钟作为后一计数器的时钟,如图46所示,此方法因为在同一设计中使用了不同的时钟,增加了对设计进行时序分析的难度,并且后者使用的时钟一般在质量和驱动强度上较差,不适于驱动多个数据路径或较长的数据路径;二是在前者计数器计数到某些特定值时产生后者的计数使能信号下,后者在该计数使能信号下才进行有效的计数,如图47所示,此方法只使用一个统一的时钟,便于对设计进行时序分析,且可以通过使用锁相环、专用时钟树等资源使得该时钟且有较好的质量和驱动强度。假设需要进行等效10分频,则前面的分频使能计数器PRECNT相应为模10计数器,计数状态为从0到9,计数最大值为9;当计数值为最大值9时,输出相应的后级计数使能信号EN;在下一时钟的上升沿,主功能计数器CNT检测到计数使能信号EN有效时进行加1计数,而分频使能计数器PRECNT检测到EN有效时则相应回复到0,重新开始计数,相应的波形如图48所示。实际设计中需要将20MHZ的时钟等效分频到1HZ,请自行计算PRECNT计数的最大值,并计算能够表示该最大值所需的比特宽度。QQSETCLRD1B144CLKRST_NCNT分频模块SLOW_CLK图46先分频再计数结构QQSETCLRD1B144CNTQQSETCLRD1B1NNCLKRST_NPRECNTEN0图47两级单时钟使能计数器结构28图48两级单时钟使能计数器计数示例波形/FILENAMECNT_1VMODULECNT_1CLK,RST_N,DR0,DR1,DR2,DR3INPUTCLK/20MHZ时钟输入INPUTRST_N/低电平有效复位信号输入OUTPUTDR0/输出1则发光二极管DR0点亮OUTPUTDR1/输出1则发光二极管DR1点亮OUTPUTDR2/输出1则发光二极管DR2点亮OUTPUTDR3/输出1则发光二极管DR3点亮REG240PRECNT/预分频计数器REG30CNT/主功能计数器REGEN/计数使能/计数使能描述ALWAYSBEGINIFPRECNT此处填写比较的值BEGIN/产生计数使能有效信号ENDELSEBEGIN/产生计数使能无效信号ENDEND/PRECNT分频计数描述ALWAYSPOSEDGECLKORNEGEDGERST_NBEGINIFRST_N1B0BEGIN/PRECNT复位描述ENDELSEBEGINIFEN1B1BEGIN/PRECNT计数回零判别29/PRECNT计数回零描述ENDELSEBEGIN/PRECNT正常计数加1描述ENDENDEND/CNT主功能计数描述ALWAYSPOSEDGECLKORNEGEDGERST_NBEGINIFRST_N1B0BEGIN/CNT复位计数描述ENDELSEBEGINIFEN1B1BEGIN/CNT计数使能判别/CNT正常计数加1ENDENDEND/CNT连接到发光二极管进行输出显示ASSIGNDR3,DR2,DR1,DR0CNTENDMODULEA240B240OUT240ADDERA30B30OUT30ADDERDQPREENACLRA240B240OUTEQUALDQPREENACLRSELDATADATABOUT0MUX21ADD025H0000001ADD14H1CNT30EQUAL025H1312CFFPRECNT240PRECNT24025H0000000CLKRST_NDR0DR1DR2DR3图49RTLVIEWER实验五计数器设计数码管输出实验目的掌握混合功能单元电路的描述方法30实验要求掌握混合功能单元电路的描述方法,注意设备及人身安全,严禁带电插拔JTAG下载线,防止损坏设备所需器材FPGA教学实验系统,带并口的普通计算机实验介绍本实验是将前一个实验的计数输出经译码后用于驱动一个数码管进行计数显示,同时增加按键K0作为计数“暂停/继续”的控制,即在计数时按第一次计数暂停,再按一次将继续计数。1数码管的使用实验系统上的数码管为4位数码管,其硬件电路如图50所示,其中的信号名对应的FPGA引脚如下表2所示。工作时,先将要点亮的数码管位对应的公共端的FPGA控制引脚置为高电平1,则相应的三极管被导通,数码管位对应的公共端上为低电平(三极管反相器电路在此起了取反的作用),此时,当某段的输入控制端为高电平1时,则数码管该位该段将被点亮。在本实验当中,我们可以选择数码管位1进行显示,即先将公共端1的控制引脚置为高电平1,其他的公共端控制引脚置为低电平0,然后将4位计数值译码到数码管的8个段位(含小数点)进行显示输出,译码为组合逻辑,适于采用CASE语句进行描述。表2数码管与FPGA引脚信号名对应表数码管端ABEFDDP信号名NTANTBNTENTFSWROW1SWROW2FPGA引脚623572336465数码管端CG公共端1公共端2公共端3公共端4信号名SWROW3SWROW4SWCOL1/PDCCSSWCOL2/PDCRDSWCOL3/PDCWRSWCOL4/PDCDATFPGA引脚66737270686731图50数码管硬件电路2按键的处理1按键的波形通常按键所用的开关为机械弹性开关,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,当采用我们实验箱上如图1所示的高电平有效接法(按键按下时为高电平),机械触点断开、闭合时的电压信号波型如图51所示。抖动时间的长短由按键的机械特性决定,一般为5MS10MS。这是一个很重要的时间参数,在很多场合都要用到。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。图51高电平有效接法的按键波形2异步信号的去亚稳态处理异步信号是指没有同步到本地工作时钟的信号。同步到本地工作时钟的信号(即同步信号),是指经过使用本地工作时钟的D触发器进行寄存过后的信号,或寄存过后又进行了组合逻辑处理的信号,这样的信号,总是在时钟的有效沿到来后的确定时间内进行跳变更新的,并且一般能够在下一级寄存器的下一个时钟有效沿到来时稳定保持其状态。在本实验当中,按键输入的信号是由人手按动来确定其变化的,其跳变变化的时刻具有不确定性,并且还伴随有抖动,这样的信号没有同步到本地工作时钟,即为异步信号。如果这样的信号直接送到后面的时序系统中进行控制或处理,会造成后面的时序系统出现亚稳态。亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触32发器级联式传播下去。为避免亚稳态的出现,进行去亚稳态处理,只需要将异步的信号经过使用本地工作时钟的D触发器进行寄存同步到本地时钟后,才在后面的时序系统中进行控制或处理即可。但是使用一级的D触发器进行寄存,并不能完全防止亚稳态的出现,只是出现的概率小了一些。在工程应用上,为进一步降低亚稳态出现的概率,一般使用如图52所示的两级D触发器进行寄存的结构,其工作波形如图53所示,即使第一个触发器输出存在亚稳态,再经过一个时钟周期后,第二个触发器输出仍处于亚稳态的概率非常小。如果增加D触发器进行寄存的级数,可以进一步降低亚稳态出现的概率,但无论增加多少级,均无法完全防止亚稳态的出现,只是其出现的概率可以逐步变得很小而已。图51所示的按键波形经去亚稳态处理得到的波形类似于如图54所示,可以看出,经过去亚稳态处理,可以消除部分周期小于采样时钟周期的抖动,但对于周期大于采样时钟周期的抖动则无法消除,对应位置会留下有毛刺。QQSETCLRDCLKSS_FF2QQSETCLRDS_FF1图52两级寄存电路图53两级寄存电路工作波形图54去亚稳态处理后的按键波形3边沿检测技术在按键检测等应用中通常会使用到边沿检测技术。因为每次按下按键的时间长短不可能一样,有些人可能按得快只按下几百毫秒,有些人按得慢按下几秒的时间,在应用中很多时候都是等按键释放的时候即开始进行处理,因此我们需要检测到按键释放时的状态变化,例如从0跳变到1,或从1跳变到0,即对应的跳变边沿,当检测到对应的跳变边沿时即开始进行处理。跳变的边沿,即其当前时刻的状态相对前一个时刻的状态发生了变化,两者不再一致。因此,要进行边沿检测,只需要用D触发器保存待检测信号在上一个时钟有效沿的值,如果检测到保存的值为0,而当前输入值为1,即为出现了一个上升沿,其电路结构如图55所示,工作波形如图56所示,如果检测到保存的值为1,而当前输入值为0,即为出现了一个下降沿,其电路结构如图57所示,工作波形如图3358所示。QQSETCLRDCLKSS_FF1OUT图55上升沿检测电路图56上升沿检测波形QQSETCLRDCLKSS_FF1OUT图57下降沿检测电路图58下降沿检测波形4按键去抖技术根据一般人按键的速度小于10HZ(每秒小于10次),所以按键时间大于100MS,按占空比50计算,按下的时间大于50MS。按这种约定,我们认为按下的时间小于50MS的为抖动信号,按下的时间大于50MS的是按键信号。按键抖动会引起一次按键被误读多次。为确保对按键的一次闭合仅作一次处理,必须去除按键抖动。按键的抖动,可用硬件或软件两种解决方法,我们在此采用硬件的解决方法。图54去亚稳态处理后的按键波形中还有可能存在毛刺,因此,我们需要将毛刺屏蔽掉,毛刺的宽度小于50MS,我们只需要认定只有宽度不小于50MS的才为有效按键信号即可,如果我们每10MS采样一次,即连续5次的采样值应该为有效值1。为避免按键时间较长时一次按键被误读多次,还需要结合边沿检测技术,即每10MS采样一次时连续5次的采样值为有效值1,并且最新一次的采样值为0时认为是一次有效按键。结合去亚稳态处理及去抖动处理的电路结构如图59所示,ENA信号由对时钟计数给出,每10MS给出一个时钟周期宽度的有效信号(时钟频率为20MHZ,周期为50NS,请计算10MS应计数多少次)。在ENA信号有效时,如果FF4FF8为1(按键曾有效),FF3为0(按键已释放,发生跳变),则可以认为发生了一次有效按键,给出一个时钟周期宽的检测出按34键有效信号。QQSETCLRDCLKSQQSETCLRDQQSETCLRDQQSETCLRDQQSETCLRDQQSETCLRDENARST_NQQSETCLRDQQSETCLRD去亚稳态去抖动FF1FF2FF3FF4FF5FF6FF7FF8图59按键处理电路5按键对计数的控制要实现按键对计数的“暂停/继续”的控制,只需要做一个PAUSE寄存器,其复位初始值为0,在每次按键有效时进行翻转,当该寄存器为0时允许计数,为1时暂停计数即可。按键处理的仿真波形如图60所示。图60按键处理仿真波形实验六计数器设计电子表实验目的掌握信号边沿检测技术、数码管扫描显示技术实验要求掌握QUARTUS使用及FPGA开发的基本流程,注意设备及人身安全,严禁带电插拔JTAG下载线,防止损坏设备所需器材FPGA教学实验系统,带并口的普通计算机实验介绍本实验是在FPGA教学实验系统上将前面介绍的时钟电路、复位电路、按键电路、数码管电路等组合起来,实现一个“分分秒秒”4位显示的电子秒表。其中K0按键在设计中起秒表的“暂停/继续”功能,即在计数时按第一次计数暂停,再按一次将继续计数。数码管的4位全部使用起来,用于进行分秒的计数显示。数码管中间的时间分隔冒号点还需进行闪烁,每秒钟闪烁一次。1“分分秒秒”计数器设计我们要实现“分分秒秒”显示的电子秒表,需要设计计数频率为1HZ的计数器。因为“分分秒秒”的结构对应有4个十进制数字(个位的秒,十位的秒,个位的分,十位的分),如果采用统一计数再分别求出“分分秒秒”对应的4个十进制数字进行译码显示,则求解对应的4个十进制数字的过程难于用硬件实现。在此,我们将每个显示的值分别进行计数,即分别针对个位的秒、十位的秒、个位的分、十位的分设计对应的计数器,其中个位的秒计数频35率为1HZ,其从0到9计数,当从9回到0时,向前进一位,使得十位的秒进行计数加1。十位的秒从0到5计数,当从5回到0时,向前进一位,使得个位的分进行计数加1。个位的分从0到9计数,当从9回到0时,向前进一位,使得十位的分进行计数加1。十位的分则从0到5计数,计数到5时,又回到0。2扫描显示技术因为4位数码管的段控制输入是复用的,要分别显示不同的计数数值,需要使用动态扫描显示技术,其电路结构如图61所示。首先,以扫描显示的频率进行2比特宽的模4计数,然后由其值从4个数码管的待显示值输入中选择对应的一个经译码后连接到公共的段控制输入端,同时将计数值经2到4译码后输出到对应数码管位的公共端,点亮对应的数码管。虽然各数码管位是轮流显示,每个数码管位上的数字是断续的显示,只要扫描的频率够快,由于人眼的视觉残余效应,就可以看到各数码管位上稳定的数字显示值。这和我们使用的电视、显示器的显示原理是一样的。参考液晶显示器的刷新频率,经验证,在每秒钟扫描60帧的时候,各数码管位上即能得到稳定的数字显示,此时,对应计数时钟的等效频率为240HZ。我们可以参考实验四的图47,再做一个等效分频计数器,通过产生的后级时钟使能信号将20MHZ的时钟等效分频到240HZ。图61扫描显示电路结构3冒号点的处理数码管中间的时间分隔冒号点(对应为左边第2个数码管位的DP点)每秒钟闪烁一次,其频率为1HZ,只需要输出1HZ,占空比为50的周期信号即可。其他数码管位的点号不需要显示,对应的DP点输出低电平无效信号即可。这4个信号再由图61所示的显示切换计数值进行4选1选择后接到数码管上公共的DP控制端。在实验四的图47中,我们为了得到1HZ的主功能计数频率,前面利用PRECNT进行了等效分频计数,其一个完整的计数周期即为1S,对应产生的使能信号EN频率即为1HZ,但我们在此不能直接使用EN的信号,因为其占空比只有1/20000000,肉眼无法看到其闪烁的效果。为得到占空比为50的1HZ信号,我们可以通过对PRECNT的计数值进行比较得出,只需要在PRECNT计数周期内一半的时间输出1,一半的时间输出0即可,例如,当PRECNT25D9999999时输出0,否则输出1,此时即可得到占空比为50的1HZ信号。364总体设计总体设计只需要将时钟电路、复位电路、按键电路、数码管电路等组合起来,综合使用时钟使能的同步设计技术、按键处理技术、扫描显示技术、“分分秒秒”计数器设计技术及冒号点的处理技术即可。实验七序列检测器设计电子密码锁实验目的掌握序列检测的设计技术实验要求掌握序列检测的设计技术,注意设备及人身安全,严禁带电插拔JTAG下载线,防止损坏设备所需器材FPGA教学实验系统,带并口的普通计算机实验介绍本实验是在FPGA教学实验系统上实现简单的序列检测,按下按键K0表示输入0,按下按键K1表示输入1(假定K1比K0有较高的优先级,当两者同时按下时也认为是输入1)当检测到按键输入序列11001010时,使蜂鸣器发出鸣响警报。此类序列检测的技术,通常可以应用在电子密码锁等产品上,当检测到输入正确的密码序列,才能进行开锁。1硬件电路K0和K1按键部分的电路原理图如图1所示。蜂鸣器的电路原理图如图62所示,图中的控制端BUZZER连接到FPGA的引脚78上,当FPGA引脚78上输出高电平逻辑1时,NPN三极管Q2导通,蜂鸣器上有电流流过,发出响声,否则输出低电平逻辑0时,Q2截止,蜂鸣器上没有电流流过,没有响声。二极管D14在图中起保护作用,用于吸收开关蜂鸣器时在蜂鸣器上可能产生的反向电动势。图62蜂鸣器电路2序列检测技术要检测某长度的输入序列(例如序列11001010的长度是8),关键是设法将输入的序列用一个对应长度的先进先出的寄存器组存起来。当检测到按下按37键输入一个值时,应该将该值推入到寄存器组的尾部,并按顺序推挤将最前面的记录的最早值推出丢掉,当寄存器组中保存的序列和待检测序列一致时,即为检测到了待检测的序列,如图63所示。为测试方便,我们将这个保存的序列输出到发光二极管进行显示,实验板上8个发光二极管对应的FPGA引脚如表3所示。1100101011011001001图63先进先出寄存器组结构表3发光二极管对应引脚发光二极管DG0DG1DG2DG3DR0DR1DR2DR3FPGA引脚72706867646566733按键处理因为使用了K0和K1两个按键分别表示0值和1值的输入,因此,当按下一次按键时,应该把一个并且只能把一个该按键对应的值,推入到上述寄存器组的尾部。要达到这样的功能,应该对K0和K1的输入进行上升沿检测,当检测到K0或K1的上升沿时,各自对应产生一个时钟周期宽的标志信号K0_VALID或K1_VALID。当K0_VALID或K1_VALID有效时,才在时钟上升沿将一个数据推入到上述寄存器组的尾部(右边),并按顺序推挤将最前面的记录的最早值(左边)推出丢掉,当K1_VALID有效时推入的是1,当K0_VALID有效时则推入0。实验八电子琴设计实验目的掌握矩阵键盘扫描检测原理以及任意分频计数器的设计实验要求掌握矩阵键盘扫描检测原理以及任意分频计数器的设计,注意设备及人身安全,严禁带电插拔JTAG下载线,防止损坏设备所需器材FPGA教学实验系统,带并口的普通计算机实验介绍本实验是在FPGA教学实验系统上实现一个电子琴,当按下不同的按键时,能发出不同频响的声音。1矩阵键盘扫描检测技术前面实验当中使用到的K0、K1等按键,每个都使用了一个单独的FPGA引脚来连接及判别状态,这样虽然使用方便,但如果按键数目较多的话,将会占用大量的FPGA引脚。在实际应用中,当按键数目较多时,为提高引脚的使用效率,通常矩阵键盘的连接方法,在此方式中,按键组成一个二维矩阵,矩阵的每行与每列需要一个单独的FPGA引脚来控制,图64即为我们实验箱上实际采用的4X4矩阵键盘电路,这样的话16个按键只使用了8个FPGA引脚,减少了引脚使用的数目。矩阵键盘的行数和列数可以不相等,视乎实际的需要,例如3X2和3X4等都是可以的。矩阵键盘虽然减少了引脚使用的数目,但使用时则麻烦一些,不能通过单个FPGA引脚直接判别某个按键的状态,而需要采用扫描检测的方式来判别按键的状态。在此以按列扫描检测方式为例进行介绍。按列扫描检测时,列控制38引脚作为输出,行控制引脚作为输入。按顺序依次给各列输出1,当前输出1的列为待检测列,其他输出0的列在该轮中不参与检测,每次只能有一个列进行检测。此时从行控制引脚即可读回待检测列上所有按键的状态,当按键闭合时,行输入连接到了列输出的高电平1上,因此读出值为1的表示按键闭合,读出值为0的表示按键断开。依次扫描各列,即可得出全部按键的状态。例如,通过PIN_72给第一列输出1,其他列输出0,通过行输入引脚PIN_64、PIN_65、PIN_66、PIN_73即可读回第一列上按键SW11、SW21、SW31、SW41的状态。我们可以使用一个16位宽的寄存器组(KEY_SAVE),依次把各列的扫描状态保存下来。图64矩阵键盘电路实际使用中,如果列输出1后马上就去读行的输入,因为存在按键导通延
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商超快消品合同范本5篇
- 2025企业短期用工聘用合同
- 第一课 电脑动画制作初探说课稿-2025-2026学年初中信息技术冀教版八年级全一册-冀教版
- 第六课 珍惜婚姻关系说课稿-2025-2026学年高中政治统编版2019选择性必修2法律与生活-统编版2019
- 2025电商平台产品代理合同合同协议书范本
- 2025年共同投资合作合同范本
- 精液的稀释说课稿-2025-2026学年中职专业课-畜禽繁殖与改良-畜牧类-农林牧渔大类
- 2025南京市房屋租赁合同范本
- 5. 分组实验测透镜的焦距说课稿-2025-2026学年高中物理教科版选修2-3-教科版2004
- 施工质量监督管理的实施说课稿-2025-2026学年中职专业课-建筑施工组织与管理-建筑类-土木建筑大类
- 2025年国防教育知识竞赛试题(附答案)
- 工伤受伤经过简述如何写
- 银行现金取款申请书
- 人事外包招聘代理合同
- 数字经济学-课件 第3章 数字技术
- AI引领时尚设计新潮-个性化需求的新一代解决方案
- 高二数学直线倾斜角与斜率同步练习题
- 2024-2030年全球及中国热障涂层(TBC)行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 大轻质泡沫混凝土研究报告
- 室内装修工程质量保障措施方案
- 闽教版小学3-6年级英语词表
评论
0/150
提交评论