FPGA设计宝典之提高算法速度的六大绝招
2016-08-19
面积和速度这两个指标贯穿着FPGA设计的始终,是设计质量评价的终极标准。
“面积”:指一个设计所消耗的FPGA的逻辑资源数量。FPGA中的逻辑资源,也就是触发器( FF)和查找表(LUT) 。
“速度”:是指设计结果在芯片上稳定运行时所能达到的最高频率,这个频率由设计的时序状况决定。与设计满足的时钟周期、PAD to PAD Time、建立时间、保持时间和时钟到输出延时等众多时序特征向量密切相关。
逻辑复制
逻辑复制是一种最基本的通过增加面积改善时序条件的优化手段。这种方法最常用的场合是调整信号的扇出。当一个信号要驱动后级的许多单元时,也就是有多级扇出时,可能会出现如图1中左图所示的一些扇出路径的长延时。此时的解决方法就是通过信号逻辑的复制来减少路径延时。
串并转换
串并转换是面积与速度互换思想的另一种体现。假设FPGA 上处理模块的处理速度最大为100Mbits/ s,如果输入数据流的速率是300 Mbits/ s。在这种情况下,如图2所示,首先将输入数据进行串并转换,然后利用这3个模块并行处理分配的数据,最后将处理结果“并串转换”,完成数据速率的要求。
布尔逻辑扩展运算-超前进位加法器
在数字信号处理的快速运算电路中常常用到多位数字量的加法运算,这时需要用到并行加法器。现在普遍采用的超前进位加法器,只是在几个全加器的基础上增加了一个超前进位形成逻辑,以减少由于逐位进位信号的传递所造成的延迟。下面的逻辑图表示了一个四位二进制超前进位加法电路。
布尔逻辑扩展运算-流水线技术
所谓流水线设计实际上就是把规模较大、层次较多的组合逻辑电路分为几个级,在每一级插入寄存器组暂存中间数据。K级的流水线就是从组合逻辑的输入到输出恰好有K个寄存器组(分为K级,每一级都有一个寄存器组)上一级的输出是下一级的输入而又无反馈的电路。
使用EDA工具提高工作时序
工具优化设计的工作时序主要是通过给设计添加各种各样的时序约束,时序约束可以规范设计的时序行为,表达设计者期望满足的时序条件。通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。
面积的优化—逻辑资源的共享
例如:使用数据选择器实现加法器(运算器)的共享。