欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于混合語言的芯片存儲器組件自動生成方法與流程

文檔序號:40606926發(fā)布日期:2025-01-07 20:47閱讀:8來源:國知局
一種基于混合語言的芯片存儲器組件自動生成方法與流程

本發(fā)明屬于集成電路,涉及存儲器設計,具體涉及一種基于混合語言的芯片存儲器組件自動生成方法。


背景技術:

1、存儲器用于電路中數(shù)據(jù)的保存,集成電路設計中,存儲器包括sram(staticrandom-access?memory,靜態(tài)隨機存儲器)、rf(register?file,寄存器文件)、rom(read-only?memory,只讀存儲器)三種類型。隨著soc(system?on?chip,系統(tǒng)芯片)規(guī)模的提高,芯片中存儲器大小以及種類也在不斷提高與豐富。通常增加存儲器容量有利于提高soc的性能,同時存儲器容量也是不同等級soc的一個重要區(qū)分指標。合理的存儲器設計對于soc的性能、功耗、成本具有重要意義。

2、在常規(guī)的集成電路設計流程中設計人員首先需要根據(jù)設計需求配置廠商提供的存儲器生成軟件來生成指定規(guī)格的存儲器。同時為了滿足功耗、面積的指標以及生成工具生成存儲器大小的限制還可能需要對存儲器通過wrapper(封裝)完成存儲器拼接、輸入輸出數(shù)據(jù)寄存等操作。最后還需要搭建仿真環(huán)境添加激勵來驗證存儲器及wrapper文件使用的正確性,在進行fpga(field?programmable?gate?array,可編程邏輯陣列)原型驗證時還需手動進行例化對應規(guī)格的ip(intellectual?property,知識產(chǎn)權)模塊接口。根據(jù)評估結果,設計人員需要不斷修改優(yōu)化存儲器規(guī)格以及設計,并重新進行上述流程直到找到合適的設計策略。而當更換工藝或者存儲器供應商時設計人員還需要重新學習熟悉新工具的使用。故傳統(tǒng)的存儲器設計方法需要花費較長的時間,效率較低。

3、在利用腳本加速設計的流程中主要有下面兩種方式來實現(xiàn)存儲器設計中相關文件的自動化生成。方式一通過高級語言根據(jù)解析的配置信息以及所需的功能完成wrapper代碼的生成,如圖一表示一個自動化生成wrapper的流程,該方式可以有效加速wrapper代碼的生成避免手動重復實現(xiàn)相關功能。方式二通過shell腳本實現(xiàn)自動化運行廠商提供的存儲器生成軟件來生成需要的存儲器文件。這種方式不需要操作圖形用戶(gui)界面即可生成存儲器文件,加速批量生成存儲器文件的過程。但上述的方式需要設計人員熟悉多種腳本工具使用,同時生成同一特性的存儲器相關文件時仍需多次配置以及運行腳本文件,流程較為繁瑣。并且最后仍然需要自己搭建對應仿真環(huán)境來驗證生成存儲器相關文件的正確性以及文件使用方式,故以上方式仍具有一定的局限性,提升工作效率有限。


技術實現(xiàn)思路

1、針對上述現(xiàn)有技術存在的缺陷,本發(fā)明公開了一種基于混合語言的芯片存儲器組件自動生成方法。

2、本發(fā)明所述基于混合語言的芯片存儲器組件自動生成方法,包括如下步驟:

3、步驟1.填寫存儲器規(guī)格文件;

4、步驟2.生成封裝文件wrapper,具體為:

5、步驟21.通過makefile(生成文件)計算機語言調(diào)用存儲器規(guī)格文件,執(zhí)行生成封裝文件wrapper的指令;

6、步驟22.調(diào)用運行生成封裝文件wrapper的shell語言腳本,在該shell語言腳本中傳遞存儲器規(guī)格文件并運行生成封裝文件wrapper的python語言文件;

7、步驟23.運用python語言文件通過依次解析存儲器規(guī)格文件每一行的信息來生成對應封裝文件wrapper;

8、步驟3.生成存儲器文件

9、步驟31.通過makefile計算機語言調(diào)用存儲器規(guī)格文件,執(zhí)行生成存儲器文件的指令;

10、步驟32.調(diào)用運行生成存儲器文件的shell語言腳本,在該shell語言腳本中傳遞存儲器規(guī)格文件并運行python語言文件;

11、步驟33.運用python語言通過依次解析存儲器規(guī)格文件每一行的信息來生成對應的存儲器文件;

12、最后將步驟2生成的封裝文件wrapper和步驟3生成的存儲器文件直接結合,完成存儲器電路設計。

13、優(yōu)選的,?所述步驟1中存儲器規(guī)格文件為通過excel表格填寫的存儲器規(guī)格特性,所述存儲器規(guī)格特性包括工藝條件類型為典型工藝還是所有的工藝、存儲器初始化數(shù)據(jù)文件名、封裝文件wrapper?的深度與寬度、打拍寄存數(shù)目、存儲器的類型、是否支持dft(design?for?test,可測試性設計)功能、是否支持按位寫操作、是否支持功耗控制、存儲器的深度與寬度、存儲器拼接的行列個數(shù)。

14、優(yōu)選的,所述步驟23中,生成對應封裝文件wrapper的具體方式為:

15、在python文件中通過python語言中的openpyxl函數(shù)來解析存儲器規(guī)格文件中填寫的與封裝函數(shù)wrapper相關的配置信息,采用python語言中的jinja2引擎模塊,根據(jù)存儲器規(guī)格文件中存儲的存儲器類型配置信息,調(diào)用不同的jinja模版;python語言解析的存儲器信息以變量形式傳遞到調(diào)用的jinja模版中,在模版中根據(jù)變量來決定是否生成對應的代碼,生成封裝文件wrapper。

16、優(yōu)選的,還包括步驟4.生成仿真環(huán)境文件,具體為:

17、步驟41.通過makefile計算機語言調(diào)用存儲器規(guī)格文件,執(zhí)行生成仿真環(huán)境文件的指令;

18、步驟42.調(diào)用運行生成仿真環(huán)境文件的shell語言腳本,在該shell語言腳本中傳遞存儲器規(guī)格文件,運行生成仿真環(huán)境文件的python語言文件;

19、步驟43.采用python語言在仿真子目錄中為每個不同規(guī)格的存儲器創(chuàng)建一個標準的仿真結構目錄;將各個文件分別存儲在仿真結構目錄的不同子目錄中;

20、步驟44.?采用python語言根據(jù)存儲器規(guī)格文件信息生成仿真激勵文件和組件路徑文件;

21、所述仿真激勵文件中例化對應的封裝文件wrapper對存儲器實現(xiàn)遍歷讀寫,并操作生成仿真的波形文件;所述仿真環(huán)境文件中包含存儲器仿真模型、封裝文件、仿真激勵文件testbench的絕對路徑;最后生成用于仿真所有存儲器的shell語言仿真腳本;

22、通過自動運行所述shell語言仿真腳本,對存儲器進行仿真。

23、優(yōu)選的,所述步驟2中,配置封裝文件的參數(shù)需滿足下式

24、wnw?=?nw*r

25、wnb?=?nb*c

26、其中wnw表示封裝文件的深度,wnb表示封裝文件的位寬,nw表示存儲器的深度,nb表示存儲器位寬,r、c表示封裝文件拼接的行數(shù)目和列數(shù)目。

27、優(yōu)選的,所述步驟33中,生成對應的存儲器文件的具體方法為,python語言腳本生成傳遞參數(shù)的shell語言腳本以及內(nèi)容固定運行存儲器軟件的shell語言腳本,將兩個shell語言腳本結合生成存儲器文件。

28、本發(fā)明通過配置文件并基于混合語言自動生成存儲器設計相關文件,使得實現(xiàn)的功能豐富而且使用簡單,由于基于開源工具實現(xiàn),具有低成本與自主可控的特性。

29、本發(fā)明在存儲器設計的迭代中通過直接修改配置表格生成所有文件避免手動修改多個文件加快設計迭代的速度,同時也避免設計人員在項目更換存儲器廠商時帶來的學習時間成本,從而提高項目開發(fā)效率,最后基于工具自動化生成代碼還保證了設計代碼的正確性以及代碼風格的統(tǒng)一。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
铜川市| 鞍山市| 杭锦后旗| 闽清县| 沙湾县| 惠州市| 承德市| 西畴县| 新昌县| 资兴市| 额敏县| 抚顺市| 昭苏县| 双牌县| 文登市| 汾西县| 隆尧县| 文水县| 林口县| 南丹县| 佛坪县| 崇明县| 天等县| 龙胜| 台南市| 金门县| 长汀县| 乌海市| 宣武区| 普安县| 万安县| 唐海县| 赤城县| 姚安县| 辽源市| 新野县| 湘潭县| 商河县| 沙河市| 顺义区| 衡南县|