5

学fpga(hls之花式led配置)

 2 years ago
source link: https://blog.csdn.net/feixiaoxing/article/details/124534865
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.
neoserver,ios ssh client

学fpga(hls之花式led配置)

费晓行 已于 2022-05-02 09:57:52 修改 219

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

        不管是学习c、c++,还是fpga,led的配置都是基础课。今天可以学点不一样的,看看hls里面led是怎么进行配置的。相关的代码主要参考两本资料,一本是《领航者zynq之hls开发指南 v2.0》,还有一本是《zynq开发平台hls教程》。两本资料都偏向实战,对于入门来说都不错。

1、编程语言

编程语言一般是c

2、最简单的led熄灭控制

        代码中没有输入,只有led输出。从uint2数据类型来说,有两个led。此外,计数器为i,当i小于500000的时候,一个led亮。等到i大于500000的时候,另外一个led灯亮。这样就可以实现一个循环显示led灯的效果。两个HLS INTERFACE也非常重要,一个说明参数接口类型,一个说明函数接口类型。

3、按键控制接口

        整体代码和2中的代码差不多,就是多了一个key。当key按下去的时候,led开始循环闪烁。当key没有按下去的时候,led停止闪烁,熄灭。当然,这里key也要定义为ap_none接口。

4、带参数的按键控制

        和3相比较,4又多了一个接口,即num,类型为s_axilite。这个类型表明接口是可以配置的。也就是说,led闪烁的频率可以通过软件进行设置,从这一点说,这个led功能就开始变得有点高级了。因为它不仅有自己的逻辑,还有了软硬件交互的部分,意义一下大了很多。

5、呼吸灯

        相比较4而言,这一次多了两个控制量。一个是period,一个是step。period保证了led控制的周期,而step保证了心跳的频率。当然两个数据的接口类型都是s_axilite。

        2、3的示例和fpga一样,只不过3比2多了一个输入。4是比较有意义的,这也是zynq这一类的soc价值所在,不仅实现了特定的功能,还能实现软硬件交互,这就有价值了。5是4的拓展,从一个控制参数,变成两个控制参数。

        c、c++编译生成的代码最终也是要变成verilog综合的,这一点需要注意下。所以语言只是手段,不是目的。目的还是为了构建一个能被cpu操作的ip核。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK