微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > fifo编程中遇到的FPGA资源不够的问题

fifo编程中遇到的FPGA资源不够的问题

时间:10-02 整理:3721RD 点击:
编写了一套程序  其中的fifo模块   要求96*32bit的RAM   程序没错 综合时报告资源不够  
Core Cells         : 48561 of 13824 (361%)
IO Cells           : 49
后来查了一下A3P600的资料 发现13824是指的D-flip-flop  也就是说 我的fifo模块占用了大量的D-flip-flop资源(48561)
我想问一下 有没有跟我遇到一样的问题的   资源不够 你们怎么解决的啊

单纯的从存储器的角度来讲,软件在综合的时候既可以用Logic Element(LE)来实现,也可以用芯片内部自带的硬件Memory资源来实现,以Cyclone 3为例,将FIFO映射为M9K,一个M9K的大小为8192字节
为了让软件综合成硬件Memory资源,一个方法是利用综合属性强制综合,另一个方法是写成综合器软件能够推导出Memory资源的代码风格

学习了

2楼已经解答了 不要用LE来实现ram  用内部的Memory单元

不用LE来实现ram  用内部的Memory单元   这个是指什么   是在综合的时候设置不使用LE综合?还是编程时的语句有所改变?
如果是综合是不使用LE综合 又改如何设置呢?

ALTERA 或者XILINX都有生成FIFO这种宏单元模块的工具
生成的时候有选项 是用block ram实现还是LE实现

2L说得不错

估计还有手动改一下fifo ram的例化吧,映射到FPGA的memory cell

不错不错!

使用软件自己生成的IP core,M9K,例化到fifo中使用;
如果lz一定要自己写行为描述代码的话,一定要注意描述正确,例如复位类型、输入输出是否寄存等,如果描述的东西不符合器件的特性,即使加了强制综合指令,也没办法调用内嵌块RAM,那么生成的RAM就是大量LE搭建而成(这样的RAM速度和面积会双双受损)

利用BRAM实现,不过输出需要一个时钟周期延迟

呵呵学习了啊!

路过!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top