原创 cyclone ii的M4K应用

2014-10-9 16:27 1791 18 18 分类: FPGA/CPLD
     无意中看到compilation report-filter ram summary,看到了M4K的使用情况,工程里用到了4个fifo,两块ram,
工程.jpg
    256*8,256*24,512*16,512*24.使用的ram是1024*32,两块一样,两块ram做乒乓,由于本身是准备用24bit的ram的,但是宏功能模块里并没有24的选项,只有32的,奇怪的是这里资源的使用的情况里实际又是24位的,而且postmap里也是24bit。
postmap.jpg
    参考cyclone ii手册,
手册.jpg
256*8,256*24,512*16实际占用M4K数量很好理解,512*24的有些问题,按道理讲应该是每个M4K配置成128*32,共需要4个M4K,但是实际占用3个。咨询了下前辈,说是应该配置成了512*8*3的类型,也就是3个并行8bit的fifo。
    我也做了下试验,试着在原工程里更改一下模块端口的位宽,结果“呵呵”,由于在多出来的数据宽度用常数填充,每次都被quartus优化掉,到头来,24位改成25,26……都被优化成了24b。
    于是我放弃了在原工程里更改(毕竟前后更改太麻烦了,当时脑袋不知道在想些什么),重新建了一个工程,整个工程只有一个512*24的fifo,端口全输入输出(下图是改成了39才截的图),
新工程.jpg
    于是将位宽改成25,结果发现还是占用3个M4K,接着往后26,27依然是3个,
51225.jpg
51227.jpg
  当改成28的时候,终于占用4个了。
51228.jpg
终于发现,手册里有写到512*8,512*9的配置方式,512*8 = 4096,512*9 = 4608,结果显而易见,当位宽是27的时候,512*27的fifo配置成了512*9*3,即3个并行的512*9的M4K,quartus把4608-4096 = 512的校验占用了。
为了安全,我往后接着更改位宽,和上面的吻合,位宽36的时候占用4个M4K,位宽37的时候占用5个M4K,
51236.jpg
51240.jpg
两块1024*24的ram用了6*2个M4K,目测是用了1024*4的配置方案。
 
写在最后,发现我傻了,fitter之后直接可以在chip planner中双击对应的M4K在Resource Property Editer 中查看的,以下是对应的256*24的fifo,占用了两个M4k,256*18和256*6,
25618re.jpg
2566re.jpg
下面是1024*24的ram,上面猜的没错,6个1024*4的M4K。
10246re.jpg
10244re.jpg

文章评论0条评论)

登录后参与讨论
我要评论
0
18
关闭 站长推荐上一条 /2 下一条