何时该用LUT(Look Up Table)技术?

什么是LUT?不解释,给两个例子。

(1)假设想要对RGB三原色求加权平均v=(b*114 + g*587 + r*299)/1000或者v=(b*117 + g*601 + r*306) >> 10,可以建立一块 1BYTE*256*256*256 =  16MB的内存间,存放v值。

(2)假设想计算sin函数值,精度在1.0e-10,可以把0~90度分成2^17份,每0.00068664550781度一个值,建立一个 1double*(2^17) = 1MB的内存存放,不是0.00068664550781度整数倍的,可以线性内插。精度绝对在1.0e-10以上。[0,90]之外的可推算,仅需考虑正负号。

问题是,什么时候应该使用LUT,什么时候不应该使用它?要考虑的问题很多。LUT需要耗费额外的内存是显然的,因此我把它分解成了4个问题:

(1)当使用LUT比不使用更快速时,什么情况下使用LUT?

内存资源充足时,计算密集型程序基本上都使用LUT,……

(2)当使用LUT比不使用更快速时,什么情况下不使用LUT?

不是计算密集型程序,CPU资源很充足,需要比LUT可以提供的更高的精度,为了保证源代码简洁,……

(3)当使用LUT比不使用更耗时时,什么情况下使用LUT?

CPU不只在干这一件事,多线程,……

(4)当使用LUT比不使用更耗时时,什么情况下不使用LUT?

极其简单的算法,如求补、求反、求绝对值,内存不足时,……

转载于:https://my.oschina.net/wxnWhu/blog/23547

Vivado是Xilinx公司开发的一款FPGA(Field-Programmable Gate Array)设计工具,LUTLook-Up Table)是FPGA的基本逻辑单元,用于实现数字逻辑功能。当在FPGA设计中使用过多的LUT时,可能会导致以下几种情况使系统变慢: 1. **资源限制**:每个FPGA芯片都有固定的LUT数量,如果超过限制,设计可能无法实现,或者需要更高级别的FPGA才能容纳,这会导致成本增加和设计时间延长。 2. **延迟增加**:更多的LUT意味着更复杂的电路,可能导致信号路径变长,从而增加延迟,影响系统性能,特别是在实时应用中,延迟敏感的算法可能会受到影响。 3. **功耗和散热**:过多的LUT使用会消耗更多电能,对于电源效率和热管理也是一个挑战,特别是在大型系统或对能源效率有高要求的设备中。 4. **布线复杂性**:更多的LUT通常意味着更多的连接,这可能导致布线拥挤,影响信号完整性,可能需要额外的布线资源或者增加阻抗控制。 5. **编译速度和资源优化**:Vivado在综合和布局布线阶段,处理大量LUT的设计可能需要更长时间,因为优化器需要花费更多计算资源来找到最佳的资源分配策略。 为了避免这些问题,设计师通常会尝试优化代码,减少不必要的逻辑,使用更高效的算法,或者选择适当大小的FPGA,以及考虑使用查找表替换、流水线技术等高级设计技术
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值