各種類型的Memory在FPGA設(shè)計(jì)中被廣泛使用,例如單端口RAM、簡(jiǎn)單雙端口RAM、真雙端口RAM、單端口ROM以及雙端口ROM。這些RAM或ROM都可通過(guò)coe文件的形式定義其初始值。那么可能在實(shí)際應(yīng)用中會(huì)出現(xiàn)這樣一種情形:設(shè)計(jì)的其他部分未做任何改動(dòng),只是更新RAM初始值。那么該如何操作更為方便呢?
如果采用傳統(tǒng)方式,先定義好coe文件,然后重新生成IP,這樣就必須重新執(zhí)行整個(gè)設(shè)計(jì)流程包括綜合、布局布線,編譯時(shí)間可想而知。但換個(gè)角度,細(xì)細(xì)分析一下,只是初始值改動(dòng),那么能否通過(guò)ECO(Engineering Change Order)的方式實(shí)現(xiàn)呢,就像更改觸發(fā)器初始值或者查找表的真值表內(nèi)容一樣?答案是肯定的。這樣做好處也是顯而易見(jiàn)的:無(wú)需重新布局布線,只需更改RAM相關(guān)屬性,然后再次生成.dcp(這個(gè)不是必須的),最后生成.bit或.bin文件,這樣最大程度地繼承了原有設(shè)計(jì),也最大程度地縮短了編譯時(shí)間。采用此方法的前提是RAM的規(guī)格要保持不變,這里的規(guī)格包括數(shù)據(jù)位寬和RAM深度。
這里我們以Block RAM為例,先看看有哪些屬性與初始值密切相關(guān),如下圖所示?;旧戏彩且訧NIT打頭的屬性都與初始值相關(guān)。更新初始值本質(zhì)上就是重新設(shè)定這些初始值。這些初始值是在IP生成階段根據(jù)coe內(nèi)容被設(shè)定的。
第一步,根據(jù)更新后的coe文件生成一個(gè)同規(guī)格的IP,并對(duì)該IP執(zhí)行OOC綜合。
第二步,打開(kāi)第一步生成的.dcp文件,找到相應(yīng)的Block RAM,獲取上文提到的這些屬性對(duì)應(yīng)的屬性值。
原文標(biāo)題:ECO方式更新RAM/ROM初始值
文章出處:【微信公眾號(hào):Lauren的FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
FPGA
+關(guān)注
關(guān)注
1630文章
21801瀏覽量
606349 -
ROM
+關(guān)注
關(guān)注
4文章
575瀏覽量
86027 -
RAM
+關(guān)注
關(guān)注
8文章
1369瀏覽量
115054
原文標(biāo)題:ECO方式更新RAM/ROM初始值
文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
TLC5615芯片輸出的初始值是不是為0?
手機(jī)中的ROM與內(nèi)存的區(qū)別
ROM和RAM的主要區(qū)別
什么是RAM和ROM
ram存儲(chǔ)器和rom存儲(chǔ)器的區(qū)別是什么
內(nèi)存儲(chǔ)器一般由rom和ram組成嗎
外部存儲(chǔ)器是ROM還是RAM
rom和ram都是內(nèi)存儲(chǔ)器嗎
易靈思SOC onchip RAM初始化
![易靈思SOC onchip <b class='flag-5'>RAM</b><b class='flag-5'>初始</b>化](https://file1.elecfans.com/web2/M00/FD/9B/wKgZomaczM2AHQYGAAAuEoP-g6g927.png)
簡(jiǎn)述RAM和ROM的區(qū)別
只讀存儲(chǔ)器(ROM)和隨機(jī)讀寫(xiě)存儲(chǔ)器(RAM)的區(qū)別
易靈思RAM使用--Update5
![易靈思<b class='flag-5'>RAM</b>使用--Update5](https://file1.elecfans.com/web2/M00/DC/53/wKgaomYrd9SAEOS9AAAlTcY3yCk477.png)
易靈思RAM使用--Update4
![易靈思<b class='flag-5'>RAM</b>使用--Update4](https://file1.elecfans.com/web2/M00/D6/57/wKgZomYnWpmAQsrRAAAlTcY3yCk202.png)
評(píng)論