查看原文
其他

国产FPGA开发板上手体验:不足百元,集成ARM硬核处理器!

The following article is from 电子电路开发学习 Author wcc149

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案我工作中正在使用的几款芯片也面临停产的风险,用一片少一片……
后来了解到国产FPGA发展的也不错,完全自主知识产权的芯片种类也很多,于是最近就购买了一块基于高云半导体FPGA芯片的开发板——Tang Nano 4K,学习一下国产FPGA的开发和使用。
Tang Nano 4K是由国内著名开源硬件厂商SiPEED矽速科技出品的一款FPGA开发板,基于国产FPGA芯片——高云小蜜蜂系列GW1NSR-4C,这颗芯片是异构平台,片上集成了FPGA和ARM Cortex-M3硬核处理器。
Tang系列FPGA开发板,还有TangNano 1K、TangNano 4K、TangNano 9K等多种配置可供选择。
Tang Nano 4K开发板在官方国际平台售价$13.5起:
在国内平台售价¥79起:
我是从第三方卖家购入,选的是带OV2640摄像头的套餐,到手价格不到90块,还是非常实惠的!
配件清单:
  • TangNano 4K开发板

  • 黑色USB Type-C数据线,长度约50cm,材质比较柔软

  • 2.54mm间距22P排针2根

  • OV2640摄像头模组和配套的FPC母座

  • 磨砂材质的收纳盒,刚好可以放下以上所有配件

开箱实拍图:
从开发板价格也可以大致推算FPGA芯片的价格,应该是在50RMB左右,性价比还是很高的。
GW1NSR-4C虽然逻辑资源不多,但是片上有一颗ARM Cortex-M3内核的处理器,对于了解高云FPGA和ARM的开发流程来说足够了。
在此之前我曾经使用过Microsemi(现Microchip)的SmartFusion系列SoC,也是集成FPGA+ARM Cortex-M3硬核,和Xilinx的Microblaze软核处理器的使用,所以对于高云的这款SoC芯片可以很快的上手使用。
TangNano 4K开发板所使用的GW1NSR-4C FPGA芯片是QFN-48封装,大小只有6x6mm,应该是我见过的最小的FPGA芯片了。
本篇文章主要介绍TangNano 4K开发板基本硬件资源、高云GW1NSR-4C SoC芯片特性,以及相关开发工具和资料。
  • 1. 开发板硬件资源

  • 2. 开发板硬件电路

  • 3. GW1NSR-4C芯片资源

  • 4. 关于高云半导体

  • 5. 开发工具和资料

  • 6. 总结

  • 7. 参考资料

1、开发板硬件资源

Tang Nano 4K FPGA开发板整体尺寸非常小巧,只有22.86x60mm大小,放在手里显得很精致,PCBA元器件布局紧凑,所有的元器件都集中放置在一面,另一面只有丝印。阻容元件大多采用尺寸更小的0402封装,PCB应该在4层以上,PCB采用的是哑光色油墨、沉金工艺,整体看起来有点高端。
开发板正面:
开发板背面:
开发板两侧预留有标准2.54mm间距的排针接口,焊接上排针,可以作为核心板插在设计的底板上,或者直接插在面包板上通过杜邦线连接外设硬件模块。
下面,我们来看一下开发板板载的硬件资源:
  • FPGA主控核心,采用的是国产FPGA芯片——广东高云半导体的小蜜蜂系列SoC GW1NSR-LV4C,QFN-48封装,片上集成了FPGA和ARM Cortex-M3硬核。

  • 板载FPGA调试器,基于南京博流智能的BL702芯片方案,只需要一根USB线就可以完成下载、调试,支持使用FPGA逻辑分析仪,或者调试ARM核,遗憾的是开发板厂商在低配开发板上去掉了虚拟串口功能,如果需要使用串口调试,还需要通过排针外接一个串口模块。

  • SPI Flash芯片,采用的是上海普冉半导体的P25Q32,32MBit容量,可以用来存储用户数据,GW1NSR内部有存储空间可以存储FPGA和ARM固件程序,也支持从外部SPI启动,当设置为MSPI启动方式时,可以实现从外部SPI Flash加载FPGA程序,TangNano 4K开发板的启动模式固定为从内部启动,所以这颗Flash芯片用户可以随意进行读取。

  • 摄像头接口,标准24P 0.5mm 间距FPC座子,可用来连接OV2640摄像头模组。

  • 标准HDMI接口,可以直接连接HDMI接口的显示器,配合摄像头可以做一些图像处理的应用,受限于逻辑规模,也不能做太复杂的处理。

  • 1路用户LED,2路用户按键,可以1个作为复位,1个作为普通按键来使用。

  • 标准2.54mm间距 2x22排针扩展接口,预留出了38个用户GPIO,可以用来连接丰富的外部电子模块。

  • 板载27MHz有源晶体,说实话在FPGA板子上这个频率的晶体很少见,大多都是25/50/100/200MHz。

  • 电源芯片方案采用的是西安拓尔微电子的TMI7003C,5v转3.3/2.5/1.8v,其他还有微盟电子(南京)的ME6211,上海南麟电子的LN6206P15/30

  • TypeC接口,可以连接PC进行FPGA/ARM程序下载、调试等,非常方便。

下面是硬件资源在板子上的分布图:
再来看一下板子的部分细节实拍图
首先是与电脑连接的USB接口,采用的是近两年比较流行的TypeC接口,目前市面上的很多开发板还保留着比较旧的MicroUSB、MiniUSB或者是方口USB接口,不如TypeC方便,不区分正反面,现在的安卓手机也都是TypeC的数据线,如果附赠的数据线不小心丢失了,也可以直接使用手机的数据线。
标准HDMI接口,这个HDMI是输出方向的,只能连接外部的HDMI显示器,而不能连接笔记本电脑的HDMI接口。
板载的FPC座可以连接OV2640摄像头模组,配合HDMI接口实现摄像头采集,FPGA实现图像处理算法,比如灰度、二值化、边缘检测等,再输出到HDMI接口进行显示,非常方便。
27MHz的有源晶体,说实话,以我用过的FPGA板子来看,这个频率的外置晶体很少见,大多都是25/50/100/200MHz。
排针长度略显尴尬,不知道是排针短还是板子厚,插上排针之后,没有漏出来,可能不容易焊接牢固,不过这样焊接之后会比较好看,正面不会凸出太多。

2、开发板硬件电路

从官方提供的原理图风格来看,这款板子的PCB使用的是开源EDA工具KiCAD设计的,毕竟这种商业售卖的板卡,还是要考虑商业软件的授权问题。
从原理图来看,高云GW1NSR-4C FPGA芯片的外围电路非常简单,用户可用IO非常多,虽然是带ARM硬核的FPGA SoC,但是和ZYNQ系列不同,ARM端的管脚也并不是固定在某些管脚,而是可以随意的分配,非常灵活。
从FPGA最小系统电路来看还是比较简单的,只需要提供内核电压、辅助电压、BANK电压,以及必要的外围配置和复位电路即可,内核电压最大支持1.32v,BANK电压最大支持3.75v,JTAG管脚为ARM和FPGA共用。
HDMI电路部分采用的是FPGA直驱的方式,没有采用编码芯片,可以使用官方提供的DVI TX IP核来完成TMDS信号的转换,最高支持1440x2560分辨率的视频输出。
FPGA原理图
开发板板载了基于BL702芯片的JTAG调试器,只需要一根Type-C的数据线就可以完成FPGA/ARM程序下载和调试,非常方便,遗憾的是并没有集成虚拟串口的功能(高配板子9K才有此功能),调试器的固件应该是由板卡厂商设计,如果安装了高云官方云源软件附带的下载软件无法识别此下载器,需要替换为荔枝糖的下载软件才能正常使用。
BL702是由国内半导体厂商南京博流智能科技研发的一款集成蓝牙功能的低功耗MCU产品。
BL702数据手册:
https://whycan.com/files/members/341/BL702_BL704_BL706_DS_zh_CN_Combo_1.9.pdf
BL702下载器电路:
官方附赠的资料包里,还提供了板子的stp模型和dxf格式的CAD文件,可以根据板子的结构尺寸来设计配套的扩展底板。
cad文件预览:
stp文件预览:

3、GW1NSR-4C芯片资源

TangNano 4K的FPGA芯片采用的是高云半导体小蜜蜂系列的GW1NSR-4C,它是一颗SoC芯片,片上集成了FPGA逻辑和ARM Cortex-M3硬核处理器
注意是硬核处理器,而不是软核!两者有很大的区别,硬核处理器是芯片内部本来就设计有处理器硬件电路,而软核处理器是使用FPGA逻辑资源来搭建的处理器,硬核处理器不占用逻辑资源,从性能和稳定性上来说都要比软核处理器好。
关于软核和硬核处理器的介绍,以及如何在FPGA上搭建ARM软核处理器,可以查看我之前写的几篇文章:
高云GW1NSR-4C只有4068个LUT逻辑单元,但是集成了ARM硬核处理器,对于想学习这种异构平台协同开发的朋友来说,是一个非常不错的选择,下面来看下这颗芯片的资源特性。
GW1NSR-4C FPGA特性:
  • 4608 LUT4逻辑单元+3456 FF寄存器,55nm嵌入式闪存工艺

  • 内置Flash存储,无需外置SPI Flash,瞬时启动

  • IO最大频率150MHz,LVDS最大频率400MHz

  • 16个硬件乘法器(18x18),2个锁相环PLL

  • 1.2v内核电压,集成HyperRAM存储芯片64M

  • 支持常见的电平标准LVCMOS、LVTTL、SSTL、HSTL、LVDS、MIPI、I3C等等

  • 多种配置模式:JTAG、Dual Boot,高云特有的配置模式:AutoBoot,SSPI,MSPI,CPU,Serial

  • 片上集成OSC,可以通过配置分频系数来产生2.5-125MHz时钟信号,精度5%。

  • 最小封装为MG64P,4.2x4.2mm

ARM处理器特性:
  • ARM Cortex-M3 32Bit RISC内核,ARM3v7M 架构

  • 最高80MHz工作频率,支持Bit-banding操作

  • 用户闪存256Kb,硬件除法器、单周期乘法

  • 26个中断源,8个优先级

  • 2路TIMER,2路UART,1路看门狗

  • 预留AHB和APB总线扩展接口,可自定义IP

  • 支持uC/OS-III,FreeRTOS等RTOS

  • 支持GOWIN MCU Designer和Keil-MDK开发环境

高云GW1NSR系列包括2/2C/4/4C多个型号,GW1NSR-2C片上逻辑资源较4C少,但是集成了USB 2.0 480Mbps高速PHY和8通道12位SAR ADC。
GW1NSR系列芯片资源:
可以看出在2/2C系列逻辑资源不足的基础上,添加了USB 2.0 PHY和ADC功能来增强功能。
GW1NSR-4C芯片内部框图:
在6x6mm大小的芯片上集成了FPGA、ARM Cortex-M3处理器和存储器,真正的单芯片解决方案。
从我所了解的FPGA芯片中,和这颗芯片比较类似的架构,只有Microsemi(现Microchip)的SmartFusion系列,也是这种FPGA+硬核ARM Cortex-M3处理器的架构,片上也是集成了Flash,而且有个已经停产的型号逻辑资源也是4608,不过基本逻辑单元是D触发器,不知道高云的这颗芯片是不是对标的它。

4、关于高云半导体

介绍完FPGA芯片,我们有必要了解一下这颗芯片的设计者:广东高云半导体科技股份有限公司
广东高云半导体科技股份有限公司成立于2014年,是一家专业从事现场可编程逻辑器件(FPGA)研发与设计的国产FPGA高科技公司,致力于向客户提供从芯片、EDA开发软件、IP、开发板到整体系统解决方案的一站式服务。经过多年的积累,高云半导体在FPGA芯片架构、SOC芯片设计、FPGA集成EDA开发环境、FPGA通用解决方案等整个生态链均有核心自主知识,以及国内外发明专利。
目前公司拥有员工200余人,在广州、上海、济南设有研发中心,随着公司业务在国内外市场的快速发展,公司规模一直在持续的扩张中。核心骨干拥有国际著名FPGA公司15年以上实战经验,亲历国内外数代FPGA芯片硬件、EDA软件、IP研发及市场、销售、技术支持等工作,是一支经验丰富、具备持续创新能力的务实团队。
官方网站:www.gowinsemi.com.cn
从官网上可以了解到,高云半导体的芯片主要有以下三大系列,分别是:
  • 晨曦系列(GW2A)

  • 小蜜蜂系列(GW1N)

  • GoBridge系列

其中,晨曦和小蜜蜂系列是FPGA芯片,采用55nm工艺,主打非易失性,片上集成存储器、瞬时启动,高性能、低功耗,包括ARM异构SoC芯片和纯FPGA芯片,产品线也比较丰富,从基本的1K到50K逻辑资源应有尽有,封装大小从2.5x2.5mm的CS36到21x21mm的UG676封装,非常丰富。除了硬核处理器,部分FPGA芯片还支持软核处理器,如ARM Cortex-M1/M3,RISC-V PicoRV32等。
而GoBridge系列是专用USB接口转换芯片,可将USB转换SPI、I2C、JTAG、UART、GPIO等,主打高度集成、低功耗、单芯片。

5、开发工具和资料

国产FPGA的发展,更重要的是生态,比如齐全的芯片文档,软件的使用文档,IP核的丰富程度,硬件电路的设计参考,视频教程,开发套件,大学计划等等。
高云FGPA的生态环境做得非常出色,资料齐全,而且还是本地化的中文文档,易于阅读,官方还为每个芯片产品设计了评估板,可以让工程师参考硬件设计电路,快速应用到自己的项目中。
高云半导体还赞助了全国大学生FPGA设计竞赛,与高校合作建立联合实验室,从大学阶段就培养了一批高云FPGA的开发者。
EDA工具也是芯片设计中非常重要的一个部分,特别是FPGA的开发环境,包括工程创建,设计输入,功能仿真,管脚约束,时序约束,时序仿真,综合,布局布线到最终生成可用于下载的比特流文件,这个过程非常复杂。
高云半导体自主研发了FPGA开发环境——云源软件,支持Windows和Linux开发平台,包括商业版和教育版,教育版完全免费,而商业版也只需要提供公司信息即可免费获得一年的授权文件,到期后可以再次申请。
MCU开发工具可以使用高云官方的GOWIN MCU Designer,或者常用的单片机开发工具Keil-MDK。
GOWIN MCU Designer界面基于开源的Eclipse框架,编译器使用的是arm-gcc和riscv-gcc编译器,可完成设计、下载、调试,分为商业版和教育版。
高云官方还为小蜜蜂系列FPGA SoC开发了离线下载器,包括软硬件产品,可用于工厂批量烧录固件,最多可同时支持16路。
下面是我从官方网站(www.gowinsemi.com.cn)找到的一些关于GW1NSR-4C的文档资料:
  • GW1NSR数据手册、用户手册、应用手册等等
    http://www.gowinsemi.com.cn/prod_view.aspx?TypeId=10&FId=t3:10:3&Id=168

  • ARM Cortex-M3硬核使用文档
    http://www.gowinsemi.com.cn/prodshow_view.aspx?TypeId=71&Id=186&FId=t31:71:31

  • GW1NSR-LV4CQN48评估板资料
    http://www.gowinsemi.com.cn/down.aspx?FId=n14:14:26

  • Gowin云源软件快速入门指南
    http://cdn.gowinsemi.com.cn/SUG918.pdf

  • Gowin云源软件用户指南
    http://cdn.gowinsemi.com.cn/SUG100.pdf

  • Gowin在线逻辑分析仪用户指南
    http://cdn.gowinsemi.com.cn/SUG114.pdf

  • Gowin原语用户指南
    http://cdn.gowinsemi.com.cn/SUG283.pdf

  • Gowin设计物理约束用户指南
    http://cdn.gowinsemi.com.cn/SUG935.pdf

  • Gowin设计时序约束用户指南
    http://cdn.gowinsemi.com.cn/SUG940.pdf

  • FPGA视频教程
    http://www.gowinsemi.com.cn/video_complex.aspx?FId=n15:15:26

工具的下载地址如下:
  • FPGA开发环境—云源软件Windows版本v1.9.8.08
    http://cdn.gowinsemi.com.cn/Gowin_V1.9.8.08_win.zip

  • FPGA开发环境—云源软件Windows教育版v1.9.8.07
    http://cdn.gowinsemi.com.cn/Gowin_V1.9.8.07_Education_win.zip

  • MCU开发环境—GOWIN MCU Designer V1.1
    http://cdn.gowinsemi.com.cn/GMD_V1.1.zip

  • MCU开发环境—GOWIN MCU Designer V1.1.01教育版
    http://cdn.gowinsemi.com.cn/GMD_V1.1.01_Education_win.zip

这么多的中文资料,看着就有想学的冲动。

6、总结

从板子整体角度来看,这是一款国产化程度很高的板子,从主控FPGA,到JTAG芯片,存储芯片、电源芯片等,都是使用的国产半导体公司的产品。
板子整体尺寸也比较迷你,属于小而美类型的,可以认为是一款FPGA核心板,当然也预留了排针接口,给用户足够的扩展空间。对于想了解高云小蜜蜂SoC软硬件开发,以及对云源软件、MCU开发环境做个深度评测来说足够了。

当然,还有一些值得改进的地方:
  • JTAG调试器固件可以增加虚拟串口功能,对于板子本来来说面积不会有改动,只需要添加两根信号线即可

  • FPGA芯片的配置管脚可以设计为拨码开关形式,这样可以选择多种启动模式,用于验证高云特有的几种启动模式,比如在线升级,从外部SPI启动等

  • LED的管脚可以分配到普通GPIO,目前是分配到了MODE管脚,还需要配置MODE管脚为普通IO

  • 板载的FPGA外部晶体频率为27M,使用PLL倍频到100M时,会提示输出频率不精确,如果是25或50M就会很方便进行倍频。

  • 可能是出于板子面积的限制,电路上没有添加任何的ESD防护芯片,在使用时需要小心人体静电(百元开发板,要啥自行车)

对于高云GW1NSR-4C FPGA芯片,这么多开放的资料和文档是我没想到的,包括本地化的中文文档,对于开发者很友好,易于阅读;开发文档、手册、例程也很丰富;评估板很齐全,几乎涵盖所有的芯片型号;基于Flash的FPGA架构,可以实现瞬时启动,对于启动速度要求高的应用场景这个很重要;EDA软件免费授权,无论是FPGA开发环境还是MCU开发环境,均可免费获得授权;FPGA开发工具的综合速度很快,实测HelloWorld流水灯工程的编译时间在秒级,点一下“啪”就编译完成了;ARM Cortex-M3硬核开发比较容易上手,固件库函数很规范,看着比较熟悉,应该是借鉴了STM32的库函数名称,对于有STM32开发经验的开发者来说用起来会很亲切;FPGA芯片极高的性价比,虽然目前淘宝上还搜不到相关的芯片型号,只能联系官方销售或者授权代理商购买,但是从开发板价格也可以推算出FPGA芯片价格应该很实惠。但还有一些不足之处:
  • 云源软件没有仿真功能,目前还只能借助第三方工具,如Modelsim来完成功能仿真(据说已经在研发云端仿真工具);

  • 不支持高速串行接口,比如SerDes,从高云官方的招聘计划来看,未来是要在这方面发力的;

  • IP核丰富程度还有待提高,部分产品型号可用IP数量比较少。

虽然国产FPGA很多,但其实某些FPGA厂商走的并不是完全的自主研发道路,而是替代兼容,即PIN-to-PIN兼容国外的产品型号,使用国外厂商的EDA工具(可能需要打补丁),虽然可以无缝进行替换,但会有相关的版权问题,最终还是受制于人,而高云半导体的芯片、IP、EDA工具完全是自主研发。
国外芯片的涨价,同时也为国产FPGA提供了机遇,加上国家对半导体产业的支持,希望国产FPGA芯片能抓住此次机会,虽然国产FPGA产品和工具,距离已经积累了几十年经验的国外FPGA厂商,还有一些差距,但我相信在不久的未来,我们可以和他们齐头并进。
对于广大工程师来说,在稳定性、性价比相当的情况下,开发者也可以给国产FPGA一个上位的机会。
国产FPGA任重而道远,每一个为此努力的人都值得尊敬!

7、参考资料

  • 高云半导体官网

    www.gowinsemi.com.cn

  • SiPEED矽速科技Wiki

    wiki.sipeed.com

8、声明

本文中所介绍的开发板为编者自费购买,文案为本人编写,与矽速科技(SiPEED)和高云半导体(GoWIN)无关。文中如果有任何不准确的描述,欢迎指出。当然,如果官方能看到,觉得写的还不错,欢迎点赞支持!

END

来源:电子电路开发学习

版权归原作者所有,如有侵权,请联系删除。

推荐阅读
从STM32转到嵌入式Linux驱动开发
外资芯片大厂又裁员:研发一个不留!
ChatGPT实现51、STM32、树莓派等各种点灯程序

→点关注,不迷路←

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存