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

下载本文档

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

文档简介

1、可编程逻辑器件和硬件描述语言手nrt册0 一一年九月亠、预备知识1.1、开发板资源概述1、FPGA : Spartan-3E 系列,型号:XC3S500E,封装: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所示。HIGHLOWSW3 SWS SW1 SWO (N17) (Hl 8) (L14» 113图1开发板滑动开关位置、操

2、作位于UP/ON位置时,对应的 FPGA引脚接3.3V,为逻辑高电平,处于 DOWN/OFF位 置时,对应引脚接地,为逻辑低电平;、UCF位置约束NET "SW<0>" LOC = "L13" |IOSTANDARD = LVTTL | PULLUPNET"SW<1>"LOC = "L14" |IOSTANDARD = LVTTL |PULLUPNET"SW<2>"LOC = "H18" |IOSTANDARD = LVTTL |PULLU

3、PNET"SW<3>"LOC = "N17" |IOSTANDARD = LVTTL |PULLUP1.3、按键开关、位置位于开发板的左下角,标号为BTNNORTH , BTN_EAST , BTN_SOUTH 禾口 BTN_WEST 。、操作Notary PmM EurtWn SwitchROT_A: (KT尉 Requ片筒 an iniernl pul-ijipHTM.NDfirTHfKJT .B: (G18; Ft»詁為Idtnal 阿呻AOT.CEHTER: (VTCj FtoqukW Aft IrltnalBThl EAS

4、T(H13)ETM_WES'T 0朋BTN.SOUTH(K171图2按键开关位置和标号FPGA引脚接电阻产生逻辑低电平。按键卡关原理如图按下按键,对应的3.3V,为逻辑高电平;松开, 3所示。对应引脚依靠内部下拉FPGA I/O PinPush Button3.3VBTN_* SignalUG23C c2 C& 021206图3按键开关原理图、UCF位置约束:NET "BTN EAST"LOC = "H13" |IOSTANDARD = LVTTL|PULLDOWN ;NET "BTN NORTH"LOC = &quo

5、t;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 ;、操作具备两个功能,一个是按键,另外一个是开关杆转

6、动。按键开关和1.3中按键开关一样, 如图4所示。开关杆工作原理如图 5所示。输出依赖于旋转方向, 一定有一个开关先于另外 一个开关闭合。Rotary / Push ButtonFPGA I/O Pin一 ROT_CENTER SignalRotary ShaTIEncoderFPGAvccoGND图5旋转杆编码图4旋转开关的案件功能A pull-up resistor in each input pin generates a J ' for an open switch. See the UCF file for details on specifying the pull-up

7、resistor.Rising edge cun UA' when Bkis Low Indicates RIGHT (Clockwise rotationRolaltng RIGHT Switch opening chatler on *A' Inacts tat&e uc|itek$H to me RIGHT芒曙口 -ULJSwitch closing chatter on 'B'、injects侣I黑clcks11 to Ih&LEFT 弊 rtsing edge wran 'A' is Low)图6编码及抖动、UCF位置约

8、束:NET "ROT_A" LOC = "K18" |NET "ROT_B" LOC = "G18" |IOSTANDARD = LVTTL |PULLUPIOSTANDARD = LVTTL |PULLUPNET "ROT_CENTER"LOC = "V16" |IOSTANDARD = LVTTL | PULLDOWN ;1.5、LED 灯开发板有8个独立的LED灯。、位置位于滑动开关的上测,标号为LED7LED0,最左边为LED7。如图7所示。CMkfc &LU

9、J) -二巴 (二匕 (二a (二 a) srtDQ山a 客山I一 茗山1 一U>a31 9091 -图7八个LED灯、操作每个LED灯的一端连接到 GND ,另外一端通过一个 390ohm的电阻连接到FPGA相应 的引脚,点亮某个灯,将对应得FPGA控制信号变为高电平。3、 UCF 位置约束NET "LED<7>" LOC = "F9" |NET "LED<6>" LOC = "E9" |IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;IO

10、STANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;NET"LED<5>"LOC = "D11"| IOSTANDARD = LVTTLSLEW = SLOW |DRIVE = 8NET"LED<4>"LOC = "C11"| IOSTANDARD = LVTTLSLEW = SLOW |DRIVE = 8NET"LED<3>"LOC = "F11"| IOSTANDARD = LVTTLSLEW = S

11、LOW |DRIVE = 8NET"LED<2>"LOC = "E11"| IOSTANDARD = LVTTLSLEW = SLOW |DRIVE = 8NET"LED<1>"LOC = "E12"| IOSTANDARD = LVTTLSLEW = SLOW |DRIVE = 8NET"LED<0>"LOC = "F12"| IOSTANDARD = LVTTLSLEW = SLOW |DRIVE = 8提供了一个 50MHz 的时钟,

12、连接到 NET "CLK_50MHZ" LOC = "C9" |1.6 、时钟资源FPGA的引脚C9。用户约束文件的位置约束为:IOSTANDARD = LVCMOS33 ;时钟周期约束( Clock Period Constraints ): NET "CLK_50MHZ" PERIOD = 20.0ns HIGH 40%;1、组合逻辑电路实验(一)1、实验名称:3-8译码器设计2、实验目的:1)掌握ISE开发工具的使用,掌握 FPGA开发的基本步骤;2)掌握组合逻辑电路设计的一般方法;3)掌握程序下载方法,了解 UCF文件的格式;

13、4)初步了解开发板资源, 掌握开发板使用方法。 重点了解滑动开关和 LED显示灯的使 用方法。3、实验内容:3.1、用VHDL实现3-8译码器模块译码器电路如图2-1所示。其功能如表2-1所示。试用VHDL实现该译码器,并在开发 板上进行检验。-Y0Y13-8Y2译Y3码Y4器Y5Y6Y7图2-1 3-8译码器表2-1译码器功能表ENABCY7Y6Y5Y4Y3Y2Y1Y01XXX000000000000000000010001000000100010000001000011000010000100000100000101001000000110010000000111100000003.2、将

14、程序下载到FPGA并进行检验资源使用要求:用滑动开关SW3SW1作为输入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)下载到FPG

15、A ;6)拨动开关,验证结果是否正确。二、组合逻辑电路实验(二)1、实验名称:二位加法器设计2、实验目的:1)掌握ISE开发工具的使用,掌握 FPGA开发的基本步骤;2)掌握组合逻辑电路设计的一般方法;3)掌握程序下载方法;4)初步了解开发板资源, 掌握开发板使用方法。 重点掌握按键开关和滑动的使用方法。3、实验内容:3.1、用VHDL实现一个二位全加器二位加法器电路如图 2-2所示。其中A和B表示两个两位加数,S为三位和。EN为加 法控制位,即当该位为 1时执行加法。试用 VHDL实现该加法器。S(2.O)A(1.0)EN图2-2二位加法器要求:先实现1位全加器,然后用两个 1位全加器连接为

16、一个 2bit加法器。3.2、将程序下载到FPGA并进行检验资源使用要求:用滑动开关SW3SW2作为加数A的两个输入(SW3为高位),SW1-SW0作 为加数B的两个输入(SW1为高位);用按键开关ROT_CENTER作为加法控制端 EN用LED2LED0三个灯表示 3位和的输出。检验方法:预先随意设置 SW3SW0四个开关,读出 A和B的值。这时LED2-LED0处 于“灭”状态;按下ROT_CENTER按键。读出 LED2-LED0的值;验证LED2-LED0所表示的值是否为 A和B两个值的和。3.3、撰写实验报告4、实验步骤:1)启动ISE,新建工程文件;2)编写1位全加器的VHDL模块

17、addlbit;其原理图和功能分别如图2-3和表2-2所示。SCouta1bit全加器b Cin 图2-3 1位全加器原理图表2-2 一位全加器真值表abCinSCout0000000110010100110110010101011100111111提示:可以从上表得到 S和Cout的逻辑表达式。3)编写2位加法器的VHDL模块,其中将1位全加器作为component引用;4)新建UCF文件,输入位置约束;5)完成综合、实现,生成下载文件;6)连接开发板USB下载线,开启开发板电源;7)下载到FPGA ;8)拨动开关 SW3-SW0,按下ROT_CENTER,检查LED2-LED0的状态。验证

18、结果。三、时序逻辑电路实验(一)1、实验名称:可逆计数器设计2、实验目的:1)进一步熟练ISE开发工具,巩固FPGA开发的基本步骤,掌握功能仿真方法;2)掌握时序逻辑电路设计的一般方法,掌握时钟分频程序设计方法;3)理解VHDL的层次结构设计;4)巩固程序下载方法;5)了解开发板时钟资源,以及时钟分频方法。3、实验内容:3.1、实现如下基本的可逆计数器可逆计数器电路图及功能表如图 3-1和表3-1所示。图3-1可逆计数器原理图表3-1可逆计数器功能表clrenUp/D nelkY7 Y01XXX00XX停止计数011计数器+1操作010计数器-1操作3.2、资源使用要求及实现方法:1) 用LE

19、D0LED7作为计数器输出显示,LED7为高位,LEDO为低位;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所示。50M clock |_ 1Hz clock1/5000000图3-2 1/5000000分频器In1 2 选 1DoutIn2

20、,S 图3-3二选一电路SW2Y0(LED0)Y3(LED3)Y4(LED4)Y5(LED5)Y6(LED6)Y7(LED7)图3-4完整的可逆计数器3.3、撰写实验报告实验报告要求分模块,有调理给出各个模块的设计。4、实验步骤:1)建立工程文件,顶层文件为原理图;2)编写分频模块程序,要求输入为50MHz 系统时钟,输出为 1Hz 计数时钟;3)编写2选1模块,输入为按键、1Hz时钟和开关SW2,输出为计数源;4)编写计数器模块主程序模块;5) 在原理图中,将各个模块连接,使用pinhead 分配引脚资源;6)对程序进行功能仿真;7)下载程序,进行验证。三、时序逻辑电路实验(二)1、实验名称

21、:跑马灯电路设计2、实验目的:1) 进一步熟练ISE开发工具,巩固FPGA开发的基本步骤,掌握功能仿真方法;2)掌握时序逻辑电路设计的一般方法,掌握时钟分频程序设计方法;3)理解VHDL的层次结构设计,掌握多个进程设计方法;4)巩固程序下载方法;5)了解开发板时钟资源,以及时钟分频方法。3、实验内容:3.1、实现如下基本的可逆计数器跑马灯电路图如图3-5所示。图3-5可逆计数器原理图功能叙述:初始情况下 丫0= 1'其它为 0'然后,在en为高电平的情况下, 在时钟信号elk的下降沿进行移位。当 dir= 1时,每来一个时钟信号,循环左移一 位,当dir= 0'时,每来

22、一个时钟,循环右移一位。另外,移位控制时钟可以选择为按键,即每按键一次相当于一个时钟信号,系统可以在按键和系统分频时钟之间进行选择。要求:1)Clk信号的周期为1S,利用分频电路对 50Mhz系统时钟分频得到。2)在一个结构体中,写多个进程:时钟分频进程,移位进程,二选一进程。3.2、资源使用要求:1)用 LED0LED7 作为跑马灯输出显示, LED7 为高位, LED0 为低位;2)SW0 为循环方向控制;3)SW1 为工作允许 EN 控制端;4)计数时钟频率为 1Hz ,通过对 50Mhz 系统时钟分频得到,分频模块如图;6)扩展:可以由按键来控制循环(按键为BTN_SOUTH ),即每

23、按一次 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)了解按键抖动的原因,抖动

24、消除方法3)掌握状态机的设计方法;4)掌握消除抖动的状态机设计方法5)巩固程序下载方法;。3、实验内容:3.1原理简介按键动作发生时,按键的输出会出现不稳定的逻辑 刖逻辑的跳变。该信号直接输入 到计数器之类电路,会发生计数错误。如图 3-5所示。3.2提示:状态机设计思路设置十个状态:S0,S1,S2,S3,S4,S5。电路的复位信号 RST有效时,电路进入复位状态S0,在S0状态下,时钟信号 CLK以一定频率采样按键输入信号Key_in,如果采样到 Key_in = 0',则停留在S0状态,并继续采样,一旦采样到Keyn= 'T,贝U转入 S1延时状态,进行消抖延时,当延时结

25、束时,Delay_end= '1则转入 S2状态,在此状态下,时钟信号CLK以一定频率采样按键输入Key_in,如果Key_in = 0'则转入S0,否则转入 S3;状态S3, S4的转换过程和条件和 S2 相同,在状态S4下,如果Key_in= '1贝U转入S5状态,当进入S5时,表示经过S2, S3, S4三个连续状态检测按键输入Key_in都为 1',则认为按键处于稳定状态,在S5输出按键确认信号 Key_confirm= '1 '。同时在状态S5下,时钟信号 CLK检测按键输入 Key_in,如果Key_in = 1',表示按键

26、未释放,继续停留在 S5,检测输入信号,如果检测到Key_in = 1 ',表示按键已经释放,输出 Key_confirm = 0 ', 返回到状态 S0 ,等待下一次按键操作。3.3 完成验证电路设计设计一个按键计数器, 对未去抖的信号和去抖后的信号分别进行计数。 性。3.3 资源使用要求1)用 LED0LED7 作为计数输出;2)BTN_EAST 作为按键。3.4、撰写实验报告。实验报告内容要符合实验步骤要求。包括:状态分析、状态转换图、 验结论。4、实验步骤:1)画出电路的状态转换图;2)编写完整的 VHDL 程序;验证设计的正确VHDL 源程序、实3)下载程序,进行验证。五、综合实验(一)1、实验名称:两人乒乓球游戏2、实验目的:1)进一步熟练 ISE 开发工具,巩固 FPGA 开发的基本步骤,掌握功能仿真方法; 2)巩固状态机的设计方法;3)巩固按键消抖电路设计方法;4)掌握多进程程序设计方法;5)巩固程序下载方法;6)了解开发板时钟资源,以及时钟分频方法。3、实验内

温馨提示

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

评论

0/150

提交评论