![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
学fpga
文章平均质量分 68
主要记录学fpga的过程
嵌入式-老费
计算机科班出身,09年研究生毕业即投入嵌入式开发工作,欢迎付费咨询,微信联系:xiaoxing_fei。
展开
-
学fpga(hls之系统开发)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】对于zynq这样的开发平台,开发方法很多。你可以把它当作fpga,也可以当成是arm,当然也可以当成两者的结合体。此外,因为zynq里面集成了多核a9、a53,所以系统开发的模式就更多了,今天可以好好了解下。不过,因为最近芯片危机,zynq的供应是一个问题,这方面也要做一个好好的考虑。1、纯pga开发这个比较简单,就是把zynq当成纯fpga来开发。...原创 2022-05-22 08:42:08 · 1173 阅读 · 2 评论 -
学fpga(hls之vivado、zynq和petalinux)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】很多同学学习了fpga,也用到xilinx的vivado,当然也用到了zynq。可是没有弄清楚这里面之间的关系,趁着这个机会正好可以好好梳理一下。1、vivadovivado是开发fpga的工具。一般人谈到vivado都是说用它来开发数字ip,不管是进行功能验证,还是功能开发,大体都是这个思路。2、zynqzynq是arm和fp...原创 2022-05-10 07:58:52 · 2895 阅读 · 0 评论 -
学fpga(hls之BlockDesign)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】用hls生成了ip之后,驱动也有了,verilog代码也有了。下面最重要的一步就是把ip加入到整个BlockDesign里面去,这个流程也是非常重要的。1、准备hls代码#include <ap_cint.h>extern "C" void led_twinkle(uint1 key, uint32 num, uint2* led){#pragma ...原创 2022-05-08 23:56:27 · 2618 阅读 · 0 评论 -
学fpga(hls之中断)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】在fpga ip设计里面,中断时不可缺少的。一般来说,ip处理结束之后,要么用轮询的方法获得结果,要么用中断的方法获取结果。两种方式都是可以拿来使用,只是一般来说,轮询的方式效率会比较低。今天可以看下,hls里面中断是怎么处理的。不失一般性,可以把之前求平均值的hls代码拿出来分析,1、hls代码#include <ap_cint.h>uint32 _av...原创 2022-05-08 06:57:00 · 1331 阅读 · 0 评论 -
学fpga(hls之驱动代码)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】利用hls编写好了ip之后,那么驱动代码如何编写?好在hls sdk已经提前考虑到了这一点,在export rtl的时候,除了正常输出verilog和vhdl代码之外,也会提前帮助我们写好驱动代码。驱动代码有两种格式,一种是逻辑系统的驱动,类似于rtos里面用到的驱动;还有一种是linux驱动,但是也是在用户层对设备进行访问,不是真正的kernel module文件。1、hl...原创 2022-05-07 08:59:40 · 1243 阅读 · 0 评论 -
学fpga(hls之图像处理)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】本身hls为了推广,寻找了一些适合hls开发的领域。图像处理就是其中一个方向。图像处理的应用十分广泛,本身又需要进行短时间的大数据量处理,十分适合hls的使用。所以,xilinx官方提供了hls的函数库,同时为了进行testbench的测试,这些接口本身也兼容opencv已有的接口。1、头文件#include <hls_video.h>#define M...原创 2022-05-04 09:03:01 · 2652 阅读 · 2 评论 -
学fpga(hls之unroll的使用)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】hls里面除了提供了c、c++的编辑、综合功能之外,还提供了很多与之配套的功能,比如说testbench、co-sim、open wave viewer、compare report等等。这些都是分析fpga效果的利器。大家在学习hls的时候,要时刻记得是,我们编写的不是代码,其实是电路,和verilog一样的电路。言归正传,今天还是看一下hls里面unroll是怎么使用的。...原创 2022-05-03 08:05:00 · 816 阅读 · 0 评论 -
学fpga(hls之平均值算法编写)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】一些soc中的fpga,本身除了作为硬件使用之外,还可以作为硬件加速使用。如果是cpu上做的比较慢的一些操作,那么就可以用fpga来加速,这个时候hls就能排上用场了。可以以求平均值作为举例,看看fpga上面是怎么用hls做平均值的计算。1、一般写法#include <ap_cint.h>uint32 _average_int(uint32* array,...原创 2022-05-02 12:13:27 · 1444 阅读 · 0 评论 -
学fpga(hls之花式led配置)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】不管是学习c、c++,还是fpga,led的配置都是基础课。今天可以学点不一样的,看看hls里面led是怎么进行配置的。相关的代码主要参考两本资料,一本是《领航者zynq之hls开发指南 v2.0》,还有一本是《zynq开发平台hls教程》。两本资料都偏向实战,对于入门来说都不错。1、编程语言编程语言一般是c++,c也可以2、最简单的led熄灭控制void ...原创 2022-05-01 23:43:15 · 553 阅读 · 0 评论 -
学fpga(从verilog到hls)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】hls,全称为high level synthesis。也就是说从更高一级的语言来完成电路的综合。从前,编写fpga只有一个方法,都是编写verilog类似的硬件语言。但是如何用c、c++编写可综合的语言,这就变得很重要了,毕竟c、c++工程师比fpga的工程师要多得多。1、hls的重要性从某种意义上,hls会极大拓展目前fpga的应用领域。相比较mcu、...原创 2022-04-20 07:36:51 · 1422 阅读 · 0 评论 -
学fpga(在线verilog编程)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 很多编程不方便的同学,可以利用在线工具进行编程。比如现在,https://hdlbits.01xz.net/wiki/Main_Page这个网站就非常不错,适合暂时还没有安装quartus、vivado的同学。我们以一个简单的计数器说明如何使用这个网站,1、打开计数器的关联网页https://hdlbits.01xz.net/wiki/Count152、从截图中可...原创 2022-04-13 08:24:53 · 4841 阅读 · 0 评论 -
学fpga(状态机)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】软件开发中也用状态机,但软件开发除了状态机,还有多线程、网络、并发、数据库、GUI、线程互斥等很多东西。而fpga的状态机则使用的纯粹的多,范围也广的多。一个复杂的功能,如果没有模块的切分,没有状态机的设计,大概率是没有办法完整跑起来的。可以用一个范例来说明状态机。假设有一个自动贩卖机。贩卖机有两个入口,两个个出口。两个入口中,一个是投币入口,一个取消入口。两...原创 2022-04-11 08:12:26 · 710 阅读 · 0 评论 -
学fpga(先自顶而下设计,再自下而上集成)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】前面讨论一下led流水灯的显示、按键的触发这两个模块。等真正做一个项目的时候,应该怎么处理呢?一般先按照自定而下的方法进行需求切分,然后把每一个子模块做好了之后,再进自下而上的集成处理。考虑到之前讨论的流水灯和按键,可以假设有这么一个需求。当按键按下的时候,流水灯开始运行。当按键再次按下的时候,流水灯结束。等第三次按键按下的时候,流水灯再次开始循环。...原创 2022-04-10 16:27:03 · 1814 阅读 · 0 评论 -
学fpga(按键输入)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】按键输入,就是说电路板上有一个按键,希望外界系统对他有一个响应。可以试想一下,如果是纯软件应该怎么开发?因为,大家都知道,按键本身是一个机械装置,按下去的时候会有一个抖动。等到再次抬上来的时候也会有一个抖动。所以,这个时候,如果是纯软件,一般会加一个延时处理。bool check_key_pressed(){ if(key_down()) { ...原创 2022-04-09 22:08:20 · 1623 阅读 · 0 评论 -
学fpga(流水灯)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】从学习方法上说,fpga的学习方面和linux下面c开发有点相似。 fpga linux 语言 verilog。vhdl c,c++ 开发工具 vivado,quartus gcc 调试工具 chip scope,signal tap gdb 仿真 modelsim x86 linux虚拟机 运行 ...原创 2022-04-07 22:37:56 · 5324 阅读 · 0 评论 -
学fpga(组合逻辑和时序逻辑)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】很多人都以为写fpga,就是编写verilog,学习一门编程语言而已。这种观点,其实只对了一半。verilog作为一门语言,其本身是为了简化数字电路设计而存在的。但是,这种语言,和软件的编程语言。这是因为,软件的编程语言是变成一条一条的汇编指令,最终这些汇编指令都是由cpu来执行完成的。数字电路则不同,verilog里面的语句是需要变成门电路、触发器、消耗fpga资源的。因此,在编写...原创 2022-04-06 21:36:06 · 951 阅读 · 0 评论 -
学fpga(起步)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 很早就知道fpga,记得还是九年前在芯片公司的时候。那个时候在公司里面,主要也是用fpga做芯片验证,印象中好像用的是xilinx的v5、v7,vivado刚出来不久,价格还比较贵。当时觉得verilog挺好玩的,所以在2013年的时候写了一篇blog,https://feixiaoxing.blog.csdn.net/article/details/8897509。...原创 2022-03-28 21:08:15 · 777 阅读 · 0 评论