@lalatg 我记得在这个板子众筹的时候是20块钱定金,这颗芯片在立创上就需要50块钱,就算是批量走货也不止20块吧
之前在淘宝上入手了一块Lichee Tang的 国产FPGA(上海安路)来作RISC-V的软核。
原开发板如下图
果然什么东西一国产化立刻就变成白菜价,这片200多IO,20k逻辑单元的开发板只需要90块钱,这个fpga芯片在立创商城上面只要50块。
但实际用的时候发现如下问题:
1)这块开发板只是核心板,缺乏必要的外设,导致RSIC-V的软核在fpga上进行的测试非常有限,只能点亮几个LED灯。
2)FPGA的核心板上没有ddr,只有内置的64Mbit的sdram。
所以我计划以此开发板为参考,开发一块完整的fpga开发板。
考虑到扩展开发板的功能,开发板同时参考我之前用过的 iCore3 STM32F4+FPGA的架构。
主要功能:
在此板上FPGA选用安陆EG4D20EG174,QFP封装这样可以手动焊接 + 1~2片256Mbit SDRAM
MCU 选用兆易GD32F407,通过FSMC总线与FPGA相连。
外部接口打算在FPGA下面挂一个百兆网的PHY。
选配项:
我打算做lvds 转 HDMI功能(在低端的FPGA开发板上从来都没有见过此项功能)
具体实现方式:lvds -> 数字 RGB -> HDMI
做这项功能主要和我最近工作有关,比较有挑战性。
最近争取把整体的block图做出来。
以上
2019.3.29
[修改于 5年8个月前 - 2019/03/29 02:22:59]
主要是近来工作突然比较忙所以鸽了一周。
我先来个简单的需求分析和板卡功能定义。
说点题外话:
大多数国内入门级fpga开发板都存在一个明显的问题:严重脱离FPGA应用场景。
FPGA传统上的三大应用场景:接口转换、数字信号处理、IC逻辑验证。这几年新兴应用场景的人工智能和可重构的并行计算协处理器。
鉴于入门级FPGA实际只能用在接口协议转换这个应用上。所以fpag开发板一定要具有相应的接口,而目前很多国内入门fpga还是按单片机那种应用逻辑在安排板上资源。
比如某金,上面弄一大堆数码管,蜂鸣器,DS18B20,EERROM这些东西有什么用?除了跑跑自带的例程,搞个万年历屁用没有,你把fpga换成stm32单片机板上的功能都能实现而且实现的更简单。至于学习HDL语言实际上也不需要这类开发板,单纯的逻辑代码学习通过综合和仿真软件工具就够了,而面向实际应用你连常用PHY网口都没有,和实际应用相关的也就自己写个串口、i2c,spi的逻辑练练手。至于IO管脚的引出,基本就是把普通IO管脚引到排针完事,基本没有能用LVDS的方法,但实际上LVDS才是FPGA关键应用的接口,基本上和显示、图像类应用相关的都要用lvds。
所以我个人并不想把这块板子做成一块只引出管脚的一般意义的开发板,我要做有实用功能意义的fpga测试验证板。
我目前想到的三个主要功能:
我前文提到的两个功能
1)lvds到hdmi接口
显示和图像方向可以说是如今低端fpga主要的出货方向,主要通过fpga和一些编码\译码芯片实现lvds、数字RGB、MIPI接口的相互转换、多路切换甚至非常简单的图像处理,所以我选lvds->数字RDB->HDMI然后直接连显示器这个很有现实应用的意义的功能。
这部分硬件\逻辑难度最高
2)GD32F4 <- FSMC总线 -> FPGA
这个直接仿iCore3这块开发板,如下
这个开发板的设计非常实用,针对的是低端FPGA的另一个重要应用场景——AD/DA数据采集,应用方式是这块开发板作为核心板+AD\DA板,其中由MCU来实现和上位机的通信和相关协议,FPGA来作AD\DA的采集。
我来简单说一下这个开发板“实用”原因:
众所周知fpga逻辑的设计和仿真的难度和耗时明显比mcu要高至少一个数量级,所以这个开发板通过STM32+FPGA的架构,让只能由FPGA实现的功能在FPGA上实现,其他功能通过MCU来实现,这样来节约开发时间。
注:AD/DA主要进行至少持续一段时间的连续波形连续采集/输出,别看STM32几百M的频率,通过GPIO很难实现百khz AD/DA的采集,更别说多片AD/DA芯片同时采集/输出。
我来举个实际应用的例子:这块开发板通过FPGA控制AD采集,然后把AD的数据直接放到FPGA内构建的一个双端口RAM中,而FPGA对STM32而言只是FSMC总线下的一个RAM,所以STM32可以通过DMA由FSMC总线通过FPGA双端口RAM的另一个端口读取RAM内的AD数据,然后通过STM32控制的网口把AD数据直接发送到上位机,这个架构下可以实现1路500kHz 16位AD数据的实时、连续采集上传。
硬件/逻辑开发难度:低,有现成参考资料和代码
3)“串口服务器”,也就是通过实现FPGA上百兆网的通信,数据包解析,若干路串口通信,串口数据打包/解包。
简单的说就是网口转RS232/422串口,至于串口的路数视剩余IO而定
硬件开发难度:低
逻辑开发难度:较高,TCP/UDP部分有参考资料和代码,主要要实现网络数据包和串口数据包缓存、转换,最后还可能要用labview写一个简单的客户端。
硬件开发工具:
最近在评估lceda,这个4层的板子不知道lceda能不能支持,原理图应该问题不大,主要是PCB布线SDRAM、lvds和数字RGB需要做等长和lvds的差分走线能不能很好的支持。如果lceda可以的话我会把原理图和pcb都开源,如果不行那我只能用allergo这样就只能发个原理图的pdf(估计也不发了,因为没什么意义)
今后争取每周都能有点进度。
个人感觉画的饼有点大
@jonyxia 你可能没理解我的意图, 我本来也没打算直接用fpga来出hdmi,fpga只产生lvds,然后由把lvds解成数字rgb,再用编码芯片出hdmi输出。而你说的视频输入我没打算做
@smith当然不可能支持xilinx的ip,ip的平台都是专用的,除非你的ip只是纯rtl代码。安路有自己的ide,但里面只有最基本的ip。而且这么低端的fpga搞个lvds显示已经是极限了,做数字信号处理非常占用逻辑资源,千兆MAC用的资源也比百兆多很很多。用来做sdr不太现实
@jonyxia数字RGB到HDMI不需要fpga,只需要通过i2c进行正确配置即可
lvds直接到HDMI的方案我还真没听说过,但反过来HDMI到lvds却有的是(其实就是液晶屏驱动ic),我猜可能是因为lvds本质上就是把数字RGB串行化,如果不考虑fpga的管脚数量其实可以从fpga出数字RGB然后进HDMI发送器。
@Sion 哈哈我这就是参考adv7511的方案,问题是7511太贵,而且还是BGA封装,我想找个QFP封装的HDMI发送器,准备用lattice的HDMI发送器
@Sion别说已经不同厂商了,就算是同一厂商不同代产品,甚至同一代产品不同系列的ip都不一定能通用。因为很多ip已经是在片上完成布局布线的模块,已经和fpga的架构特性高度匹配。
能跨平台移植的ip唯一的可能就是这个ip只是rtl综合产生的网表模块,而且这个模块必须是纯粹的逻辑模块,不能涉及像DSP,Block ram这种片上资源,拿这个网表导入不同平台的ide,然后完成约束布局布线就能用。比如opencores上面那些ip很多就是这样的。
@drzzm32 目前还没有公开的安路fpga HDMI的ip而且我也不确定安路的IO是不是支持TMDS(就算芯片支持TMDS,很明显我没有实现HDMI协议的能力)。
jtag那蜗牛的速度也需要注意信号质量?你要是原理图没错的话,看看你有没有加上拉电阻和上拉电阻的阻值电压对不对,实在想不出jtag能出什么问题
@drzzm32那家的那个板子我也看过,当核心板直接贴在板子上就需要把它bottom面那个坑爹的TF卡槽去了,问题去了TF卡槽就没法用TF卡,除非你用排插。还有那块板子上没有SDRAM,只有芯片自带的好像也是64Mbit的RAM,不知道你做游戏应用够不够,要是不够这种SOC没法外面加RAM
7511是QFP啊...贵是真的...新的30多一片....不过实验室有不少墙角,挖了😄我是指据说...
@Sion如果能兼容ip核那说明内部的架构完全的都是copy来的啊。我听说过有一些军用和航天所自制的fpga能原封不动的支持xilinx旧款的型号的bit文件,但那些fpga都不会拿到市场上。安路这么大张旗鼓的买,intel可不是善茬,我觉得这擦边球分险和收益完全不成比例。
之前RGB调哭,颜色死活对不上,一直以为是RGB YUV色彩空间转换的问题,折腾了N久的软件,最后发...
这种事我也碰到过,当时是调一块PCI采集卡,插上就以后死活开不了机,明显是有地方短路但就是找不出问题。最后也是排阻上沾了非常细的焊锡,是那种必须在10倍放大镜下才能看见的细丝,完全是那万用表一根一根量才发现
安路的fpga从立创上下架了,我都不知道怎么买片子了( ̄▽ ̄)
所以原理图做了一半这两周都没什么进展。
我觉得要做还是直接用xilinx的A7靠谱。
资源多,而且可以用matlab的dsp开发工具。
@smith
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。