如何分析FPGA的片上资源使用情况

标签:
杂谈 |
分类: EDA |
如何分析FPGA的片上资源使用情况
- 2010-05-04
11:31
发表 系统分类:EDA 自定义分类:Quartus II - 标签:Altera FPGA 资源
在维护遗留代码(4)——时序问
题初露端倪这篇文章中,我提到“第三方开发的设计中,组合逻辑与时序逻辑的比例为2.6:1”,这是造成该设计时序收敛困难的原因之一。
mengyudn朋友很细心,对这个数据的来历产生了疑问。下面我就简单地介绍一下如何分析FPGA芯片上的组合逻辑(LUT)和时序逻辑(REG)的利
用率。
一、 如何得到LUT与REG的使用比例
我们先看一个FPGA工程的编译结果报告:
/uploads/Blog_affix/images/17053432599635.jpg
在这个报告中,我们可以看到如下信息:
二、 一份更详细的资源利用率报告
在这个报告中,有一点可能会令人困惑:为什么Total combinational functions与Dedicated logic registers之和(30470)大于Total logic elements(24071),甚至大于该芯片的总资源(24624)。我们再来看一份更详细的资源使用报告——Fitter Resource Usage Summary:
/uploads/Blog_affix/images/17054135061826.jpg
这份报告包含很多信息,在这里我们只需要关心Total logic elements一项。Total logic elements
24071/24624(98%)由三种使用情况不同的LE资源组成:仅用于实现组合逻辑的LE(Combinational with no
register 15213),仅用于实现时序逻辑的LE(Register only
2459),同时用于实现组合逻辑和时序逻辑的LE(Combinational with a register 6399)。
三、 从Resource Property Editor看LE的使用情况
/uploads/Blog_affix/images/17054499645619.jpg
这个LE同时用于实现组合逻辑和时序逻辑,其中蓝色部分为组合逻辑(一个4输入LUT),其中黄色高亮部分为时序逻辑(一个D触发器)。
/uploads/Blog_affix/images/17055500543933.JPG
这个LE也同时用于实现组合逻辑和时序逻辑,与上一幅图不同的地方在于,这里的组合逻辑(4输入LUT)与时序逻辑(REG)并没有连接关系。组合逻辑从
COMBOUT直接输出,时序逻辑从REGOUT输出。这种互不相关的组合逻辑与时序逻辑共用同一个LE的情况很特殊,这是采用了Register
Packing资源优化技术之后的实现方式。如果没有采用这一资源优化技术,就要用两个LE来分别实现相应的组合逻辑和时序逻辑。
四、 “数字终于对(凑)上了!”
五、 总结