本實(shí)用新型涉及集成電路中Soc芯片的架構(gòu)設(shè)計(jì)領(lǐng)域,尤其涉及一種語音識別Soc芯片架構(gòu)。
背景技術(shù):
隨著集成電路工藝水平的提高,芯片也朝著高速、多功能、低電壓、低功耗、便攜、高可靠性系統(tǒng)化方向發(fā)展、而且要求縮短設(shè)計(jì)周期以縮短產(chǎn)品的上市時(shí)間。系統(tǒng)級芯片(system on chip)也由此應(yīng)用而生。所謂系統(tǒng)芯片是指在單一芯片上集成數(shù)字和模擬混合器、信號采集和轉(zhuǎn)換、I/O接口、存儲(chǔ)器、MCU和DSP等具有系統(tǒng)功能的IC。
語音識別的應(yīng)用受到業(yè)界和用戶日益廣泛地關(guān)注,眾多世界大公司紛紛涉足語音市場的開發(fā)與競爭,語音識別的應(yīng)用形式和領(lǐng)域不斷擴(kuò)展,已成為電腦、手機(jī)、機(jī)器人、智能玩具等各種電子設(shè)備實(shí)現(xiàn)功能的升級而取悅市場的新亮點(diǎn)。
現(xiàn)如今由人工神經(jīng)網(wǎng)絡(luò)構(gòu)成的語音識別算法成為主流,從軟件算法移植硬件及芯片化實(shí)現(xiàn)來看,如果用純硬件描述語言從底層實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)的算法的定制芯片對于開發(fā)人員來說,開發(fā)難度大,研發(fā)周期長,架構(gòu)固定,遇到算法結(jié)構(gòu)和數(shù)據(jù)更新,需要重新更改芯片的架構(gòu),成本較高。現(xiàn)有的大部分語音芯片Soc架構(gòu)靈活度較差、可升級較差、芯片成本較高、從外部的flash讀取程序數(shù)據(jù)速度慢等缺點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
本實(shí)用新型所要解決的技術(shù)問題在于,提供一種語音識別Soc芯片架構(gòu),結(jié)合各模塊優(yōu)勢,設(shè)計(jì)出適合語音識別算法芯片化的架構(gòu),具有低成本、高性能、易于語音算法移植、升級的優(yōu)點(diǎn)。
為解決上述技術(shù)問題,本實(shí)用新型提供如下技術(shù)方案:一種語音識別Soc芯片架構(gòu),包括:用于數(shù)據(jù)運(yùn)算處理的MCU內(nèi)核,用于連接低帶寬的周邊外設(shè)之間的APB總線譯碼器,用于采集語言信號的ADC語音信號采樣模塊,用于對特定浮點(diǎn)數(shù)運(yùn)算做優(yōu)化處理的浮點(diǎn)運(yùn)算加速模塊,用于檢測軟件異常執(zhí)行的看門狗模塊,用于作為通用輸入輸出接口的GPIO模塊,用于數(shù)據(jù)之間傳輸通道的數(shù)據(jù)傳輸控制模塊,以及用于存儲(chǔ)數(shù)據(jù)的片內(nèi)SRAM存儲(chǔ)器;其中,所述APB總線譯碼器、片內(nèi)SRAM存儲(chǔ)器均與所述MCU內(nèi)核連接,所述ADC語音信號采樣模塊、浮點(diǎn)運(yùn)算加速模塊、看門狗模塊、GPIO模塊均與所述APB總線譯碼器連接,所述片內(nèi)SRAM存儲(chǔ)器與數(shù)據(jù)傳輸控制模塊連接。
進(jìn)一步地,所述片內(nèi)SRAM存儲(chǔ)器包括SRAM1存儲(chǔ)器和SRAM2存儲(chǔ)器,數(shù)據(jù)傳輸控制模塊包括第一、第二數(shù)據(jù)傳輸控制器;其中,所述SRAM1存儲(chǔ)器連接第一數(shù)據(jù)傳輸控制器,用于接收并存儲(chǔ)外部數(shù)據(jù);所述SRAM2存儲(chǔ)器與第二數(shù)據(jù)傳輸控制器,第二數(shù)據(jù)傳輸控制器用于連接外部的flash芯片。
進(jìn)一步地,所述ADC語音信號采樣模塊連接外部的A/D采樣芯片連接;所述ADC語音信號采樣模塊驅(qū)動(dòng)A/D采樣芯片采集語音數(shù)據(jù),并將數(shù)據(jù)存入片內(nèi)SRAM存儲(chǔ)器中;MCU內(nèi)核通過APB總線譯碼器控制ADC語音信號采樣模塊,并讀取片內(nèi)SRAM存儲(chǔ)器的語音數(shù)據(jù)。
進(jìn)一步地,所述MCU內(nèi)核采用32位的IP核,型號為N10。
進(jìn)一步地,所述語音識別Soc芯片架構(gòu)還包括APB總線,所示MCU內(nèi)核通過APB總線連接APB總線譯碼器,所示MCU內(nèi)核通過bus interface接口連接APB總線。
進(jìn)一步地,所述MCU內(nèi)核包括數(shù)據(jù)緩存單元、指令緩存單元、總線接口單元和運(yùn)算處理單元;所述數(shù)據(jù)緩存單元用于讀取程序的數(shù)據(jù),所述指令緩單元用于存讀取程序的指令;所述總線接口單元用于連接外部的總線,所述運(yùn)算處理單元作為整個(gè)運(yùn)算和控制的核心模塊。
采用上述技術(shù)方案后,本實(shí)用新型至少具有如下有益效果:本實(shí)用新型結(jié)合了SOC系統(tǒng)的特點(diǎn),通過集成高性能MCU IP核、高效的APB總線架構(gòu)、ADC語音信號采樣模塊、浮點(diǎn)運(yùn)算加速模塊、數(shù)據(jù)傳輸加速模塊提供出低成本、高性能、靈活性較高、快速升級更新的語音識別算法的Soc芯片架構(gòu)。
附圖說明
圖1為本實(shí)用新型一種語音識別Soc芯片架構(gòu)的結(jié)構(gòu)示意圖;
圖2為本實(shí)用新型外部的flash芯片到SRAM2存儲(chǔ)器的數(shù)據(jù)傳輸示意圖;
圖3為本實(shí)用新型一種語音識別Soc芯片架構(gòu)的ADC語音信號采樣模塊結(jié)構(gòu)示意圖;
圖4為本實(shí)用新型一種語音識別Soc芯片架構(gòu)的APB總線譯碼器的結(jié)構(gòu)圖;
圖5為本實(shí)用新型一種語音識別Soc芯片架構(gòu)的GPIO(General-purpose input/output,通用輸入輸出接口)模塊結(jié)構(gòu)圖;
圖6為本實(shí)用新型一種語音識別Soc芯片架構(gòu)的看門狗模塊結(jié)構(gòu)圖;
圖7為本實(shí)用新型一種語音識別Soc芯片架構(gòu)的浮點(diǎn)運(yùn)算加速模塊結(jié)構(gòu)圖。
具體實(shí)施方式
需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互結(jié)合,下面結(jié)合附圖和具體實(shí)施例對本申請作進(jìn)一步詳細(xì)說明。
如圖1所示,本實(shí)用新型提供一種語音識別Soc芯片架構(gòu),通過集成高性能低功耗的MCU內(nèi)核、APB總線、APB總線譯碼器、ADC語音信號采樣模塊、浮點(diǎn)運(yùn)算加速模塊、數(shù)據(jù)傳輸控制模塊以及片內(nèi)SRAM存儲(chǔ)器,提供出低成本、高性能、靈活性高、便捷升級更新的語音識別算法的Soc芯片架構(gòu)。
具體芯片架構(gòu)如下:
所述的MCU內(nèi)核,為一款高性能低功耗的32位MCU(型號為N10)的IP核,程序與數(shù)據(jù)獨(dú)立總線,總尋址空間可以達(dá)到4GB;可通過N10的APB總線進(jìn)行外圍擴(kuò)展,通過bus interface與APB總線連接。MCU內(nèi)核包括數(shù)據(jù)緩存單元、指令緩存單元、總線接口單元和運(yùn)算處理單元;數(shù)據(jù)緩存單元用于讀取程序的數(shù)據(jù),指令緩單元用于存讀取程序的指令;總線接口單元用于連接外部的總線,運(yùn)算處理單元作為整個(gè)運(yùn)算和控制的核心模塊。
所述的APB總線是AMBA總線的一種,主要用于低帶寬的周邊外設(shè)之間的連接,接口簡單,功耗低,適合語音識別的Soc架構(gòu);通過設(shè)計(jì)的APB總線對連接到APB總線譯碼器上的模塊進(jìn)行控制。
所述的浮點(diǎn)運(yùn)算加速模塊,為使用硬件描述語言(Verilog)對特定的浮點(diǎn)數(shù)運(yùn)算作優(yōu)化處理,包括浮點(diǎn)數(shù)加分、浮點(diǎn)數(shù)乘法。從而提高芯片的浮點(diǎn)運(yùn)算處理能力。
所述的ADC語音信號采樣模塊與外部的A/D采樣芯片相連,A/D采樣芯片輸出通過cic補(bǔ)償濾波器補(bǔ)償cic濾波損失,再通過低通濾波濾除高頻分量,再進(jìn)行4倍抽取,得到位寬16的數(shù)據(jù),將兩個(gè)數(shù)據(jù)組合為一個(gè)位寬32的數(shù)據(jù),寫入SRAM中。MCU核通過APB總線讀取SRAM中數(shù)據(jù)。
所述看門狗模塊用來檢測軟件的異常執(zhí)行;當(dāng)軟件正常執(zhí)行時(shí),看門狗定時(shí)計(jì)數(shù)器計(jì)數(shù)到某個(gè)設(shè)定的值時(shí),發(fā)出中斷信號,軟件檢測到中斷信號給出一個(gè)特定的指令(喂狗),清除中斷并且使得看門狗定時(shí)計(jì)數(shù)器重新開始計(jì)數(shù);或者軟件定時(shí)給出一個(gè)特定的指令(喂狗),使得看門狗定時(shí)計(jì)數(shù)器重新開始計(jì)數(shù);當(dāng)軟件異常時(shí),看門狗定時(shí)計(jì)數(shù)器會(huì)溢出發(fā)出復(fù)位信號,導(dǎo)致系統(tǒng)復(fù)位,這樣程序可以恢復(fù)正常運(yùn)行狀態(tài)
所述GPIO(General-Purpose Input/Output)模塊為通用輸入輸出接口,包括16個(gè)可編程的GPIO,通過APB總線可以設(shè)置GPIO口的屬性為一般輸入輸出或者中斷輸入及其中斷屬性。
所述的flash芯片到片內(nèi)SRAM的數(shù)據(jù)傳輸模塊包括從外部的flash芯片獲取數(shù)據(jù)并將數(shù)據(jù)經(jīng)過數(shù)據(jù)傳輸控制器的緩存處理,最后搬移到內(nèi)部的SRAM2存儲(chǔ)器中。
如圖2所示,所述的外部的flash芯片到片內(nèi)SRAM存儲(chǔ)器的數(shù)據(jù)傳輸模塊包括從外部的flash芯片獲取數(shù)據(jù)并將數(shù)據(jù)經(jīng)過數(shù)據(jù)傳輸控制器的緩存處理,最后搬移到內(nèi)部的SRAM2存儲(chǔ)器中。控制模塊接口信號中spi_clk為輸入的模塊時(shí)鐘,spi_rstn為模塊的復(fù)位信號,低有效;flash_si為spi串行數(shù)據(jù)輸入;flash_cen、pRAM_wr、pRAM_flash_en為輸出使能信號;pRAM_wdata[7:0]為輸出到SRAM的數(shù)據(jù)信號;pRAM_waddr[19:0]為輸出到SRAM的地址信號。
如圖3所示,所述的ADC語音信號采樣模塊與外部的A/D采樣芯片相連,采集到的語音數(shù)據(jù)存入SRAM中,MCU內(nèi)核通過APB總線譯碼器控制ADC,并讀取片內(nèi)SRAM存儲(chǔ)器的語音數(shù)據(jù);該模塊的輸入信號有與APB總線通信的pclk、prstn、psel、paddr[11:0]、penable、pready、pwdata[31:0];控制外部A/D芯片的控制信號adc_int、Pbe[3:0]、Sc_ctr[11:0]、Ctr_sels、Ctr_adl、Ctr_adr、Ctr_adout;控制SRAM存放采樣到的語音數(shù)據(jù)的控制信號為Wadr[6:0]、Radr、Adc_wrn、Adc_wenb1、Adc_cenb1、Adc_wenb2、Adc_cenb2。
所述的APB總線是AMBA總線的一種,主要用于低帶寬的周邊外設(shè)之間的連接,接口簡單,功耗低,適合語音識別的Soc架構(gòu);通過設(shè)計(jì)的APB總線譯碼模塊對連接到APB總線譯碼器上的模塊進(jìn)行控制;APB總線的輸入信號包括時(shí)鐘信號pclk,片選信號psel,復(fù)位信號prst_n,地址信號paddr[31:0],寫數(shù)據(jù)信號pwdata[31:0];還包括控制信號pwrite為讀寫控制信號,penable為使能信號,總線的輸出信號為讀數(shù)據(jù)prdata[31:0]。
APB總線一次讀寫占用兩個(gè)時(shí)鐘周期,在第一個(gè)周期開始之際,psel片選有效,pwrite高電平代表寫,低電平代表讀,在第一個(gè)時(shí)鐘周期,paddr給出地址信息,pwdata給出數(shù)據(jù)信息,第二個(gè)時(shí)鐘周期,penable變?yōu)楦唠娖?,表示此刻的?shù)據(jù)有效。
如圖4所示,所述的APB總線譯碼器模塊,根據(jù)地址信號paddr[31:0]分配譯碼信號psel給與地址對應(yīng)的模塊;同時(shí)輸出讀取的prdata[31:0]數(shù)據(jù)信號。
如圖5所示,所述的GPIO模塊包括16個(gè)可編程的GPIO,可以通過APB總線可以設(shè)置GPIO口的屬性為一般輸入輸出或者中斷輸入及其中斷屬性;包括輸入clk時(shí)鐘信號,rst_n復(fù)位信號,和APB接口總線接口pclk、prstn、psel、paddr[11:0]、penable、pready、pwdata[31:0]、prdata[31:0];輸出信號包括gpio_int中斷輸出,gpio_out數(shù)據(jù)輸出,gpio_oen使能信號;gpio_in為數(shù)據(jù)輸入。
如圖6所示,為本實(shí)用新型一種語音識別Soc芯片架構(gòu)的看門狗模塊結(jié)構(gòu)圖,包括定時(shí)器,定時(shí)器對系統(tǒng)頻率進(jìn)行分頻計(jì)數(shù);包括輸入clk時(shí)鐘信號,rst_n復(fù)位信號,wdt_en和sleep_en使能信號;APB接口總線接口pclk、prstn、psel、paddr[11:0]、penable、pready、pwdata[31:0]、prdata[31:0];輸出信號包括wdt_int中斷信號,高電平有效;wdt_res復(fù)位信號,高電平有效。
如圖7所示,所述的浮點(diǎn)運(yùn)算加速模塊,模塊實(shí)現(xiàn)了加法(add),乘法(mul)的功能,每個(gè)功能有兩個(gè)數(shù)據(jù)通道可以同時(shí)運(yùn)行,其中add1和mul1占用RAM0,RAM1,RAM2三塊內(nèi)部RAM,add2和mul2占用RAM3,RAM4和RAM5。其中輸入RAM塊和輸出RAM塊可選擇,比如add1的第一個(gè)操作數(shù)a選擇來自RAM0,add1的另一個(gè)操作數(shù)b選擇來自RAM1,那么a+b或a-b的結(jié)果會(huì)自動(dòng)存入操作數(shù)所在的RAM以外的那塊RAM,也就是RAM2。同理,若a來自RAM1,b來自RAM2,那么結(jié)果將自動(dòng)存入RAM0。
所述的浮點(diǎn)運(yùn)算加速模塊的信號接口包括:輸入clk時(shí)鐘信號,rst_n復(fù)位信號,APB接口總線接口pclk、prstn、psel、paddr[11:0]、penable、pready、pwdata[31:0]、prdata[31:0];輸出信號result1、result2計(jì)算結(jié)果;result_oen1、result_oen2結(jié)果有效。
盡管已經(jīng)示出和描述了本實(shí)用新型的實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員而言,可以理解的是,在不脫離本實(shí)用新型的原理和精神的情況下可以對這些實(shí)施例進(jìn)行多種等效的變化、修改、替換和變型,本實(shí)用新型的范圍由所附權(quán)利要求及其等同范圍限定。