- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验目的
通过此实验让用户进一步了解、 熟悉和掌握 CPLD/FPGA开发软件的使用方法及 VHDL的编程方法,熟悉以 Herilong HDL文件为顶层模块的设计。
学习和体会分支条件语句 casc 的使用方法及 FPGA I/O
口的输出控制 。
实验内容
SmartSOPC实验箱上有 8 个按键 KEY1~KEY8和 8 个发光二极管
LED1~LED8。在 SmartSOPC实验箱上 KEY1~KEY8通过跳线 JP6的
LED1~LED8分别于芯片的 121~124、143、141、158、和 156 引脚相
连。
本实验的内容是要求在 SmartSOPC实验箱上完成对 8 个键盘
KEY1~KEY8进行监控,一旦有键输入判断其键值,并点亮相应的发
光二极管,如若 KEY3按下,则点亮 LED1~LED3发光管并且在放开
时也能保持亮的状态。
实验原理
FPGA的所有 I/O 控制块允许每个 I/O 引脚单独置为输入口,不过
这种配置是系统自动完成的,一旦该 I/O 口被设置为输入口使用
时,该 I/O 控制模块将直接使三态缓冲区的控制端接地,使得该
I/O 引脚对外呈高阻态,这样改 I/O 引脚即可用作专用输入引脚。
只要正确分配并锁定引脚后, 一旦在 KEY1~KEY8中有键输入, 在检
测到键盘输入的情况下,继续判断其键盘值并作出相应的处理。
最后拿出跳线短接帽跳接到 JP6 的 LED1~LED7、KEY1~KEY8使LED1~LED8和 KEY1~KEY8和芯片对应的引脚相连。拿出 Altera ByteBlaster Ⅱ下载电缆,并将此电缆的两端分别接到 PC机的打印机并口和 QuickSOPC核芯板上的 JTAG下载口上,打开电源,执行下载命令,把程序下载到 FPGA器件中,按下 KEY1~KEY8的任意键,观察 LED1~LED8的状态。
4. 实验步骤
1.启动 Quartus Ⅱ建立一个空白工程,然后命名为 keyboard 。
2.源程序文件命名为 keyboard ,并选择器件为 Altera 公司
Cyclone 系列的 EPIC12Q240C8芯片,如图 1—1
图 1—1
3.新建 Veriog HDL源程序文件,输入程序代码并保存。再进行综
合编译,若发现编译过程中有错误 1—2(1) ,则找出并更正错误,
直到编译成功为止。如图 1—2(2)就表示编译成功了( warings
可以不考虑)。
1
图 1—2(1)
图 1—2(2)
4.对引脚进行锁定。通过选择 [Assignments] 下的 [pins] 。分配好管脚如图 1— 3 所示。
图 1—3
2
5 .将未使用的管脚设置为三输入。以防止损坏芯片如图 1—4 所
示。
图 1—4
最后拿出跳线短接帽跳接到 JP6 的 LED1~LED7、KEY1~KEY8使
LED1~LED8和 KEY1~KEY8和芯片对应的引脚相连。拿出 Altera ByteBlaster Ⅱ下载电缆,并将此电缆的两端分别接到 PC机的打印机并口和 QuickSOPC核芯板上的 JTAG下载口上,打开电源,执行
下载命令,把程序下载到 FPGA器件中(如图 1-5 ),按下 KEY1~KEY8
的任意键,观察 LED1~LED8的状态。
图 1—5 在点 [Start] 即可下载烧录了。
3
实验程序
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity keyboard is
port(key_8bit:IN std_logic_vector(7 downto 0); led_8bit:OUT std_logic_vector(7 downto 0));
end keyboard;
architecture keyboard of keyboard is
signal tmp: std_logic_vector(7 downto 0);
begin
process(key_8bit)
begin
case key_8bit is
whentmp
whentmp
whentmp
whentmp
whentmp
whentmp
whentmp
whentmp=0111111
原创力文档


文档评论(0)