2

fpga实操训练(按键输入)

 1 year ago
source link: https://blog.csdn.net/feixiaoxing/article/details/128293618
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

fpga实操训练(按键输入)

嵌入式-老费 已于 2022-12-12 22:11:05 修改 26

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        在fpga上面进行按键的输入,要比stm32编写按键输入要容易的多。这里面最主要的工作就是把led输出和按键输入绑定在一起。当然,因为按键抖动的关系,需要进行一定的节拍延迟,再将信号传递给led。

1、普通按键输入 



newCodeMoreWhite.png

        如上面代码所示,按键因为是被按下的时候是低电平,所以需要进行取反的动作。按键输入key首先会被传递给tmp1,tmp1会传递给tmp2。最后led输出的时候,才会将tmp2输出给led灯。

c38d7499ab914683acb9af9ee9ba2424.png

          等完成了verilog编译之后,就需要把信号和pin脚bind在一起。这里需要注意的是key[0]。原来key0用的是reset引脚,因为这里是对key输入进行测试,取消了复位信号,所以这里的key[0]指向了N13这个引脚。

        做好了上面这几个步骤之后,就完成了按键和led灯之间的映射关系。按下key0,led0灯亮;按下key1,则led1灯亮,以此类推。

2、fpga程序的保存和烧入

        前面fpga虽然也生成了sof文件,但是这是通过jtag烧入的。如果断电之后,fpga的程序就丢失了。所以,最好的方法还是需要把程序保存在spi norflash里面。正好quartus也提供了这样的接口,选择“File”-》“Convert Programming Files”,

34544d52f69049009fa903e45773af64.png

         这个时候,不出意外就会出现这样的窗口,

7f22423893ff4044b5654ecfe2a6f902.png

         需要配置的有4个地方。1是设置最终要烧入的文件类型。2是选择norflash的类型。3是选择fpga的类型。4是选择要转化的文件。其中2和3根据自己开发板的情况灵活进行选择。如果一切OK,单击Generate按钮即可。

3a1c97d5e37c4935898272424aa94dc1.png

         有了生成的jic文件,下面就可以准备烧入了。选择“Tools”-》“Programmer”。这时双击文件,重新选择刚刚生成的jic文件,

d9baca201b6443f49a1c2c941d3b5d71.png

         等选择之后,会发现烧入的界面发生了改变。

391f6d6668044ccf911c26a05b17d72f.png

        先勾上Erase,单击start,过一会应该就能erase完毕。

6af7ae4cc501424d9e7a3e830a9e8ef6.png

         再次勾上Program/Configure,单击start。注意先把Erase取消掉,

1313f41f80b9452faf93ba39d0b27341.png

         等到这些都做完之后,整个烧入就结束了。为了测试jic是不是真的烧入到flash当中了,可以先断电,再上电。如果相关功能还保留着,那说明确实烧入到flash里面去了。否则,就需要检查一下为什么烧入失败了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK