亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種寄存器配置代碼自動(dòng)生成方法及裝置與流程

文檔序號(hào):12176450閱讀:1095來源:國(guó)知局
一種寄存器配置代碼自動(dòng)生成方法及裝置與流程

本發(fā)明涉及計(jì)算機(jī)語言技術(shù)領(lǐng)域,特別涉及一種寄存器配置代碼自動(dòng)生成方法及裝置。



背景技術(shù):

目前,為了提高代碼編譯的工作效率,并減少重復(fù)編譯代碼的手工勞作,通常需要通過代碼自動(dòng)生成工具自動(dòng)生成代碼。以AutoCoder自動(dòng)代碼生成器為例,AutoCoder自動(dòng)代碼生成器是一個(gè)根據(jù)模板自動(dòng)生成代碼的代碼生成工具,根據(jù)模板的不同,可以生成任何語言(如:ASP、C#、C++BUILDER、DELPHI、JAVA、JSP、PHP、VB、VC.NET……),不同層次結(jié)構(gòu)(B/S、C/S、n-tiger……),基于不同數(shù)據(jù)庫(kù)(ORACLE、MSSQL、MYSQL、DB2、ACCESS、ODBC、OLE……)的代碼和開發(fā)文檔。開發(fā)人員無需任何編碼,只需將數(shù)據(jù)庫(kù)結(jié)構(gòu)導(dǎo)入到AutoCoder中,并做簡(jiǎn)單的設(shè)置即可生成所需的代碼,可以大幅度地提高開發(fā)效率。

而本發(fā)明的目的在于,提供一種可以快速生成滿足APB/AHB/AXI Slave等總線接口要求的寄存器配置代碼,操作簡(jiǎn)單,在進(jìn)一步提高開發(fā)效率的同時(shí),提高IC設(shè)計(jì)(Integrated Circuit Design,集成電路設(shè)計(jì))效率。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供了一種寄存器配置代碼自動(dòng)生成方法及裝置,旨在至少在一定程度上解決現(xiàn)有技術(shù)中的上述技術(shù)問題之一。

為了解決上述問題,本發(fā)明提供了如下技術(shù)方案:

一種寄存器配置代碼自動(dòng)生成方法,包括:

步驟A:根據(jù)寄存器手冊(cè)編寫格式編寫寄存器手冊(cè);

步驟B:將寄存器手冊(cè)中的內(nèi)容提取到文本文件中,生成轉(zhuǎn)換腳本需要的輸入文本文件;

步驟C:調(diào)用轉(zhuǎn)換腳本讀取文本文件,根據(jù)設(shè)置的總線接口屬性生成對(duì)應(yīng)的寄存器配置代碼。

本發(fā)明實(shí)施例采取的技術(shù)方案還包括:在所述步驟A中,所述寄存器手冊(cè)編寫格式為:

a:B4格填入需要生成的寄存器名稱,名稱以“REG_”為前綴;

b:D4格填入寄存器的位寬長(zhǎng)度;

c:E4格填入寄存器在模塊中的偏移地址;

d:H列填入寄存器中各信號(hào)的位置;

e:I列填入各信號(hào)名稱;

f:J列填入各信號(hào)的屬性,信號(hào)屬性包括:RW:可讀可寫;RO:只讀;WO:只寫;

g:K列填入各信號(hào)的復(fù)位值。

本發(fā)明實(shí)施例采取的技術(shù)方案還包括:在所述步驟B中,所述將寄存器手冊(cè)中的內(nèi)容提取到文本文件中具體為:將寄存器手冊(cè)中a、b、c、d、e、f、g步隊(duì)員的內(nèi)容提取到reg.txt格式的文本文件中。

本發(fā)明實(shí)施例采取的技術(shù)方案還包括:在所述步驟C中,所述寄存器配置代碼的生成方式為:轉(zhuǎn)換腳本以關(guān)鍵字“REG_”搜尋寄存器個(gè)數(shù),并保存寄存器在模塊中的偏移地址,將寄存器中各信號(hào)的名稱、位置、屬性、復(fù)位值記錄到指定的數(shù)組中,然后分段打印輸出最終的寄存器配置代碼;所生成的代碼語言包括Verilog或VHDL。

本發(fā)明實(shí)施例采取的技術(shù)方案還包括:所述分段打印輸出最終的寄存器配置代碼具體為:將寄存器中各信號(hào)分四段打印輸出,所述四段分別為:

信號(hào)定義段:為模塊的輸入、輸出聲明部分;

總線讀寫信號(hào)解析段:解析總線接口時(shí)序,抽取出寄存器的讀與寫信號(hào);

信號(hào)寫操作解析段:對(duì)寄存器中RW、WO屬性的信號(hào),進(jìn)行write操作;

信號(hào)讀操作解析段:對(duì)寄存器中RW、RO屬性的信號(hào),進(jìn)行read操作。

本發(fā)明實(shí)施例采取的另一技術(shù)方案為:一種寄存器配置代碼自動(dòng)生成裝置,包括:

寄存器手冊(cè)編寫單元:用于根據(jù)寄存器手冊(cè)編寫格式編寫寄存器手冊(cè);

內(nèi)容提取單元:用于將寄存器手冊(cè)中的內(nèi)容提取到文本文件中,生成轉(zhuǎn)換腳本需要的輸入文本文件;

代碼轉(zhuǎn)換單元:用于調(diào)用轉(zhuǎn)換腳本讀取文本文件,根據(jù)設(shè)置的總線接口屬性生成對(duì)應(yīng)的寄存器配置代碼。

本發(fā)明實(shí)施例采取的技術(shù)方案還包括:所述寄存器手冊(cè)編寫格式為:

a:B4格填入需要生成的寄存器名稱,名稱以“REG_”為前綴;

b:D4格填入寄存器的位寬長(zhǎng)度;

c:E4格填入寄存器在模塊中的偏移地址;

d:H列填入寄存器中各信號(hào)的位置;

e:I列填入各信號(hào)名稱;

f:J列填入各信號(hào)的屬性,信號(hào)屬性包括:RW:可讀可寫;RO:只讀;WO:只寫;

g:K列填入各信號(hào)的復(fù)位值。

本發(fā)明實(shí)施例采取的技術(shù)方案還包括:所述內(nèi)容提取單元將寄存器手冊(cè)中的內(nèi)容提取到文本文件中具體為:將寄存器手冊(cè)中a、b、c、d、e、f、g步隊(duì)員的內(nèi)容提取到reg.txt格式的文本文件中。

本發(fā)明實(shí)施例采取的技術(shù)方案還包括:所述代碼轉(zhuǎn)換單元生成寄存器配置代碼的方式為:轉(zhuǎn)換腳本以關(guān)鍵字“REG_”搜尋寄存器個(gè)數(shù),并保存寄存器在模塊中的偏移地址,將寄存器中各信號(hào)的名稱、位置、屬性、復(fù)位值記錄到指定的數(shù)組中,然后分段打印輸出最終的寄存器配置代碼;所生成的代碼語言包括Verilog或VHDL。

本發(fā)明實(shí)施例采取的技術(shù)方案還包括:所述分段打印輸出最終的寄存器配置代碼具體為:將寄存器中各信號(hào)分四段打印輸出,所述四段分別為:

信號(hào)定義段:為模塊的輸入、輸出聲明部分;

總線讀寫信號(hào)解析段:解析總線接口時(shí)序,抽取出寄存器的讀與寫信號(hào);

信號(hào)寫操作解析段:對(duì)寄存器中RW、WO屬性的信號(hào),進(jìn)行write操作;

信號(hào)讀操作解析段:對(duì)寄存器中RW、RO屬性的信號(hào),進(jìn)行read操作。

相對(duì)于現(xiàn)有技術(shù),本發(fā)明實(shí)施例產(chǎn)生的有益效果在于:本發(fā)明實(shí)施例的寄存器配置代碼自動(dòng)生成方法及裝置在編寫模塊寄存器手冊(cè)時(shí),按設(shè)定格式完成寄存器手冊(cè),將所需的寄存器手冊(cè)內(nèi)容復(fù)制成文本文件作為后續(xù)轉(zhuǎn)換腳本的輸入,并調(diào)用轉(zhuǎn)換腳本讀取文本文件,根據(jù)設(shè)置的總線接口類型快速生成對(duì)應(yīng)的寄存器配置代碼。本發(fā)明操作簡(jiǎn)單,進(jìn)一步提高開發(fā)效率的同時(shí),提高了IC設(shè)計(jì)效率。

附圖說明

圖1是本發(fā)明實(shí)施例的寄存器配置代碼自動(dòng)生成方法的流程圖;

圖2是寄存器手冊(cè)編寫格式;

圖3為信號(hào)定義段格式示意圖;

圖4為信號(hào)寫操作解析段格式示意圖;

圖5為信號(hào)讀操作解析段格式示意圖;

圖6是本發(fā)明實(shí)施例的寄存器配置代碼自動(dòng)生成裝置的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

請(qǐng)參閱圖1,是本發(fā)明實(shí)施例的寄存器配置代碼自動(dòng)生成方法的流程圖。本發(fā)明實(shí)施例的寄存器配置代碼自動(dòng)生成方法包括以下步驟:

步驟100:根據(jù)設(shè)定的寄存器手冊(cè)編寫格式編寫寄存器手冊(cè);

在步驟100中,寄存器手冊(cè)編寫格式如圖2所示,其中,D2格填入給模塊分配的寄存器首地址,第4至第7行為一個(gè)寄存器的表示格式,如果要添加多個(gè)寄存器,按此格式在寄存器表單中依次填寫即可。具體編寫格式如下:

a:B4格填入需要生成的寄存器名稱,名稱以“REG_”為前綴;

b:D4格填入寄存器的位寬長(zhǎng)度;

c:E4格填入寄存器在模塊中的偏移地址;

d:H列填入寄存器中各信號(hào)的位置;

e:I列填入各信號(hào)名稱;

f:J列填入各信號(hào)的屬性,信號(hào)屬性包括:RW:可讀可寫;RO:只讀;WO:只寫;

g:K列填入各信號(hào)的復(fù)位值。

步驟200:將寄存器手冊(cè)中的內(nèi)容提取到文本文件中,生成轉(zhuǎn)換腳本需要的輸入文本文件;

在步驟200中,文本文件格式為reg.txt格式,將寄存器手冊(cè)中a、b、c、d、e、f、g步隊(duì)員的內(nèi)容提取到如下reg.txt格式的文本文件中:

步驟300:調(diào)用轉(zhuǎn)換腳本讀取文本文件,根據(jù)設(shè)置的總線接口屬性生成對(duì)應(yīng)的寄存器配置代碼;

在步驟300中,代碼生成方式為:轉(zhuǎn)換腳本以關(guān)鍵字“REG_”搜尋寄存器個(gè)數(shù),并保存寄存器在模塊中的偏移地址,將寄存器中各信號(hào)的名稱、位置、屬性、復(fù)位值記錄到指定的數(shù)組中,然后分段打印輸出最終的寄存器配置代碼;其中,生成的代碼語言包括Verilog或VHDL等,代碼的總線接口包括APB、AHB、AXI、Slave等。在代碼打印輸出時(shí),將寄存器中各信號(hào)分四段打印輸出,四段分別是信號(hào)定義段、總線讀寫信號(hào)解析段、信號(hào)寫操作解析段、信號(hào)讀操作解析段,各段內(nèi)容如下:

信號(hào)定義段:為模塊的輸入、輸出聲明部分,具體如圖3所示,為信號(hào)定義段格式示意圖。信號(hào)定義段格式如下:

標(biāo)注1:為模塊總線接口部分,附圖為APB接口信號(hào)列表;

標(biāo)注2:為信號(hào)定義部分,信號(hào)屬性為RW、WO聲明為output屬性,RO聲明為input屬性;

標(biāo)注3:對(duì)output屬性信號(hào)進(jìn)行reg聲明定義,滿足verilog/vhdl代碼的語法需要。

總線讀寫信號(hào)解析段:此段解析總線接口時(shí)序,抽取出寄存器的讀與寫信號(hào),總線讀寫信號(hào)解析段格式如下:

wire rd_cs=psel&(~pwrite)&(~penable);

wire wr_cs=psel&pwrite&(penable);

信號(hào)寫操作解析段:此段對(duì)寄存器中RW、WO屬性的信號(hào),進(jìn)行W(write)操作,具體如圖4所示,為信號(hào)寫操作解析段格式示意圖。信號(hào)寫操作解析段格式如下:

A1:1和5部分填入寄存器名稱;

B1:2部分填入寄存器偏移地址;

C1:3和6部分填入信號(hào)名稱;

D1:4部分填入信號(hào)復(fù)位值;

E1:7部分填入信號(hào)所占bit位置;

A1—E1填入內(nèi)容均為在轉(zhuǎn)換腳本第一步搜尋關(guān)鍵字“REG_”后保存的相應(yīng)數(shù)組內(nèi)容。如有多個(gè)寄存器,按以上格式依次打印輸出。

信號(hào)讀操作解析段:此段對(duì)寄存器中RW、RO屬性的信號(hào),進(jìn)行R(read)操作,具體如圖5所示,為信號(hào)讀操作解析段格式示意圖。信號(hào)讀操作解析段格式如下:

A2:1部分填入寄存器偏移地址;

B2:2部分根據(jù)信號(hào)在寄存器中bit位置依次填入相應(yīng)信號(hào),沒有信號(hào)的寄存器相應(yīng)bit位以0填充;

C2:如果多個(gè)寄存器,在3部分處按第56行格式依次補(bǔ)充完成。

請(qǐng)參閱圖6,是本發(fā)明實(shí)施例的寄存器配置代碼自動(dòng)生成裝置的結(jié)構(gòu)示意圖。本發(fā)明實(shí)施例的寄存器配置代碼自動(dòng)生成裝置包括寄存器手冊(cè)編寫單元、內(nèi)容提取單元和代碼轉(zhuǎn)換單元;

寄存器手冊(cè)編寫單元用于根據(jù)設(shè)定的寄存器手冊(cè)編寫格式編寫寄存器手冊(cè);其中,寄存器手冊(cè)編寫格式如圖2所示,其中,D2格填入給模塊分配的寄存器首地址,第4至第7行為一個(gè)寄存器的表示格式,如果要添加多個(gè)寄存器,按此格式在寄存器表單中依次填寫即可。具體編寫格式如下:

a:B4格填入需要生成的寄存器名稱,名稱以“REG_”為前綴;

b:D4格填入寄存器的位寬長(zhǎng)度;

c:E4格填入寄存器在模塊中的偏移地址;

d:H列填入寄存器中各信號(hào)的位置;

e:I列填入各信號(hào)名稱;

f:J列填入各信號(hào)的屬性,信號(hào)屬性包括:RW:可讀可寫;RO:只讀;WO:只寫;

g:K列填入各信號(hào)的復(fù)位值。

內(nèi)容提取單元用于將寄存器手冊(cè)中的內(nèi)容提取到文本文件中,生成轉(zhuǎn)換腳本需要的輸入文本文件;其中,文本文件格式為reg.txt格式,將寄存器手冊(cè)中a、b、c、d、e、f、g步隊(duì)員的內(nèi)容提取到如下reg.txt格式的文本文件中:

代碼轉(zhuǎn)換單元用于調(diào)用轉(zhuǎn)換腳本讀取文本文件,根據(jù)設(shè)置的總線接口屬性生成對(duì)應(yīng)的寄存器配置代碼;代碼生成方式為:轉(zhuǎn)換腳本以關(guān)鍵字“REG_”搜尋寄存器個(gè)數(shù),并保存寄存器在模塊中的偏移地址,將寄存器中各信號(hào)的名稱、位置、屬性、復(fù)位值記錄到指定的數(shù)組中,然后分段打印輸出最終的寄存器配置代碼;其中,生成的代碼語言包括Verilog或VHDL等,代碼的總線接口包括APB、AHB、AXI、Slave等。在代碼打印輸出時(shí),將寄存器中各信號(hào)分四段打印輸出,四段分別是信號(hào)定義段、總線讀寫信號(hào)解析段、信號(hào)寫操作解析段、信號(hào)讀操作解析段,各段內(nèi)容如下:

信號(hào)定義段:為模塊的輸入、輸出聲明部分,具體如圖3所示,為信號(hào)定義段格式示意圖。信號(hào)定義段格式如下:

標(biāo)注1:為模塊總線接口部分,附圖為APB接口信號(hào)列表;

標(biāo)注2:為信號(hào)定義部分,信號(hào)屬性為RW、WO聲明為output屬性,RO聲明為input屬性;

標(biāo)注3:對(duì)output屬性信號(hào)進(jìn)行reg聲明定義,滿足verilog/vhdl代碼的語法需要。

總線讀寫信號(hào)解析段:此段解析總線接口時(shí)序,抽取出寄存器的讀與寫信號(hào),總線讀寫信號(hào)解析段格式如下:

wire rd_cs=psel&(~pwrite)&(~penable);

wire wr_c5=psel&pwrite&(penable);

信號(hào)寫操作解析段:此段對(duì)寄存器中RW、WO屬性的信號(hào),進(jìn)行W(write)操作,具體如圖4所示,為信號(hào)寫操作解析段格式示意圖。信號(hào)寫操作解析段格式如下:

A1:1和5部分填入寄存器名稱;

B1:2部分填入寄存器偏移地址;

C1:3和6部分填入信號(hào)名稱;

D1:4部分填入信號(hào)復(fù)位值;

E1:7部分填入信號(hào)所占bit位置;

A1—E1填入內(nèi)容均為在轉(zhuǎn)換腳本第一步搜尋關(guān)鍵字“REG_”后保存的相應(yīng)數(shù)組內(nèi)容。如有多個(gè)寄存器,按以上格式依次打印輸出。

信號(hào)讀操作解析段:此段對(duì)寄存器中RW、RO屬性的信號(hào),進(jìn)行R(read)操作,具體如圖5所示,為信號(hào)讀操作解析段格式示意圖。信號(hào)讀操作解析段格式如下:

A2:1部分填入寄存器偏移地址;

B2:2部分根據(jù)信號(hào)在寄存器中bit位置依次填入相應(yīng)信號(hào),沒有信號(hào)的寄存器相應(yīng)bit位以0填充;

C2:如果多個(gè)寄存器,在3部分處按第56行格式依次補(bǔ)充完成。

本發(fā)明實(shí)施例的寄存器配置代碼自動(dòng)生成方法及裝置在編寫模塊寄存器手冊(cè)時(shí),按設(shè)定格式完成寄存器手冊(cè),將所需的寄存器手冊(cè)內(nèi)容復(fù)制成文本文件作為后續(xù)轉(zhuǎn)換腳本的輸入,并調(diào)用轉(zhuǎn)換腳本讀取文本文件,根據(jù)設(shè)置的總線接口類型快速生成對(duì)應(yīng)的寄存器配置代碼。本發(fā)明操作簡(jiǎn)單,進(jìn)一步提高開發(fā)效率的同時(shí),提高了IC設(shè)計(jì)效率。

對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1