fpga 容量从来没够过! MCU的资源从来没用完过!!
fpga 容量从来没够过! MCU的资源从来没用完过!! FPGA 干活 资源总是紧巴巴的!! 为啥不选择一个大点的呢 另,FPGA资源用到90%就开始有点不正常了MCU用到99.9%,只要没超过100%,功能就是正常的{:titter:} wshtyr 发表于 2018-11-28 20:56
另,FPGA资源用到90%就开始有点不正常了
MCU用到99.9%,只要没超过100%,功能就是正常的 ...
好像以前也看有人提到过用的多了就不正常了,但是为啥呢?它里面也有类似布线布不开一样的问题? fpga资源不够是你优化不到位,不要怨芯片。比如,控制部分干吗不找个迷你cpu去干?模块干吗不去掉互锁,换成更简洁的方法?比如内存写控制器,我的有互锁版本要用掉约600个lut,精简优化之后只用了350个lut。控制代码全部上soc跑c代码,用gcc编译,调试起来更方便,加接口只不过make一下而已。 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的可靠性。 我是来参观楼上的 本帖最后由 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。。。。。。已去一大半。 wye11083 发表于 2018-11-28 21:18
非高速优化代码在布满的fpga上确实不易布线,但是优化好的话还是可以的,比如我曾经用到99%的lut和100% ...
感觉需要注意的事比CPLD多很多啊…………
只照葫芦画瓢用过ALTERA的MAX3064,很少的逻辑。
xc6slx9好像与ALTERA的EP4CE6E22C8N都是20块钱,挺便宜的。
xc6slx9好像比EP4CE6E22C8N更好些?
入门FPGA的话,xilinx的xc6slx9是个好选择不?不做视频之类的应用,应该用不到外接的RAM啥的(BGA的就不考虑了。。) cne53102 发表于 2018-11-28 22:05
感觉需要注意的事比CPLD多很多啊…………
只照葫芦画瓢用过ALTERA的MAX3064,很少的逻辑。
入门的话都差不多,但是xilinx可以手工优化,适合有高速接口应用的(几百mhz),altera貌似没法手工优化。所以做项目更推荐xilinx一些。不过相同价格的片子,altera的lut多些,而xilinx的ram多些。差异还是很明显。 wowangru 发表于 2018-11-28 21:41
刚学 刚学!!用了一个EPM1270 写80个IO输入 48个输出6路三丰千分表SPC协议数据采集,最后通过 ...
这种相当难优化,6路数据怎么会有80个输入脚?带协议就麻烦了。你可以考虑(1)数据聚合处理,(2)各采集接口向聚合器写数据,(3)由聚合器进行数据调度和收发。这样采集部分可能几十个le/每个,聚合器+调度器得几百个,然后spi几十个。 wye11083 发表于 2018-11-28 22:55
入门的话都差不多,但是xilinx可以手工优化,适合有高速接口应用的(几百mhz),altera貌似没法手工优化 ...
原来如此,感谢! 用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash硬件绘图加速,自动滚屏,双图层合并显示,图层16级Alpha混合并支持可变的透明色1个和不透明色4个,硬件读取CVBS解码芯片的视频流到指定地址,指定行更新中断。过程回忆起来也非常痛苦,不同时钟域处理,时序约束,优化再优化再优化再优化,刚好能塞进,CPLD在用满资源的时候,很难布通,不堪回首,幸好非常稳定,5Kv EFT都不死。 amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...
你太牛逼了!!!!!!! wye11083 发表于 2018-11-28 21:14
fpga资源不够是你优化不到位,不要怨芯片。比如,控制部分干吗不找个迷你cpu去干?模块干吗不去掉互锁,换 ...
恩,互锁不只是占有资源, 像我这样不喜欢动脑筋的想用都用不好, 脑瓜疼{:titter:} . amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...
牛逼,很难想象是怎么做出来的。 坐听大师们的项目经历,那压榨尽每一分资源的能力,值得偶学习{:sweat:} wye11083 发表于 2018-11-28 22:58
这种相当难优化,6路数据怎么会有80个输入脚?带协议就麻烦了。你可以考虑(1)数据聚合处理,(2)各采 ...
80个输入脚是额外的IO ,6路SPC的数据引脚有3X6个。所有加起来用了157个脚 amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...
你这个牛逼了!!!! 三丰千分表
我是中断扫描的,stm32,除了接表还干其他很多事,只接表的话6个完全跟得上
千分表的速率太低了 fpga在低速小数据没有dsp环境下,完全不好用 //收 1字节地址02+ 6字节DO字+1字节SPC命令+11字节预留+2字节和校验+2字节空 =23字节
//发 1字节地址02+10字节DI字+5字节SPC数据+5字节预留+2字节和校验 =23字节
reg 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。 3DA502 发表于 2018-11-29 10:58
三丰千分表
我是中断扫描的,stm32,除了接表还干其他很多事,只接表的话6个完全跟得上
我cpld写下来80个LE 一个表。 带超时, 校验 ,以及抗抖动 没错,所以把FPGA和MCU的优势结合起来是最好了,我在不少实际项目中就是这么用的,一颗M3的MCU加EP4CE的FPGA,关键时序任务交给FGPA,管理和低优先级的琐事交给MCU,各司其职,相互支撑。 wowangru 发表于 2018-11-29 11:51
我cpld写下来80个LE 一个表。 带超时, 校验 ,以及抗抖动
也许挂个单片机方便 amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...
可以考虑把它做成asic了 公司的MCU资源总是不够用,64Kflash,8kram,经常用光,然后我优化出几k代码,然后又很快被吃光 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可以吗? 还有没有更好的办法 amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...
牛逼,放出综合的结果来瞧瞧,太霸气了 fpga没搞过,cpld用过,反正综合后,如果资源占用超过了80%,我就烦躁。 amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...
这个就厉害了,和外部的通信接口是啥呢? simplorer 发表于 2018-11-29 15:02
fpga没搞过,cpld用过,反正综合后,如果资源占用超过了80%,我就烦躁。
为什么呢? amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...
放代码出来看看 fpga的资源每次都紧巴巴的。。。。寄存器能省则省!!!! 整个系统定时器,延时都只能公用一个。。。。 amigenius 发表于 2018-11-28 23:48
用EPM1270写过显示驱动芯片的路过,功能包括:SDRAM控制器,TFT控制器,显存随机读写,矩形读写,SPI Flash ...
1270竟然同时实现这么多……………… wowangru 发表于 2018-11-29 16:54
为什么呢?
我的工程中有一些时序约束比较严格,一直怕资源占用多了,时序满足不了。
好像说的有点道理!!!
fpga 85%左右后总是容易出莫名其妙的问题 很多大神,很多高手 进来学习的
看来楼主是喜欢硬件做事情
{:handshake:} 我经常干到%95
页:
[1]