ARM的memory Compiler总结
Memory的結(jié)構(gòu)
ASIC中用到的memory一般是通過memory compiler生成的,生成一個mirco最終放到芯片的版圖上。
生成的memory結(jié)構(gòu)如下圖所示:
?可以看到每個bit是獨立的一個小矩形塊,矩形塊的行數(shù)是r,列數(shù)是m,r*m即為ram的深度。例如,一個字寬4bit、字長1024的ram,其r*m即為1024.
其中m代表Multiplexer,一般取值4/8/16/32. 在ram字寬、字長確定的情況下,m的值決定了整個ram micro的形狀。例如,m從4變?yōu)?6,則每個bit的小矩形塊的列數(shù)就從4變?yōu)?6,總深度不變的情況下,行數(shù)會變成原來的1/4,小矩形塊會變得更寬、更矮,整個ram micro的形狀也會變得更寬、更矮。
?
上述是舉例的最簡單的single-bank情形,實際往往是多個bank的,如下圖這樣。但上述結(jié)論是一致的。
?
Memory Compiler的使用
ARM的memory compiler大家一般都用過,下面主要分析部分容易混淆的細節(jié)。
1、MUX值
MUX值就是上節(jié)提到的Multiplexer width,又稱地址低位譯碼尺寸,深度要求是Muliplexer width的倍數(shù)。
2、尺寸限制?
為了加快讀寫,RAM陣列一般分為多個bank和slice,若是兩個bank,兩個slice,所以地址必須是(Muliplexer width * 4)的倍數(shù)
記住以下結(jié)論:
- 字長*字寬=行數(shù)*列數(shù)
- 行數(shù)=字長/MUX
- 列數(shù)=字寬*MUX
- MUX越大,行數(shù)越少,列數(shù)越多,micro尺寸越矮、越寬
補充說明:
? ? 最近用到TSMC 28nm的compiler工具,它生成的mem尺寸剛好跟SMIC 40nm的尺寸相反,即字長對應了列數(shù)、字寬對應了行數(shù)。所以,使用不同廠家提供的工具時,要注意區(qū)別。但是上述結(jié)論都是統(tǒng)一的。
?
ARM的ram compiler支持的RAM array的尺寸是有限的,最大能生成256行和320列的array(UG里面說的是Rmax=512,Cmax=576,但實際并不是這樣)
那么,
MAX Number of words = MAX Number of rows *?Muliplexer width = 256 *?Muliplexer width
例如,Muliplexer width=4時,最大字數(shù)為256*4=1024
MAX Number of bits = MAX Number of columns /?Muliplexer width = 320 /?Muliplexer width
例如,Muliplexer width=8時,最大字寬為320/8=40
?
總結(jié)
以上是生活随笔為你收集整理的ARM的memory Compiler总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序怎么弄成链接_微信小程序怎么复
- 下一篇: 立式电工实验装置