VHDL及PLD实验手册嵌入式方向_第1页
VHDL及PLD实验手册嵌入式方向_第2页
VHDL及PLD实验手册嵌入式方向_第3页
VHDL及PLD实验手册嵌入式方向_第4页
VHDL及PLD实验手册嵌入式方向_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

-.z可编程逻辑器件与硬件描述语言实验手册二0一一年九月一、预备知识1.1、开发板资源概述1、FPGA:Spartan-3E系列,型号:*C3S500E,封装:FGT320,速度-4;2、2行,16字符LCD屏幕;3、USB接口,用于进展下载,调试;4、50MHz晶振;5、4输出,基于SPI的模拟数字转换器;6、8个LED灯;7、四个滑动开关;8、四个按键;1.2、滑动开关、位置4个滑动开关位于开发板的右下角,标号为SW3-SW0,最右侧为SW0。如图1所示。图1开发板滑动开关位置、操作位于UP/ON位置时,对应的FPGA引脚接3.3V,为逻辑高电平,处于DOWN/OFF位置时,对应引脚接地,为逻辑低电平;、UCF位置约束NET"SW<0>"LOC="L13"|IOSTANDARD=LVTTL|PULLUP;NET"SW<1>"LOC="L14"|IOSTANDARD=LVTTL|PULLUP;NET"SW<2>"LOC="H18"|IOSTANDARD=LVTTL|PULLUP;NET"SW<3>"LOC="N17"|IOSTANDARD=LVTTL|PULLUP;1.3、按键开关、位置位于开发板的左下角,标号为BTN_NORTH,BTN_EAST,BTN_SOUTH和BTN_WEST。图2按键开关位置和标号、操作按下按键,对应的FPGA引脚接3.3V,为逻辑高电平;松开,对应引脚依靠内部下拉电阻产生逻辑低电平。按键卡关原理如图3所示。图3按键开关原理图、UCF位置约束:NET"BTN_EAST"LOC="H13"|IOSTANDARD=LVTTL|PULLDOWN;NET"BTN_NORTH"LOC="V4"|IOSTANDARD=LVTTL|PULLDOWN;NET"BTN_SOUTH"LOC="K17"|IOSTANDARD=LVTTL|PULLDOWN;NET"BTN_WEST"LOC="D18"|IOSTANDARD=LVTTL|PULLDOWN;1.4、旋转开关、位置位于开发板的左下角,在4个按键开关的中间,如图2所示。产生三个输出:ROT_A和ROT_B编码输出和中间按键ROT_CENTER;、操作具备两个功能,一个是按键,另外一个是开关杆转动。按键开关与1.3中按键开关一样,如图4所示。开关杆工作原理如图5所示。输出依赖于旋转方向,一定有一个开关先于另外一个开关闭合。图4旋转开关的案件功能图5旋转杆编码图6编码及抖动、UCF位置约束:NET"ROT_A"LOC="K18"|IOSTANDARD=LVTTL|PULLUP;NET"ROT_B"LOC="G18"|IOSTANDARD=LVTTL|PULLUP;NET"ROT_CENTER"LOC="V16"|IOSTANDARD=LVTTL|PULLDOWN;1.5、LED灯开发板有8个独立的LED灯。、位置位于滑动开关的上测,标号为LED7~LED0,最左边为LED7。如图7所示。图7八个LED灯、操作每个LED灯的一端连接到GND,另外一端通过一个390ohm的电阻连接到FPGA相应的引脚,点亮*个灯,将对应得FPGA控制信号变为高电平。3、UCF位置约束NET"LED<7>"LOC="F9"|IOSTANDARD=LVTTL|SLEW=SLOW|DRIVE=8;NET"LED<6>"LOC="E9"|IOSTANDARD=LVTTL|SLEW=SLOW|DRIVE=8;NET"LED<5>"LOC="D11"|IOSTANDARD=LVTTL|SLEW=SLOW|DRIVE=8;NET"LED<4>"LOC="C11"|IOSTANDARD=LVTTL|SLEW=SLOW|DRIVE=8;NET"LED<3>"LOC="F11"|IOSTANDARD=LVTTL|SLEW=SLOW|DRIVE=8;NET"LED<2>"LOC="E11"|IOSTANDARD=LVTTL|SLEW=SLOW|DRIVE=8;NET"LED<1>"LOC="E12"|IOSTANDARD=LVTTL|SLEW=SLOW|DRIVE=8;NET"LED<0>"LOC="F12"|IOSTANDARD=LVTTL|SLEW=SLOW|DRIVE=8;1.6、时钟资源提供了一个50MHz的时钟,连接到FPGA的引脚C9。用户约束文件的位置约束为:NET"CLK_50MHZ"LOC="C9"|IOSTANDARD=LVCMOS33;时钟周期约束〔ClockPeriodConstraints〕:NET"CLK_50MHZ"PERIOD=20.0nsHIGH40%;二、组合逻辑电路实验〔一〕1、实验名称:3-8译码器设计。2、实验目的:1〕掌握ISE开发工具的使用,掌握FPGA开发的根本步骤;2〕掌握组合逻辑电路设计的一般方法;3〕掌握程序下载方法,了解UCF文件的格式;4〕初步了解开发板资源,掌握开发板使用方法。重点了解滑动开关和LED显示灯的使用方法。3、实验内容:3.1、用VHDL实现3-8译码器模块译码器电路如图2-1所示。其功能如表2-1所示。试用VHDL实现该译码器,并在开发板上进展检验。3-83-8译码器ABCENY0Y1Y2Y3Y4Y5Y6Y7图2-13-8译码器表2-1译码器功能表ENABCY7Y6Y5Y4Y3Y2Y1Y01***000000000000000000010001000000100010000001000011000010000100000100000101001000000110010000000111100000003.2、将程序下载到FPGA并进展检验资源使用要求:用滑动开关SW3~SW1作为输入A,B,C;滑动开关SW0控制EN;8个LED灯表示8个输出。检验方法: 当SW0处于ON〔EN=1〕位置时,所有LED灯灭;当SW0处于OFF〔EN=0〕,反映当前输入的译码输出在LED灯上显示,即当输入为000〔滑动开关SW3-SW1处于OFF状态〕,LED0亮,其它灯灭,等等。3.3、撰写实验报告4、实验步骤:1〕启动ISE,新建工程文件,编写3-8译码器的VHDL模块;2〕新建UCF文件,输入位置约束;3〕完成综合、实现,生成下载文件;4〕连接开发板USB下载线,开启开发板电源;5〕下载到FPGA;6〕拨动开关,验证结果是否正确。二、组合逻辑电路实验〔二〕1、实验名称:二位加法器设计2、实验目的:1〕掌握ISE开发工具的使用,掌握FPGA开发的根本步骤;2〕掌握组合逻辑电路设计的一般方法;3〕掌握程序下载方法;4〕初步了解开发板资源,掌握开发板使用方法。重点掌握按键开关和滑动的使用方法。3、实验内容:3.1、用VHDL实现一个二位全加器二位加法器电路如图2-2所示。其中A和B表示两个两位加数,S为三位和。EN为加法控制位,即当该位为1时执行加法。试用VHDL实现该加法器。B(1..0)A(1..0)二位加法器图2-2二位加法器ENS(2..0)B(1..0)A(1..0)二位加法器图2-2二位加法器ENS(2..0)要求:先实现1位全加器,然后用两个1位全加器连接为一个2bit加法器。3.2、将程序下载到FPGA并进展检验资源使用要求:用滑动开关SW3~SW2作为加数A的两个输入〔SW3为高位〕,SW1-SW0作为加数B的两个输入〔SW1为高位〕;用按键开关ROT_CENTER作为加法控制端EN用LED2~LED0三个灯表示3位和的输出。检验方法:预先随意设置SW3~SW0四个开关,读出A和B的值。这时LED2-LED0处于“灭〞状态;按下ROT_CENTER按键。读出LED2-LED0的值;验证LED2-LED0所表示的值是否为A和B两个值的和。3.3、撰写实验报告4、实验步骤:1〕启动ISE,新建工程文件;2〕编写1位全加器的VHDL模块add1bit;其原理图与功能分别如图2-3和表2-2所示。1bit全加器1bit全加器abCinSCout图2-31位全加器原理图表2-2一位全加器真值表abCinSCout0000000110010100110110010101011100111111提示:可以从上表得到S和Cout的逻辑表达式。3〕编写2位加法器的VHDL模块,其中将1位全加器作为ponent引用;4〕新建UCF文件,输入位置约束;5〕完成综合、实现,生成下载文件;6〕连接开发板USB下载线,开启开发板电源;7〕下载到FPGA;8〕拨动开关SW3-SW0,按下ROT_CENTER,检查LED2-LED0的状态。验证结果。三、时序逻辑电路实验〔一〕1、实验名称:可逆计数器设计2、实验目的:1〕进一步熟练ISE开发工具,稳固FPGA开发的根本步骤,掌握功能仿真方法;2〕掌握时序逻辑电路设计的一般方法,掌握时钟分频程序设计方法;3〕理解VHDL的层次构造设计;4〕稳固程序下载方法;5〕了解开发板时钟资源,以及时钟分频方法。3、实验内容:3.1、实现如下根本的可逆计数器可逆计数器电路图及功能表如图3-1和表3-1所示。clrclrenclkY0Y1Y2Y3Y4Y5Y6Y7Up/Dn图3-1可逆计数器原理图表3-1可逆计数器功能表clrenUp/DnclkY7~Y01***0000000000**停顿计数011↑计数器+1操作010↑计数器-1操作3.2、资源使用要求及实现方法:1〕用LED0~LED7作为计数器输出显示,LED7为高位,LED0为低位;2〕SW0为计数方向up/dn控制;3〕SW1为计数允许EN控制端;4〕BTN_EAST为clr按钮;5〕计数时钟频率为1Hz,通过对50Mhz系统时钟分频得到,分频电路独立编写一个模块,如图3-2所示;6〕扩展:可以对按键次数进展计数〔按键为BTN_SOUTH〕,即通过SW2选择计数源。二选一电路如图3-3所示。7〕将图3-1~图3-3三个模块连接起来,构成一个完整计数器。如图3-4所示。1/50000001/500000050Mclock1Hzclock图3-21/5000000分频器2选1In1Dout图3-3二选一电路In2SEn(SW1)clkY0〔LED0〕Y3〔LED3〕Y4〔LED4〕Y5〔LED5〕Y6〔LED6〕Y7〔LED7〕Up/Dn(SW0)2选1SW2clr(BTN_EAST)BTN_SOUTH1/5000000图3-4完整的可逆计数器3.3、撰写实验报告实验报告要求分模块,有调理给出各个模块的设计。4、实验步骤:1〕建立工程文件,顶层文件为原理图;2〕编写分频模块程序,要求输入为50MHz系统时钟,输出为1Hz计数时钟;3〕编写2选1模块,输入为按键、1Hz时钟和开关SW2,输出为计数源;4〕编写计数器模块主程序模块;5〕在原理图中,将各个模块连接,使用pinhead分配引脚资源;6〕对程序进展功能仿真;7〕下载程序,进展验证。三、时序逻辑电路实验〔二〕1、实验名称:跑马灯电路设计2、实验目的:1〕进一步熟练ISE开发工具,稳固FPGA开发的根本步骤,掌握功能仿真方法;2〕掌握时序逻辑电路设计的一般方法,掌握时钟分频程序设计方法;3〕理解VHDL的层次构造设计,掌握多个进程设计方法;4〕稳固程序下载方法;5〕了解开发板时钟资源,以及时钟分频方法。3、实验内容:3.1、实现如下根本的可逆计数器跑马灯电路图如图3-5所示。enenclkY0Y1Y2Y3Y4Y5Y6Y7Dir图3-5可逆计数器原理图功能表达:初始情况下Y0=‘1’,其它为‘0’。然后,在en为高电平的情况下,在时钟信号clk的下降沿进展移位。当dir=‘1’时,每来一个时钟信号,循环左移一位,当dir=‘0’时,每来一个时钟,循环右移一位。另外,移位控制时钟可以选择为按键,即每按键一次相当于一个时钟信号,系统可以在按键和系统分频时钟之间进展选择。要求:1〕Clk信号的周期为1S,利用分频电路对50Mhz系统时钟分频得到。2〕在一个构造体中,写多个进程:时钟分频进程,移位进程,二选一进程。3.2、资源使用要求:1〕用LED0~LED7作为跑马灯输出显示,LED7为高位,LED0为低位;2〕SW0为循环方向控制;3〕SW1为工作允许EN控制端;4〕计数时钟频率为1Hz,通过对50Mhz系统时钟分频得到,分频模块如图;6〕扩展:可以由按键来控制循环〔按键为BTN_SOUTH〕,即每按一次BTN_SOUTH,则完成一次移位。通过SW2选择移位控制时钟沿。3.3、撰写实验报告。4、实验步骤:1〕建立工程文件,顶层文件为HDL;2〕编写顶层程序。程序包括多个进程;3〕编写分频进程程序,要求输入为50MHz系统时钟,输出为1Hz计数时钟;4〕编写2选1进程,输入为按键、1Hz时钟和开关SW2,输出为跑马灯移位控制源;5〕编写移位进程;6〕对程序进展功能仿真;7〕下载程序,进展验证。四、状态机电路实验〔一〕1、实验名称:按键抖动消除及验证电路设计2、实验目的:1〕进一步熟练ISE开发工具,稳固FPGA开发的根本步骤,掌握功能仿真方法;2〕了解按键抖动的原因,抖动消除方法3〕掌握状态机的设计方法;4〕掌握消除抖动的状态机设计方法5〕稳固程序下载方法;。3、实验内容:3.1原理简介按键动作发生时,按键的输出会出现不稳定的逻辑’0’和逻辑’1’的跳变。该信号直接输入到计数器之类电路,会发生计数错误。如图3-5所示。图3-5信号抖动3.2提示:状态机设计思路设置十个状态:S0,S1,S2,S3,S4,S5。电路的复位信号RST有效时,电路进入复位状态S0,在S0状态下,时钟信号CLK以一定频率采样按键输入信号Key_in,如果采样到Key_in=‘0’,则停留在S0状态,并继续采样,一旦采样到Key_in=’1’,则转入S1延时状态,进展消抖延时,当延时完毕时,Delay_end=’1’,则转入S2状态,在此状态下,时钟信号CLK以一定频率采样按键输入Key_in,如果Key_in=‘0’则转入S0,否则转入S3;状态S3,S4的转换过程和条件与S2一样,在状态S4下,如果Key_in=’1’,则转入S5状态,当进入S5时,表示经过S2,S3,S4三个连续状态检测按键输入Key_in都为‘1’,则认为按键处于稳定状态,在S5输出按键确认信号Key_confirm=同时在状态S5下,时钟信号CLK检测按键输入Key_in,如果Key_in=‘1’,表示按键未释放,继续停留在S5,检测输入信号,如果检测到Key_in=‘1’,表示按键已经释放,输出Key_confirm=‘0’,返回到状态S0,等待下一次按键操作。3.3完成验证电路设计设计一个按键计数器,对未去抖的信号和去抖后的信号分别进展计数。验证设计的正确性。3.3资源使用要求1〕用LED0~LED7作为计数输出;2〕BTN_EAST作为按键。3.4、撰写实验报告。实验报告内容要符合实验步骤要求。包括:状态分析、状态转换图、VHDL源程序、实验结论。4、实验步骤:1〕画出电路的状态转换图;2〕编写完整的VHDL程序;3〕下载程序,进展验证。五、综合实验〔一〕1、实验名称:两人乒乓球游戏2、实验目的:1〕进一步熟练ISE开发工具,稳固FPGA开发的根本步骤,掌握功能仿真方法;2〕稳固状态机的设计方法;3〕稳固按键消抖电路设计方法;4〕掌握多进程程序设计方法;5〕稳固程序下载方法;6〕了解开发板时钟资源,以及时钟分频方法。3、实验内容:3.1原理简介两人乒乓游戏机用8个发光二极管代表乒乓球台,中间两个发光二极管作为乒乓球网,用点亮的发光二极管按照一定的方向移动来表示球的

温馨提示

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

评论

0/150

提交评论