flyaudio 发表于 2013-11-29 17:59:42

M9K的使用问题

我用的fpga里面有30个M9K,程序中我例化了31个fifo,每个fifo都很小(占据一个M9K的很小容量)。问题来了,编译出错,提示说需要31个M9K。

1、单个M9K但容量足够的情况下,编译器不会把多个fifo合到单个M9K里面么?
2、现在我该怎么优化ram使用?

xivisi 发表于 2013-11-29 18:02:50

M9K不能拆分用

Fourier00 发表于 2013-11-30 07:29:51

没发拆,撸主想想其他办法吧,很小看看有没有分布式ram实在不行就只能总寄存器了

全频阻塞干扰 发表于 2013-11-30 07:44:12

1个m9k只有一组地址控制线所以不能把多个fifo综合到一个m9k里面,
fifo IP生成时不能选择用LUT或者分布式ram吗?

蓝色风暴@FPGA 发表于 2013-11-30 11:33:31

一个M9K块不能差分多个存储器用
如果楼主一定要做成31个fifo的话
可以采样Avalon寻址的方式
将FIFO接口转换为一组Avalon Master总线
可以多组Avalon Master总线共同访问一个RAM

蓝色风暴@FPGA 发表于 2013-11-30 11:36:04

这样的话速度不高的情况一个M9K块可以实现多个FIFO功能

wangjun403 发表于 2013-11-30 18:25:26

蓝色风暴@FPGA 发表于 2013-11-30 11:36
这样的话速度不高的情况一个M9K块可以实现多个FIFO功能

怎么实现

Nuker 发表于 2013-12-1 00:09:49

多大的FIFO?读写速度多快?比较小的FIFO可以用LE实现

flyaudio 发表于 2013-12-1 14:21:39

Nuker 发表于 2013-12-1 00:09
多大的FIFO?读写速度多快?比较小的FIFO可以用LE实现

用LE来实现fifo,会非常耗资源的

Nuker 发表于 2013-12-1 15:38:42

如果LE资源足够,为什么要死抱节省资源的原则而留下一堆LE空置不用?

flyaudio 发表于 2013-12-2 10:59:31

Nuker 发表于 2013-12-1 15:38
如果LE资源足够,为什么要死抱节省资源的原则而留下一堆LE空置不用?

用LE实现fifo,初步估算了一下:

单个fifo,width*depth=1*32=32bit,占用116个LE。

需要例化31路的话,共需要116*32=3596 个LE。

实际上,某个模块我需要例化126路。。。这个LE占用率实在接受不了!

flyaudio 发表于 2013-12-2 11:25:37

Fourier00 发表于 2013-11-30 07:29
没发拆,撸主想想其他办法吧,很小看看有没有分布式ram实在不行就只能总寄存器了 ...

xilinx的分布式ram资源是看哪个指标? 我想评估一下

Nuker 发表于 2013-12-2 14:20:05

flyaudio 发表于 2013-12-2 10:59
用LE实现fifo,初步估算了一下:

单个fifo,width*depth=1*32=32bit,占用116个LE。


你这个1bit*32的FIFO确实比较奇葩,但是还是有可能有解法。FIFO的写入速度多快,写入时钟是同步还是异步的,会不会多路同时写入?如果写入速度较慢,你可以尝试时分复用的方法。
页: [1]
查看完整版本: M9K的使用问题