【国产FPGA】国产FPGA搭建图像处理平台

最近收到了高云寄过来的FPGA板卡,下图:

6858f9da15069e19ed10b01bc2807e61.png来源:https://wiki.sipeed.com/hardware/zh/tang/tang-primer-20k/primer-20k.html

FPGA主要参数:

FPGA型号参数
GW2A-LV18PG256C8/I7逻辑单元(LUT4) 20736

寄存器(FF) 15552

分布式静态随机存储器S-SRAM(bits) 41472

块状静态随机存储器B-SRAM(bits) 828K

块状静态随机存储器数目B-SRAM(个) 46

乘法器(18x18 Multiplier) 48

锁相环(PLLs) 4

I/O Bank 总数 8

因为板卡是第三方的,所以不予评价,我们今天主要从下面几方面简单说明一下:EDA、IP、编译速速、生态。

EDA

高云的EDA下载非常简单,从下方网址直接可以下载

http://www.gowinsemi.com.cn/faq.aspx

我这次使用的教育版软件,无需License,但是也会有些限制。

打开界面:

8216d21d16e0ea25e1357800ddac0ccc.png

整体和lattice diamond界面类似,这里有个不舒服的地方就是文件没有层级关系,需要综合之后才能在Hierarchy看到层级关系:

6eacb13f084ad238b35aa051980c5075.png

这里对于大型或者多文件工程极其不友好,对于继承代码,那简直。。。

f387bf3b8262ce88caa750c91edf8410.png

在编写完代码后,综合、布局布线界面极其方便,在下面界面可完成。

44947136682cf5c302e84def7d41d37b.png

同时绑定引脚也可以使用两种方式,综合后通过界面分配或者文件物理约束都可:

9631d0dff33cc32f32fb507485c23f54.png

最后布局布线,点击下图中两个位置都可以打开下载插件:

fe9447a799b0ae3213de6972eb8331b2.png

这个插件可以单独使用无需license,对于小批量生产很方便。

但是这里也有一个小BUG,在打开下载插件时候,这里的文件不一定是你这个工程的文件:

90fc93d3f6c0943d477d1f67be0d0cb4.png

尤其是在使用逻辑分析仪时候,会重新生成新的二进制文件(新的文件名),而上图的文件位置并不会更新成新的文件,需要重新选择,这两点很容易让你下载到FPGA的目标文件和生成的文件并不是一个文件(调试了好久。。。),这里可以不记忆或者下方提示或者在选择文件位置加一个惊叹号类似的提示。

高云的FPGA还有一个好处就是无需外部FLASH就可以固化启动文件,因为FPGA内部有FLASH(类似Intel CPLD),也可以使用外部FLASH进行双备份,这样即减少了电路复杂度,也减少了成本增加了稳定性。

IP

上面简单介绍了EDA软件(云源软件)的使用,下面看下对于开发者最重要的一部分--IP,一个强大的IP环境可以为开发者节省很多开发时间,我们先看下教育版的IP有多少:

b9480b59f23c02b3a9c7a12059326377.png

下图就是EDA提供的常规IP,也很丰富,DSP、常用接口、CLOCK、Memory等,因为我用的是教育版EDA,不知道和正版有哪些缺失,不过有些IP我是不能用的,这很正常,差异性服务是未来的趋势。

cf141bf130cc6776c4ee5ac9ef3769a8.png

这里我们重点关注下面箭头的部分:

ff22e4767fc5f1b59577fad223d90e39.png

做图像处理的应该都理解这几个IP的重要性,其中Video Frame Buffer类似AMD-Xilinx 的“VFIFO”,帧缓存至DDR并且从DDR读取帧数据进行显示或者处理,这大大减少了开发者操作DDR的开发周期。

编译速速

这个我就不多说了,因为本身软件需要做优化的地方比较少(内部主频比较低),所以速度很快,后续大容量、高主频的FPGA出来后速度肯定会降低,目前没办法对比。

6e2b24df0fbddb57efc075c15deace65.jpeg

生态

这个我就不单独以高云为例了,而是目前国产FPGA,都是一样的,生态环境几乎为零,主要是前期一直以站稳市场为主,没有进行推广,所以生态没建立起来很正常,随着未来的发展,肯定会越来越好~

图像处理平台

关于代码这篇文件不详解,主要应用到DDR+FRAME BUFFER两个IP,详细工程:

https://github.com/sipeed/TangPrimer-20K-example/tree/main/Cam2HDMI

在这个基础上可以做自己的IP添加进去。后续大家有兴趣再详细讲解这个工程。

总结

国产FPGA在发展,目前在价格上优势极其明显,后续的发展还要靠国内的开发者去支持。

虽然目前还有一些BUG,但是还可以忍受。最后就是希望国内的FPGA可以越发展越好~

有什么其他厂家的国产FPGA需要测评使用欢迎大家留言~

7c87ac603060844c7ce3b75de2b96b6b.png

点个在看你最好看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/2012.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.59】引入ASPP模块

前言作为当前先进的深度学习目标检测算法YOLOv8,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv8的如何改进进行详细的介绍&…

RK3588平台开发系列讲解(NPU篇)RKNN SDK API流程

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、通用 API 接口二、零拷贝 API 接口2.1、输入/输出内存由运行时分配2.2、输入/输出内存由外部分配2.3、输入/输出/权重/中间结果内存由外部分配沉淀、分享、成长,让自己和他人都能有所收获!😄 📢RKNN SDK 为带…

ChatGPT助力校招----面试问题分享(四)

1 ChatGPT每日一题:电阻如何选型 问题:电阻如何选型 ChatGPT:电阻的选型通常需要考虑以下几个方面: 额定功率:电阻的额定功率是指电阻能够承受的最大功率。在选型时,需要根据电路中所需要的功率确定所选…

Python爬虫——Python多线程爬虫详解

网络爬虫程序是一种 IO 密集型程序,程序中涉及了很多网络 IO 以及本地磁盘 IO 操作,这些都会消耗大量的时间,从而降低程序的执行效率,而 Python 提供的多线程能够在一定程度上提升 IO 密集型程序的执行效率。 多线程使用流程 Py…

血氧仪是如何得出血氧饱和度值的?

目录 一、血氧饱和度概念 二、血氧饱和度监测意义 三、血氧饱和度的监测方式 四、容积脉搏波计算血氧饱和度原理 五、容积脉搏波波形的测量电路方案 1)光源和光电探测器的集成测量模块:SFH7050—反射式 2)模拟前端 六、市面上血氧仪类型…

HTTPS协议,看这篇就够了

不安全的HTTP 近些年来,越来越多的网站使用 HTTPS 协议进行数据传输,原因在于 HTTPS 相较于 HTTP 能够提供更加安全的服务。 很多浏览器对于使用 HTTP 协议的网站会加上『警告』的标志表示数据传输不安全,而对于使用 HTTPS 协议的网站会加上…

二叉搜索树

二叉搜索树 文章目录二叉搜索树定义实现节点类的框架insert函数find函数erase函数-方法一erase函数-方法二递归实现_insert_R函数_erase_R函数构造函数析构函数Destory函数拷贝构造Copy函数赋值重载K模型和KV模型K模型KV模型简单介绍DFS和BFS二叉搜索树的性能分析定义 二叉搜索…

【canvas】简易小实例(钟表和画布)

看了大佬的canvas 2d视频视频链接 通过两个小实例介绍了canvas的各项函数与功能这里放出代码供参考 文章目录画布实例钟表实例总结画布实例 实现了鼠标可以在画板上绘制图像,且可以重置和保存为png。原理是监听鼠标的操作事件,通过不断的设定canvas的绘制…

【JavaEE】Thread 类及常用方法

一、Thread 类Thread 类我们可以理解为是 java 用于管理线程的一个类,里面封装了操作系统提供的线程管理这一方面的 API (Thread 是优化后的结果), Java 代码创建的每一个线程,可以理解为为 Thread 实例化的对象,Threa…

项目质量管理工作 不得不重视的4大关键点

1、三大视角确保项目质量 我们需要从客户视角、SOW视角和组织视角三大视角,确保项目的质量。 从客户视角方面出发,满足客户的要求,如项目交付的准时性、项目质量的保证等。我们需要全力保障客户对项目质量的要求。 从SOW视角确保项目质量&…

web渗透之jwt 安全问题

前言JWT 全称 JSON Web Token,是一种标准化格式,用于在系统之间发送加密签名的 JSON 数据。原始的 Token 只是一个 uuid,没有任何意义。JWT 包含了部分业务信息,减少了 Token 验证等交互操作,效率更高JWT组成JWT 由三部…

【Linux】Linux基本指令(下)

前言: 紧接上期【Linux】基本指令(上)的学习,今天我们继续学习基本指令操作,深入探讨指令的基本知识。 目录 (一)常用指令 👉more指令 👉less指令(重要&…

让 new bing 使用 GPT-4 编写一个令人满意的程序全过程赏析

让 new bing 使用 GPT-4 编写一个令人满意的程序全过程赏析 标签:new bing、GPT-4 文章目录让 new bing 使用 GPT-4 编写一个令人满意的程序全过程赏析前言1 让 bing 编写一个画螺旋线的程序1.1 我的要求(1)1.2 bing 的回答全文(…

web前端开发和后端开发哪个难度大?

前言 因为涉及到的具体的应用的领域不同,所以说不能简单地说哪一个难,对于前端而言你会感觉到入门会非常的简单,这也是会给许多人一种错觉,前端很简单,但是只能说是在入门理解上是有利于新手的,前端在主要…

【深度学习】迁移学习

什么是迁移学习 迁移学习(Transfer Learning)是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为…

lgsvl 现状

lgsvl自从2023年1月停服务以来,几乎就没有lgsvl最新的消息了,其实还是可以通过官网去查看技术文档,(https://www.svlsimulator.com/)但是没法像之前那样注册,登录,配置agent了,这个就…

unable to resolve dependency tree、webpack与xxx-loader版本不兼容问题解决 (详细步骤)

unable to resolve dependency tree、webpack与xxx-loader版本不兼容问题解决 (详细步骤) 01.问题 1.在npm install style-loader时出现报错,如下图所示 2.安装图中指定的版本还是没有办法解决 02.问题分析 1. 可以看出这里是由于webpack…

QT CTK插件框架 (一 下载编译)

CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit。为医学成像提供一组统一的基本功能;促进代码和数据的交互及结合;避免重复开发;在工具包(医学成像)范围内不断扩展到新任务,而…

【id:14】【20分】C. 字符串比较(指针与字符)

题目描述 编写一个函数比较两个字符串,参数是两个字符指针(要求显式定义,例如char *S, char *T),比较字符串S和T的大小。如果S大于T,则返回1,如果S小于T则返回-1,如果S与T相等则返回0。 比较规…

强烈推荐:0基础入门网安必备《网络安全知识图谱》

蚁景网安学院一直专注于网安实战技能培养,提供全方位的网安安全学习解决方案。我们集聚专业网安技术大佬资源,倾力打造了这本更全面更系统的“网络安全知识图谱”,让大家在网络安全学习路上不迷茫。 在这份网安技能地图册里,我们对…
最新文章