搜索
bottom↓
回复: 40

fpga 容量从来没够过! MCU的资源从来没用完过!!

[复制链接]

出10入12汤圆

发表于 2018-11-28 20:51:01 | 显示全部楼层 |阅读模式
fpga 容量从来没够过!   MCU的资源从来没用完过!!   FPGA 干活 资源总是紧巴巴的!!

出0入22汤圆

发表于 2018-11-28 20:54:02 来自手机 | 显示全部楼层
为啥不选择一个大点的呢

出0入42汤圆

发表于 2018-11-28 20:56:00 | 显示全部楼层
另,FPGA资源用到90%就开始有点不正常了
MCU用到99.9%,只要没超过100%,功能就是正常的

出330入1862汤圆

发表于 2018-11-28 21:07:46 | 显示全部楼层
wshtyr 发表于 2018-11-28 20:56
另,FPGA资源用到90%就开始有点不正常了
MCU用到99.9%,只要没超过100%,功能就是正常的 ...

好像以前也看有人提到过用的多了就不正常了,但是为啥呢?它里面也有类似布线布不开一样的问题?

出0入442汤圆

发表于 2018-11-28 21:14:55 | 显示全部楼层
fpga资源不够是你优化不到位,不要怨芯片。比如,控制部分干吗不找个迷你cpu去干?模块干吗不去掉互锁,换成更简洁的方法?比如内存写控制器,我的有互锁版本要用掉约600个lut,精简优化之后只用了350个lut。控制代码全部上soc跑c代码,用gcc编译,调试起来更方便,加接口只不过make一下而已。

出0入442汤圆

发表于 2018-11-28 21:18:37 | 显示全部楼层
cne53102 发表于 2018-11-28 21:07
好像以前也看有人提到过用的多了就不正常了,但是为啥呢?它里面也有类似布线布不开一样的问题? ...

非高速优化代码在布满的fpga上确实不易布线,但是优化好的话还是可以的,比如我曾经用到99%的lut和100%的slices主频6mhz低速soc+150mhz主时钟,乘法器用完,bram用完,xc6slx9,以及98%的lut和100%的slices,6mhz soc+150mhz主时钟+300mhz乘法器复用流水线时钟,这个是lx16。时序按照工业应用标准预留15%时序余量确保所有fpga达到6个9的可靠性。

出0入0汤圆

发表于 2018-11-28 21:24:20 来自手机 | 显示全部楼层
我是来参观楼上的

出10入12汤圆

 楼主| 发表于 2018-11-28 21:41:23 | 显示全部楼层
本帖最后由 wowangru 于 2018-11-28 21:44 编辑
wye11083 发表于 2018-11-28 21:18
非高速优化代码在布满的fpga上确实不易布线,但是优化好的话还是可以的,比如我曾经用到99%的lut和100% ...


刚学 刚学  !!用了一个EPM1270     写80个IO输入 48个输出  6路三丰千分表SPC协议数据采集,  最后通过SPI协议把数据和主FPGA交换 ,通讯带错误检测,超时检测 。  现在SPI还没写 已经占用了750le。。。。。。已去一大半。

出330入1862汤圆

发表于 2018-11-28 22:05:19 | 显示全部楼层
wye11083 发表于 2018-11-28 21:18
非高速优化代码在布满的fpga上确实不易布线,但是优化好的话还是可以的,比如我曾经用到99%的lut和100% ...

感觉需要注意的事比CPLD多很多啊…………

只照葫芦画瓢用过ALTERA的MAX3064,很少的逻辑。
xc6slx9好像与ALTERA的EP4CE6E22C8N都是20块钱,挺便宜的。
xc6slx9好像比EP4CE6E22C8N更好些?
入门FPGA的话,xilinx的xc6slx9是个好选择不?不做视频之类的应用,应该用不到外接的RAM啥的(BGA的就不考虑了。。)

出0入442汤圆

发表于 2018-11-28 22:55:40 来自手机 | 显示全部楼层
cne53102 发表于 2018-11-28 22:05
感觉需要注意的事比CPLD多很多啊…………

只照葫芦画瓢用过ALTERA的MAX3064,很少的逻辑。

入门的话都差不多,但是xilinx可以手工优化,适合有高速接口应用的(几百mhz),altera貌似没法手工优化。所以做项目更推荐xilinx一些。不过相同价格的片子,altera的lut多些,而xilinx的ram多些。差异还是很明显。

出0入442汤圆

发表于 2018-11-28 22:58:58 来自手机 | 显示全部楼层
wowangru 发表于 2018-11-28 21:41
刚学 刚学  !!用了一个EPM1270     写80个IO输入 48个输出  6路三丰千分表SPC协议数据采集,  最后通过 ...

这种相当难优化,6路数据怎么会有80个输入脚?带协议就麻烦了。你可以考虑(1)数据聚合处理,(2)各采集接口向聚合器写数据,(3)由聚合器进行数据调度和收发。这样采集部分可能几十个le/每个,聚合器+调度器得几百个,然后spi几十个。

出330入1862汤圆

发表于 2018-11-28 23:29:02 | 显示全部楼层
wye11083 发表于 2018-11-28 22:55
入门的话都差不多,但是xilinx可以手工优化,适合有高速接口应用的(几百mhz),altera貌似没法手工优化 ...

原来如此,感谢!

出140入158汤圆

发表于 2018-11-28 23:48:22 | 显示全部楼层
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash硬件绘图加速,自动滚屏,双图层合并显示,图层16级Alpha混合并支持可变的透明色1个和不透明色4个,硬件读取CVBS解码芯片的视频流到指定地址,指定行更新中断。过程回忆起来也非常痛苦,不同时钟域处理,时序约束,优化再优化再优化再优化,刚好能塞进,CPLD在用满资源的时候,很难布通,不堪回首,幸好非常稳定,5Kv EFT都不死。

出0入0汤圆

发表于 2018-11-28 23:55:09 来自手机 | 显示全部楼层
amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...

你太牛逼了!!!!!!!

出100入0汤圆

发表于 2018-11-29 00:24:14 | 显示全部楼层
wye11083 发表于 2018-11-28 21:14
fpga资源不够是你优化不到位,不要怨芯片。比如,控制部分干吗不找个迷你cpu去干?模块干吗不去掉互锁,换 ...

恩,互锁不只是占有资源, 像我这样不喜欢动脑筋的想用都用不好, 脑瓜疼 .  

出0入0汤圆

发表于 2018-11-29 00:46:54 来自手机 | 显示全部楼层
amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...

牛逼,很难想象是怎么做出来的。

出0入0汤圆

发表于 2018-11-29 01:15:02 | 显示全部楼层
坐听大师们的项目经历,那压榨尽每一分资源的能力,值得偶学习

出10入12汤圆

 楼主| 发表于 2018-11-29 10:37:13 | 显示全部楼层
wye11083 发表于 2018-11-28 22:58
这种相当难优化,6路数据怎么会有80个输入脚?带协议就麻烦了。你可以考虑(1)数据聚合处理,(2)各采 ...

80个输入脚是额外的IO ,  6路SPC的数据引脚有3X6个。  所有加起来用了157个脚

出10入12汤圆

 楼主| 发表于 2018-11-29 10:38:26 | 显示全部楼层
amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...

你这个牛逼了!!!!  

出0入0汤圆

发表于 2018-11-29 10:58:11 | 显示全部楼层
三丰千分表

我是中断扫描的,stm32,除了接表还干其他很多事,只接表的话6个完全跟得上

千分表的速率太低了

出0入0汤圆

发表于 2018-11-29 11:09:23 | 显示全部楼层
fpga在低速小数据没有dsp环境下,完全不好用

出10入12汤圆

 楼主| 发表于 2018-11-29 11:47:16 | 显示全部楼层
//收 1字节地址02+ 6字节DO字+1字节SPC命令+11字节预留+2字节和校验+2字节空 =23字节
//发 1字节地址02+10字节DI字+5字节SPC数据+5字节预留+2字节和校验         =23字节
reg [4:0] rev_cnt;
always @(posedge clk or negedge rst_n)
begin
        if(!rst_n)
        begin
                tdo_r<=48'd0;
                tx_dr<=8'd0;
                rev_cnt<=5'd0;
        end
        else
        begin
                if(spi_done)
                        rev_cnt<=rev_cnt+1'd1;
                case(rev_cnt)
                .........
                if(spi_timeout)
                begin
                        rev_cnt<=5'd0;
                end
        end       
       
end

我想通过这种方式发送23字节数据,  23个状态长度的case会不会有弊端?  现在我想减少资源使用,  cpld ram也用不起,ram也是le组成的。   或者还有其他方式,我想把cpld采集的输入IO数据发送出去, 输出IO接收回来并驱动对应输出IO。  已经写好单字节的SPI程序,  每次单字节发送完会有spi_done。      

出10入12汤圆

 楼主| 发表于 2018-11-29 11:51:44 | 显示全部楼层
3DA502 发表于 2018-11-29 10:58
三丰千分表

我是中断扫描的,stm32,除了接表还干其他很多事,只接表的话6个完全跟得上

我cpld写下来80个LE 一个表。    带超时, 校验 ,以及抗抖动

出0入0汤圆

发表于 2018-11-29 11:57:16 | 显示全部楼层
没错,所以把FPGA和MCU的优势结合起来是最好了,我在不少实际项目中就是这么用的,一颗M3的MCU加EP4CE的FPGA,关键时序任务交给FGPA,管理和低优先级的琐事交给MCU,各司其职,相互支撑。

出0入0汤圆

发表于 2018-11-29 12:14:14 来自手机 | 显示全部楼层
wowangru 发表于 2018-11-29 11:51
我cpld写下来80个LE 一个表。    带超时, 校验 ,以及抗抖动

也许挂个单片机方便

出10入23汤圆

发表于 2018-11-29 12:18:31 来自手机 | 显示全部楼层
amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...

可以考虑把它做成asic了

出0入0汤圆

发表于 2018-11-29 12:43:19 | 显示全部楼层
公司的MCU资源总是不够用,64Kflash,8kram,经常用光,然后我优化出几k代码,然后又很快被吃光

出10入12汤圆

 楼主| 发表于 2018-11-29 12:52:48 | 显示全部楼层
wye11083 发表于 2018-11-28 22:58
这种相当难优化,6路数据怎么会有80个输入脚?带协议就麻烦了。你可以考虑(1)数据聚合处理,(2)各采 ...

//收 1字节地址02+ 6字节DO字+1字节SPC命令+11字节预留+2字节和校验+2字节空 =23字节
//发 1字节地址02+10字节DI字+5字节SPC数据+5字节预留+2字节和校验         =23字节  
这种通信协议用23个case可以吗? 还有没有更好的办法

出0入0汤圆

发表于 2018-11-29 14:33:47 | 显示全部楼层
amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...


牛逼,放出综合的结果来瞧瞧,太霸气了

出0入0汤圆

发表于 2018-11-29 15:02:50 | 显示全部楼层
fpga没搞过,cpld用过,反正综合后,如果资源占用超过了80%,我就烦躁。

出0入0汤圆

发表于 2018-11-29 15:26:51 | 显示全部楼层
amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...

这个就厉害了,和外部的通信接口是啥呢?

出10入12汤圆

 楼主| 发表于 2018-11-29 16:54:21 | 显示全部楼层
simplorer 发表于 2018-11-29 15:02
fpga没搞过,cpld用过,反正综合后,如果资源占用超过了80%,我就烦躁。

为什么呢?

出10入12汤圆

 楼主| 发表于 2018-11-29 16:55:05 | 显示全部楼层
amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...

放代码出来看看

出10入12汤圆

 楼主| 发表于 2018-11-29 16:56:23 | 显示全部楼层
fpga的资源每次都紧巴巴的。。。。寄存器能省则省!!!! 整个系统定时器,延时都只能公用一个。。。。

出330入1862汤圆

发表于 2018-11-29 17:24:57 | 显示全部楼层
amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...

1270竟然同时实现这么多………………

出0入0汤圆

发表于 2018-11-30 08:07:10 | 显示全部楼层

我的工程中有一些时序约束比较严格,一直怕资源占用多了,时序满足不了。

出0入0汤圆

发表于 2018-11-30 08:20:07 | 显示全部楼层
好像说的有点道理!!!

出0入0汤圆

发表于 2018-11-30 08:23:51 | 显示全部楼层
fpga 85%左右后总是容易出莫名其妙的问题

出100入101汤圆

发表于 2018-11-30 08:44:46 | 显示全部楼层
很多大神,很多高手

出0入0汤圆

发表于 2018-11-30 12:53:03 | 显示全部楼层
进来学习的

看来楼主是喜欢硬件做事情

出10入12汤圆

 楼主| 发表于 2018-12-2 16:20:18 | 显示全部楼层
我经常干到%95
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 12:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表