完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我是verilog / HDL和Xilinx ISE套件的新手。
我正在做一个项目,我必须使用这个板上的键盘。 我只想将键盘上的按钮1和2视为选择器输入。 例如......我的设计读取两个信号并输出是或否。 按键盘上的1应输出yes,按2应输出no。 我最大的问题是将我想要的信号映射到键盘。 如何通过.ucf约束文件将键盘按钮映射到我的设计中的特定信号? 谢谢 |
|
相关推荐
6个回答
|
|
[链接到Anvyl董事会页面]
您的键盘是多路复用的。 这是显示开关连接的原理图。 读取按钮的方法是将四个列信号中的一个驱动为低电平,而将其他三个信号保持为三态。 然后四行信号将指示该列中的哪个按钮被按下。 0表示按下,1表示开路。 因此,例如,如果您将COL1驱动为低电平并将COL2保持为COL4三态,则ROW1表示“1”按钮的状态,ROW2表示“4”按钮的状态,ROW3表示“7”按钮的状态 和ROW4表示“*”按钮的状态。 如果您只需要在应用程序中使用两个按钮,则可以在同一列中选择两个按钮,并使COL1至COL4信号始终处于相同状态(选择一个并将其接地)。 如果你真的需要使用按钮1和2,那么你需要通过旋转COL1和COL2线(一次仅驱动其中一个低)并查看ROW0线来“扫描”键盘。 - Gabor 在原帖中查看解决方案 |
|
|
|
这是正在使用的约束文件的一部分。
#Clock信号100MHz NET“clk”LOC = D11; #在[0]中切换#NET“LOC = V5 | IOSTANDARD = LVCMOS18; #Bank = 3,pin name = IO_L13N_3,Sch name = SW0#NET“in [1]”LOC = U4 | IOSTANDARD = LVCMOS18; #Bank = 3,pin name = IO_L18P_3,Sch name = SW1#NET“in [2]”LOC = V3 | IOSTANDARD = LVCMOS18; #Bank = 3,pin name = IO_L18N_3,Sch name = SW2#NET“in [3]”LOC = P4 | IOSTANDARD = LVCMOS18; #Bank = 3,pin name = IO_L21P_3,Sch name = SW3#NET“in [4]”LOC = R4 | IOSTANDARD = LVCMOS18; #Bank = 3,pin name = IO_L21N_3,Sch name = SW4#NET“in [5]”LOC = P6 | IOSTANDARD = LVCMOS18; #Bank = 3,pin name = IO_L22P_3,Sch name = SW5#NET“in [6]”LOC = P5 | IOSTANDARD = LVCMOS18; #Bank = 3,pin name = IO_L22N_3,Sch name = SW6#NET“in [7]”LOC = P8 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L23P_3,Sch名称= SW7 ## LED NET“out [0]”LOC = W3 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L9P_3,Sch名称= LD0 NET“out [1]”LOC = Y4 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L7N_3,Sch name = LD1 NET“out [2]”LOC = Y1 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L2N_3,Sch名称= LD2 NET“out [3]”LOC = Y3 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L8P_3,Sch名称= LD3 NET“out [4]”LOC = AB4 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L12N_3,Sch名称= LD4 NET“out [5]”LOC = W1 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L9N_3,Sch名称= LD5 NET“out [6]”LOC = AB3 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L8N_3,Sch名称= LD6 NET“out [7]”LOC = AA4 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L12P_3,Sch名称= LD7 ##键盘NET“col [0]”LOC = H8 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L58P_3,Sch name = COL1 NET“col [1]”LOC = J7 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L58N_3,Sch name = COL2 NET“col [2]”LOC = K8 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L59P_3,Sch名称= COL3 NET“col [3]”LOC = K7 | IOSTANDARD = LVCMOS18; #Bank = 3,pin name = IO_L59N_3,Sch name = COL4 NET“in [0]”LOC = E4 | IOSTANDARD = LVCMOS18; #Bank = 3,pin name = IO_L60P_3,Sch name = ROW1 NET“in [1]”LOC = F3 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L60N_3,Sch名称= ROW2 #NET“KYPD_ROW [2]”LOC = G8 | IOSTANDARD = LVCMOS18; #Bank = 3,pin name = IO_L73P_3,Sch name = ROW3 #NET“KYPD_ROW [3]”LOC = G7 | IOSTANDARD = LVCMOS18; #Bank = 3,引脚名称= IO_L73N_3,Sch name = ROW4 |
|
|
|
[链接到Anvyl董事会页面]
您的键盘是多路复用的。 这是显示开关连接的原理图。 读取按钮的方法是将四个列信号中的一个驱动为低电平,而将其他三个信号保持为三态。 然后四行信号将指示该列中的哪个按钮被按下。 0表示按下,1表示开路。 因此,例如,如果您将COL1驱动为低电平并将COL2保持为COL4三态,则ROW1表示“1”按钮的状态,ROW2表示“4”按钮的状态,ROW3表示“7”按钮的状态 和ROW4表示“*”按钮的状态。 如果您只需要在应用程序中使用两个按钮,则可以在同一列中选择两个按钮,并使COL1至COL4信号始终处于相同状态(选择一个并将其接地)。 如果你真的需要使用按钮1和2,那么你需要通过旋转COL1和COL2线(一次仅驱动其中一个低)并查看ROW0线来“扫描”键盘。 - Gabor |
|
|
|
首先,非常感谢你的回复,你们非常乐于助人。
我实际上可以在同一列中使用2个按钮。 那么这是否意味着我应该将col1到col3 all设置为'1'? 而哪个行按钮设置为'0'是按下的按钮? |
|
|
|
只要您承诺不按这些列中的键,就可以将未使用的列设置为您喜欢的任何列。
最好不要使用未使用的列线(三态),或者通过明确地将它们“驱动”到“Z”或将它们完全从设计中删除。 因此选择一列(比如说COL1,因为没有列零)并将其驱动为“0”。 然后,如果按下键盘左列中的按钮,其ROWx信号将变为“0”。 - Gabor |
|
|
|
我非常感谢你。
|
|
|
|
只有小组成员才能发言,加入小组>>
2501 浏览 7 评论
2871 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2330 浏览 9 评论
3424 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2512 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
2459浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
661浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
521浏览 1评论
801浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-25 03:24 , Processed in 1.383161 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191