解析FPGA低功耗設(shè)計(jì)
下面介紹一下優(yōu)化BRAM功耗的方法:
本文引用地址:http://www.ex-cimer.com/article/264714.htma)使用“NO CHANGE”模式:在BRAM配置成True Dual Port時(shí),需要選擇端口的操作模式:“Write First”,“Read First” or “NO CHANGE”,避免讀操作和寫操作產(chǎn)生沖突,如圖6所示;其中“NO CHANGE”表示BRAM不添加額外的邏輯防止讀寫沖突,因此能減少功耗,但是設(shè)計(jì)者需要保證程序運(yùn)行時(shí)不會(huì)發(fā)生讀寫沖突。
圖6
圖5中的功耗是設(shè)置成“Write First”時(shí)的,圖7中是設(shè)置成“NO CHANGE”后的功耗,BRAM的功耗從0.614W降到了0.599W,因?yàn)橹皇褂昧?%的BRAM,如果設(shè)計(jì)中使用了大量的BRAM,效果能更加明顯。
圖7
b)控制“EN”信號(hào):BRAM的端口中有clock enable信號(hào),如圖8所示,在端口設(shè)置中可以將其使能,模塊例化時(shí)將其與讀/寫信號(hào)連接在一起,如此優(yōu)化可以使BRAM在沒有讀/寫操作時(shí)停止工作,節(jié)省不必要的功耗。
圖8
如圖9所示為控制“EN”信號(hào)優(yōu)化后的功耗情況,BRAM功耗降到了0.589W。
圖9
c)拼深度:當(dāng)設(shè)計(jì)中使用了大量的存儲(chǔ)器時(shí),需要多塊BRAM拼接而成,如需要深度32K,寬度32-bit,32K*32Bit的存儲(chǔ)量,但是單塊BRAM如何配置是個(gè)問題?7 series FPGA中是36Kb 的BRAM,其中一般使用32Kb容量,因此可以配置成32K*1-bit或者1K*32-bit,多塊BRAM拼接時(shí),前者是“拼寬度”(見圖10),后者是“拼深度”(見圖11)。兩種結(jié)構(gòu)在工作時(shí),“拼寬度”結(jié)構(gòu)所有的BRAM需要同時(shí)進(jìn)行讀寫操作;而“拼深度”結(jié)構(gòu)只需要其中一塊BRAM進(jìn)行讀寫,因此在需要低功耗的情況下采用“拼深度”結(jié)構(gòu)。
注:“拼深度”結(jié)構(gòu)需要額外的數(shù)據(jù)選擇邏輯,增加了邏輯層數(shù),為了降低功耗即犧牲了面積又犧牲了性能。
圖10
圖11
fpga相關(guān)文章:fpga是什么
評(píng)論