本申請公開了一種寄存器代碼和文檔的自動化設(shè)計方法、裝置、設(shè)備及介質(zhì),通過交互式網(wǎng)頁獲取用戶輸入的芯片層級模塊參數(shù)和寄存器參數(shù),并根據(jù)所述芯片層級模塊參數(shù)和所述寄存器參數(shù)生成預設(shè)格式文件;解析所述預設(shè)格式文件,得到用于生成芯片通用命令接口對應的代碼的解析芯片層級模塊參數(shù)和解析寄存器參數(shù),并以哈希表樣式進行儲存;通過預置程序?qū)λ龉1磉M行解析,以自動生成芯片通用命令接口對應的代碼。能夠有效降低人工重復開發(fā)為寄存器代碼和文檔帶來的不確定性,可以保證寄存器代碼和文檔在設(shè)計周期中各版本連續(xù)性和穩(wěn)定性,具有自動化程度高,正確率高、效率高、實時性好并且查錯容易等特點。并且查錯容易等特點。并且查錯容易等特點。
【技術(shù)實現(xiàn)步驟摘要】
寄存器代碼和文檔的自動化設(shè)計方法、裝置、設(shè)備及介質(zhì)
[0001]本申請涉及芯片設(shè)計
,尤其涉及一種寄存器代碼和文檔的自動化設(shè)計方法、裝置、設(shè)備及介質(zhì)。
技術(shù)介紹
[0002]隨著新技術(shù)和新工藝的迅速發(fā)展,芯片的功能也變得越來越復雜,芯片內(nèi)所包含的寄存器的數(shù)量也變得越來越多。比如,一個32位的單片機中一般有700至1200個寄存器,寄存器的設(shè)計修改貫穿于芯片設(shè)計的全過程。
[0003]目前,芯片寄存器的相關(guān)代碼和文檔主要靠人工進行維護,在芯片開發(fā)的不同階段,需要不斷的對寄存器進行增改刪,大量人工重復性開發(fā)代碼和編輯文檔會導致極大的出錯概率和開發(fā)效率的降低,進而影響了芯片的開發(fā)周期和設(shè)計成本。有數(shù)據(jù)顯示,寄存器的設(shè)計錯誤占芯片設(shè)計錯誤的40%至50%,其主要錯誤主要集中在寄存器文檔描述錯誤和寄存器功能設(shè)計錯誤,尤其是描述錯誤容易被忽略,導致產(chǎn)品無法滿足用戶需求,引起用戶抱怨。
[0004]相關(guān)技術(shù)中,對于一些復雜芯片的設(shè)計,目前主要采用word、excel和html等設(shè)計工具進行輔助設(shè)計,這些輔助設(shè)計方法的缺點是工作量大、正確率不高以及效率較低,并且一旦出現(xiàn)錯誤將很難及時被發(fā)現(xiàn)。
[0005]因此,如何高效地保證寄存器文檔描述和寄存器代碼的一致性,是一個亟需解決的技術(shù)問題。
技術(shù)實現(xiàn)思路
[0006]本申請的主要目的在于提供一種寄存器代碼和文檔的自動化設(shè)計方法、裝置、設(shè)備及介質(zhì),旨在解決通過人工進行寄存器代碼和文檔的維護工作量大,正確率不高并且效率較低的技術(shù)問題。
[0007]第一方面,本申請?zhí)峁┮环N寄存器代碼和文檔的自動化設(shè)計方法,所述方法包括以下步驟:
[0008]通過交互式網(wǎng)頁獲取用戶輸入的芯片層級模塊參數(shù)和寄存器參數(shù),并根據(jù)所述芯片層級模塊參數(shù)和所述寄存器參數(shù)生成預設(shè)格式文件;
[0009]解析所述預設(shè)格式文件,得到用于生成芯片通用命令接口對應的代碼的解析芯片層級模塊參數(shù)和解析寄存器參數(shù),并以哈希表樣式進行儲存;
[0010]通過預置程序?qū)λ龉1磉M行解析,以自動生成芯片通用命令接口對應的代碼。
[0011]一些實施例中,所述芯片層級模塊參數(shù)包括:名稱、基地址、基址位寬、套數(shù)和時鐘組;
[0012]所述寄存器參數(shù)包括:寄存器名稱,寄存器地址,寄存器套數(shù),域名稱,域類型,域位寬和域默認值。
[0013]一些實施例中,所述根據(jù)所述芯片層級模塊參數(shù)和所述寄存器參數(shù)生成預設(shè)格式文件,包括:
[0014]通過所述交互式網(wǎng)頁調(diào)用XML讀寫操作Document類,將所述芯片層級模塊參數(shù)和所述寄存器參數(shù)類按照芯片層級模塊保存為XML文件;
[0015]其中,所述XML文件中各個芯片層級模塊的節(jié)點保存為特定名稱的元素,與芯片層級模塊的節(jié)點關(guān)聯(lián)的芯片層級模塊參數(shù)和寄存器參數(shù)保存為元素屬性。
[0016]一些實施例中,所述解析所述預設(shè)格式文件,得到用于生成芯片通用命令接口對應的代碼的解析芯片層級模塊參數(shù)和解析寄存器參數(shù),并以哈希表樣式進行儲存,包括:
[0017]通過解析器Perl中的動態(tài)節(jié)點解析庫模塊XML::LibXML和XML::LibXML::XPathContext對所述XML文件進行解析,得到解析芯片層級模塊參數(shù)和解析寄存器參數(shù)。
[0018]一些實施例中,所述解析所述預設(shè)格式文件,得到用于生成芯片通用命令接口對應的代碼的解析芯片層級模塊參數(shù)和解析寄存器參數(shù),并以哈希表樣式進行儲存,包括:
[0019]將解析芯片層級模塊中每一層級模塊的相關(guān)參數(shù)儲存為一個哈希表,多個層級模塊的哈希表根據(jù)層級進行嵌套,形成一個多級嵌套哈希表進行儲存;
[0020]其中,每一層級模塊的哈希表中只包括一個鍵值對Key
?
Value,模塊自身的參數(shù)用預設(shè)符號連接組合成字符串作為關(guān)鍵字Key,該模塊下一級模塊的哈希表組合成數(shù)組作為值Value。
[0021]一些實施例中,在通過預置程序?qū)λ龉1磉M行解析,以自動生成芯片通用命令接口對應的代碼之前,還包括:
[0022]確定所述多級嵌套哈希表中每個Key
?
Value中的最底層模塊;
[0023]將所述最底層模塊的多級地址解碼信息作為Key,將儲存有與所述最底層模塊相關(guān)聯(lián)的參數(shù)的哈希表作為Value,以將所述多級嵌套哈希表轉(zhuǎn)換為增強型哈希表。
[0024]一些實施例中,所述通過預置程序?qū)λ龉1磉M行解析,以自動生成芯片通用命令接口對應的代碼,包括:
[0025]通過預置的Perl程序中的靈活算法對所述增強型哈希表進行解析,自動生成RTL代碼、驅(qū)動代碼、寄存器文檔和驗證代碼;
[0026]其中,所述RTL代碼是所述Perl程序按照寄存器包含的域類型調(diào)用與域類型對應的RTL模板生成的;
[0027]其中,所述RTL模板是根據(jù)寄存器中的不同的域類型進行預置的,不同的域類型通過域參數(shù)Access進行區(qū)分。
[0028]第二方面,本申請還提供一種寄存器代碼和文檔的自動化設(shè)計裝置,所述裝置包括:
[0029]交互式網(wǎng)頁,其用于獲取用戶輸入的項目層級模塊參數(shù)和寄存器參數(shù),并根據(jù)所述項目層級模塊參數(shù)和所述寄存器參數(shù)生成預設(shè)格式的目標文件;
[0030]解析模塊,其用于解析所述預設(shè)格式文件,得到用于生成芯片通用命令接口對應的代碼的解析芯片層級模塊參數(shù)和解析寄存器參數(shù),并以哈希表樣式進行儲存;
[0031]生成模塊,通過預置程序?qū)λ龉1磉M行解析,以自動生成芯片通用命令接口對應的代碼。
[0032]一些實施例中,所述芯片層級模塊參數(shù)包括:名稱、基地址、基址位寬、套數(shù)和時鐘
組;
[0033]所述寄存器參數(shù)包括:寄存器名稱,寄存器地址,寄存器套數(shù),域名稱,域類型,域位寬和域默認值。
[0034]一些實施例中,所述交互式網(wǎng)頁還用于:
[0035]通過所述交互式網(wǎng)頁調(diào)用XML讀寫操作Document類,將所述芯片層級模塊參數(shù)和所述寄存器參數(shù)類按照芯片層級模塊保存為XML文件;
[0036]其中,所述XML文件中各個芯片層級模塊的節(jié)點保存為特定名稱的元素,與芯片層級模塊的節(jié)點關(guān)聯(lián)的芯片層級模塊參數(shù)和寄存器參數(shù)保存為元素屬性。
[0037]一些實施例中,所述解析模塊還用于:
[0038]通過解析器Perl中的動態(tài)節(jié)點解析庫模塊XML::LibXML和XML::LibXML::XPathContext對所述XML文件進行解析,得到解析芯片層級模塊參數(shù)和解析寄存器參數(shù)。
[0039]一些實施例中,所述解析模塊還用于:
[0040]將解析芯片層級模塊中每一層級模塊的相關(guān)參數(shù)儲存為一個哈希表,多個層級模塊的哈希表根據(jù)層級進行嵌套,形成一個多級嵌套哈希表進行儲存;
[0041]其中,每一層級模塊的哈希表中只包括一個鍵值對Key
?
Value,模塊自身的參數(shù)用預設(shè)符號連接組合成字符串作為本文檔來自技高網(wǎng)...
【技術(shù)保護點】
【技術(shù)特征摘要】
1.一種寄存器代碼和文檔的自動化設(shè)計方法,其特征在于,包括:通過交互式網(wǎng)頁獲取用戶輸入的芯片層級模塊參數(shù)和寄存器參數(shù),并根據(jù)所述芯片層級模塊參數(shù)和所述寄存器參數(shù)生成預設(shè)格式文件;解析所述預設(shè)格式文件,得到用于生成芯片通用命令接口對應的代碼的解析芯片層級模塊參數(shù)和解析寄存器參數(shù),并以哈希表樣式進行儲存;通過預置程序?qū)λ龉1磉M行解析,以自動生成芯片通用命令接口對應的代碼。2.按照權(quán)利要求1所述的寄存器代碼和文檔的自動化設(shè)計方法,其特征在于:所述芯片層級模塊參數(shù)包括:名稱、基地址、基址位寬、套數(shù)和時鐘組;所述寄存器參數(shù)包括:寄存器名稱,寄存器地址,寄存器套數(shù),域名稱,域類型,域位寬和域默認值。3.按照權(quán)利要求1所述的寄存器代碼和文檔的自動化設(shè)計方法,其特征在于,所述根據(jù)所述芯片層級模塊參數(shù)和所述寄存器參數(shù)生成預設(shè)格式文件,包括:通過所述交互式網(wǎng)頁調(diào)用XML讀寫操作Document類,將所述芯片層級模塊參數(shù)和所述寄存器參數(shù)類按照芯片層級模塊保存為XML文件;其中,所述XML文件中各個芯片層級模塊的節(jié)點保存為特定名稱的元素,與芯片層級模塊的節(jié)點關(guān)聯(lián)的芯片層級模塊參數(shù)和寄存器參數(shù)保存為元素屬性。4.按照權(quán)利要求3所述的寄存器代碼和文檔的自動化設(shè)計方法,其特征在于,所述解析所述預設(shè)格式文件,得到用于生成芯片通用命令接口對應的代碼的解析芯片層級模塊參數(shù)和解析寄存器參數(shù),并以哈希表樣式進行儲存,包括:通過解析器Perl中的動態(tài)節(jié)點解析庫模塊XML::LibXML和XML::LibXML::XPathContext對所述XML文件進行解析,得到解析芯片層級模塊參數(shù)和解析寄存器參數(shù)。5.按照權(quán)利要求1所述的寄存器代碼和文檔的自動化設(shè)計方法,其特征在于,所述解析所述預設(shè)格式文件,得到用于生成芯片通用命令接口對應的代碼的解析芯片層級模塊參數(shù)和解析寄存器參數(shù),并以哈希表樣式進行儲存,包括:將解析芯片層級模塊中每一層級模塊的相關(guān)參數(shù)儲存為一個哈希表,多個層級模塊的哈希表根據(jù)層級進行嵌套,形成一個多級嵌套哈希表進行儲存;其中,每一層級模塊的哈希表中只包括一個鍵值對Key
?
Value,模塊自身的...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:彭金城,張凡武,黃晶晶,雷鵬,周乾,
申請(專利權(quán))人:東風汽車集團股份有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。