新聞中心

        EEPW首頁 > 網絡與存儲 > 設計應用 > 效率最好的內存測試電路開發環境

        效率最好的內存測試電路開發環境

        作者: 時間:2017-02-14 來源:電子產品世界 收藏

          4.9 模擬

        本文引用地址:http://www.104case.com/article/201702/343955.htm

          4.9.1 BIST電路仿真

          圖4-11為BIST電路仿真架構圖。此仿真環境使用make語言來建立。使用者可參考mbist文件夾下的Makefile.G*_clock_domain 檔案,該檔案包含了仿真指令及相關參數。如果使用者想儲存相關模擬波形,則可開啟G*_clock_domain.f 檔案中相關選項。

          在mbist文件夾中,使用者可看到不用clock domain有其相關輸出檔案。在example case中, G1_clock_domain開頭的相關檔案,為G1 clock domain。除此之外,還有另外兩個不同之clock domain。執行仿真的指令如下:

          unix% cd multi_lab/top_down_lab/mbist

          unix% make G1_clock_domain FUNC=tb

          unix% make G2_clock_domain FUNC=tb

          unix% make G3_clock_domain FUNC=tb

          Note: 如果使用者的design中有使用ROM memory的話,請在執行模擬前,確認相關rom code檔案路徑正確。

          圖4-11. BIST電路仿真架構圖

          圖4-12. G1_clock_domain BIST電路仿真結果

          4.9.2 整入BIST電路之仿真

          圖4-13為整入BIST電路之仿真架構圖. 該仿真對象為整合BIST電路后的系統design。此仿真環境使用make語言來建立。使用者可參考mbist 文件夾下的Makefile.G*_clock_domain 檔案,該檔案包含了仿真指令及相關參數。如果使用者想儲存相關模擬波形,則可開啟G*_clock_domain_INS_FAULT.f 檔案中相關選項。

          在mbist 文件夾中,使用者可看到不用clock domain有其相關輸出檔案。在example case中, G1_clock_domain開頭的相關檔案,為G1 clock domain。除此之外,還有另外兩個不同之clock domain。執行仿真的指令如下:

          unix% cd multi_lab/top_down_lab/mbist

          unix% make G1_clock_domain FUNC=tb_INS

          unix% make G2_clock_domain FUNC=tb_INS

          unix% make G3_clock_domain FUNC=tb_INS

          圖4-13. 整入BIST電路之仿真架構圖

          圖4-14. G1_clock_domain 整入BIST電路之仿真結果

          4.9.3 使用Fault Memory Models來模擬

           提供 fault memory models 來驗證BIST 電路的正確性。此fault memory models 為執行時自動產生, 使用者可在 FAULT_MEMORY 文件夾中找到這些檔案。

          用戶可透過下列指令來執行相關仿真動作:

          執行BIST電路仿真時:

          unix% make G1_clock_domian FUNC=tb_f

          執行整入BIST電路之仿真時:

          unix% make G1_clock_domain FUNC=tb_INS_f

          當執行faulty memory模擬時,使用者會得到failed的模擬結果。這是因為faulty memory model中有預先埋入error bit所致。使用者可透過觀察波形圖來了解此現象。圖4-15為一fault memory models仿真的范例波形圖。在此范例中,用戶可發現關于group G1_clock_domain (1_1_1, sram_sp_4096x16 memory model) 的存取順序。

          A. Write access with data 16’hffff to address 12’hb7

          B. Read access from address 12’hb7

          C. Read data is 16’hfff7

          由于讀取的結果和寫入的結果不一致,所以導致模擬failed。

          圖4-15. Fault Memory Models模擬波形圖

          使用者可在fault memory models中發現預先埋入之error bit信息。圖4-16為sram_sp_4096x16 memory model 的error bit范例。

          圖4-16. Error Bits定義范例

          4.10 合成

          亦提供BIST電路相關合成script 供用戶執行合成工作。該script名稱為[design_name].tcl。在執行合成工作前,使用者需先設定相對應standard cell library。如果使用者的design中包含多個clock domain,則需針對各個clock domain執行合成工作。合成的指令如下:

          unix% cd multi_lab/top_down_lab/mbist

          unix% make G1_clock_domain FUNC=dc

          unix% make G2_clock_domain FUNC=dc

          unix% make G3_clock_domain FUNC=dc

          合成相關報告(面積,timing…等),則會輸出在REPORT文件夾中。

          5. 整合流程 (Integrator Flow)

          當BIST電路產生完成后,Brains提供另一整合流程 - Integrator flow,供用戶將所產生的BIST電路做芯片端整合。該流程主要目的如下列:

          n 整合多個BIST controller: Brains所產生的BIST電路架構中,不同的clock domain會有其相對應之BIST controller。用戶可透過此流程,整合多個controller接口,整合完后,只需一個IEEE 1149.1接口,即可控制所有BIST controller。

          n Hookup pin工作: 使用者design端若有share pin架構時,則可透過hookup pin,將BIST電路相關腳位,與芯片端IO腳位連接。

          n 設定芯片初始順序: 此功能主要用來設定驅動芯片工作時,所需要的相關順序。包含:切換到BIST模式,clock訊號和reset訊號初始設定…等。

          此流程需透過設定BII檔案來完成。以下章節將介紹相關流程動作。

          5.1 產生并設定BII檔案

          用戶可透過下列指令,來產生BII檔案范例。

          unix% cd multi_lab/top_down_lab

          unix% brains --tempgen

          執行上述指令后,選擇第一個選項,即可產生BII范例檔案 - brains_template.bii。根據example case,使用者需修改BII檔案內容如下:

          n define{Integrator}[integrator_name] : modified integrator_name to INTEG.

          n set top_module_name : top

          n set TAP_hierarchy : top

          n set verilog_path : ./mbist/G1_clock_domain_INS_FAULT.f

          n set work_path : ./integ

          n set bist_integ_path : ./mbist/G1_clock_domain_spec.integ |

          ./mbist/G2_clock_domain_spec.integ |

          ./mbist/G3_clock_domain_spec.integ

          n define {group}

          n set bist_order : G1_clock_domain, G2_clock_domain, G3_clock_domian

          n define{Testbench}[bench_name] : modified bench_name to INTEG_tb.

          n define{hookup}[signal] : comment this functional block

          n define{initial_sequence}[signal] : comment this functional block

          圖5-1為BII 范例檔案,用戶亦可參考reference 文件夾。

          圖5-1. BII 檔案范例

          5.2 執行 Integrator Flow

          當BII 檔案設定完成后,用戶可透過下列指令來執行integrator flow。

          unix% cd multi_lab/top_down_lab

          unix% brains --integrator -bii brains_template.bii

          圖5-2. Integrator Flow 執行信息

          5.3 Integrator Flow中的模擬工作

          當integrator flow 執行完畢時,Brains會產生相對應之整合后design檔案及模擬testbench。用戶可執行下列指令來完成仿真工作。圖5-3為 integrator flow之模擬結果。

          unix% cd multi_lab/top_down_lab/integ

          unix% ncverilog INTEG_tb.v -f INTEG_INS.f +nc64bits

          圖5-3. Integrator Flow模擬結果


        上一頁 1 2 3 下一頁

        關鍵詞: 內存測試 Brains

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 乐都县| 民权县| 甘孜县| 米林县| 万宁市| 阿瓦提县| 莒南县| 日喀则市| 陈巴尔虎旗| 枝江市| 湖南省| 蒙阴县| 奉化市| 辽阳县| 二手房| 顺平县| 冕宁县| 巴南区| 阿拉善盟| 徐水县| 玉溪市| 南京市| 东乌珠穆沁旗| 定襄县| 开平市| 读书| 启东市| 建水县| 股票| 长宁区| 思南县| 昌都县| 疏勒县| 综艺| 门源| 嘉义县| 游戏| 镇江市| 鸡东县| 龙泉市| 营口市|