專利名稱:運算電路及其運算控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種并行執(zhí)行乘法運算和加法運算的積和運算電路及其運算控制方法。
背景技術(shù):
近年來計算機發(fā)生了飛躍的發(fā)展并且被應(yīng)用在社會的各個方面。然而,由于其自身在處理方案中的特征,這些被稱為諾爾曼類型的計算機在對于人類很容易的處理方面(例如,實時人臉識別)能力非常弱。
為了進行這種處理,已經(jīng)對作為運算處理模型而模仿大腦的信息處理方案的神經(jīng)網(wǎng)絡(luò)進行了研究。
作為形成神經(jīng)網(wǎng)絡(luò)的神經(jīng)元的模型,通常用突觸權(quán)重對多個單元(神經(jīng)元)的輸出值進行加權(quán),并且將該乘積輸入到對應(yīng)于神經(jīng)元的單元。輸入值的和進一步非線性被轉(zhuǎn)換和輸出。也就是,在通常的神經(jīng)網(wǎng)絡(luò)中,由在每個單元內(nèi)以及單元之間的積和運算和非線性轉(zhuǎn)換來實現(xiàn)期望的處理。
作為使用了神經(jīng)模型的神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu),傳統(tǒng)上提出了將執(zhí)行積和運算的單元彼此連接起來的相聯(lián)存儲器,或是將執(zhí)行積和運算的單元分等級地連接起來的模式識別模型。
神經(jīng)網(wǎng)絡(luò)是一種超級并聯(lián)的分布式信息處理模型。當其由基于順序處理的諾爾曼計算機執(zhí)行時,就會效率低下。因此,為了將神經(jīng)網(wǎng)絡(luò)運用在實際使用中,有效的是形成一種作為專用硬件的集成電路。
在形成集成電路中,由數(shù)字電路進行的數(shù)字處理適于輸入入數(shù)據(jù)的存儲和可控性。然而,當模擬運算電路被使用作運算電路以實現(xiàn)上述的積和運算或非線性轉(zhuǎn)換時,相較于數(shù)字運算電路,元件的數(shù)量可以大大地減少。
也就是說,為了將神經(jīng)網(wǎng)絡(luò)運用到實際使用中,有效的是將數(shù)字電路和模擬電路應(yīng)用到運算處理單元中,在其中它們的特征特性可以有效地工作并且最終形成其中數(shù)字電路和模擬電路混合的集成電路。
在這種情況下,將數(shù)字電路和模擬電路連接起來的接口單元必須以適合于相應(yīng)電路的信號形式輸入/輸出數(shù)據(jù)。
例如,為了使數(shù)字存儲器保持在其脈寬上具有信息的PWM(脈寬調(diào)制)信號,該PMW信號由脈寬/數(shù)字轉(zhuǎn)換電路轉(zhuǎn)換為數(shù)字值。接著,該PWM信號被輸入并且保存在數(shù)字存儲器中。
此外,為了輸出作為PWM信號而在電容器上累積的模擬電壓值,由比較器將該模擬電壓值轉(zhuǎn)換為具有與該模擬電壓值成比例的時間寬度的脈沖并且將它輸出。
當將上述的方法進行結(jié)合以臨時將模擬電壓轉(zhuǎn)換為PWM信號并接著引發(fā)脈寬/數(shù)字轉(zhuǎn)換電路以將生成的PWM信號轉(zhuǎn)換為數(shù)字值時,可以實現(xiàn)A/D轉(zhuǎn)換。
作為將數(shù)字值轉(zhuǎn)換為模擬電壓值的D/A轉(zhuǎn)換電路,經(jīng)常使用數(shù)字/脈寬轉(zhuǎn)換電路、開關(guān)電流源以及電容器的組合。
更確切地,由數(shù)字/脈寬轉(zhuǎn)換電路將數(shù)字值轉(zhuǎn)換為寬度具有與數(shù)字值成比例的值的脈沖。該開關(guān)電流源由脈沖進行開/關(guān)以在電容器中累積與脈寬成比例的電荷。相應(yīng)地,該數(shù)字值最終被轉(zhuǎn)換為作為電容器電壓值的模擬值。
D/A轉(zhuǎn)換電路中的該數(shù)字/脈寬轉(zhuǎn)換電路指的是這樣一種電路,其具有將數(shù)字輸入值轉(zhuǎn)換為具有與該數(shù)字輸入值成比例的時間寬度的脈沖的功能。已知的電路將從由時鐘操作的計數(shù)器輸出的計數(shù)值與數(shù)字輸入值進行比較,并且使得當兩個值重合時脈沖輸出下降(例如,日本專利公開No.4-2222)。
圖43是表示了傳統(tǒng)的數(shù)字/脈寬轉(zhuǎn)換電路的一個示例的框圖(日本專利公開No.4-2222的圖1)。圖43所示的傳統(tǒng)的數(shù)字/脈寬轉(zhuǎn)換電路包括了選通檢測電路101、鎖存電路102、計數(shù)器103、數(shù)字比較器104以及JK觸發(fā)器105。
在接收到選通信號NOT(STB)后,選通檢測電路101在第一時鐘CLK的前沿輸出定時啟用信號E1和E2。該定時啟用信號E1在下一個時鐘的前沿變?yōu)長電平。另一方面,該定時啟用信號E2始終在H電平而清零信號NOT(復(fù)位)在H電平。
鎖存電路102對從外部設(shè)備輸出的16數(shù)字數(shù)據(jù)比特D0鎖存到D16并且將其作為鎖存數(shù)據(jù)Q0輸出到Q15。16比特計數(shù)器103對時鐘CLK進行計數(shù)并且輸出計數(shù)值C0到C15。當計數(shù)值達到FFFF時,計數(shù)器103輸出計數(shù)滿信號C.O.。
數(shù)字比較器104將鎖存數(shù)據(jù)Q0到Q15與計數(shù)值C0到C15進行比較。該數(shù)字比較器104輸出H電平到JK觸發(fā)器105直到計數(shù)值C0到C15超出鎖存數(shù)據(jù)Q0到Q15。當計數(shù)值C0到C15超出鎖存數(shù)據(jù)Q0到Q15時,數(shù)字比較器104將輸出值反轉(zhuǎn)到L電平。
在處理周期的開始,從數(shù)字比較器104輸出的信號被輸入到JK觸發(fā)器105的輸入端J。該JK觸發(fā)器105的輸出Q保持H電平。在從數(shù)字比較器104輸出的信號被反轉(zhuǎn)到L電平之后的第一個時鐘CLK的前沿,該JK觸發(fā)器105將輸出Q反轉(zhuǎn)到L電平。在接收到計數(shù)滿信號C.O.之后,該JK觸發(fā)器105將輸出Q返回到H電平。
通過這種布置,時間寬度與數(shù)字數(shù)據(jù)D0到D16的值成比例的脈沖被輸出到JK觸發(fā)器105的輸出Q。
接著描述脈寬/數(shù)字轉(zhuǎn)換電路。傳統(tǒng)上,脈寬/數(shù)字轉(zhuǎn)換電路被廣泛地使用在積分A/D轉(zhuǎn)換器上。其技術(shù)內(nèi)容被披露在例如YasojiSuzuki和Masahiro Yoshida所著的“Introduction to Pulse/DigitalCircuit”,Nikkan Kogyo Shimbun,出版日期為2001年7月26日,225-232頁。
圖44為使用在積分A/D轉(zhuǎn)換器上的傳統(tǒng)脈寬/數(shù)字轉(zhuǎn)換電路的電路圖。
傳統(tǒng)的脈寬/數(shù)字轉(zhuǎn)換電路111具有簡單的布置,包括“與”門電路112以及計數(shù)器113。經(jīng)過了數(shù)字/脈寬轉(zhuǎn)換的輸入脈沖PW以及時鐘CLK被輸入到該“與”門電路112。該“與”門電路112輸出作為輸入脈沖PW和時鐘CLK的“與”信號的門信號g到計數(shù)器113。該計數(shù)器113對輸入門信號g的前沿進行計數(shù)并且將計數(shù)值作為m比特數(shù)字輸出D={D0,...,Dm-1}輸出。
根據(jù)這種布置,當輸入脈沖PW在H電平時,“與”門112為啟用的。當輸入脈沖PW在L電平時,“與”門112為禁用的。當“與”門112為啟用的時,時鐘CLK作為門信號g輸出。計數(shù)器113對時鐘輸出作為門信號g進行計數(shù)。通過這種運算,就獲得了作為數(shù)字輸出D={D0,...,Dm-1}的與輸入脈沖PW的寬度成比例的計數(shù)值。
在并行執(zhí)行乘加的積和運算電路中,由于其結(jié)構(gòu)的簡單,故而使用數(shù)字/脈寬轉(zhuǎn)換電路、使用了數(shù)字/脈寬轉(zhuǎn)換電路的D/A轉(zhuǎn)換電路以及使用了脈寬/數(shù)字轉(zhuǎn)換電路的A/D轉(zhuǎn)換電路是非常有效的。
然而,當在并行執(zhí)行多個數(shù)字輸入值的數(shù)字/脈寬轉(zhuǎn)換并且輸出調(diào)制脈沖的裝置中使用該數(shù)字/脈寬轉(zhuǎn)換電路時,該電路的面積以及功率消耗隨著并行操作的數(shù)字/脈寬轉(zhuǎn)換電路的數(shù)目而成比例地增加。
為了并行地執(zhí)行多個數(shù)字輸入值的數(shù)字/脈寬轉(zhuǎn)換,平行布置有數(shù)個如圖43所示的數(shù)字/脈寬轉(zhuǎn)換電路,并且數(shù)字輸入值被分別輸入到數(shù)字/脈寬轉(zhuǎn)換電路。當從數(shù)字/脈寬轉(zhuǎn)換電路輸出的脈沖被提取時,就可以并行執(zhí)行數(shù)字/脈寬轉(zhuǎn)換。
然而,在這種情況下,每個數(shù)字/脈寬轉(zhuǎn)換電路的電路面積隨著電路的數(shù)目成比例地增長。此外,時鐘的切換操作頻繁地執(zhí)行。出于這個原因,當合計所有的數(shù)字/脈寬轉(zhuǎn)換電路的驅(qū)動功率時,會消耗相當多的功率。這樣,在要求縮小尺寸以及低的功率消耗的例如便攜式設(shè)備的裝置中,使用數(shù)字/脈寬轉(zhuǎn)換電路來并行執(zhí)行多個數(shù)字輸入值的數(shù)字/脈寬轉(zhuǎn)換是困難的。
同樣地,當如圖44所示的脈寬/數(shù)字轉(zhuǎn)換電路被用于并行執(zhí)行多個脈沖輸入的脈寬/數(shù)字轉(zhuǎn)換并且輸出數(shù)字值的裝置中時,該脈寬/數(shù)字轉(zhuǎn)換電路111的總功率消耗相當?shù)馗摺?br>
更確切地,當如圖44所示的脈寬/數(shù)字轉(zhuǎn)換電路111用于每個脈沖輸入時,多個計數(shù)器113并行執(zhí)行切換操作。出于這個原因,即使當每一個計數(shù)器113都包括例如CMOS時,由計數(shù)器113進行的切換的負載電容的充電/放電中的充電/放電的功率消耗也是很高的。隨著脈沖輸入的數(shù)目的增加,充電/放電的功率消耗的增長是顯著的。
此外,當多個計數(shù)器113并行操作時,計數(shù)器113的切換噪聲增加。因此,就需要在整個電路中的抗噪方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種積和運算電路,其使用了數(shù)字/脈寬轉(zhuǎn)換電路,將多個數(shù)字輸入值并行轉(zhuǎn)換為脈寬而同時節(jié)省了面積并且降低了功率消耗,還使用了脈寬/數(shù)字轉(zhuǎn)換電路,在低的功率消耗下工作并且可以降低電路所生成的噪聲。
為了實現(xiàn)上述目的,例如根據(jù)本發(fā)明的一個方面,提供一種積和運算電路,包括脈寬/數(shù)字轉(zhuǎn)換電路,將具有代表操作數(shù)值的脈寬的脈沖信號轉(zhuǎn)換為數(shù)字信號;排序電路,以大小遞減或遞增的順序,輸出多個由脈寬/數(shù)字轉(zhuǎn)換電路轉(zhuǎn)換為數(shù)字信號的操作數(shù)值;乘法電路,將從該排序電路輸出的每一個操作數(shù)值乘以相應(yīng)的操作數(shù)值;以及累積和電路,計算乘法電路的相乘結(jié)果的累積和,其中該脈寬/數(shù)字轉(zhuǎn)換電路包括計數(shù)器,對時鐘進行計數(shù)并且將計數(shù)值作為數(shù)字信號輸出,以及多個后沿鎖存電路,每一個后沿鎖存電路在輸入脈沖信號的后沿對從計數(shù)器輸出的共用計數(shù)值進行鎖存。
根據(jù)本發(fā)明的另一個方面,提供一種執(zhí)行積和運算的方法,包括步驟將具有代表操作數(shù)值的脈寬的脈沖信號轉(zhuǎn)換為數(shù)字信號;以大小遞減或遞增的順序,輸出多個轉(zhuǎn)換為數(shù)字信號的操作數(shù)值;將每一個輸出的操作數(shù)值乘以相應(yīng)的操作數(shù)值;并且計算乘法結(jié)果的累積和,其中將脈沖信號轉(zhuǎn)換為數(shù)字信號的步驟包括引發(fā)計數(shù)器對時鐘進行計數(shù)并且輸出計數(shù)值作為數(shù)字信號,以及引發(fā)多個后沿鎖存電路在輸入脈沖信號的后沿對從計數(shù)器輸出的共用計數(shù)值進行鎖存的步驟。
本發(fā)明的其它以及進一步的目的、特征以及優(yōu)勢將在以下結(jié)合附圖的描述中變得明顯,其中在全部附圖中相同的參考標號指的是相同或相似的部分。
并入并且構(gòu)成本說明書一部分的附圖,說明了本發(fā)明的實施例,并且連同說明一起用于解釋本發(fā)明的原理。
圖1為表示根據(jù)第一實施例的積和運算電路的整體布置的示例的框圖;圖2為表示根據(jù)第一實施例的數(shù)字運算電路的布置示例的框圖;圖3為表示根據(jù)第一實施例的由輸入值保持電路和排序電路形成的相聯(lián)存儲器電路的存儲器單元結(jié)構(gòu)的示例的視圖;圖4為表示根據(jù)第一實施例的存儲器的存儲器單元結(jié)構(gòu)的示例的視圖;圖5為表示根據(jù)第一實施例的積和運算電路的整體布置的另一個示例的框圖;圖6為表示根據(jù)第二實施例的脈寬/數(shù)字轉(zhuǎn)換電路的布置示例的電路圖;圖7為表示根據(jù)第一實施例的后沿鎖存電路的內(nèi)部布置的示例的電路圖;圖8為表示根據(jù)第一實施例的后沿鎖存電路的內(nèi)部布置的示例的電路圖;圖9為表示根據(jù)第一實施例的脈寬/數(shù)字轉(zhuǎn)換電路的每一個信號電平變化的時序圖;圖10為表示根據(jù)第一實施例的另一個脈寬/數(shù)字轉(zhuǎn)換電路的后沿鎖存電路、前沿鎖存電路以及減法電路的布置示例的電路圖;圖11為表示根據(jù)第一實施例的另一個脈寬/數(shù)字轉(zhuǎn)換電路的每一個信號電平變化的時序圖;圖12為表示第二實施例的模擬運算電路的布置示例的框圖;圖13為表示根據(jù)第二實施例的輸入值保持電路的布置示例的電路圖;圖14為表示根據(jù)第二實施例的排序電路的布置示例的電路圖;圖15為表示根據(jù)第二實施例的D/A轉(zhuǎn)換電路的布置示例的電路圖;圖16為表示根據(jù)第二實施例的數(shù)字/脈寬轉(zhuǎn)換電路的布置示例的電路圖;圖17為表示根據(jù)第二實施例的每一個脈沖產(chǎn)生電路的布置示例的框圖;圖18為表示根據(jù)第二實施例的數(shù)字/脈寬轉(zhuǎn)換電路的運算的時序圖;圖19為表示根據(jù)第二實施例的權(quán)重值保持電路的布置示例的框圖;圖20為表示根據(jù)第二實施例的D/A轉(zhuǎn)換電路的布置示例的框圖;圖21為表示根據(jù)第三實施例的積和運算電路的整體布置的示例的框圖;圖22為表示根據(jù)第三實施例的模擬運算電路的布置示例的框圖;圖23為表示根據(jù)第三實施例的鋸齒波產(chǎn)生電路的布置示例的框圖;圖24為表示根據(jù)第四實施例的模擬運算電路的布置示例的框圖;圖25為表示根據(jù)第四實施例的積和運算電路的整體布置的示例的框圖;圖26為表示根據(jù)第四實施例的鋸齒波產(chǎn)生電路的布置示例的框圖;圖27為表示根據(jù)第五實施例的積和運算電路的整體布置的示例的框圖;圖28為表示根據(jù)第六實施例的積和運算電路的整體布置的示例的框圖;圖29為表示根據(jù)第六實施例的鋸齒波產(chǎn)生電路的布置示例的框圖;
圖30為表示根據(jù)第七實施例的積和運算電路的整體布置的示例的框圖;圖31為表示根據(jù)第七實施例的鋸齒波產(chǎn)生電路的布置示例的框圖;圖32為表示神經(jīng)網(wǎng)絡(luò)模型的視圖;圖33A和圖33B為表示根據(jù)第八實施例的積和運算電路的整體布置的示例的框圖;圖34為表示Sigmiod函數(shù)的視圖;圖35A和圖35B為表示根據(jù)第八實施例的積和運算電路的整體布置的另一個示例的框圖;圖36A和圖36B為表示根據(jù)第九實施例的積和運算電路的整體布置的示例的框圖;圖37為表示在根據(jù)第十實施例的積和運算電路中的排序電路和預(yù)定值保持存儲器的框圖;圖38為表示在根據(jù)第十一實施例的積和運算電路中的排序電路、常數(shù)值保持存儲器以及預(yù)定值保持存儲器的框圖;圖39為表示在根據(jù)第十二實施例的積和運算電路中的排序電路和預(yù)定值(比)保持存儲器的框圖;圖40為表示在根據(jù)第十三實施例的積和運算電路中的排序電路、預(yù)定值(比)保持存儲器和常數(shù)值保持存儲器的框圖;圖41A和圖41B為表示根據(jù)第十四實施例的執(zhí)行圖像處理的積和運算電路的布置示例的框圖;圖42為表示在第十四實施例中的運算處理的流程圖;圖43為表示傳統(tǒng)的數(shù)字/脈寬轉(zhuǎn)換電路的示例的框圖;圖44為表示傳統(tǒng)的脈寬/數(shù)字轉(zhuǎn)換電路的示例的框圖;圖45為表示根據(jù)第二實施例的另一個數(shù)字/脈寬轉(zhuǎn)換電路的框圖;圖46為表示根據(jù)第二實施例的脈沖產(chǎn)生電路的另一個布置示例的框圖;圖47為表示根據(jù)第二實施例的另一個數(shù)字/脈寬轉(zhuǎn)換電路的運算的時序圖;圖48為表示根據(jù)第十五實施例的運算電路的整體布置的示例的框圖;圖49為表示根據(jù)第十五實施例的模擬運算電路以及包括在該運算電路中的電容器的框圖;圖50為表示包括在根據(jù)第十五實施例的運算電路中的模擬運算電路的視圖;圖51為表示根據(jù)第十五實施例的運算電路的運算處理的流程圖;圖52為表示根據(jù)第十七實施例的運算電路的整體布置的示例框圖;圖53為表示根據(jù)第十七實施例的D/A轉(zhuǎn)換電路的布置示例的框圖;圖54為表示根據(jù)第十七實施例的運算處理的流程圖;圖55為表示根據(jù)第十八實施例的運算電路的整體布置示例的框圖;圖56為表示根據(jù)第十八實施例的A/D轉(zhuǎn)換電路的布置的框圖;圖57為表示根據(jù)第十八實施例的運算處理的流程圖;圖58為表示根據(jù)第十九實施例的運算電路的整體布置示例的框圖;圖59為表示根據(jù)第十九實施例的運算處理的流程圖;圖60A和圖60B為表示根據(jù)第二十實施例神經(jīng)網(wǎng)絡(luò)電路的布置的框圖;圖61為表示神經(jīng)網(wǎng)絡(luò)模型的布置的視圖;圖62A和圖62B為表示根據(jù)第二十實施例的運算處理的流程圖;圖63A和圖63B為表示根據(jù)第二十一實施例的具有神經(jīng)網(wǎng)絡(luò)電路的圖像信號處理電路的布置示例的框圖;圖64A和圖64B為表示根據(jù)第二十一實施例的運算處理的流程圖。
具體實施例方式
以下參照附圖對本發(fā)明的優(yōu)選實施例進行詳細描述。
(第一實施例)圖1為表示根據(jù)本實施例的積和運算電路的框圖;如圖1所示,根據(jù)本實施例的積和運算電路包括具有多個運算電路(在圖1所示的示例中的運算電路1到6)的運算電路100,輸入值保持電路2保持操作數(shù)值Xi,權(quán)重值保持電路3保持操作數(shù)的值Wi,排序電路4以大小遞減的順序輸出操作數(shù)值Xi,以及切換電路5將操作數(shù)值Xi和Wi輸入到對應(yīng)于操作數(shù)值Xi的標簽的運算電路中。注意到操作數(shù)值Xi以及操作數(shù)值Wi中的i為后綴,表示了不同的X和W并且采用自然數(shù),例如1,2,3,...(這也適用于下面的說明)。
圖2表示其中運算電路1形成為數(shù)字電路的數(shù)字運算電路。運算電路2到6具有相同的布置。如圖2所示,根據(jù)本實施例的數(shù)字運算電路包括包括三個寄存器6a到6c、乘法器7以及加減器8。
下面描述根據(jù)本實施例的積和運算電路的運算處理。
如圖1所示,多個操作數(shù)值Xi保持在輸入保持電路2中并且由排序電路4以大小遞減的順序進行排序并輸出。在本實施例中,如果存在具有相同值的操作數(shù)值Xi,則其以任意的順序輸出。替代的是,可以提前設(shè)置適當?shù)捻樞颉?br>
接著,操作數(shù)值Xi具有的標簽從排序電路4輸入切換電路5。該切換電路5根據(jù)該標簽執(zhí)行切換以將從排序電路4輸出的操作數(shù)值Xi輸入到對應(yīng)于該標簽的運算電路。一個運算電路或多個運算電路可以對應(yīng)于操作數(shù)值Xi的標簽。在本實施例所描述的示例中,多個運算電路對應(yīng)于一個標簽。
在本實施例中,由輸入保持電路2以及排序電路4執(zhí)行的處理通過使用相聯(lián)存儲器電路完成。圖3表示了該相聯(lián)存儲器電路的存儲器單元結(jié)構(gòu)的示例。如圖3所示,該相聯(lián)存儲器電路保持操作數(shù)值Xi的值以及該操作數(shù)值Xi的標簽。由輸入保持電路2和排序電路4執(zhí)行的處理可以通過使用相聯(lián)存儲器電路的一般功能以大小遞減的順序一個接一個地讀出操作數(shù)Xi及其標簽而完成。
也就是說,該相聯(lián)存儲器電路具有將輸入搜索值與保持數(shù)據(jù)進行比較并且輸出具有重合值的數(shù)據(jù)的功能。通過將從對應(yīng)于最大操作數(shù)值Xi的值開始的搜索值以大小遞減的順序連續(xù)地輸入到相聯(lián)存儲器電路,并且連續(xù)地讀出具有重合值的數(shù)據(jù)而實現(xiàn)(可逆地,數(shù)據(jù)可以操作數(shù)值Xi的大小遞增的順序被讀出)。在本實施例中,如上所述,輸入保持電路2和排序電路4的功能由相聯(lián)存儲器電路完成。然而,詳細的電路布置并不是本發(fā)明的關(guān)鍵??梢允褂闷渌碾娐凡贾弥灰淠軌驁?zhí)行類似的處理。
從權(quán)重值保持電路3輸出的多個操作數(shù)值Wi輸入到預(yù)定的運算電路。在本實施例中,即使對于操作數(shù)值Wi,如同在操作數(shù)值Xi中,切換電路5根據(jù)每一個操作數(shù)值Xi執(zhí)行切換,以輸出操作數(shù)值Wi到由標簽確定的預(yù)定運算電路。
不同于本實施例,操作數(shù)值Wi應(yīng)當被輸入的運算電路可以提前設(shè)置為獨立于操作數(shù)值Xi。另外,輸入到每個運算電路的操作數(shù)值Wi的值可以保持不變或是在運算之間改變。
在本實施例中,權(quán)重值保持電路3可以由通用SRAM電路形成。然而,如同相聯(lián)存儲器,可以使用任何其它的電路布置只要其能夠執(zhí)行類似的處理。通過執(zhí)行上述的處理,該操作數(shù)值Xi和操作數(shù)值Wi被輸入到預(yù)定的運算電路。在本實施例中,預(yù)定的運算電路(也即,其中運算處理有待執(zhí)行的電路)為圖1中的運算電路3到5。
下面描述在操作數(shù)值Xi和操作數(shù)值Wi都輸入的預(yù)定運算電路中將執(zhí)行的運算處理。該運算處理不在沒有操作數(shù)值Xi輸入的運算電路中執(zhí)行。
在該運算電路中,操作數(shù)值Xi以及操作數(shù)值Wi分別臨時地保持在寄存器6a和6b中。接著,由乘法器7進行Xi×Wi運算。Xi×Wi的相乘結(jié)果被輸入到加減器8,被加至保持在寄存器6c中的結(jié)果或者從寄存器6c的結(jié)果中減去。該結(jié)果保存在寄存器6c中。
通過重復(fù)上述的處理,多個Xi×Wi的相乘結(jié)果的累積值被保持在寄存器6c中。當預(yù)定數(shù)量的累積結(jié)束時,該累積值就被輸出。如上所述,通過排序電路4中的處理將保持在寄存器6a中的操作數(shù)值Xi以大小遞減的順序輸入。具有相同值的操作數(shù)值Xi連續(xù)地輸入。出于這些原因,相較于其中操作數(shù)值Xi隨機輸入的情況,在寄存器中的數(shù)據(jù)轉(zhuǎn)移頻率變得較低,從而可以降低數(shù)據(jù)轉(zhuǎn)移的功率消耗。
在本實施例中,操作數(shù)Xi本身從排序電路4輸入到運算電路中。在相聯(lián)存儲器電路中以大小遞減的順序搜索操作數(shù)值Xi時,保持在運算電路的寄存器6a中的值可以僅在值Xi改變時發(fā)生改變。在這種情況下,從排序電路4輸入到運算電路的并不是操作數(shù)值Xi本身而是一個指示著適當?shù)馗录拇嫫?a中的值的標示信號。
在本實施例中,排序電路4將操作數(shù)值Xi排序為大小遞減的順序。即使當操作數(shù)值Xi是以大小遞增的順序進行排序時,也可以獲得如上所述的相同效果。
在本實施例中,相聯(lián)存儲器電路的輸出被直接輸入到運算單位100和切換電路5。從相聯(lián)存儲器電路輸出的以大小遞減的順序的操作數(shù)值Xi的數(shù)據(jù)可以被臨時輸入并保持在例如SRAM的存儲器中并接著從該SRAM輸入運算單位100和切換電路5。在這種情況下,標簽和每個操作數(shù)值的值可以被保持在存儲器中。代替該值的是,可以保持代表著按照大小遞減的順序安排的操作數(shù)值Xi的值發(fā)生改變的位置的標示,如上所述。圖4表示了當標示被保持在SRAM中時存儲器單元結(jié)構(gòu)的示例。
下面參照圖5對本實施例中操作數(shù)值Xi作為PWM信號被輸入到輸入值保持電路2的情況進行描述。
圖5中所示的布置與本實施例的上述布置(圖1)類似,除了在輸入保持電路2的前一級上布置有脈寬/數(shù)字轉(zhuǎn)換電路9。更確切地,每一個作為PWM信號輸入的操作數(shù)值Xi由該脈寬/數(shù)字轉(zhuǎn)換電路9轉(zhuǎn)換為數(shù)字信號并且接著被保持在輸入值保持電路2中。在這里將對該脈寬/數(shù)字轉(zhuǎn)換電路9進行描述。
這里對PWM信號的特性進行簡要地描述。在PWM(脈寬調(diào)制)信號中,脈沖波形的寬度具有信息。PWM信號具有抗噪的數(shù)字特性(代表著高電平和低電平的二進制信息被保持在電壓方向上的特性)以及能夠通過一個脈沖表達持續(xù)信息的模擬特性(代表著該持續(xù)信息被保持在時間方向上的特性)。
圖6為表示脈寬/數(shù)字轉(zhuǎn)換電路9的布置的電路圖。
本實施例的脈寬/數(shù)字轉(zhuǎn)換電路9包括計數(shù)器10以及n(n>2)個后沿鎖存電路11-0到11-(n-1)。時鐘CLK、脈沖輸出觸發(fā)XRST以及PWM信號PW0到PWn-1從外部輸入到脈寬/數(shù)字轉(zhuǎn)換電路9。供電電壓VDD以及基底電壓VSS被施加到該脈寬/數(shù)字轉(zhuǎn)換電路9上。
具有預(yù)定周期的脈沖串被輸入到時鐘CLK。脈沖輸出觸發(fā)XRST指示著輸入脈沖PW0到PWn-1的輸出的開始。具有周期為時鐘CLK的周期的M倍(M≥2m)并且時間寬度對應(yīng)于時鐘周期的反轉(zhuǎn)脈沖被輸出到脈沖輸出觸發(fā)XRST。
計數(shù)器10對外部輸入的時鐘CLK進行計數(shù)并且將計數(shù)值CNT0到CNTm-1作為m個數(shù)字信號比特輸出。每一個后沿鎖存電路11-i(i∈{0,1,...,n-1})在外部輸入的PWM信號PWi的后沿鎖存從計數(shù)器10輸出的計數(shù)值CNT0到CNTm-1。每一個后沿鎖存電路11-i將鎖存的計數(shù)值CNT0到CNTm-1作為m個數(shù)字輸出比特Di,0到Di,m-1輸出。
圖7為表示了圖6所示的后沿鎖存電路11-i的內(nèi)部布置的電路圖。
該后沿鎖存電路11-i(i∈{0,1,...,n-1})包括m個鎖存器12-0到12-(m-1)以及反轉(zhuǎn)器13。反轉(zhuǎn)器13對輸入到后沿鎖存電路11-i的PWM信號Pwi的電平進行反轉(zhuǎn)。接著,該PWM信號PWi被輸入到鎖存器12-0到12-(m-1)的時鐘輸入端clk。從計數(shù)器10輸出的計數(shù)值CNT0到CNTm-1被分別輸入到鎖存器12-0到12-(m-1)的數(shù)據(jù)輸入端D。脈沖輸出觸發(fā)XRST被輸入到鎖存器12-0到12-(m-1)的復(fù)位輸入端NOT(R)。從鎖存器12-0到12-(m-1)的輸出端Q輸出的數(shù)據(jù)被作為數(shù)字輸出數(shù)據(jù)Di={Di,0到Di,m-1}輸出到外部。
作為鎖存器12-0到12-(m-1)的每一個,圖8表示了具有異步復(fù)位輸入的同步D觸發(fā)器。
下面描述根據(jù)本實施例的具有上述布置的脈寬/數(shù)字轉(zhuǎn)換電路9的運算。
圖9為表示在根據(jù)本實施例的脈寬/數(shù)字轉(zhuǎn)換電路9的每個信號電平上的變化的時序圖。具有預(yù)定周期T和寬度T/2的脈沖被持續(xù)輸入到時鐘CLK。該脈沖輸出觸發(fā)XRST在時刻t1輸出具有寬度為T的反轉(zhuǎn)脈沖。相應(yīng)地,從鎖存器12-0到12-(m-1)的輸出被復(fù)位,并且所有的數(shù)字輸出數(shù)據(jù)Di被復(fù)位到0。
PWM信號PWi(i∈{0,1,...,n-1})的輸出從脈沖輸出觸發(fā)XRST的前沿開始(時刻t2)。同時,計數(shù)器10開始對時鐘CLK計數(shù)。在時鐘CLK的前沿,計數(shù)器10將計數(shù)值增加1。該PWM信號PWi與計數(shù)器10的計數(shù)開始同步而被輸入。
在時刻t3,該PWM信號PWi從H電平被反轉(zhuǎn)到L電平。相應(yīng)地,從反轉(zhuǎn)器13的輸出NOT(PWi)從L電平提升到H電平。每一個鎖存器12-j(j∈{0,1,...,m-1})在反轉(zhuǎn)器13的輸出NOT(PWi)的前沿鎖存輸入到數(shù)據(jù)輸入端D的計數(shù)值CNTj的電平并且從數(shù)據(jù)輸出端Q輸出該計數(shù)值CNTj。
每一個后沿鎖存電路11-i(i∈{0,1,...,n-1})在PWM信號PWi的后沿鎖存計數(shù)器10的計數(shù)值CNT(i)={CNT(i)0,CNT(i)1,...,CNT(i)m-1})。該計數(shù)值CNT(i)與PWM信號PWi的脈寬成比例。
當從計數(shù)器10的計數(shù)開始至少經(jīng)過了2m-T的時間后,來自所有的后沿鎖存電路11-0到11-(n-1)的數(shù)字輸出值被確定(該值有時在之前確定)。當來自所有的后沿鎖存電路11-0到11-(n-1)的數(shù)字輸出值在確定時間后被提取時,就可以獲得與PWM信號PW0到PWn-1的脈寬成比例的數(shù)字值。也就是說,脈寬/數(shù)字轉(zhuǎn)換結(jié)束。
如上所述,每一個后沿鎖存電路11-i(i∈{0,1,...,n-1})在PWM信號PWi的后沿鎖存從共有計數(shù)器10輸出的計數(shù)值CNT。該計數(shù)器10僅切換電線的寄生電容的輸出值(計數(shù)值CNT)以輸出計數(shù)值CNT到每一個后沿鎖存電路11-i。切換時的功率消耗是低的。因此,相較于使用了傳統(tǒng)的脈寬/數(shù)字轉(zhuǎn)換的電路而言功率消耗可以大大地降低。
通過計算機仿真實際執(zhí)行評估。當使用如圖40所示的傳統(tǒng)脈寬/數(shù)字轉(zhuǎn)換電路作為每一個后沿鎖存電路并行執(zhí)行80個PWM信號PW0到PW79的脈寬/數(shù)字轉(zhuǎn)換時,估計所消耗的功率為226mW。相反,如果使用根據(jù)本實施例的脈寬/數(shù)字轉(zhuǎn)換電路9時,執(zhí)行同樣的輸入脈沖的脈寬/數(shù)字轉(zhuǎn)換的功率消耗為6.6mW。因此,功率消耗可以被縮減為約1/50。
另外,由于只使用了一個計數(shù)器,因此由計數(shù)器的切換產(chǎn)生的切換噪聲可以被縮減。電路的S/N比增加了。因此,就可將在當抖動噪聲被加至脈寬時脈寬/數(shù)字轉(zhuǎn)換的時間上產(chǎn)生的抖動誤差減到最小。相應(yīng)地,該電路還可以被用于高速脈寬/數(shù)字轉(zhuǎn)換。
由于后沿鎖存電路11-0到11-(n-1)鎖存了從共有計數(shù)器10輸出的值CNT,因此計數(shù)值CNT到輸入脈沖PW0到PWn-1的切換定時沒有改變。出于這個原因,可以防止在計數(shù)器10的切換時由于抖動的在輸入脈沖PW0到PWn-1之間的定時誤差的變化。
對于脈寬/數(shù)字轉(zhuǎn)換電路而言,在圖6所示的脈寬/數(shù)字轉(zhuǎn)換電路9中的每一個后沿鎖存電路11-0到11-(n-1)可以用圖10所示的電路代替。
下面詳細描述其中的脈寬/數(shù)字轉(zhuǎn)換電路9中的每一個后沿鎖存電路11-0到11-(n-1)用圖10所示的電路代替的電路。圖10中的后沿鎖存電路11-i(i∈{0,1,...,n-1}),鎖存器12-0到12-(m-1)以及反轉(zhuǎn)器13的布置與圖7中的相同,因此在此省略對其的描述。作為一個特有的特征,根據(jù)本實施例的脈寬/數(shù)字轉(zhuǎn)換電路進一步包括前沿鎖存電路14-i(i∈{0,1,...,n-1})以及減法電路15-i。
該前沿鎖存電路14-i在PWM信號PWi的前沿鎖存從計數(shù)器10輸出的計數(shù)值CNT。減法電路15-i通過從由后沿鎖存電路11-i輸出的數(shù)字輸出值Ei={Ei,0到Ei,m-1}中減去由前沿鎖存電路14-i輸出的數(shù)字輸出值以及Si={Si,0到Si,m-1}來計算差值并且輸出數(shù)字輸出值Di={Di,0到Di,m-1}。
該前沿鎖存電路14-i包括對應(yīng)于m個計數(shù)值比特CNT0到CNTm-1的鎖存器16-0到16-(m-1),如同后沿鎖存電路11-i。每個鎖存器16-0到16-(m-1)包括了具有圖8所示的異步復(fù)位輸入的同步D觸發(fā)器,如同鎖存器12-0到12-(m-1)。
然而,PWM信號PWi是直接輸入到前沿鎖存電路14-i中的鎖存器16-0到16-(m-1)的時鐘輸入端clk而無需通過反轉(zhuǎn)器13。因此,鎖存器16-0到16-(m-1)的每一個在PWM信號的前沿鎖存計數(shù)器10的計數(shù)值CNT。
下面描述具有上述布置的脈寬/數(shù)字轉(zhuǎn)換電路9的運算。
圖11為表示在根據(jù)本實施例的脈寬/數(shù)字轉(zhuǎn)換電路9的每一個信號電平中的變化的時序圖。
具有預(yù)定周期T和寬度T/2的脈沖被持續(xù)輸入到時鐘CLK。該脈沖輸出觸發(fā)XRST在時刻t1輸出具有寬度為T的反轉(zhuǎn)脈沖。相應(yīng)地,從鎖存器12-0到12-(m-1)以及16-0到16-(m-1)的輸出被復(fù)位,并且所有的數(shù)字輸出數(shù)據(jù)Ei和Si被復(fù)位到0。
計數(shù)器10從脈沖輸出觸發(fā)XRST的前沿開始(時刻t2)對時鐘CLK計數(shù)。在時鐘CLK的前沿,計數(shù)器10將計數(shù)值增加1。
在時刻t2之后的適當?shù)臅r刻t3,PWM信號PWi(i∈{0,1,...,n-1})的輸出開始。該前沿鎖存電路14-i的鎖存器16-j(j∈{0,1,...,m-1})鎖存來自計數(shù)器10的輸出CNTj并且將CNTj值作為數(shù)字輸出值Si={Si,0到Si,m-1}從其數(shù)據(jù)輸出端Q輸出。
在時刻t4,該PWM信號PWi從H電平被反轉(zhuǎn)到L電平。相應(yīng)地,從反轉(zhuǎn)器13輸出的NOT(PWi)從L電平提升到H電平。每一個鎖存器12-j(j∈{0,1,...,m-1})在反轉(zhuǎn)器13的輸出NOT(PWi)的前沿鎖存輸入到其數(shù)據(jù)輸入端D的計數(shù)值CNTj的電平,并且從其數(shù)據(jù)輸出端Q輸出作為數(shù)字輸出值Ei={Ei,0到Ei,m-1}的該計數(shù)值CNTj。
減法電路15-i通過從由后沿鎖存電路11-i輸出的數(shù)字輸出值Ei={Ei,0到Ei,m-1}中減去由前沿鎖存電路14-i輸出的數(shù)字輸出值以及Si={Si,0到Si,m-1}來計算差值,并且輸出該數(shù)字輸出值Di={Di,0到Di,m-1}。于是,從時刻t3開始,數(shù)字輸出值Di={Di,0到Di,m-1}直接與PWM信號PWi的脈寬成比例。
因此,當從計數(shù)器10的計數(shù)開始至少經(jīng)過了2m-T的時間后,從所有的后沿鎖存電路11-0到11-(n-1)以及減法電路15-0到15-(n-1)的數(shù)字輸出值被確定(該值有時在之前確定)。當從減法電路15-0到15-(n-1)的數(shù)字輸出值在確定時間后被提取時,就可以獲得與PWM信號PW0到PWn-1的脈寬成比例的數(shù)字值Di={Di,0到Di,m-1}。也就是說,脈寬/數(shù)字轉(zhuǎn)換結(jié)束。
如上所述,在本實施例中,計數(shù)器10的計數(shù)值在每一個PWM信號的前沿和后沿鎖存。對值之間的差值進行計算并且將其作為數(shù)字輸出值輸出。出于這個原因,PWM信號PWi的前沿不需要被同步。另外,每一個PWM信號PWi的前沿以及計數(shù)器10的計數(shù)開始定時也不需要被同步。
因此,即使在PWM信號異步輸入的電路中,根據(jù)本實施例的脈寬/數(shù)字轉(zhuǎn)換電路也可以使用。
代替減法電路15-i的使用的是,數(shù)字輸出值Si和Ei可以被輸出到外部,而減法可以由在外部準備的減法器執(zhí)行。
(第二實施例)對第二實施例將參考著詳細的處理布置的視圖進行描述。執(zhí)行本實施例的積和運算方法的處理電路的布置如圖1所示,如同第一實施例。
圖12表示了作為模擬電路形成運算電路1的模擬運算電路。運算電路2到6具有同樣的布置。如圖12所示,本實施例的模擬運算電路包括模擬乘法器17、電容器18,以及輸出緩沖器19。
圖13表示包括模擬存儲器的輸入值保持電路2。在本實施例中,假設(shè)該模擬存儲器包括電容器20和輸出緩沖器21。然而,可以使用任何其它的電路,只要其具有相同的功能。
圖14表示了包括WTA電路22的排序電路4。
以下將參考上述的附圖對使用了根據(jù)本實施例的積和運算方法的處理進行描述。
基本的運算處理與第一實施例中的相同,因此省略對其的描述。下面將描述與第一實施例不同的輸入保持電路2、權(quán)重保持電路3、排序電路4以及運算電路1到6的各自的處理運算。在本實施例中,排除第一實施例中描述的脈寬/數(shù)字轉(zhuǎn)換電路的情況。
如圖13所示,本實施例中的輸入保持電路2包括電容器20和輸出緩沖器21。操作數(shù)值Xi的值可以保持為在電容器20上累積的電壓值。在輸入保持電路2中保持的操作數(shù)值Xi由排序電路4以大小遞減的順序輸入到切換電路5。
在本實施例中,由排序電路4執(zhí)行的處理通過使用WTA電路22而完成,如圖14所示。WTA電路是勝者全取(Winner-Take-All)電路的縮寫并且具有輸出具有最大值的輸入值的功能(或者可以輸出最小值)。當操作數(shù)值Xi輸入到WTA電路22時,具有最大值的操作數(shù)值Xi被輸出。
接著,當除了先前輸出的操作數(shù)值Xi的操作數(shù)值Xi組被輸入時,具有第二大值的操作數(shù)值Xi被輸出。
通過重復(fù)這個運算,操作數(shù)值一直以大小遞減的順序輸出,并且執(zhí)行了排序操作。
在本實施例中,如果存在具有相同值的操作數(shù)Xi,其以任意的順序輸出?;蛘呖梢蕴崆霸O(shè)置適當?shù)捻樞?。此時,每個操作數(shù)值具有的標簽同時被保持。作為保持電路,可以使用能夠完成相同功能的數(shù)字存儲器或模擬存儲器。
在本實施例中,使用模擬電路作為排序電路4。然而,可以使用相聯(lián)存儲器,如同第一實施例。在這種情況下,從相聯(lián)存儲器的輸出被D/A轉(zhuǎn)換并接著輸入到運算電路。作為執(zhí)行D/A轉(zhuǎn)換的D/A轉(zhuǎn)換電路,以下將描述包括數(shù)字/脈寬轉(zhuǎn)換電路23、開關(guān)電流源24、電容器25以及緩沖器26的如圖15所示的D/A轉(zhuǎn)換電路。
如圖15所示,在該D/A轉(zhuǎn)換電路中,對應(yīng)于操作數(shù)值Xi的數(shù)字值從數(shù)字存儲器(相聯(lián)存儲器電路)輸入到數(shù)字/脈寬轉(zhuǎn)換電路23。該數(shù)字/脈寬轉(zhuǎn)換電路23將每一個輸入的數(shù)字值轉(zhuǎn)換為具有與該數(shù)字輸入值成比例的時間寬度的脈沖信號并將其輸出。
如圖16所示,根據(jù)本實施例的數(shù)字/脈寬轉(zhuǎn)換電路23包括多個并行布置的脈沖產(chǎn)生電路27-0到27-(n-1)以及計數(shù)器28。該脈沖產(chǎn)生電路27-0到27-(n-1)的數(shù)據(jù)輸入端Din分別接收m比特數(shù)字輸入值X0到Xn-1。與該數(shù)字輸入值X0到Xn-1成比例的PWM信號PWM0到PWMn-1分別從該脈沖產(chǎn)生電路27-0到27-(n-1)的脈沖輸出端Pout輸出。
計數(shù)器28對外部輸入的時鐘clock進行計數(shù)并且輸出m比特計數(shù)值。該時鐘clock通常被輸入到脈沖產(chǎn)生電路27-0到27-(n-1)的時鐘輸入端clk。從計數(shù)器28輸出的計數(shù)值共有地輸入到脈沖產(chǎn)生電路27-0到27-(n-1)的計數(shù)值輸入端CNT。
另外,m比特的參考值xb共有地被輸入到脈沖產(chǎn)生電路27-0到27-(n-1)的參考值輸入端Db。該參考值xb指定了PWM信號PWM0到PWMn-1的前沿的定時。
圖17為表示圖16所示的每一個脈沖產(chǎn)生電路的布置的框圖。脈沖產(chǎn)生電路27-i(i∈{0,1,...,n-1})包括參考值寄存器29、加減器30、脈寬寄存器31、切換電路32、定時觸發(fā)產(chǎn)生電路33以及輸出脈沖反轉(zhuǎn)電路34。
該參考值寄存器29鎖存參考值xb并且輸出鎖存的參考值xb。該加減器30輸出參考值xb和為外部輸入的數(shù)字值的輸入值xi的和xi+xb。該脈寬寄存器31在更新的輸入恢復(fù)(renew)的前沿鎖存從加減器30輸出的值(和xi+xb)。
當從輸出脈沖反轉(zhuǎn)電路34輸出的輸出PWM信號PWMi具有假脈沖(L電平)時,切換電路32輸出由參考值寄存器29鎖存的數(shù)字值xb。當從輸出脈沖反轉(zhuǎn)電路34輸出的輸出PWM信號PWMi具有真脈沖(H電平)時,切換電路32執(zhí)行切換以輸出由脈寬寄存器31鎖存的數(shù)字值xi+xb。
定時觸發(fā)產(chǎn)生電路33將從切換電路32輸出的數(shù)字值的每個比特與從計數(shù)器28輸出的計數(shù)值CNT的每個比特進行比較并且當兩個比特完全重合時產(chǎn)生觸發(fā)。該定時觸發(fā)產(chǎn)生電路33包括m個EXOR門35-1到35-(m-1)以及NOR門36。切換電路32的輸出比特被輸入到EXOR門35-1到35-(m-1)的每一個的一個輸入。從計數(shù)器28的輸出比特被輸入到EXOR門35-1到35-(m-1)的每一個的其它輸入。從EXOR門35-1到35-(m-1)的輸出P0到Pm-1被輸入到NOR門36。該NOR門36將從EXOR門35-1到35-(m-1)的輸出P0到Pm-1的OR的反轉(zhuǎn)輸出輸出到輸出脈沖反轉(zhuǎn)電路34。
確切地,數(shù)字輸入值Xi(i∈{0,1,...,n-1})、參考值xb以及來自計數(shù)器的輸出值CNT分別由下式給出xi=(xi,0,xi,1,...,xi,m-1)(1)xb=(xb,0,xb,1,...,xb,m-1)(2)CNTi=(CNTi,0,CNTi,1,...,CNTi,m-1)(3)在這種情況下,當來自輸出脈沖反轉(zhuǎn)電路34的輸出值Pout位于L電平時,定時觸發(fā)產(chǎn)生電路33的輸出Ti由下式給出Ti=Λj=0m-1xb,j⊗CNTi,j‾---(4)]]>當輸出脈沖反轉(zhuǎn)電路34的輸出值Pout位于H電平時,輸出Ti由下式給出Ti=Λj=0m-1(xb+xi)j⊗CNTi,j‾---(5)]]>當定時觸發(fā)產(chǎn)生電路33產(chǎn)生觸發(fā)時,該輸出脈沖反轉(zhuǎn)電路34反轉(zhuǎn)輸出PWM信號PWMi的真值。該輸出脈沖反轉(zhuǎn)電路34包括同步T觸發(fā)器(以后將被稱為“T-FF”)。NOR門36的輸出值被輸入到輸出脈沖反轉(zhuǎn)電路34的觸發(fā)輸入端T。共用時鐘clock被輸入到T-FF的時鐘端clk。從該輸出脈沖反轉(zhuǎn)電路34的輸出端Q輸出輸出PWM信號PWMi。
下面參考圖18的時序圖對根據(jù)本實施例的具有上述布置的數(shù)字/脈寬轉(zhuǎn)換電路的運算進行描述。
在時刻t1,輸入值Xi和參考值xb從外部電路輸入到每一個脈沖產(chǎn)生電路27-i。在時刻t2,更新信號恢復(fù)(renew)被輸入到計數(shù)器28的復(fù)位輸入節(jié)點R以及每一個脈沖產(chǎn)生電路27-i中的參考值寄存器29和脈寬寄存器31的時鐘輸入節(jié)點CLK。在接收到該更新信號恢復(fù)后,參考值寄存器29和脈寬寄存器31在該更新信號恢復(fù)的前沿鎖存參考值xb和輸入值xi。
該參考值寄存器29輸出鎖存的參考值xb。該脈寬寄存器31輸出鎖存的和xi+xb。在時刻t1,從輸出脈沖反轉(zhuǎn)電路34的輸出具有L電平。出于這個原因,切換電路32輸出從參考值寄存器29輸入的值xb。計數(shù)器28將計數(shù)值CNT復(fù)位到0并且在更新信號恢復(fù)的前沿開始計數(shù)。
計數(shù)器28開始遞增。在時刻t3,從計數(shù)器28輸出的計數(shù)值CNT與作為來自切換電路32的輸出值的參考值xb重合。此時,從定時觸發(fā)產(chǎn)生電路33的輸出Ti被反轉(zhuǎn)到H電平。相應(yīng)地,從輸出脈沖反轉(zhuǎn)電路34的輸出Pout被從L電平反轉(zhuǎn)為H電平,并且輸出PWM信號PWMi的輸出開始。
在時刻t4,當從輸出脈沖反轉(zhuǎn)電路34的輸出Pout被反轉(zhuǎn)為H電平時,到切換電路32的輸入被切換使得該切換電路32輸出從脈寬寄存器31輸入的值xb+xi。相應(yīng)地,從EXOR門35-1到35-(m-1)的輸出值也改變。當xi≠0時,從EXOR門35-1到35-(m-1)的輸出值不會同時為0。這樣,從定時觸發(fā)產(chǎn)生電路33的輸出Ti被反轉(zhuǎn)到L電平。
計數(shù)器28開始計數(shù)。在時刻t5,從計數(shù)器28輸出的計數(shù)值CNT與作為從切換電路32的輸出值的和xb+xi重合。此時,從定時觸發(fā)產(chǎn)生電路33的輸出Ti被反轉(zhuǎn)到H電平。相應(yīng)地,從輸出脈沖反轉(zhuǎn)電路34的輸出Pout被從H電平反轉(zhuǎn)為L電平,并且輸出PWM信號PWMi的輸出停止。這樣,就生成了具有與數(shù)字輸入值xi成比例的時間寬度的輸出PWM信號PWMi,并且執(zhí)行了數(shù)字/脈寬轉(zhuǎn)換。
在時刻t6,當從輸出脈沖反轉(zhuǎn)電路34的輸出被反轉(zhuǎn)為L電平時,到切換電路32的輸入被切換使得該切換電路32輸出從參考值寄存器29輸入的值xb。相應(yīng)地,從EXOR門35-1到35-(m-1)的輸出值也改變。當xi≠0時,從EXOR門35-1到35-(m-1)的輸出值不會同時為0。這樣,從定時觸發(fā)產(chǎn)生電路的輸出Ti被反轉(zhuǎn)到L電平。
計數(shù)器28繼續(xù)計數(shù)直到計滿。在此期間,計數(shù)值和從切換電路輸出的值xb不會重合。因此,從輸出脈沖反轉(zhuǎn)電路34的輸出保持在L電平。當計數(shù)器28計滿時,就停止計數(shù),因此一個周期結(jié)束了。在計數(shù)器28計滿之后,在計滿時刻的輸出值(全部是H電平)就維持著,直到復(fù)位輸入節(jié)點R被再次反轉(zhuǎn)到H電平。
在上述的方式中,每一個脈沖產(chǎn)生電路27-i輸出具有與輸入值xi成比例的時間寬度的輸出PWM信號PWMi。此時,每一個脈沖產(chǎn)生電路27-i將從共用計數(shù)器28輸出的計數(shù)值與參考值xb或者和xb+xi進行比較。功率消耗比其中所有的脈沖產(chǎn)生電路27-i都有計數(shù)器的電路小得多。出于這個原因,該數(shù)字/脈寬轉(zhuǎn)換電路的功率消耗可以降低。
在本實施例中,定時觸發(fā)產(chǎn)生電路33通過使用參考值寄存器29、脈寬寄存器31以及切換電路32來產(chǎn)生輸出PWM信號PWMi的前沿和后沿。通過這種布置,輸出PWM信號PWMi的脈寬可以精確地與輸入值xi成比例而不會受到電路延遲的影響。
在本實施例中,脈沖產(chǎn)生電路27-0到27-(n-1)的輸出脈沖的前沿被參考值xb調(diào)整。在本發(fā)明中,輸出脈沖的后沿可以被調(diào)整。在這種情況下,加減器30通過從參考值xb中減去作為從外部電路輸入的數(shù)字值的輸入值xi而輸出差值xb-xi。當從輸出脈沖反轉(zhuǎn)電路34輸出的輸出PWM信號PWMi具有真值(H電平)時,切換電路32輸出由參考值寄存器29鎖存的數(shù)字值xb。當從輸出脈沖反轉(zhuǎn)電路34輸出的輸出PWM信號PWMi具有假值(L電平)時,切換電路32執(zhí)行切換以輸出由脈寬寄存器31鎖存的數(shù)字值xi-xb。
代替在每一個脈沖產(chǎn)生電路27-i中準備加減器30的是,通過將原始輸入值加至參考值xb或是從參考值xb中減去原始輸入值而獲得的結(jié)果可以作為數(shù)字輸入信號xi而提供。根據(jù)本實施例的數(shù)字/脈寬轉(zhuǎn)換電路可以與上述的不同并且可以具有下面所描述的另一種形式。
例如,如圖45所示,根據(jù)本實施例的另一種數(shù)字/脈寬轉(zhuǎn)換電路151包括多個并行布置的脈沖產(chǎn)生電路152-0到152-(n-1)以及計數(shù)器153。該脈沖產(chǎn)生電路152-0到152-(n-1)的數(shù)據(jù)輸入端Din分別接收m比特數(shù)字輸入值X0到Xn-1。具有與該數(shù)字輸入值X0到Xn-1成比例的時間寬度的PWM信號PWM0到PWMn-1分別從該脈沖產(chǎn)生電路152-0到152-(n-1)的脈沖輸出端Pout輸出。
計數(shù)器153對外部輸入的時鐘clock進行計數(shù)并且輸出m比特計數(shù)值。從計數(shù)器153輸出的計數(shù)值共有地輸入到脈沖產(chǎn)生電路152-0到152-(n-1)的計數(shù)值輸入端CNT。
圖46為表示了圖45所示的每一個脈沖產(chǎn)生電路的布置的框圖。脈沖產(chǎn)生電路152-i(i∈{0,1,...,n-1})包括脈寬寄存器162、定時觸發(fā)產(chǎn)生電路164以及輸出脈沖反轉(zhuǎn)電路165。
該脈寬寄存器162在更新輸入恢復(fù)的前沿鎖存作為外部輸入的m比特數(shù)字值的輸入值xi并且將該值xi輸出到輸出節(jié)點。定時觸發(fā)產(chǎn)生電路164將從脈寬寄存器162輸出的m個比特的數(shù)字值的每一個與從計數(shù)器153輸出的m個比特的計數(shù)值的每一個進行比較并且當兩個比特完全重合時產(chǎn)生觸發(fā)。
該定時觸發(fā)產(chǎn)生電路164包括m個EXOR門166-0到166-(m-1)以及NOR門167。從脈寬寄存器162的輸出比特被輸入到EXOR門166-1到166-(m-1)的每一個的一個輸入端。計數(shù)器153的輸出比特被輸入到EXOR門166-0到166-(m-1)的每一個的其它輸入端。從EXOR門166-0到166-(m-1)的輸出P0到Pm-1被輸入到NOR門167。該NOR門167將從EXOR門166-0到166-(m-1)的輸出P0到Pm-1的OR的反轉(zhuǎn)輸出輸出到輸出脈沖反轉(zhuǎn)電路165。
確切地,數(shù)字輸入值Xi(i∈{0,1,...,n-1})以及從計數(shù)器的輸出值CNT分別由等式(1)和等式(3)給出。在這種情況下,從定時觸發(fā)產(chǎn)生電路164輸出的Ti由下式給出Ti=Λj=0m-1xi,j⊗CNTi,j‾---(6)]]>在這種情況下,假設(shè)xi≠0。
從等式(6)可以看出,當數(shù)字輸入值xi和從計數(shù)器輸出的輸出值CNT的所有比特都重合時,從定時觸發(fā)產(chǎn)生電路164的輸出Ti變?yōu)?。該輸出脈沖反轉(zhuǎn)電路165在定時觸發(fā)產(chǎn)生電路164產(chǎn)生觸發(fā)時將輸出脈沖PWMi的真值反轉(zhuǎn)。該輸出脈沖反轉(zhuǎn)電路165包括T觸發(fā)器(以后將被稱為“T-FF”)。從NOR門167的輸出值被輸入到輸出脈沖反轉(zhuǎn)電路165的觸發(fā)輸入端T。從該輸出脈沖反轉(zhuǎn)電路165的輸出端Q輸出脈沖PWMi。
下面參考圖47所示的時序圖對根據(jù)本實施例的具有上述布置的數(shù)字/脈寬轉(zhuǎn)換電路的運算進行描述。
在緊接著電源打開后的初始狀態(tài)中,計數(shù)器153的所有計數(shù)值CNT假定位于H電平,并且輸入值xi為0。在這種狀態(tài)下,在時刻t0,啟用一個輸入到計數(shù)器153和脈寬寄存器162的復(fù)位輸入復(fù)位(L電平)。相應(yīng)地,計數(shù)器153的所有計數(shù)值CNT被復(fù)位到0。當復(fù)位信號復(fù)位被設(shè)置到L電平時,脈寬寄存器162將所有保持的存儲值復(fù)位到0。接著,來自計數(shù)器153的計數(shù)值CNT與來自脈寬寄存器162的輸出值重合。從定時觸發(fā)產(chǎn)生電路164輸出的Ti被從L電平反轉(zhuǎn)為H電平。因此,從輸出脈沖反轉(zhuǎn)電路165的輸出Pout被反轉(zhuǎn)到H電平,并且到輸出Pout的脈沖的輸出開始。
在時刻t1,輸入值Xi(Xi≠(0,0,...,0))從外部電路輸入到每一個脈沖產(chǎn)生電路152-i。此時,由于輸入到脈寬寄存器162的復(fù)位信號復(fù)位位于L電平,因此來自脈寬寄存器162的所有輸出維持在0。
在時刻t2,禁用復(fù)位輸入復(fù)位(H電平),并且更新信號恢復(fù)從L電平反轉(zhuǎn)到H電平。該更新信號恢復(fù)被輸入到每一個脈寬寄存器162的時鐘輸入節(jié)點CLK。當該更新信號恢復(fù)被反轉(zhuǎn)到H電平時,脈寬寄存器162在此時鎖存輸入值xi。相應(yīng)地,該脈寬寄存器162輸出輸入值xi。另一方面,計數(shù)器153的計數(shù)值CNT仍然維持在0。由于脈寬寄存器162的輸出不再與來自計數(shù)器153的計數(shù)值CNT重合,因此從定時觸發(fā)產(chǎn)生電路164的輸出T從H電平反轉(zhuǎn)到L電平。當復(fù)位信號復(fù)位從L電平反轉(zhuǎn)到H電平時,計數(shù)器153開始對時鐘clock進行計數(shù)。此時,脈寬寄存器162繼續(xù)輸出鎖存的輸入值xi。
隨著時鐘clock,計數(shù)器153開始遞增。在時刻t3,從計數(shù)器153輸出的計數(shù)值CNT與作為從切換電路163的輸出值的xi重合。此時,從定時觸發(fā)產(chǎn)生電路164的輸出值T從L電平被反轉(zhuǎn)到H電平。相應(yīng)地,從輸出脈沖反轉(zhuǎn)電路165的輸出Pout被從H電平反轉(zhuǎn)為L電平。通過這個運算,從輸出脈沖反轉(zhuǎn)電路165的輸出Pout的脈沖PWMi的寬度就可以確定了。該脈沖寬度與數(shù)字輸入值xi成比例。也就是,執(zhí)行了數(shù)字/脈寬轉(zhuǎn)換。
在從時刻t3開始經(jīng)過一個時鐘后的時刻t4,計數(shù)器153計滿。來自計數(shù)器153的計數(shù)值CNT不再與來自切換電路163的輸出值xi重合。接著從定時觸發(fā)產(chǎn)生電路164的輸出Ti被從H電平反轉(zhuǎn)為L電平。
計數(shù)器153繼續(xù)計數(shù)直到計滿。在此期間,來自計數(shù)器153的計數(shù)值和輸入值xi不會重合。因此,定時觸發(fā)產(chǎn)生電路164的輸出Ti保持在L電平,并且從輸出脈沖反轉(zhuǎn)電路165的輸出也保持在L電平。當計數(shù)器153計滿時,計數(shù)器153的所有計數(shù)值變?yōu)?,并且一個周期就結(jié)束了。接著,重復(fù)如上所述的同樣的周期。
在上述的方法中,每一個脈沖產(chǎn)生電路152-i(i=0,...,n-1)輸出具有與輸入值xi成比例的時間寬度的輸出脈沖PWMi(嚴格地說,這個時間寬度包含了對應(yīng)于在復(fù)位信號位于L的期間內(nèi)的兩個時鐘的偏移。這可以通過例如事先從xi中減去2來解決)。此時,每一個脈沖產(chǎn)生電路152-i將從共用計數(shù)器153輸出的計數(shù)值CNT與數(shù)字輸入值xi進行比較。功率消耗遠遠小于其中所有的脈沖產(chǎn)生電路152-i都具有計數(shù)器的電路。
更確切地,當所有的脈沖產(chǎn)生電路152-i都具有計數(shù)器時,至少有一個切換設(shè)備為每一個計數(shù)器中的每一個時鐘而進行切換。因此,當使用了例如CMOS作為切換設(shè)備時,到負載的直通電流或是充電/放電電流在切換時刻流動。出于這個原因,整個數(shù)字/脈寬轉(zhuǎn)換電路的功率消耗會高。
另一方面,當一個計數(shù)器153被驅(qū)動時,并且每一個脈沖產(chǎn)生電路152-i參考共用計數(shù)器153的輸出值來切換脈沖時,如本實施例,在切換時刻產(chǎn)生的到負載的直通電流或是充電/放電電流較小,并且功率消耗也較低。因此數(shù)字/脈寬轉(zhuǎn)換電路151的功率消耗就可以降低。另外,由于使用了共用計數(shù)器153,電路布局面積降低,數(shù)字/脈寬轉(zhuǎn)換電路151可以做得緊湊。
隨后,如圖15所示,PWM信號ON/OFF控制著開關(guān)電流源24的操作。
確切地,在本實施例中,當PWM信號為高時,開關(guān)為ON,并且預(yù)定的電流被提供給電容器25。當當PWM信號為低時,開關(guān)為OFF,并且停止提供電流給電容器25。結(jié)果是,電容器25累積與PWM信號的時間寬度成比例的電荷。
在電容器25中,通過緩沖器26累積的電荷量可以被稱為電壓值。這可以作為對應(yīng)于操作數(shù)值Xi的模擬電壓值輸入到模擬運算電路,如圖15所示。
上面詳細描述的排序電路4的電路布置并不是本發(fā)明的關(guān)鍵??梢允褂萌魏纹渌碾娐分灰淠軌?qū)崿F(xiàn)相同的功能。
接下來描述權(quán)重保持電路3。該權(quán)重保持電路3包括電容器37和輸出緩沖器38,類似于輸入值保持電路2,如圖19所示。該權(quán)重保持電路3保持作為在電容器37種累積的電壓值的操作數(shù)值Wi的值。對于該權(quán)重保持電路3,如圖20所示,保持在數(shù)字存儲器(例如,SRAM)中的操作數(shù)值Wi的值可以被D/A轉(zhuǎn)換并且作為模擬值被保持在上述的權(quán)重保持電路中。在這種情況下,D/A轉(zhuǎn)換電路進行的處理的步驟與當使用了相聯(lián)存儲器時的D/A轉(zhuǎn)換電路的處理步驟相同,如上所述,因此對其的描述省略。
接下來描述操作數(shù)值Xi和操作數(shù)值Wi作為模擬電壓值輸入到的預(yù)定運算電路所執(zhí)行的運算處理。
如圖12所示,根據(jù)本實施例的運算電路形成為包括有模擬乘法器17、電容器18以及輸出緩沖器19的模擬運算電路。操作數(shù)值Xi和操作數(shù)值Wi作為模擬電壓輸入到模擬乘法器17中并且進行Xi×Wi運算。輸入到每一個運算電路中的操作數(shù)值Wi的值可以保持不變或是在運算之間改變。
Xi×Wi的相乘結(jié)果表達為電荷量并且在電容器18上增加和累積。在本實施例中,模擬乘法器17的相乘結(jié)果假設(shè)作為電荷量輸出。然而,可以使用任何其它的輸出作為例如電壓值的相乘結(jié)果的方法,只要其可以實現(xiàn)上述的相同的功能。
通過重復(fù)上述的處理,Xi×Wi的多個相乘結(jié)果的累積值保持在電容器18中。當達到了累積的預(yù)定數(shù)量時,該累積值就通過輸出緩沖器19輸出。
正如在第一實施例中,雖然在數(shù)字值和模擬值之間存在差值,但是對應(yīng)于操作數(shù)值Xi的模擬電壓值通過切換對應(yīng)于操作數(shù)值Xi的標簽的切換電路而輸入到預(yù)定的運算電路。另外,和在第一個實施例中一樣,沒有操作數(shù)Xi輸入的運算電路中不執(zhí)行運算處理。
在本實施例中,切換電路根據(jù)操作數(shù)值Xi的標簽切換對應(yīng)于操作數(shù)值Wi的模擬電壓值并且將該模擬電壓值輸入到由標簽確定的預(yù)定運算電路中,如同操作數(shù)值Xi,雖然在數(shù)字值和模擬值之間存在差值。作為與本實施例不同的一種方法,對應(yīng)于操作數(shù)值Wi的模擬電壓值所將要輸入的預(yù)定運算電路可以獨立于操作數(shù)值Xi的標簽而被預(yù)先設(shè)置,如同第一實施例。
如上所述,排序電路將作為模擬電壓輸入到運算電路中的操作數(shù)值Xi以大小遞減的順序輸入。具有相同值的操作數(shù)值Xi持續(xù)輸入。出于這些原因,相較于其中操作數(shù)值Xi隨機輸入的情況,電壓的變動變得較小,并且可以降低由于電壓的變動而引起的時間延遲和功率消耗。
在本實施例中,排序電路以大小遞減的順序?qū)Σ僮鲾?shù)值Xi進行排序。即使當操作數(shù)值Xi以大小遞增的順序被排序時,可以獲得與上述的相同的效果。
(第三實施例)以下參考詳細處理布置的視圖對第三實施例進行描述。圖21表示了根據(jù)本實施例的執(zhí)行積和運算方法的運算電路的布置。
圖22表示了其中運算電路形成為模擬電路的模擬運算電路。運算電路2到6也具有相同的布置。如圖22所示,根據(jù)本實施例的模擬運算電路包括模擬乘法器45、電容器46以及輸出緩沖器47。圖23表示了鋸齒波產(chǎn)生電路44。
如同第一實施例,輸入值保持電路2和排序電路4包括相聯(lián)存儲器電路。存儲器電路43形成在排序電路4的下一級上。另外,鋸齒波產(chǎn)生電路44形成在存儲器電路43的下一級上。鋸齒波產(chǎn)生電路44的輸出被輸入到切換電路5。本實施例中的存儲器電路43包括例如SRAM。
以下將參考上述的附圖對使用了根據(jù)本實施例的積和運算方法的處理進行描述。該相聯(lián)存儲器電路保持操作數(shù)值Xi的值以及該操作數(shù)值Xi具有的標簽。
作為相聯(lián)存儲器電路的一般功能,其搜索以大小遞減的順序的操作數(shù)值Xi并且輸出標簽。同時,對于在對以大小遞減的順序的操作數(shù)值Xi的搜索中的搜索值而言,只有當搜索值減少一個單位時,脈沖信號的標示被輸出(在本實施例中,標示=1被輸出)。(作為與本實施例不同的方法,對于在對以大小遞增的順序的操作數(shù)值Xi的搜索中的搜索值而言,只有當搜索值增加一個單位時,脈沖信號的標示被輸出)。
如圖21所示,標簽和標示彼此相應(yīng)地以搜索順序(也即,以大小遞減的順序)被輸入到并保持在位于下一級的存儲器電路43中。接著,該存儲器電路43以保持的順序(也即,以大小遞減的順序)輸出標簽和標示。標簽被輸入到切換電路5。標示被輸入到鋸齒波產(chǎn)生電路44。
接著描述鋸齒波產(chǎn)生電路44。如圖23所示,鋸齒波產(chǎn)生電路44包括偏置到預(yù)定電壓值vb的電壓控制的電流源48、電容器50、開關(guān)49以及緩沖器51。當標示被輸入到鋸齒波產(chǎn)生電路44以打開開關(guān)49時,從該電壓控制的電流源48提供一個預(yù)定的電流并且在電容器50上累積。
只有當在相聯(lián)存儲器中的搜索值減少一個單位時,該標示被設(shè)置為1。出于這個原因,開關(guān)49僅當搜索值減少一個單位時打開。因此,鋸齒波產(chǎn)生電路44中的節(jié)點上的電壓值如圖23所示波形所指示地發(fā)生變化。更確切地,產(chǎn)生對應(yīng)于以大小遞減的順序的操作數(shù)值Xi并且單調(diào)增加的電壓值(“單調(diào)地”也意味著其中始終顯示常數(shù)值的情況,這也適用于下面的描述)。
作為對應(yīng)于以大小遞減的順序的操作數(shù)值Xi的電壓值,設(shè)置單調(diào)增加的電壓值。然而,可以根據(jù)后面將要描述的模擬乘法器設(shè)置單調(diào)減少的電壓值。在鋸齒波產(chǎn)生電路44中,這可以通過從在初始狀態(tài)下由電壓控制的電流源累積了預(yù)定電荷的電容器50上移除電荷而完成。
接著,由鋸齒波產(chǎn)生電路44產(chǎn)生的單調(diào)增加的電壓值被輸入到切換電路5。該切換電路5對應(yīng)于輸入的標簽執(zhí)行切換并且將單調(diào)增加的電壓輸入到由標簽確定的預(yù)定的運算電路1中。
下面將考慮運算電路1。只有當運算電路1與由標簽確定的預(yù)定的運算電路重合時,單調(diào)增加的電壓值被輸入。當存儲器電路43的輸出標簽改變并且運算電路1步與由標簽確定的預(yù)定的運算電路重合時,就執(zhí)行切換,并且單調(diào)增加的電壓值不被輸入。也就是說,在運算電路1中,單調(diào)增加的電壓值根據(jù)標簽的輸出時刻而被采樣。這意味著對應(yīng)于操作數(shù)值Xi的合適的電壓值在標簽確定的切換定時被輸入。
在沒有操作數(shù)值Xi輸入的運算電路1中不執(zhí)行運算處理,如同第二實施例。在權(quán)重保持電路3中的運算處理與在第二實施例中的相同,因此省略對其的描述。
接著,在模擬運算電路中,如圖22所示,輸入到模擬乘法器45的操作數(shù)值Xi和操作數(shù)值Wi相乘。對應(yīng)于運算結(jié)果的電荷在電容器46上累積。在模擬運算電路中的處理與在第二實施例中的處理相同,因此省略對其的描述。在本實施例中,操作數(shù)值Xi可以作為PWM信號被輸入到輸入值保持電路2中。在這種情況下,PWM信號輸入處理步驟與在第一實施例中的步驟相同,因此省略對其的描述。
(第四實施例)在本實施例中,將描述一種電路,其中使用了另一種電路布置作為根據(jù)第二或第三實施例的模擬運算電路。除了模擬運算電路以外的布置都與第二和第三實施例中的相同。
圖24表示了本實施例將要描述的模擬運算電路。如圖24所示,模擬運算電路包括了電壓控制的電流源52、電壓控制的電阻設(shè)備53以及電容器55。作為操作數(shù)值Xi,始終單調(diào)增加的電壓值被作為控制電壓輸入到電壓控制的電流源52這里所輸入的始終單調(diào)增加的電壓值,其是由引發(fā)WTA電路56輸出對應(yīng)于以大小遞減的順序的操作數(shù)值Xi的電壓值而作為持續(xù)的模擬電壓值產(chǎn)生的,如圖26所示??梢酝ㄟ^使用存儲器電路和鋸齒波產(chǎn)生電路來產(chǎn)生始終單調(diào)增加的電壓值,如第三實施例。在這種情況下,輸入值保持電路以及排序電路包括數(shù)字電路,如第三實施例。
在這種情況下,操作數(shù)值Xi可以作為PWM信號輸入到輸入值保持電路。在這種情況下的PWM信號輸入處理步驟和第一實施例的步驟相同,不再對其進行描述。
接著,如圖25所示,從WTA電路56(排序電路4)輸出的始終單調(diào)增加的電壓值通過切換電路5被輸入到運算單元100。在該模擬運算電路中,該單調(diào)增加的電壓值是指在某個定時上。相應(yīng)地,如在第二或第三實施例中所描述過的,對應(yīng)于操作數(shù)值Xi的電壓值作為對應(yīng)于標簽的模擬運算電路的電壓控制的電流源52的控制電壓,被以大小遞減的順序輸入。該電壓控制的電流源52可以通過使用MOS晶體管的飽和特性來形成或是可以具有不同的結(jié)構(gòu)。
對應(yīng)于操作數(shù)值Wi的模擬電壓值作為控制電壓輸入到模擬運算電路的電壓控制的電阻設(shè)備53。該電壓控制的電阻設(shè)備53根據(jù)輸入的模擬電壓值指示一個預(yù)定的電阻值R。該電壓控制的電阻設(shè)備53可以通過使用MOS晶體管的線性特性來形成或是可以具有不同的結(jié)構(gòu)。
接著,由對應(yīng)于在預(yù)定的運算定時所參考的操作數(shù)值Xi的模擬電壓值確定的電壓控制的電流源52的電流I流到由對應(yīng)于操作數(shù)值Wi的模擬電壓值確定的電壓控制的電阻設(shè)備53(此時的電阻值為R)。接著,觀察到作為對應(yīng)于在圖13所示的節(jié)點上的I×R的電壓值的Xi×Wi運算結(jié)果。該節(jié)點的電壓作為控制電壓被進一步輸入到電壓控制的電流源54。相應(yīng)地,由I×R確定的電流i流向電容器。
該電壓控制的電流源54可以通過使用MOS晶體管的飽和特性來形成或是可以具有不同的結(jié)構(gòu)。當切換電路5的切換間隔被設(shè)置為預(yù)定的時間時,對應(yīng)于I×R×(切換間隔)的電荷可以在電容器55上累積。
當上述的運算重復(fù)時,累積的結(jié)果作為電荷量被保持在電容器55上。
這樣,可以通過圖25所示的積和運算電路完成與第二和第三實施例相同的運算。在本實施例中,對應(yīng)于操作數(shù)值Xi的模擬電壓是一個始終單調(diào)增加的電壓值。根據(jù)運算的目的,可以使用始終單調(diào)減少的電壓值。
通過根據(jù)操作數(shù)值Xi的標簽切換切換電路5,將對應(yīng)于操作數(shù)值Xi的模擬電壓值輸入到預(yù)定的運算電路中,如同第二和第三實施例。另外,在沒有操作數(shù)值Xi輸入的運算電路1中不執(zhí)行運算處理,如同第二和第三實施例。
在本實施例中,對應(yīng)于操作數(shù)值Wi的模擬電壓值由切換電路5根據(jù)操作數(shù)值Xi的標簽進行切換,并且被輸入到由標簽確定的預(yù)定運算電路中,如同操作數(shù)值Xi。作為不同于本實施例的方法,對應(yīng)于操作數(shù)值Wi的模擬電壓值將要輸入的預(yù)定運算電路可以獨立于操作數(shù)值Xi的標簽而預(yù)先地設(shè)置,如同第二和第三實施例。
(第五實施例)圖27表示了本實施例的布置。本實施例不同于第三或第四實施例的地方在于第三或第四實施例中所描述的始終單調(diào)增加的模擬電壓值被乘以一個系數(shù)Ki,從而可以執(zhí)行由預(yù)定的系數(shù)Ki乘以操作數(shù)值Xi的運算。
在本實施例中,僅僅解釋與第三或第四實施例不同的幾點。其余的點與第三或第四實施例中的相同,因此省略對其的描述。
如圖27所示,單調(diào)增加的模擬電壓值被乘以系數(shù)Ki意味著在預(yù)定運算定時所參考的電壓值(也即,操作數(shù)值Xi)被乘以預(yù)定的系數(shù)Ki。因此,當輸入到運算電路1的單調(diào)增加的模擬電壓值被乘以系數(shù)Ki時,就可以進行三項Ki×Xi×Wi的乘法運算。
如圖27所示,當乘以具有不同值的系數(shù)Ki的模擬電壓值被并行輸入時,在各個運算電路1中可以并行進行三個不同項的乘法運算。為了改變對應(yīng)于每一個單調(diào)增加的模擬電壓值的系數(shù)Ki,在排序電路4(WTA電路或是鋸齒波產(chǎn)生電路)的下一級上布置有對應(yīng)于系數(shù)Ki的電壓放大器57。在圖27所示的例子中,電壓放大器57布置在WTA電路的下一級上。
當電壓放大器57布置在鋸齒波產(chǎn)生電路的下一級上時,對應(yīng)于系數(shù)Ki的電壓放大器57為從圖21所示的鋸齒波產(chǎn)生電路44輸出的單調(diào)增加的模擬電壓值而布置。在本實施例中,使用了單調(diào)增加的模擬電壓值。即使使用了單調(diào)減少的模擬電壓值,也可以執(zhí)行如上所述的相同的運算。
通過根據(jù)操作數(shù)值Xi的標簽對切換電路5進行切換,將對應(yīng)于操作數(shù)值Xi×系數(shù)Ki的單調(diào)增加的模擬電壓值輸入到預(yù)定的運算電路,如同第三和第四實施例。
在本實施例中,對應(yīng)于操作數(shù)值Wi的模擬電壓值由切換電路5根據(jù)操作數(shù)值Xi的標簽進行切換,并且被輸入到由標簽確定的預(yù)定運算電路中,如同操作數(shù)值Xi。作為不同于本實施例的方法,對應(yīng)于操作數(shù)值Wi的模擬電壓值將要輸入的預(yù)定運算電路可以獨立于操作數(shù)值Xi的標簽而預(yù)先地設(shè)置,如同第三和第四實施例。在本實施例中,其中操作數(shù)值Xi作為PWM信號輸入到輸入值保持電路2的情況和第三以及第四實施例中的情況相同。
(第六實施例)以下參考圖28和圖29對第六實施例進行描述。本實施例不同于第三或第四實施例的地方在于,在第三或第四實施例中所描述的始終單調(diào)增加的模擬電壓值與一個系數(shù)Ki相乘,從而可以執(zhí)行操作數(shù)值Xi與預(yù)定系數(shù)Ki相乘的乘法運算。
在本實施例中,僅僅解釋與第三或第四實施例不同的幾點。其余的部分與第三或第四實施例中的相同,因此省略對其的描述。
參考圖28,如同第一個實施例,相聯(lián)存儲器被用作排序電路4,以將操作數(shù)值Xi按照大小遞減的順序進行排序。關(guān)于操作數(shù)值Xi的等值確定電路58連接到相聯(lián)存儲器的下一級上。該等值確定電路58并入了例如寄存器的存儲器功能,存儲之前從相聯(lián)存儲器輸出的操作數(shù)值Xi的值。
當從相聯(lián)存儲器輸出的下一個操作數(shù)值Xi’被輸入到等值確定電路58時,該等值確定電路58將這次輸入的操作數(shù)值Xi’與之前輸入的操作數(shù)值Xi進行比較。如果這兩個操作數(shù)值不同,就輸出一個打開鋸齒波產(chǎn)生電路60(稍后描述)的開關(guān)的檢測信號。如果這兩個操作數(shù)值相等,不輸出檢測信號。因此,鋸齒波產(chǎn)生電路60的開關(guān)保持為OFF。
以與第三或第四實施例相同的方式來執(zhí)行運算電路1中的運算處理。輸入到運算電路1的始終單調(diào)增加的電壓值由圖29所示的鋸齒波產(chǎn)生電路產(chǎn)生。在鋸齒波產(chǎn)生電路60中,對應(yīng)于系數(shù)Ki的電壓值被作為控制電壓提供到電壓控制的電流源61。相應(yīng)地,預(yù)定的電流流動,并且在電容器50上累積電荷。
如上所述,鋸齒波產(chǎn)生電路60的開關(guān)49由來自等值確定電路58的檢測信號打開。確切地,當相聯(lián)存儲器的輸出值等于之前的輸出值時,該鋸齒波產(chǎn)生電路60關(guān)閉開關(guān)49以停止在電容器50上的電荷累計操作。只有當來自相聯(lián)存儲器的輸出值不同于之前的輸出值時,開關(guān)49才打開,并且節(jié)點的電壓值作為圖29所示的V而改變。
此時,當對應(yīng)于系數(shù)Ki的電壓值適當?shù)卦O(shè)置時,單調(diào)增加的電壓值可以乘以系數(shù)Ki,如第五實施例所述。當通過緩沖器51將電壓值輸入到模擬運算電路時,就可以進行三項Ki×Xi×Wi的乘法運算,如第五實施例所述。其余的運算處理類似于第三或第四實施例,在此省略對其的描述。
電壓控制的電流源61可以通過使用MOS晶體管的飽和特性來形成或是可以具有不同的結(jié)構(gòu)。鋸齒波產(chǎn)生電路60可以使用任何其它的電路布置,只要其能夠?qū)崿F(xiàn)相同的功能。在本實施例中,使用了單調(diào)增加的模擬電壓值。然而,即使使用了單調(diào)減少的模擬電壓值,也可以執(zhí)行如上所述的相同的運算。
如同在第三和第四實施例中,通過根據(jù)操作數(shù)值Xi的標簽切換切換電路5,而將對應(yīng)于操作數(shù)值Xi×系數(shù)Ki的單調(diào)增加的模擬電壓值輸入到預(yù)定運算電路中。在這個實施例中,對應(yīng)于操作數(shù)值Wi的模擬電壓值由切換電路5根據(jù)操作數(shù)值Xi的標簽進行切換并被輸入到由該標簽確定的預(yù)定運算電路,如同操作數(shù)值Xi。作為不同于本實施例的方法,對應(yīng)于操作數(shù)值Wi的模擬電壓值將要輸入的預(yù)定運算電路可以獨立于操作數(shù)值Xi的標簽而預(yù)先地設(shè)置,如同第三和第四實施例。
其中操作數(shù)值Xi作為PWM信號輸入到輸入值保持電路2的情況和第三以及第四實施例中的情況相同。
(第七實施例)以下參考圖30和圖31對第七實施例進行描述。除了從系數(shù)值保持電路59的輸出被輸入到鋸齒波產(chǎn)生電路62之外,本實施例具有與第三實施例相同的布置。在本實施例中,僅僅解釋與第三實施例不同的幾點。其余的部分與第三實施例中的相同,因此省略對其的描述。
如圖30所示,系數(shù)值保持電路59將對應(yīng)于系數(shù)Ki的電壓值輸入到鋸齒波產(chǎn)生電路62。在每一個鋸齒波產(chǎn)生電路中,如圖31所示,對應(yīng)于系數(shù)Ki的電壓值被提供到電壓控制的電流源61的門,使得對應(yīng)于系數(shù)Ki的預(yù)定電流流向電壓控制的電流源61,不同于圖23。也就是,本實施例不同于第三實施例的地方在于電壓控制的電流源61的電流量可以由保持在系數(shù)值保持電路59中的系數(shù)Ki來控制。
電壓控制的電流源61的電流值的變化對應(yīng)于在電容器50上累積的每單位時間的電荷量的變化。這意味著關(guān)于時間的節(jié)點電壓值的變化坡度發(fā)生改變。這就對應(yīng)于用系數(shù)Ki來乘以單調(diào)增加的電壓值,如在第五或第六實施例中所描述的。當通過緩沖器51將該電壓輸入到模擬運算電路中時,就可以進行三項Ki×Xi×Wi的乘法運算,如同第五或第六實施例。在本實施例中,其中操作數(shù)值Xi作為PWM信號輸入到輸入值保持電路2的情況和第三實施例中的情況相同。
(第八實施例)以下將參考圖32到35B對第八實施例進行描述。
圖32表示了根據(jù)本實施例的神經(jīng)網(wǎng)絡(luò)模型。圖33A到圖33B表示了當?shù)谝?、第二、第三、以及第四實施例所描述的積和運算電路應(yīng)用到本實施例中的神經(jīng)網(wǎng)絡(luò)中時,運算處理電路的布置示例(圖33A和圖33B表示了其中應(yīng)用了第三實施例所描述的積和運算電路的情況)。如圖33A和圖33B所示,根據(jù)本實施例的神經(jīng)網(wǎng)絡(luò)的處理電路包括利用第一、第二、第三以及第四實施例中所描述的積和運算電路的處理電路。
如圖32所示,作為神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元元素的模型,通常,一個神經(jīng)元元素用突觸權(quán)重64對前一級的多個神經(jīng)元元素的輸出值進行加權(quán),并且計算輸出值的和以確定神經(jīng)元元素63的內(nèi)部狀態(tài)值。根據(jù)本實施例的神經(jīng)元元素電路使用在第一、第二、第三或第四實施例中描述過的運算處理電路作為神經(jīng)元元素的模型。
確切地,在第一、第二、第三或第四實施例中所描述過的操作數(shù)值Xi對應(yīng)于前一級的神經(jīng)元元素的輸出值,并且操作數(shù)值Wi對應(yīng)于突觸權(quán)重值64以確定神經(jīng)元元素63的內(nèi)部狀態(tài)值。
接著,如圖33A和33B所示,由每一個運算電路計算的累積值被輸入到函數(shù)處理電路65,該函數(shù)處理電路65執(zhí)行處理函數(shù)的處理。該函數(shù)處理電路65可以根據(jù)該目的執(zhí)行非線性函數(shù)處理或是線性函數(shù)處理。在本實施例中,作為示例,使用了如圖34所示的Sigmoid轉(zhuǎn)換的處理電路。
對于數(shù)字電路,函數(shù)處理電路65的實際電路布置可以由查看表實現(xiàn),而對于模擬電路,則可以由比較器實現(xiàn)。
對于函數(shù)處理,當函數(shù)處理電路65執(zhí)行對于運算電路1所計算的累積結(jié)果的處理時,其可以連接到另一個部分。對于函數(shù)處理電路65,提出了各種電路布置。然而,這并不是本發(fā)明的關(guān)鍵,因此省略對其的描述。接著,作為由函數(shù)處理電路65進行的Sigmoid轉(zhuǎn)換的結(jié)果的值(對應(yīng)于在下一層中的操作數(shù)值Xi)被保持在對應(yīng)于下一層的輸入保持電路中。在這種情況下,同時還保持該值的標簽(對應(yīng)于下一層的操作數(shù)值Xi)。
通過重復(fù)上述的運算處理,可以實現(xiàn)圖32所示的神經(jīng)網(wǎng)絡(luò)中的運算處理。在本例中,在第一、第二、第三和第四實施例中所描述的方法被用作積和運算方法。因此,可以形成具有第一、第二、第三和第四實施例中所描述的效果的神經(jīng)網(wǎng)絡(luò)電路。
另外,對于在神經(jīng)元元素之間(在積和運算電路之間)的輸入/輸出,操作數(shù)值Xi可以作為PWM信號輸入到下一級的神經(jīng)元元素電路(積和運算電路),如同第一、第二、第三和第四實施例。
當運算電路是模擬運算電路時,如圖35A和圖35B所示,則在電容器上累積的電荷量被比較器66作為PWM信號讀出,并且被輸入到下一級的脈寬/數(shù)字轉(zhuǎn)換電路67。由比較器66產(chǎn)生PWM信號的方法是公知的,因此省略對其的描述。當鋸齒電壓波形作為參考電壓輸入時,對應(yīng)于電荷量的PWM信號可以被讀出。當非線性電壓波形作為參考電壓被輸入時,可以讀出非線性地對應(yīng)于電荷量的PWM信號。也就是,比較器66可以用作函數(shù)處理電路。或者是,累積在電容器上的電荷量被作為與電荷量成比例的PWM信號由比較器66讀出并且由下一級的脈寬/數(shù)字轉(zhuǎn)換電路67轉(zhuǎn)換為數(shù)字值后,可以通過使用查看表來執(zhí)行函數(shù)處理。本實施例中的神經(jīng)元元素的數(shù)目以及層的數(shù)目并不限制根據(jù)本發(fā)明的神經(jīng)網(wǎng)絡(luò)的布置。這些數(shù)目可以按照需要被設(shè)置為任意的數(shù)目。
(第九實施例)以下將參考附圖36A和圖36B對第九實施例進行描述。根據(jù)本實施例的神經(jīng)網(wǎng)絡(luò)模型與第八實施例所描述的神經(jīng)網(wǎng)絡(luò)模型基本相同,除了突觸權(quán)重值由操作數(shù)值Wi和系數(shù)Ki的乘積Wi×Ki來表達。
圖36A和圖36B表示了當?shù)谖濉⒌诹虻谄邔嵤├枋龅姆e和運算電路應(yīng)用到根據(jù)本實施例的神經(jīng)網(wǎng)絡(luò)中時,運算處理電路的布置(圖36A和圖36B表示了其中應(yīng)用了第七實施例所描述的積和運算電路的電路)。如圖33A和圖33B所示,根據(jù)本實施例的神經(jīng)網(wǎng)絡(luò)的處理電路包括利用第一、第二、第三以及第四實施例中所描述的積和運算電路的處理電路。作為本實施例中的神經(jīng)元元素的模型,一個神經(jīng)元元素用由Wi×Ki表示的突觸權(quán)重對從前一級上的多個神經(jīng)元元素的輸出值進行加權(quán),并且計算輸出值的和以確定神經(jīng)元元素的內(nèi)部狀態(tài)值。
根據(jù)本實施例的神經(jīng)元元素電路使用了作為神經(jīng)元元素的模型的在第五、第六或第七實施例中描述過的運算處理電路。確切地,在第五、第六或第七實施例中所描述過的操作數(shù)值Xi對應(yīng)于從前一級的神經(jīng)元元素的輸出值,并且操作數(shù)值Wi和系數(shù)Ki的乘積對應(yīng)于突觸權(quán)重值以確定神經(jīng)元元素的內(nèi)部狀態(tài)值。
接著將執(zhí)行的函數(shù)處理以及在函數(shù)處理之后的操作數(shù)值的輸入/保持與第八實施例中的相同,因此省略對其的描述。對于在神經(jīng)元元素之間(在層之間)的輸入/輸出,操作數(shù)值Xi可以作為PWM信號輸入到下一級的神經(jīng)元元素電路,如同第八實施例,因此省略對其的描述。
在本實施例中,在第五、第六或第七實施例中所描述的方法被用作積和運算方法。因此,可以形成具有第五、第六或第七實施例中所描述的效果的神經(jīng)網(wǎng)絡(luò)電路。本實施例中的神經(jīng)元元素的數(shù)目以及層的數(shù)目并不限制根據(jù)本發(fā)明的神經(jīng)網(wǎng)絡(luò)的布置。這些數(shù)目可以按照需要被設(shè)置為任意的數(shù)目。
(第十實施例)神經(jīng)網(wǎng)絡(luò)的運算處理可以通常用圖32所示的模型來解釋。即使在從前一級的神經(jīng)元輸入到神經(jīng)元元素的輸出值的實際運算中,只有具有預(yù)定值或更多值的輸出值會受到運算處理以確定內(nèi)部狀態(tài),神經(jīng)網(wǎng)絡(luò)的最終運算能力在很多情況下卻很少改變。在這種情況下,當對于小于預(yù)定值的值的運算處理被省略時,形成為電路的神經(jīng)網(wǎng)絡(luò)在功率消耗或運算速度方面具有優(yōu)勢。
在本實施例中,將描述一個運算電路,其中對于應(yīng)用到第八和第九實施例的神經(jīng)網(wǎng)絡(luò)中的從第一到第七的實施例,操作數(shù)值Xi由排序電路以大小遞減的順序進行排序,并且對于小于預(yù)定值的操作數(shù)值Xi的運算被省略。圖37僅表示了其中預(yù)定值保持存儲器71被添加到排序電路4以實現(xiàn)圖1、5、21、25、27、28、30、33A、33B、35A、35B、36A以及36B中的本實施例的功能的一個部分,這些圖表示了在從第一到第九實施例中所描述的運算處理布置。因此,這些布置與圖1、5、21、25、27、28、30、33A、33B、35A、35B、36A以及36B中所示的布置相同,除了圖37所示的部分。更確切地,關(guān)于預(yù)定值的數(shù)據(jù)從預(yù)定值保持存儲器71輸入到排序電路4中。對于操作數(shù)值Xi的排序處理當?shù)竭_預(yù)定值時結(jié)束。
當使用相聯(lián)存儲器作為排序電路時,通過使得在相聯(lián)存儲器中進行內(nèi)容搜索的搜索值按序遞減并且當搜索值到達預(yù)定值時結(jié)束處理,來實現(xiàn)對于小于預(yù)定值的操作數(shù)Xi的積和運算的省略。當使用WTA電路作為排序電路時,可以通過使得在WTA電路所進行的排序中當參考電壓值到達預(yù)定值時結(jié)束處理來實現(xiàn)該省略。
在本實施例中,描述了省略對于具有小于預(yù)定值的操作數(shù)值Xi的積和運算的電路的兩個示例。然而,可以使用其它任何的電路和方法只要其具有與上述效果相同的效果。
如上所述,當對于具有小于預(yù)定值的操作數(shù)值Xi的積和運算被省略時,在實際處理電路中,功率消耗可以降低,并且運算速度可以提高。
(第十一實施例)在某些情況下,當從上一級的神經(jīng)元輸出到神經(jīng)元元素并且小于預(yù)定值的輸出值被認為是常數(shù)值并且接受運算,而不是象第十實施例中所描述的省略對這些輸出值的運算處理時,神經(jīng)網(wǎng)絡(luò)的運算處理能力會提高。在本實施例中,將描述一種運算電路,其中操作數(shù)值Xi由排序電路以大小遞減的順序排序并輸出,并且小于預(yù)定值的操作數(shù)值Xi被認為是常數(shù)值。
圖38中所示的布置不同于第十實施例之處在于圖38中所示的上述排序電路4進一步添加了常數(shù)值保持存儲器72。除了圖38中所示的該部分之外的布置與在第十實施例中所描述的相同。更確切地,關(guān)于預(yù)定值的數(shù)據(jù)從預(yù)定值保持存儲器71輸入到排序電路4中。在到達預(yù)定值時對于操作數(shù)值的排序處理結(jié)束。
另外,關(guān)于常數(shù)值的數(shù)據(jù)從常數(shù)值保持存儲器72輸入到排序電路4中。該常數(shù)值作為操作數(shù)值Xi輸出。當使用了相聯(lián)存儲器作為第十實施例中的排序電路時,運算作為常數(shù)值的小于預(yù)定值的操作數(shù)值Xi的電路可以通過使得當在相聯(lián)存儲器中進行內(nèi)容搜索的搜索值為按序遞減時,在操作數(shù)值Xi到達預(yù)定值之后輸出作為預(yù)設(shè)置的常數(shù)值的操作數(shù)值Xi來實現(xiàn)。
為了這個目的,在另一個存儲器中準備該預(yù)設(shè)置的常數(shù)值。在操作數(shù)值Xi到達預(yù)定值的同時,由相聯(lián)存儲器進行的處理停止,并且該預(yù)設(shè)置常數(shù)值從存儲器中輸出??梢允褂闷渌魏蔚碾娐泛头椒ㄖ灰渚哂信c上述功能相同的功能。當使用了WTA電路作為第十實施例中的排序電路時,該電路可以通過在WTA電路所進行的排序中,當參考電壓到達預(yù)定值時輸出對應(yīng)于操作數(shù)值Xi的電壓值被作為預(yù)設(shè)置的常數(shù)值來實現(xiàn)。
為了這個目的,在另一個模擬存儲器中準備該預(yù)設(shè)置的常數(shù)值。在操作數(shù)值Xi到達預(yù)定值的同時,由WTA電路進行的處理停止,并且該預(yù)設(shè)置的常數(shù)值從該模擬存儲器中輸出??梢允褂闷渌魏蔚碾娐泛头椒ㄖ灰渚哂信c上述功能相同的功能。
(第十二實施例)神經(jīng)網(wǎng)絡(luò)的運算處理通??梢杂脠D32所示的模型解釋。即使在從前一級的神經(jīng)元輸入到神經(jīng)元元素的輸出值的實際運算中,只有對應(yīng)于當從大值開始計數(shù)時的預(yù)定比率的輸出值會受到運算處理以確定內(nèi)部狀態(tài),神經(jīng)網(wǎng)絡(luò)的最終運算能力在很多情況下卻很少改變。在這種情況下,當對于除了當從大值開始計數(shù)時的預(yù)定比率的值的值進行的運算處理被省略時,形成為電路的神經(jīng)網(wǎng)絡(luò)在功率消耗或運算速度方面具有優(yōu)勢。
在本實施例中,將描述一個運算電路,其中對于應(yīng)用到第八和第九實施例的神經(jīng)網(wǎng)絡(luò)中的從第一到第七的實施例,操作數(shù)值Xi由排序電路以大小遞減的順序進行排序,并且對于除了對應(yīng)于當從大值開始計數(shù)時的預(yù)定比率的值的操作數(shù)值Xi進行的運算處理被省略。
圖39僅表示了其中預(yù)定數(shù)(比率)保持存儲器73被添加到排序電路4以實現(xiàn)圖1、5、21、25、27、28、30、33A、33B、35A、35B、36A以及36B中的本實施例的功能的一個部分,這些圖表示了在從第一到第九實施例中所描述的運算處理布置。因此,這些布置與圖1、5、21、25、27、28、30、33A、33B、35A、35B、36A以及36B中所示的布置相同,除了圖39所示的部分。
更確切地,關(guān)于預(yù)定數(shù)(比率)的數(shù)據(jù)從預(yù)定數(shù)(比率)保持存儲器73輸入到排序電路4中。對于操作數(shù)值Xi的排序處理當?shù)竭_預(yù)定數(shù)(比率)時結(jié)束。
當使用相聯(lián)存儲器作為排序電路時,通過使得在相聯(lián)存儲器中進行內(nèi)容搜索并且按序遞減搜索值時該處理在輸出操作數(shù)Xi的數(shù)目到達從預(yù)定數(shù)(比率)保持存儲器73輸入的預(yù)定數(shù)(比率)時結(jié)束,來實現(xiàn)除了對應(yīng)于當從大值開始計數(shù)時的預(yù)定比率的值的操作數(shù)值Xi的積和運算的省略。當使用WTA電路作為排序電路時,可以通過使得當參考電壓值到達對應(yīng)于操作數(shù)值Xi的預(yù)定數(shù)(比率)的電壓值時結(jié)束處理來實現(xiàn)該省略。
在本實施例中,描述了省略除了對應(yīng)于當從大值開始計數(shù)時的預(yù)定比率的值的操作數(shù)值Xi的積和運算的電路的兩個示例。然而,可以使用其它任何的電路和方法只要其具有與上述效果相同的效果。
如上所述,當對于除了對應(yīng)于當從大值開始計數(shù)時的預(yù)定數(shù)(比率)的值的操作數(shù)值Xi的積和運算被省略時,在實際處理電路中,功率消耗可以降低,并且運算速度可以提高。
(第十三實施例)在某些情況下,當從上一級的神經(jīng)元輸出到神經(jīng)元元素并且除了對應(yīng)于當從大值開始計數(shù)時的預(yù)定比率的值的輸出值被認為是常數(shù)值并且接受運算,而不是象第十二實施例中所描述的省略對這些輸出值的運算處理時,神經(jīng)網(wǎng)絡(luò)的運算處理能力會提高。在本實施例中,將描述一種運算電路,其中操作數(shù)值Xi由排序電路以大小遞減的順序排序,并且在第十二實施例中除了對應(yīng)于當從大值開始計數(shù)時的預(yù)定比率的值的操作數(shù)值Xi被認為是常數(shù)值。
圖40中所示的布置不同于第十二實施例之處在于圖39中所示的上述排序電路4進一步添加了常數(shù)值保持存儲器74。除了圖40中所示該部分之外的布置與在第十二實施例中所描述的相同。更確切地,關(guān)于預(yù)定數(shù)(比率)的數(shù)據(jù)從預(yù)定數(shù)(比率)保持存儲器73輸入到排序電路4中。在到達預(yù)定數(shù)(比率)時對于操作數(shù)值Xi的排序處理結(jié)束。
另外,關(guān)于常數(shù)值的數(shù)據(jù)從常數(shù)值保持存儲器74輸入到排序電路4中。該常數(shù)值作為操作數(shù)值Xi輸出。當使用了相聯(lián)存儲器作為排序電路時,運算作為常數(shù)值的除了對應(yīng)于當從大值開始計數(shù)時的預(yù)定比率的值的操作數(shù)值Xi的方法可以通過使得當在相聯(lián)存儲器中進行內(nèi)容搜索的搜索值為按序遞減時,當輸出的操作數(shù)值Xi的數(shù)目到達預(yù)定數(shù)(比率)后,輸出作為預(yù)設(shè)置的常數(shù)值的操作數(shù)值Xi來實現(xiàn)。為了這個目的,在另一個存儲器中準備該預(yù)設(shè)置的常數(shù)值。在輸出的操作數(shù)值Xi的數(shù)目到達預(yù)定數(shù)(比率)的同時,由相聯(lián)存儲器進行的處理停止,并且該預(yù)設(shè)置常數(shù)值從存儲器中輸出。可以使用其它任何的電路和方法只要其可以實現(xiàn)與上述功能相同的功能。
當使用了WTA電路作為排序電路時,該電路可以通過在WTA電路所進行的排序中,在參考電壓值到達對應(yīng)于操作數(shù)值Xi的預(yù)定數(shù)(比率)的電壓值后,輸出作為預(yù)設(shè)置的常數(shù)值的對應(yīng)于操作數(shù)值Xi的電壓值來實現(xiàn)。為了這個目的,在另一個模擬存儲器中準備該預(yù)設(shè)置的常數(shù)值。在參考電壓值到達對應(yīng)于操作數(shù)值Xi的預(yù)定數(shù)(比率)的電壓值的同時,由WTA電路進行的處理停止,并且該預(yù)設(shè)置常數(shù)值從模擬存儲器中輸出??梢允褂闷渌魏蔚碾娐泛头椒ㄖ灰淇梢詫崿F(xiàn)與上述功能相同的功能。
(第十四實施例)圖41A和圖41B表示了執(zhí)行第十四實施例的圖像處理的積和運算電路的示例布置。如圖41A和圖41B所示,作為特性特征,該執(zhí)行第十四實施例的圖像處理的積和運算電路包括在第八到第十三實施例中所描述的神經(jīng)網(wǎng)絡(luò)。圖41A和圖41B僅表示了層級結(jié)構(gòu)的第一級并且沒有顯示隨后的層。
輸入到積和運算電路的信號是圖像信號。更確切地,根據(jù)本實施例的積和運算電路的目的在于通過引發(fā)神經(jīng)網(wǎng)絡(luò)電路對輸入圖像信號執(zhí)行預(yù)定的預(yù)算而執(zhí)行希望的圖像處理(例如,圖形檢測和圖形識別)。
將被實際實現(xiàn)的圖像處理的內(nèi)容可以通過適當?shù)卣{(diào)整神經(jīng)網(wǎng)絡(luò)電路的操作數(shù)值Wi和系數(shù)Ki使得實現(xiàn)希望的處理內(nèi)容(例如,圖形檢測和圖形識別)而設(shè)置。詳細的調(diào)整方法并不是本發(fā)明的關(guān)鍵,因此省略對其的描述。
在本實施例中,從圖像傳感設(shè)備(例如,CCD或CMOS圖像傳感器)輸出的圖像信號對應(yīng)于第一到第七實施例中的操作數(shù)值Xi。因此,對于圖像信號執(zhí)行的運算處理與在第一到第十三實施例中對于操作數(shù)值Xi執(zhí)行的運算處理相同。圖像信號作為模擬信號、數(shù)字信號或是PWM信號輸入。對應(yīng)于每種信號類型的運算處理對應(yīng)于在第一到第十三實施例中所描述的操作數(shù)值Xi的信號類型。運算處理與在實施例中的相同并且因此省略對其的描述。
參考圖41A和圖41B,圖像信號作為模擬信號由比較器69轉(zhuǎn)換為PWM信號,接著由脈寬/數(shù)字轉(zhuǎn)換電路70轉(zhuǎn)換為數(shù)字值,并接著被輸入到神經(jīng)網(wǎng)絡(luò)電路中。
在本實施例中,圖像傳感設(shè)備假設(shè)為CCD或CMOS圖像傳感器。也可以使用任何其它的圖像傳感設(shè)備而不會產(chǎn)生任何問題。本實施例中的圖像傳感設(shè)備的數(shù)目、神經(jīng)元元素的數(shù)目以及層的數(shù)目并不對根據(jù)本發(fā)明的圖像信號處理電路的布置構(gòu)成限制。這些數(shù)目可以根據(jù)需要被設(shè)置為任何數(shù)目。
圖42表示了上述的運算處理流。
首先,執(zhí)行步驟S1,從圖像傳感設(shè)備輸入圖像信號。接著,執(zhí)行輸入值保持步驟S2,保持輸入信號。隨后,執(zhí)行排序步驟S3,將保持的輸入值以大小遞減的順序輸出。存儲器保持步驟S4,將標簽和標示保持在存儲器中。在鋸齒波產(chǎn)生步驟S6,根據(jù)在系數(shù)值輸入步驟S5輸入的系數(shù)值以及在存儲器保持步驟S4輸入的標示產(chǎn)生始終單調(diào)增加的電壓波形(鋸齒波形),并將其輸入到切換步驟S7。
在切換步驟S7,根據(jù)在存儲器保持步驟S4輸入的標簽將鋸齒波形輸入到適當?shù)倪\算電路。在切換步驟S9,根據(jù)在存儲器保持步驟S4輸入的標簽將在權(quán)重值輸入步驟S8輸入的權(quán)重值輸入到適當?shù)倪\算電路。
在鋸齒波形和權(quán)重值所輸入的運算電路中,執(zhí)行相乘/累積步驟S10,并且累積值被輸出到函數(shù)處理步驟S11。在函數(shù)處理步驟S11,執(zhí)行預(yù)定的函數(shù)處理,并且執(zhí)行步驟S12,將輸出值輸入到后一級層。在該后一級層側(cè),上述的運算處理步驟重復(fù)需要的次數(shù)(層的數(shù)目)。
如上所述,當由神經(jīng)網(wǎng)絡(luò)電路進行的運算處理被應(yīng)用到圖像信號時,就可以實現(xiàn)希望的運算處理(例如,圖形檢測和圖形識別)。
(第十五實施例)根據(jù)上述的實施例,提供了一種積和運算電路,其使用了將多個數(shù)字輸入值并行轉(zhuǎn)換為脈寬而同時節(jié)省面積并且降低功率消耗的數(shù)字/脈寬轉(zhuǎn)換電路,或是使用了在低功率消耗下工作并可以降低由電路產(chǎn)生的噪聲的脈寬/數(shù)字轉(zhuǎn)換電路。
在下面的實施例中,將描述使用了具有與上述效果相同的效果的脈寬/數(shù)字轉(zhuǎn)換電路的模擬/數(shù)字混合運算電路。
圖48表示了根據(jù)本實施例的模擬/數(shù)字混合運算電路的整體布置。
如圖48所示,該模擬/數(shù)字混合運算電路包括數(shù)字存儲器501、數(shù)字/脈寬轉(zhuǎn)換電路502、模擬運算電路503以及電容器504。
該模擬/數(shù)字混合運算電路實現(xiàn)了計算多個乘法結(jié)果的累積值的功能。
圖49詳細解釋了圖48所示的模擬運算電路503和電容器504的布置。如圖49所示,該模擬運算電路503和電容器504具有這樣一種布置,其中多個模擬運算電路503并行連接到連接至電容器504的總線。
圖50表示了模擬運算電路503的詳細電路布置。如圖50所示,模擬運算電路503包括PMOS晶體管M1,該晶體管M1用作恒定電流源。
數(shù)字/脈寬轉(zhuǎn)換電路502的布置與圖16和圖17所示的第二實施例的數(shù)字/脈寬轉(zhuǎn)換電路23的布置相同,因此省略對其的描述。根據(jù)圖18所示的時序圖來執(zhí)行引發(fā)數(shù)字/脈寬轉(zhuǎn)換電路502將保持在數(shù)字存儲器501中的數(shù)字數(shù)據(jù)轉(zhuǎn)換為脈沖信號的處理,如同第二實施例,因此省略對其的描述。
以下將參考圖50對模擬運算電路503進行的運算處理進行描述。接著,參考附圖49描述如何引發(fā)電容器504將模擬運算電路503的運算結(jié)果作為部分和而保持。另外,將參考圖48描述如何從該部分和計算希望的累積值。
如圖48所示,首先,保持在數(shù)字存儲器501中的被乘數(shù)A的數(shù)字值被輸入到數(shù)字/脈寬轉(zhuǎn)換電路502。該數(shù)字/脈寬轉(zhuǎn)換電路502將接收到的數(shù)字值轉(zhuǎn)換為具有與數(shù)字輸入值成比例的時間寬度的脈沖信號,并且根據(jù)圖18所示的時序圖輸出該脈沖信號,如同第二實施例中所描述的。
在本實施例中,圖50所示的模擬運算電路503實現(xiàn)了被乘數(shù)值A(chǔ)和乘數(shù)值B的相乘(A×B)(A和B滿足A≥0以及B≥0)。為了實現(xiàn)由模擬運算電路503進行的相乘,被乘數(shù)值A(chǔ)和乘數(shù)值B作為從數(shù)字/脈寬轉(zhuǎn)換電路502輸出的PWM信號和模擬電壓Vw分別輸入(圖49)。
該模擬運算電路503可以為另一種模擬運算電路,除了這樣一種電路,即如果其執(zhí)行了一種運算即實現(xiàn)了相乘(例如,非線性轉(zhuǎn)換)。
參考圖50,從數(shù)字/脈寬轉(zhuǎn)換電路502輸出的PWM信號Vin被輸入到輸入端J。另外,通過對乘數(shù)值B執(zhí)行預(yù)定的轉(zhuǎn)換而獲得的模擬電壓Vw被輸入到輸出端K。
對PWM信號的特性作簡要的描述。在PWM(脈沖寬度調(diào)制)信號中,脈沖波形的寬度帶有信息。PWM信號具有抗噪的數(shù)字特性(代表著高和低電平的二進制信息被保持在電壓方向上的特性)以及可以通過一個脈沖表達連續(xù)信息的模擬特性(代表著該連續(xù)信息被保持在時間方向上的特性)。
輸入到輸入端J的對應(yīng)于乘數(shù)值B的電壓Vw被施加到PMOS晶體管M1的柵端上。該PWM信號Vin從該輸入端J輸入到該PMOS晶體管的源端。PWM信號的低電平被設(shè)置到0V。高電平被設(shè)置到供電電壓Vdd(在本實施例中為3.3V)。
模擬電壓Vw被設(shè)置到適當?shù)碾妷悍秶沟卯擯WM信號位于高電平時,也就是,當供電電壓Vdd被施加到PMOS晶體管M1的源端時,晶體管M1在飽和區(qū)域工作。相應(yīng)地,當PWM信號位于高電平時,PMOS晶體管M1可以作為恒定電流源而工作。
此時流向PMOS晶體管M1的電流量由柵-源電壓,也就是,(Vdd-Vw)確定。此時,PWM信號Vin的脈寬以被乘數(shù)值A(chǔ)的比例而被轉(zhuǎn)換。模擬電壓Vw被轉(zhuǎn)換使得由(Vdd-Vw)確定的電流量與乘數(shù)值B成比例。
因此,由于只有當PWM信號在高電平時,PMOS晶體管M1中的電流由(Vdd-Vw)確定,所以當PWM信號在高電平時,由PMOS晶體管M1提供的總電荷量與A×B成比例??梢允褂萌魏纹渌哪M電路只要其能夠?qū)崿F(xiàn)通過使用PWM信號進行的相乘。
以下參考圖49對如何引發(fā)電容器504保持模擬運算電路503的運算結(jié)果進行描述。參考圖49,由PMOS晶體管M1提供的電荷量在電容器504上累積,該電容器504通過總線與模擬運算電路503連接。
該多個獨立執(zhí)行運算的模擬運算電路503被連接到總線。由模擬運算電路503并行進行的運算的結(jié)果,也就是,上述的電荷量通過總線被累積在電容器504上并且相加。
因此,在每一個周期的并行運算處理結(jié)束時累積在電容器504上的總電荷量指的是通過共用總線連接到電容器504的多個模擬運算電路503的運算結(jié)果的和。
接下來參考圖51所示的流程圖描述該運算處理流。執(zhí)行每一個處理步驟的運算電路也會在描述中提及。
參考圖51,首先,執(zhí)行數(shù)字信號輸入步驟S21。接著執(zhí)行引發(fā)數(shù)字/脈寬轉(zhuǎn)換電路502將該數(shù)字信號轉(zhuǎn)換為PWM信號的步驟S25。執(zhí)行Bi(電壓Vw)輸入步驟S22。執(zhí)行引發(fā)每一個模擬運算電路503將作為從步驟S25的輸出的PWM信號乘以電壓值Vw的步驟S23。執(zhí)行引發(fā)電容器504將模擬運算電路503并行計算的乘積作為電荷量累積并且保持部分和∑(Ai×Bi)的步驟S24。
當將上述的運算流重復(fù)必需的次數(shù)(在本實施例中為三次)以計算累積值時,就計算出了希望的累積值。
上述的運算流可以按照需要重復(fù)多次,并且運算結(jié)果可以作為電荷在電容器中附加地累積(雖然在圖51的步驟S24中計算了部分和,但是如果運算結(jié)果作為電荷在電容器中附加地累積,則對應(yīng)于最終計算的累積值的電荷量被累積在電容器上)。
還可以的是,作為電荷臨時累積在電容器上的運算結(jié)果可以被存儲在另一個存儲電路中,并且可以重新執(zhí)行該運算流。
如上所述,當使用了在低的功率消耗下將多個數(shù)字輸入值并行轉(zhuǎn)換為脈寬的數(shù)字/脈寬轉(zhuǎn)換電路時,就可以實現(xiàn)具有低的功率消耗以及小的布局面積的模擬/數(shù)字混合運算電路。
(第十六實施例)在上述第十五實施例中的模擬/數(shù)字混合運算電路中,數(shù)字/脈寬轉(zhuǎn)換電路可以具有另一種布置。例如,可以應(yīng)用圖45所示的作為對于第二實施例的修改的數(shù)字/脈寬轉(zhuǎn)換電路151。如上參考圖45到圖47的所述,數(shù)字/脈寬轉(zhuǎn)換電路151驅(qū)動一個計數(shù)器153。每一個脈沖產(chǎn)生電路152-i參考從共用計數(shù)器153的輸出值來切換脈沖。出于這個原因,在切換設(shè)備的切換時刻所產(chǎn)生的到負載的直通電流或是充電/放電電流較小,并且功率消耗也較低。因此,當運用了數(shù)字/脈寬轉(zhuǎn)換電路151時,功率消耗就可以降低。另外,由于使用了共用計數(shù)器153,電路布局面積降低。
(第十七實施例)圖52表示了根據(jù)第十七實施例的模擬/數(shù)字混合運算電路的布置示例。在圖48中的相同的參考標號指的是圖52中的相同的構(gòu)成塊。
從參考圖52對圖48進行的比較中可以看出,在第十五實施例中所描述的模擬/數(shù)字混合運算電路中,在模擬運算電路503的上一級上添加數(shù)字存儲器520和D/A轉(zhuǎn)換電路300。
在本實施例中,僅描述與第十五實施例不同的D/A轉(zhuǎn)換電路300所進行的處理。其余的處理運算與第十五實施例中的相同因此省略對其的描述。
如圖53所示,D/A轉(zhuǎn)換電路300包括數(shù)字/脈寬轉(zhuǎn)換電路521、電流源522、電容器523和緩沖器524。對于由D/A轉(zhuǎn)換電路300執(zhí)行的處理,數(shù)字/脈寬轉(zhuǎn)換電路521并行執(zhí)行的處理與第十五實施例中相同,因此其描述省略。
如圖53所示,首先,在D/A轉(zhuǎn)換電路300中,對應(yīng)于乘數(shù)值B的數(shù)字值從數(shù)字存儲器輸入到數(shù)字/脈寬轉(zhuǎn)換電路521。在接收到數(shù)字值后,數(shù)字/脈寬轉(zhuǎn)換電路521執(zhí)行與在第十五實施例中相同的處理并且輸出PWM信號。PWM信號ON/OFF控制著電流源522的操作。
也就是,在本實施例中,當PWM信號為高時,電流源522為ON,并且預(yù)定的電流被提供給電容器523。當PWM信號為低時,電流源522為OFF,并且到電容器523的電流提供停止。結(jié)果是,電容器523累積了與PWM信號的時間寬度成比例的電荷量。在電容器523中,所累積的電荷量可以被作為通過緩沖器524的電壓值。該電壓值作為對應(yīng)于乘數(shù)值B的模擬電壓值輸入模擬運算電路中,如圖52所示。
以下將參考圖54所示的流程圖對運算處理流進行描述。
參考圖54,首先,執(zhí)行數(shù)字信號Ai輸入步驟S31。接著執(zhí)行引發(fā)數(shù)字/脈寬轉(zhuǎn)換電路502將該數(shù)字信號轉(zhuǎn)換為PWM信號的步驟S35。執(zhí)行數(shù)字信號Bi(電壓Vw)的輸入步驟S36。執(zhí)行引發(fā)D/A轉(zhuǎn)換電路300將數(shù)字信號轉(zhuǎn)換為模擬信號的D/A轉(zhuǎn)換步驟S37。
執(zhí)行引發(fā)每一個模擬運算電路503將作為從步驟S35和步驟S37的輸出的PWM信號乘以模擬電壓值Vw的步驟S33。執(zhí)行引發(fā)電容器504將模擬運算電路503并行計算的乘積作為電荷量累積并且保持部分和∑(Ai×Bi)的步驟S34。
當將上述的運算流重復(fù)必需的次數(shù)(在本實施例中為三次)以計算累積值時,就計算出了希望的累積值。
上述的運算流可以按照需要重復(fù)多次,并且運算結(jié)果可以作為電荷在電容器504中附加地累積(雖然在圖54的步驟S34中計算了部分和,但是如果運算結(jié)果作為電荷在電容器504中附加地累積,則對應(yīng)于最終計算的累積值的電荷量被累積在電容器504上)。還可以的是,作為電荷臨時累積在電容器504上的運算結(jié)果可以被存儲在另一個存儲電路中,并且可以重新執(zhí)行該運算流。
如上所述,當使用了D/A轉(zhuǎn)換電路300中的在低的功率消耗下將多個數(shù)字輸入值并行轉(zhuǎn)換為脈寬的數(shù)字/脈寬轉(zhuǎn)換電路502時,就可以實現(xiàn)具有低的功率消耗以及小的布局面積的模擬/數(shù)字混合運算電路。
(第十八實施例)以下參考附圖對第十八實施例進行描述。圖55表示了根據(jù)本實施例的模擬/數(shù)字混合電路的整體布置。
如圖55所示,該模擬/數(shù)字混合電路包括多個模擬運算電路503、連接到該多個模擬運算電路503的電容器504、A/D轉(zhuǎn)換電路550、數(shù)字加法電路525以及數(shù)字存儲器526。該模擬/數(shù)字混合運算電路實現(xiàn)了計算多個相乘結(jié)果的累積值。
圖55所示的模擬運算電路503和電容器504的具體布置與圖49所示的相同。如圖49所示,本實施例的模擬運算電路503和電容器504具有這樣的布置,其中多個模擬運算電路503并行連接到連接至電容器504的總線。
本實施例中的模擬運算電路503的具體的電路布置與圖50所示的相同。如圖50所示,本實施例中的模擬運算電路503包括用作恒定電流源的PMOS晶體管M1。
以下參考圖50首先對由模擬運算電路503進行的運算處理進行描述。接著,參考附圖49描述如何引發(fā)電容器504將模擬運算電路503的運算結(jié)果作為部分和而保持。另外,將參考圖55描述如何從該部分和計算希望的累積值在本實施例中,圖50所示的模擬運算電路503實現(xiàn)了被乘數(shù)值A(chǔ)和乘數(shù)值B的相乘(A×B)。A和B滿足A≥0以及B≥0。
為了由模擬運算電路503實現(xiàn)相乘,已經(jīng)經(jīng)過了預(yù)定轉(zhuǎn)換的被乘數(shù)值A(chǔ)和乘數(shù)值B作為PWM信號Vin和模擬電壓Vw分別輸入,如稍候?qū)⒚枋龅摹?br>
如果需要,輸入到模擬運算電路503中的PWM信號和模擬電壓也可以從一個外部功率提供設(shè)備輸入。然而,它們也可以是通過轉(zhuǎn)換例如PWM信號中的數(shù)字值以及在第十五實施例中所描述的模擬電壓輸入處理而輸入。
在本實施例中,PWM信號模擬電壓的輸入如同在十五實施例中所描述的。輸入的處理與第十五實施例的相同,因此省略對其的詳細描述。模擬運算電路503可以為另一種模擬運算電路,除了這樣一種電路,即如果其執(zhí)行了一種運算即實現(xiàn)了相乘(例如,非線性轉(zhuǎn)換)。
參考圖50,通過對被乘數(shù)值A(chǔ)執(zhí)行預(yù)定的轉(zhuǎn)換而獲得的PWM信號Vin被輸入到輸入端J。另外,通過對乘數(shù)值B執(zhí)行預(yù)定的轉(zhuǎn)換而獲得的模擬電壓Vw被輸入到輸入端K。
輸入到輸入端J的對應(yīng)于乘數(shù)值B的電壓Vw被施加到PMOS晶體管M1的柵端。PWM信號Vin從輸入端J輸入到PMOS晶體管M1的源端。PWM信號的低電平被設(shè)置到0V。高電平被設(shè)置到供電電壓Vdd(在本實施例中為3.3V)。
模擬電壓Vw被設(shè)置到適當?shù)碾妷悍秶沟卯擯WM信號位于高電平時,也就是,當供電電壓Vdd被施加到PMOS晶體管M1的源端時,晶體管M1在飽和區(qū)域工作。相應(yīng)地,當PWM信號位于高電平時,PMOS晶體管M1可以作為恒定電流源而工作。
此時流向PMOS晶體管M1的電流量由柵-源電壓,也就是,(Vdd-Vw)確定。此時,PWM信號Vin的脈寬以被乘數(shù)值A(chǔ)的比例而被轉(zhuǎn)換。模擬電壓Vw被轉(zhuǎn)換使得由(Vdd-Vw)確定的電流量與乘數(shù)值B成比例。
因此,由于只有當PWM信號在高電平時,PMOS晶體管M1中的電流由(Vdd-Vw)確定,所以當PWM信號在高電平時,由PMOS晶體管M1提供的總電荷量與A×B成比例。
以下參考圖49對如何引發(fā)電容器504將模擬運算電路503的運算結(jié)果作為部分和進行保持而進行描述。參考圖49,由PMOS晶體管M1提供的電荷量在電容器504上累積,該電容器504通過總線與模擬運算電路503連接。
該多個獨立執(zhí)行運算的模擬運算電路503被連接到總線。由模擬運算電路503并行進行的運算的結(jié)果,也就是,上述的電荷量通過總線被累積在電容器504上并且相加。
因此,在每一個周期的并行運算處理結(jié)束時累積在電容器504上的總電荷量指的是通過共用總線連接到電容器504的多個模擬運算電路503的運算結(jié)果的和。該和對應(yīng)于將被最終計算的累積值的部分和。
可以使用任何其它的模擬運算電路只要其能夠?qū)崿F(xiàn)通過使用PWM信號的乘法。
接下來參考圖48描述從該部分和計算希望的累積值的處理。
在本實施例中,希望的累積值由下式給出∑i=112Ai×Bi---(7)]]>為了獲得最終的累積值,使用了其中有如圖49所示的四個模擬運算電路503連接到電容器504的布置。即使運算的總數(shù)(本實施例中為12)不是模擬運算電路數(shù)目(4)的倍數(shù),運算的數(shù)目也可以通過輸入對應(yīng)于乘數(shù)值B=0的模擬電壓Vw而得到調(diào)整。
如參考圖49所述的,該四個模擬運算電路503并行執(zhí)行的運算由下式給出∑i=14Ai×Bi---(8)]]>運算結(jié)果作為電荷量保持在電容器504中。
運算結(jié)果可以視為對于希望運算(運算表達式(7))的部分和。
接著,由A/D轉(zhuǎn)換電路550將作為電荷量以模擬的方式保持在電容器504中的運算結(jié)果轉(zhuǎn)換為數(shù)字值。數(shù)字加法電路525將該數(shù)字值加至存儲在數(shù)字存儲器526中的數(shù)字值上。運算結(jié)果被保持在數(shù)字存儲器526中。
上述的運算是對于所希望運算(運算表達式(7))的第一運算。因此沒有提前保持在數(shù)字存儲器526中的部分和。數(shù)字存儲器526保持著所有的0。因此,保持在數(shù)字存儲器526中的數(shù)字值等于運算表達式(8)運算結(jié)果。
第二部分和由模擬運算電路503運算。更確切地,如參考圖2的描述,該四個模擬運算電路503并行執(zhí)行由下式給出的運算∑i=58Ai×Bi---(9)]]>運算結(jié)果作為電荷量保持在電容器504中。
運算結(jié)果可以視為對于希望運算(運算表達式(7))的部分和。
接著,由A/D轉(zhuǎn)換電路550將作為電荷量以模擬的方式保持在電容器504中的運算結(jié)果轉(zhuǎn)換為數(shù)字值。
數(shù)字加法電路525將該數(shù)字值加至存儲在數(shù)字存儲器526中的數(shù)字值上。運算結(jié)果被保持在數(shù)字存儲器526中。
預(yù)先保持在數(shù)字存儲器526中的數(shù)字值對應(yīng)于運算表達式(8)的運算結(jié)果。因此,通過對運算表達式(9)的運算結(jié)果進行相加而獲得并存儲的結(jié)果由下式給出∑i=14Ai×Bi+∑i=58Ai×Bi=∑i=18Ai×Bi---(10)]]>第三部分和由模擬運算電路503運算。更確切地,如參考圖49的描述,該四個模擬運算電路503并行執(zhí)行由下式給出的運算∑i=912Ai×Bi---(11)]]>運算結(jié)果作為電荷量保持在電容器504中。
運算結(jié)果可以視為對于希望運算(運算表達式(7))的部分和。
接著,由A/D轉(zhuǎn)換電路550將作為電荷量以模擬的方式保持在電容器504中的運算結(jié)果轉(zhuǎn)換為數(shù)字值。
數(shù)字加法電路525將該數(shù)字值加至存儲在數(shù)字存儲器526中的數(shù)字值上。運算結(jié)果保持在數(shù)字存儲器526中。
預(yù)先保持在數(shù)字存儲器526中的數(shù)字值對應(yīng)于運算表達式(10)的運算結(jié)果。因此,通過對運算表達式(11)的運算結(jié)果進行相加而獲得并存儲的結(jié)果由下式給出∑i=18Ai×Bi+∑i=912Ai×Bi=∑i=112Ai×Bi---(12)]]>如上所述,模擬運算電路503以模擬的方式執(zhí)行該多個相乘運算,并且結(jié)果以模擬的方式被加至電容器504中以對于希望的累積值計算部分和。
另外,以上述方式計算的部分和由A/D轉(zhuǎn)換器550轉(zhuǎn)換為數(shù)字數(shù)據(jù)并且由數(shù)字加法電路525數(shù)字地加至保持在數(shù)字存儲器526中的值上,以實現(xiàn)希望的預(yù)算。
下面對由上述A/D轉(zhuǎn)換電路550執(zhí)行的處理進行詳細的描述。
圖56為表示A/D轉(zhuǎn)換電路550的布置的方框圖。如圖56所示,該A/D轉(zhuǎn)換電路550包括多個比較器528以及脈寬/數(shù)字轉(zhuǎn)換電路529。在電容器504上作為電荷累積的運算結(jié)果被稱為電容器504上的電壓值。該電壓值被輸入到比較器528并且由比較器528將其與單獨輸入的任意電壓波形進行比較。
該任意電壓波形可以是其中電壓值線性地增加的鋸齒電壓波形527,或是另一個非線性電壓波形。在本實施例所使用的鋸齒電壓波形527中,在電容器上累積的運算結(jié)果被線性地轉(zhuǎn)換以設(shè)置PWM信號寬度。在另一個非線性電壓波形中,在電容器上累積的運算結(jié)果被非線性地轉(zhuǎn)換以設(shè)置PWM信號寬度。
更確切地,從比較器528的輸出值在鋸齒電壓波形527的開始時提升到高電平并且在當鋸齒電壓值527等于電容器504的電壓值時跌落到低電平,從而輸出值被轉(zhuǎn)換為PWM信號。
關(guān)于引發(fā)比較器528將模擬電壓轉(zhuǎn)換為PWM信號的技術(shù)是公知的。這并不是本發(fā)明的關(guān)鍵因此省略對其的描述。從比較器528輸出的PWM信號被輸入到脈寬/數(shù)字轉(zhuǎn)換電路529中。
脈寬/數(shù)字轉(zhuǎn)換電路529的布置和運算與第一實施例中的如圖6到圖9所示的脈寬/數(shù)字轉(zhuǎn)換電路9的布置和運算相同。作為變化的是,可以應(yīng)用參考圖10和圖11所描述的布置和運算。對其的詳細描述在此省略。
以下將參考圖57所示的流程圖對運算處理流進行描述。在該描述中也提到了執(zhí)行了每一個處理步驟的運算電路。
參考圖57,首先,執(zhí)行數(shù)字信號Ai輸入步驟S41。接著執(zhí)行引發(fā)數(shù)字/脈寬轉(zhuǎn)換電路502將該數(shù)字信號轉(zhuǎn)換為PWM信號的步驟S45。
執(zhí)行數(shù)字信號Bi(電壓Vw)輸入步驟S46。執(zhí)行引發(fā)D/A轉(zhuǎn)換電路將數(shù)字信號轉(zhuǎn)換為模擬信號的D/A轉(zhuǎn)換步驟S47。執(zhí)行引發(fā)每一個模擬運算電路503將作為從步驟S45和步驟S47的輸出的PWM信號乘以模擬電壓值Vw的步驟S43。
執(zhí)行引發(fā)電容器504將模擬運算電路并行計算的乘積作為電荷量累積并且保持部分和∑(Ai×Bi)的步驟S44。
執(zhí)行引發(fā)A/D轉(zhuǎn)換電路進行從對應(yīng)于部分和∑(Ai×Bi)的電荷量(電壓值)到數(shù)字值的A/D轉(zhuǎn)換的步驟S49。
執(zhí)行引發(fā)數(shù)字加法電路525將對應(yīng)于部分和的數(shù)字值加至在步驟S51輸出并且已經(jīng)保持在數(shù)字存儲器526中的累積值(對應(yīng)于運算進程的累積值)上并且計算新的累積值的步驟S50。
最后,執(zhí)行重寫這樣計算得到的累積值并將其保持在數(shù)字存儲器526中的步驟S51。在這種情況下,累積值在存儲器中的相應(yīng)部分(保持有運算進程中的累積值的部分)上被改寫蓋。
當將上述的運算流重復(fù)必需的次數(shù)(在本實施例中為三次)以計算累積值時,就計算出了希望的累積值。
在上面的描述中,當希望的累積值被保持在數(shù)字存儲器中時處理就結(jié)束了。該累積值可以進一步接受希望的運算處理。例如,非線性轉(zhuǎn)換電路可以連接到數(shù)字存儲器的下一級,使得能夠輸出通過非線性轉(zhuǎn)換累積值而獲得的值。
在這種情況下,可以通過查看表電路或其類似來實現(xiàn)該非線性轉(zhuǎn)換電路。在本實施例中所述的模擬/數(shù)字混合運算電路可以對計算的累積值執(zhí)行任意的運算處理。該非線性轉(zhuǎn)換電路可以被連接到數(shù)字加法電路的下一級。
在這種情況下,該非線性轉(zhuǎn)換電路可以通過查看表電路或其類似來實現(xiàn)。
更確切地,由數(shù)字加法電路計算的累積值被輸入到查看表電路。該累積值由查看表電路非線性地轉(zhuǎn)換并且被保持在數(shù)字存儲器中。
在這種情況下,可以只對數(shù)字加法電路計算的希望的運算值(最終計算的累積值,也就是,由運算表達式(7)或(12)給出的值)執(zhí)行非線性轉(zhuǎn)換。對在運算處理的進程中計算的累積值(運算表達式(8)或(10))可以不執(zhí)行非線性轉(zhuǎn)換。
可以使用其它任意的布置只要其能夠非線性地轉(zhuǎn)換累積值。
如上所述,當在A/D轉(zhuǎn)換電路中使用了在較低功率消耗下將多個PWM信號并行轉(zhuǎn)換為數(shù)字值的脈寬/數(shù)字轉(zhuǎn)換電路時,就可以實現(xiàn)具有較低功率消耗和較小布局面積的模擬/數(shù)字混合運算電路。
(第十九實施例)圖58為表示根據(jù)第十九實施例的模擬/數(shù)字混合運算電路的布置示例的框圖。
與第十八實施例中所描述的圖55不同的幾點如下。圖55中的數(shù)字加法電路525被數(shù)字加減器538取代。在圖58中的模擬運算電路503對于根據(jù)其符號而具有正負號的乘數(shù)值B分別執(zhí)行乘法運算。代表著乘數(shù)值B的符號的符號比特539被輸入到該數(shù)字加減器538中。在對于存儲在數(shù)字存儲器526中的數(shù)字數(shù)據(jù)進行的運算中,數(shù)字加減器538將對于負乘數(shù)值B的運算結(jié)果的部分和從數(shù)字存儲器526中的數(shù)字數(shù)據(jù)中減去。
也就是,作為在本實施例中的每一個模擬運算電路503中的相乘,對于正號和負號的相乘分別對于乘數(shù)值B的正號和負號而執(zhí)行。
以下僅描述與第十八實施例不同的地方。其余部分與第十八實施例的相同,因此省略對其的描述。
由下式給出的運算由圖58中的模擬/數(shù)字混合運算電路執(zhí)行,其中(Ai≥0)∑i=1Ai×Bi---(13)]]>在這種情況下,根據(jù)乘數(shù)值B的符號,該四個模擬運算電路503分別執(zhí)行正運算和負運算,如下所示A1·B1+A2·B2+A5·B5+A7·B7 (14)A9·B9+A10·B10+A14·B14+A16·B16 (15)A3·B3+A4·B4+A6·B6+A8·B8 (16)A11·B11+A12·B12+A13·B13+A15·B15 (17)其中B1、B2、B5、B7、B9、B10、B14、B16≥0,并且B3、B4、B6、B8、B11、B12、B13、B15<0。
在第十八實施例中,即使運算的總數(shù)(在上述的情況下為12)不是模擬運算電路數(shù)目(4)的倍數(shù),運算的數(shù)目也可以通過輸入對應(yīng)于乘數(shù)值B=0的模擬電壓Vw而得到調(diào)整。
如同第十八實施例中的,由運算表達式(14)到(17)給出的部分和由模擬運算電路503進行計算。此時,將每一個部分和作為絕對值而進行計算,無需考慮乘數(shù)值B的正/負號。
A/D轉(zhuǎn)換電路550將運算表達式(14)到(17)給出的計算的部分和轉(zhuǎn)換為數(shù)字數(shù)據(jù)。轉(zhuǎn)換的數(shù)字數(shù)據(jù)被輸入到數(shù)字加減器538中。代表乘數(shù)值B的符號的符號比特539也被輸入到數(shù)字加減器538中。
當輸入部分和的數(shù)字數(shù)據(jù)的符號比特為1時(乘數(shù)值B為正),數(shù)字加減器538將輸入的部分和的數(shù)字數(shù)據(jù)加至保持在數(shù)字存儲器526中的數(shù)字數(shù)據(jù)上,如同第十八實施例。
另一方面,當輸入部分和的數(shù)字數(shù)據(jù)的符號比特為0時(乘數(shù)值B為負),從保持在數(shù)字存儲器526中的數(shù)字數(shù)據(jù)中減去輸入的部分和的數(shù)字數(shù)據(jù)。
如上所述,根據(jù)符號比特,部分和的數(shù)字數(shù)據(jù)被加至保持在數(shù)字存儲器中的數(shù)字數(shù)據(jù)或是從該數(shù)字存儲器中的數(shù)字數(shù)據(jù)中減去,從而計算希望的累積值。如同第十八實施例,該累積值可以進一步接受希望的運算處理。例如,非線性轉(zhuǎn)換電路可以連接到數(shù)字存儲器的下一級,使得可以輸出通過非線性轉(zhuǎn)換累積值而獲得的值。在這種情況下,可以通過查看表電路或其類似來實現(xiàn)該非線性轉(zhuǎn)換電路。
如上所述,在本實施例中所述的模擬/數(shù)字混合運算電路可以對計算的累積值執(zhí)行任意的運算處理。該非線性轉(zhuǎn)換電路可以被連接到數(shù)字加法電路的下一級。在這種情況下,該非線性轉(zhuǎn)換電路可以通過查看表電路或其類似來實現(xiàn)。
更確切地,由數(shù)字加法電路計算的累積值被輸入到查看表電路。該累積值由查看表電路非線性地轉(zhuǎn)換并且被保持在數(shù)字存儲器中。
在這種情況下,可以只對數(shù)字加法電路計算的希望的運算值(最終計算的累積值,也就是,由運算表達式(13)給出的值)執(zhí)行非線性轉(zhuǎn)換。對在運算處理的進程中計算的累積值可以不執(zhí)行非線性轉(zhuǎn)換。可以使用其它任意的布置只要其能夠非線性地轉(zhuǎn)換累積值。
以下參考圖59所示的流程圖對運算處理流進行描述。執(zhí)行每一個處理步驟的運算電路也會在描述中提及。
參考圖59,首先,執(zhí)行數(shù)字信號Ai輸入步驟S61。接著執(zhí)行引發(fā)數(shù)字/脈寬轉(zhuǎn)換電路502將該數(shù)字信號轉(zhuǎn)換為PWM信號的步驟S65。執(zhí)行數(shù)字信號Bi(電壓Vw)的輸入步驟S66。執(zhí)行引發(fā)D/A轉(zhuǎn)換電路將數(shù)字信號轉(zhuǎn)換為模擬信號的D/A轉(zhuǎn)換步驟S67。執(zhí)行引發(fā)每一個模擬運算電路將作為從步驟S65和步驟S67的輸出的PWM信號乘以模擬電壓值Vw的步驟S63。
執(zhí)行引發(fā)電容器將模擬運算電路503并行計算的乘積作為電荷量累積并且保持部分和∑(Ai×Bi)的步驟S64。執(zhí)行引發(fā)A/D轉(zhuǎn)換電路將對應(yīng)于部分和∑(Ai×Bi)的電荷量(電壓值)轉(zhuǎn)換為數(shù)字值的步驟S69。執(zhí)行將代表著Bi的正/負號的符號比特輸入到數(shù)字加減器中的步驟S73。執(zhí)行引發(fā)數(shù)字加減器根據(jù)輸入符號比特的值執(zhí)行對應(yīng)于部分和的數(shù)字值的運算處理的步驟S72。
更確切地,當符號比特為1時(Bi為正),數(shù)字加減器將對應(yīng)于部分和的數(shù)字值加至在步驟S71輸出并且已經(jīng)保持在數(shù)字存儲器中的累積值(對應(yīng)于運算進程中的累積值)并且計算新的累積值。
當符號比特為0時(Bi為負),數(shù)字加減器從在步驟S71輸出并且已經(jīng)保持在數(shù)字存儲器中的累積值(對應(yīng)于運算進程中的累積值)中減去對應(yīng)于部分和的數(shù)字值并且計算新的累積值。
最后,執(zhí)行重寫這樣計算得到的累積值并將其保持在數(shù)字存儲器中的步驟S71。在這種情況下,累積值在存儲器中的相應(yīng)部分(保持有運算進程中的累積值的部分)上被改寫覆蓋。
當將上述的運算流重復(fù)必需的次數(shù)(在本實施例中為四次)以計算累積值時,就計算出了希望的累積值。
如上所述,模擬運算電路503根據(jù)乘數(shù)值B的正/負號分別計算部分和。在保持在數(shù)字存儲器526中的數(shù)字數(shù)據(jù)上進行加減是相應(yīng)于正/負號而執(zhí)行的。通過該處理,包括正/負號的相乘結(jié)果的累積值可以如下所示地被計算
(A1·B1+A2·B2+A5·B5+A7·B7)]]>+(A9·B9+A10·B10+A14·B14+A16·B16)]]>-(A3·B3+A4·B4+A6·B6+A8·B8)]]>-(A11·B11+A12·B12+A13·B13+A15·B15)]]>=∑i=116Ai×Bi---(18)]]>在上述的運算中,假設(shè)對應(yīng)于乘數(shù)值B的正號和負號的運算處理步驟如下所示交替地執(zhí)行(A1·B1+A2·B2+A5·B5+A7·B7)]]>+(A3·B3+A4·B4+A6·B6+A8·B8)]]>-(A9·B9+A10·B10+A14·B14+A16·B16)]]>-(A11·B11+A12·B12+A13·B13+A15·B15)]]>=∑i=116Ai×Bi---(19)]]>在這種情況下,正部分和和負部分和彼此抵消。出于這個原因,在數(shù)字存儲器526中的線性加法精確度的范圍(累積值的范圍)變窄,并且數(shù)字存儲器526的比特長度可以降低。
例如,假設(shè)由表達式(14)到(17)給出的部分和為(85,53,60,71)。如果具有相同符號的值連續(xù)地加或減,則在運算的進程中存儲在數(shù)字存儲器526中的值如下第一次運算的存儲值=85第二次運算的存儲值=85+53=138第三次運算的存儲值=138-60=78第四次運算的存儲值=78-71=7在加/減部分和的運算進程中的最大值為138。因此,數(shù)字存儲器526的比特長度必然為8比特。
相反地,當對應(yīng)于正號和負號的運算交替地執(zhí)行時,在運算的進程中存儲在數(shù)字存儲器526中的值如下第一次運算的存儲值=85
第二次運算的存儲值=85-60=25第三次運算的存儲值=25+53=78第四次運算的存儲值=78-71=7在這種情況下,在加/減部分和的運算進程中的最大值為85。因此,數(shù)字存儲器526的比特長度必然為7比特。也就是,比特長度可以比上述的示例中的小。
(第二十實施例)圖60A和圖60B表示了根據(jù)第二十實施例的神經(jīng)網(wǎng)絡(luò)電路的布置的示例。如圖60A和圖60B所示,作為特性特征,根據(jù)本實施例的神經(jīng)網(wǎng)絡(luò)電路包括第十九實施例中所描述的模擬/數(shù)字混合運算電路以及數(shù)字/脈寬轉(zhuǎn)換電路。
為了執(zhí)行第十九實施例中所描述的非線性轉(zhuǎn)換,查看表電路連接到數(shù)字加減器的下一級。
圖61為表示了本實施例所實現(xiàn)的神經(jīng)網(wǎng)絡(luò)模型的布置的視圖。
首先參考圖61對本實施例的神經(jīng)網(wǎng)絡(luò)模型進行描述。接著,參考圖60A和圖60B對根據(jù)本實施例的神經(jīng)網(wǎng)絡(luò)電路進行描述。
如圖61所示,在本實施例的神經(jīng)網(wǎng)絡(luò)中,多個神經(jīng)元540形成了層級結(jié)構(gòu)。不同層上的神經(jīng)元通過突觸541進行連接。
在本實施例之外,神經(jīng)網(wǎng)絡(luò)可以具有以陣列排列的神經(jīng)元。由于神經(jīng)元之間的連接,兩個神經(jīng)元可以彼此相連。根據(jù)本實施例的神經(jīng)網(wǎng)絡(luò)并不限于其布置或連接方法。除了本實施例中的層級結(jié)構(gòu)可以使用任何其它的結(jié)構(gòu)和連接方法。
下面描述在每一個神經(jīng)元540中進行的運算處理。每一個神經(jīng)元540用突觸權(quán)重對從連接到上一級的多個神經(jīng)元的輸出值進行加權(quán)并且接收該值作為輸入。在神經(jīng)元中,計算輸入值的和。該和接受預(yù)定的轉(zhuǎn)換并且作為輸出值而輸出。在每一個神經(jīng)元中進行的運算處理可以由下式表示y=f(∑ω·x) (20)其中y為輸出值,f為轉(zhuǎn)換函數(shù),ω為突觸權(quán)重,x為上一級的神經(jīng)元的輸出值。
對于轉(zhuǎn)換函數(shù),已經(jīng)提出了各種模型。本實施例使用了由下式給出的普通Sigmoid函數(shù)f(u)={1+exp(-au)}-1(21)其中a為決定了Sigmoid函數(shù)的梯度的參數(shù)。圖34表示了Sigmoid函數(shù)的特性。
根據(jù)本發(fā)明的神經(jīng)網(wǎng)絡(luò)并不限于這個神經(jīng)元的轉(zhuǎn)換方法??梢詰?yīng)用除了本實施例的Sigmoid函數(shù)的任何其它轉(zhuǎn)換函數(shù)。
以下參考圖60A和圖60B描述對根據(jù)本實施例的神經(jīng)網(wǎng)絡(luò)電路進行描述。從圖60A和圖60B中可以看出,本實施例的神經(jīng)網(wǎng)絡(luò)電路包括在第十九實施例中所描述的模擬/數(shù)字混合運算電路的層級結(jié)構(gòu)。
如上所述,在本實施例的運算電路中,查看表電路被連接到加減器的下一級。更確切地,由數(shù)字加減器計算的希望的累積結(jié)果經(jīng)過查看表電路的Sigmoid函數(shù)轉(zhuǎn)換并且被接著保持在數(shù)字存儲器電路中。查看表僅對最后計算的希望的運算結(jié)果執(zhí)行Sigmoid函數(shù)轉(zhuǎn)換。不對累積進程中的數(shù)據(jù)執(zhí)行Sigmoid函數(shù)轉(zhuǎn)換。
因此,圖60A和圖60B顯示了兩種系統(tǒng)一種系統(tǒng)將數(shù)字加減器的輸出輸入到查看表電路,并且另一種系統(tǒng)將數(shù)字加減器的輸出直接輸入到數(shù)字存儲器。
另外,在本實施例所將要描述的模擬/數(shù)字混合運算電路中,為了執(zhí)行層級運算處理,由一層的模擬/數(shù)字混合運算電路計算的運算結(jié)果被輸入到下一層的模擬/數(shù)字混合運算電路。此時,由數(shù)字/脈寬轉(zhuǎn)換電路將保持在數(shù)字存儲器中的運算結(jié)果作為PWM信號讀出。該PWM信號的產(chǎn)生處理與在第十五實施例中所描述的相同。
由每一層的模擬/數(shù)字混合運算電路進行的運算處理與第十九實施例中的相同。對應(yīng)于乘數(shù)值B的模擬電壓Vw被輸入到模擬運算電路,雖然沒有在圖60A和圖60B中表示出來。輸入模擬電壓Vw的步驟與第十九實施例中的相同。
在由本實施例的模擬/數(shù)字混合運算電路進行的運算處理中,在電容器上保持的部分和指的是在每一個神經(jīng)元中關(guān)于到上一級的神經(jīng)元的連接的部分的輸入值的和。最終保持在數(shù)字存儲器上的累積值指的是在每一個神經(jīng)元中所有上一級連接的神經(jīng)元的輸入值的累積值。使用了圖34所示的Sigmoid函數(shù)的非線性轉(zhuǎn)換(Sigmoid轉(zhuǎn)換)通過非線性轉(zhuǎn)換電路(查看表電路)實現(xiàn),如上所述。
圖62A和圖62B表示的是上述的運算處理流。在圖62A和圖62B中的交替的長短虛線指的是運算處理中上一級層和后一級層之間的邊界。
首先,上一級層的計算的希望的累積值由Sigmoid轉(zhuǎn)換進行轉(zhuǎn)換(S95)并且作為數(shù)字值被臨時保持在數(shù)字存儲器中(S91)。接著,執(zhí)行引發(fā)數(shù)字/脈寬轉(zhuǎn)換電路將數(shù)字值轉(zhuǎn)換為PWM信號的步驟S85。在本實施例中,希望的累積值計算之后,由查看表電路僅僅執(zhí)行一次Sigmoid轉(zhuǎn)換(S95)。除了Sigmoid轉(zhuǎn)換步驟S95之外,上一級層中的處理步驟與第十九實施例所描述的運算處理相同。
PWM信號作為輸入信號Ai被輸入到下一級層。與上一級層中的運算處理類似,在下一級層中執(zhí)行的運算處理與第六實施例中所描述的相同,除了由Sigmoid轉(zhuǎn)換步驟S95進行的處理步驟。與第十九實施例中相同的運算處理流的描述將省略。參照62A和62B,多個保留的Ai輸入步驟由虛線箭頭S94表示。
如上所述,在每一個神經(jīng)元中的保持在數(shù)字存儲器中的累積值由數(shù)字/脈寬轉(zhuǎn)換電路作為PWM信號讀出并且輸出到下一層的神經(jīng)元。相應(yīng)地,就可以實現(xiàn)圖61所示的神經(jīng)網(wǎng)絡(luò)模型。本實施例中的神經(jīng)元元素的數(shù)目和層的數(shù)目并不限制根據(jù)本發(fā)明的神經(jīng)網(wǎng)絡(luò)的布置。這些數(shù)目可以根據(jù)需要設(shè)置為任意數(shù)目。
(第二十一實施例)圖63A和圖63B表示了根據(jù)第二十一實施例的圖像信號處理電路的布置示例。如圖63A和圖63B所示,作為特性特征,本實施例的圖像信號處理電路包括第二十實施例所描述的如60A和圖60B所示的神經(jīng)網(wǎng)絡(luò)電路。圖63A和圖63B僅表示了第五實施例所描述的層級結(jié)構(gòu)的第一級而沒有顯示出后面的層。
在神經(jīng)網(wǎng)絡(luò)電路中的模擬/數(shù)字混合運算電路的數(shù)目與在第二十實施例所描述的圖60A和圖60B所示的神經(jīng)網(wǎng)絡(luò)電路中的模擬/數(shù)字混合運算電路的數(shù)目不同。然而,每個模擬/數(shù)字混合運算電路中的運算本身與第二十實施例中的相同。
參考圖63A和圖63B,由于空間有限,因此查看表電路、數(shù)字存儲器以及數(shù)字/脈寬轉(zhuǎn)換電路以集成結(jié)構(gòu)表示。實際的布置和運算處理與第二十實施例(圖60A和圖60B)中的相同。
作為PWM信號輸入到神經(jīng)網(wǎng)絡(luò)電路中的模擬運算電路的信號為作為兩維信號的圖像信號。更確切地,根據(jù)本實施例的圖像信號處理電路的一個目的是通過引發(fā)神經(jīng)網(wǎng)絡(luò)對于輸入的圖像信號執(zhí)行預(yù)定的運算而執(zhí)行希望的圖像處理(例如,圖形檢測和圖形識別)。
將被實際實現(xiàn)的圖像處理的內(nèi)容可以通過適當?shù)卣{(diào)整神經(jīng)網(wǎng)絡(luò)電路的電路參數(shù)及其類似從而實現(xiàn)希望的處理內(nèi)容(例如,圖形檢測和圖形識別)而設(shè)置。詳細的調(diào)整方法并不是本發(fā)明的關(guān)鍵,因此省略對其的描述。
在本實施例中,圖像信號作為PWM信號輸入,該PWM信號通過將對應(yīng)于每個像素的從圖像傳感設(shè)備543(例如,CCD或CMOS圖像傳感器)輸出的信號強度轉(zhuǎn)換為脈沖的時間寬度而獲得。
如果圖像傳感設(shè)備的輸出信號為模擬信號,并且該信號將被轉(zhuǎn)換為PWM信號,如圖63A和圖63所示,則由比較器542對輸入到比較器542的鋸齒電壓波形與從圖像傳感設(shè)備讀出的電壓值進行比較。當在鋸齒電壓波形的開始時提升至高電平的輸出在鋸齒電壓值等于電容器的電壓值時跌落到低電平時,該信號被轉(zhuǎn)換為PWM信號。
如果圖像傳感設(shè)備543的輸出信號為數(shù)字信號,并且該信號將被轉(zhuǎn)換為PWM信號,則該信號通過數(shù)字/脈寬轉(zhuǎn)換電路被轉(zhuǎn)換成PWM信號,如第十五實施例所描述的。該圖像傳感設(shè)備假設(shè)為CCD或CMOS圖像傳感器。可以使用任何其它的圖像傳感設(shè)備只要其能夠接收作為兩維信號的圖像。
下面描述將圖像信號輸入到神經(jīng)網(wǎng)絡(luò)電路中的方法。
神經(jīng)網(wǎng)絡(luò)電路引發(fā)模擬/數(shù)字混合運算電路a和b執(zhí)行對于多個預(yù)定輸入信號的加權(quán)運算,計算它們的累積值以設(shè)置相應(yīng)神經(jīng)元的內(nèi)部狀態(tài)值,并且進一步執(zhí)行非線性轉(zhuǎn)換,如在第二十實施例中所述的。
此時,在本實施例的圖像處理電路中,由交替的長短虛線圍繞起來的模擬/數(shù)字混合運算電路a和b的每一個所處理的多個輸入信號對應(yīng)于具有兩維陣列的圖像傳感設(shè)備543的某些區(qū)域。
更確切地,如圖63A和圖63所示,在模擬/數(shù)字混合運算電路a和b中,其中的圖像信號有待進行非線性轉(zhuǎn)換和加權(quán)運算以及累積值計算的區(qū)域由用虛線圍繞的區(qū)域A和B來指示。來自圖像傳感設(shè)備543的圖像信號被輸出到每一列。
相反地,神經(jīng)網(wǎng)絡(luò)電路中的模擬運算電路可以并行執(zhí)行對于一列中的圖像信號輸出的運算,如在第十五實施例到第二十實施例中所描述的。
因此,神經(jīng)網(wǎng)絡(luò)電路對于來自圖像傳感設(shè)備543的一列的輸出信號的運算結(jié)果對應(yīng)著對應(yīng)于每一個神經(jīng)元的內(nèi)部狀態(tài)值的部分和,如在第十五實施例到第二十實施例中所描述的。
當運算處理重復(fù)等于區(qū)域A和區(qū)域B的列的數(shù)目(在本實施例中為四次)時,就可以計算出對應(yīng)于每一個神經(jīng)元的內(nèi)部狀態(tài)值的累積值。
圖64A和圖64B表示了上述的運算處理流。
首先,執(zhí)行對來自圖像傳感設(shè)備的粗化為一列的圖像信號進行輸入的步驟S115。執(zhí)行引發(fā)例如比較器的電路將輸入的圖像信號轉(zhuǎn)換為PWM信號的步驟S116。接著,PWM信號作為對應(yīng)于Ai的PWM信號被輸入到相乘步驟S103(位于圖64A和圖64B的上側(cè))。
接下來的運算處理流與第二十實施例中的相同,除了運算處理由神經(jīng)網(wǎng)絡(luò)電路對于預(yù)定數(shù)目的層執(zhí)行外(圖64A和圖64B中用虛線框圍起來的部分S100指示著與第二十實施例中相同的運算處理流)。因此省略對于與第二十實施例中相同的運算處理流的描述。在對于預(yù)定數(shù)目的層的運算處理中,該運算處理流重復(fù)預(yù)定數(shù)目次,因此省略對其的描述。
如上所述,當由神經(jīng)網(wǎng)絡(luò)電路進行的運算處理所重復(fù)的次數(shù)等于運算目標的列的數(shù)目時,可以實現(xiàn)希望的運算處理(例如,圖形檢測和圖形識別)。
在上面的描述中,從圖像傳感器輸出的圖像信號對于每一列而執(zhí)行。即使當從圖像傳感設(shè)備輸出的信號對于每一行執(zhí)行時,通過對于每一行的輸出信號并行執(zhí)行神經(jīng)網(wǎng)絡(luò)電路中的運算而執(zhí)行如上所述的相同的處理。
如上所述,當由本實施例的神經(jīng)網(wǎng)絡(luò)進行的運算被應(yīng)用到對于每一列或行輸出的圖像信號時,神經(jīng)元的內(nèi)部狀態(tài)值被作為對于每一列或每一行的部分和而運算,最終的內(nèi)部狀態(tài)值被作為部分和的累積值而計算,并且結(jié)果被非線性地轉(zhuǎn)換,就可以實現(xiàn)希望的運算處理。
由于可以完成本發(fā)明的很多明顯地寬泛地不同的實施例而不與本發(fā)明的精神和范圍相背離,應(yīng)當理解的是本發(fā)明并不限于其特定的實施例,除了在所附權(quán)利要求中有所限定。
優(yōu)先權(quán)請求本申請對于2003年10月16日提交的日本專利申請No.2003-356626以及于2003年10月16日提交的日本專利申請No.2003-356627要求優(yōu)先權(quán),該申請的全部內(nèi)容通過參考在此并入。
權(quán)利要求
1.一種積和運算電路,包括脈寬/數(shù)字轉(zhuǎn)換電路,將具有代表操作數(shù)值的脈寬的脈沖信號轉(zhuǎn)換為數(shù)字信號;排序電路,以大小遞減或遞增的順序,輸出多個由所述脈寬/數(shù)字轉(zhuǎn)換電路轉(zhuǎn)換為數(shù)字信號的操作數(shù)值;乘法電路,將從所述排序電路輸出的每一個操作數(shù)值乘以相應(yīng)的操作數(shù)值;以及累積和電路,計算所述乘法電路的相乘結(jié)果的累積和,其中所述脈寬/數(shù)字轉(zhuǎn)換電路包括計數(shù)器,對時鐘進行計數(shù)并且將計數(shù)值作為數(shù)字信號輸出,以及多個后沿鎖存電路,每一個后沿鎖存電路在輸入脈沖信號的后沿對從所述計數(shù)器輸出的共用計數(shù)值進行鎖存。
2.根據(jù)權(quán)利要求1的積和運算電路,其中所述脈寬/數(shù)字轉(zhuǎn)換電路相應(yīng)于所述多個后沿鎖存電路的每一個,包括前沿鎖存電路,在脈沖信號的前沿鎖存從所述計數(shù)器輸出的計數(shù)值,以及減法電路,對從所述后沿鎖存電路輸出的數(shù)字輸出值以及所述的前沿鎖存電路輸出的數(shù)字輸出值之間的差值進行運算并且輸出。
3.根據(jù)權(quán)利要求1的積和運算電路,其中所述排序電路輸出多個操作數(shù)值中的不小于預(yù)定值的操作數(shù)值。
4.根據(jù)權(quán)利要求1的積和運算電路,其中所述排序電路輸出常數(shù)值以代替多個操作數(shù)值中的小于預(yù)定值的操作數(shù)值。
5.根據(jù)權(quán)利要求1的積和運算電路,其中所述排序電路輸出多個操作數(shù)值中的對應(yīng)于預(yù)定比率的以大小遞減或遞增的順序的操作數(shù)值。
6.根據(jù)權(quán)利要求1的積和運算電路,其中所述排序電路輸出常數(shù)值以代替除了多個操作數(shù)值中的對應(yīng)于預(yù)定比率的以大小遞減或遞增的順序的操作數(shù)值的操作數(shù)值。
7.根據(jù)權(quán)利要求1到6中的任何一個的積和運算電路,進一步包括D/A轉(zhuǎn)換電路,將從所述排序電路輸出的每一個操作數(shù)值作為數(shù)字值而轉(zhuǎn)換為模擬信號并且將該模擬信號提供給所述乘法電路,所述D/A轉(zhuǎn)換電路包括數(shù)字/脈寬轉(zhuǎn)換電路,將每一個數(shù)字操作數(shù)值轉(zhuǎn)換為具有對應(yīng)于操作數(shù)值的脈寬的脈沖信號,所述數(shù)字/脈寬轉(zhuǎn)換電路包括第二計數(shù)器,對時鐘進行計數(shù)并且將計數(shù)值作為數(shù)字信號輸出,以及多個脈沖產(chǎn)生電路,其中的每一個將從所述排序電路輸出的數(shù)字輸入值與從所述第二計數(shù)器輸出的共用計數(shù)值進行比較,并且產(chǎn)生一個以下輸出脈沖信號中的一個,其中一個脈沖輸出信號的時間寬度為從預(yù)定的時間到輸入值與計數(shù)值重合的時間,還有一個脈沖輸出信號的時間寬度為從當通過從預(yù)定最大計數(shù)值中減去輸入值而獲得的值與計數(shù)值重合的時間到計數(shù)值達到最大計數(shù)值的時間。
8.根據(jù)權(quán)利要求7的積和運算電路,其中每一個所述多個脈沖產(chǎn)生電路包括脈寬寄存器,鎖存從所述排序電路的輸入值;定時觸發(fā)產(chǎn)生電路,對由所述脈寬寄存器鎖存的輸入值的每一個比特與從所述第二計數(shù)器輸出的計數(shù)值的每一個比特進行比較并且當比特完全重合時產(chǎn)生觸發(fā),以及輸出脈沖反轉(zhuǎn)電路,在所述定時觸發(fā)產(chǎn)生電路產(chǎn)生觸發(fā)后,對輸出脈沖信號的真值進行反轉(zhuǎn)。
9.根據(jù)權(quán)利要求7的積和運算電路,其中所述多個脈沖產(chǎn)生電路的每一個包括參考值寄存器,鎖存作為代表輸出脈沖前沿的定時的數(shù)字值的參考值;加法電路,輸出參考值和作為從所述排序電路輸入的數(shù)字值的輸入值之和;脈寬寄存器,鎖存從所述加法電路的輸出值;切換電路,有選擇地輸出由所述參考值寄存器鎖存的數(shù)字值以及由所述脈寬寄存器鎖存的數(shù)字值中的一個;定時觸發(fā)產(chǎn)生電路,對從所述切換電路輸出的數(shù)字值的每一個比特與從所述第二計數(shù)器輸出的計數(shù)值的每一個比特進行比較,并且當比特完全重合時產(chǎn)生觸發(fā);以及輸出脈沖反轉(zhuǎn)電路,在所述定時觸發(fā)產(chǎn)生電路產(chǎn)生觸發(fā)后,對輸出脈沖信號的真值進行反轉(zhuǎn);以及所述切換電路執(zhí)行切換以在輸出來自所述輸出脈沖反轉(zhuǎn)電路的具有假值的輸出脈沖之后輸出由所述參考值寄存器鎖存的數(shù)字值,并且在輸出來自所述輸出脈沖反轉(zhuǎn)電路的具有真值的輸出脈沖之后輸出由所述脈寬寄存器鎖存的數(shù)字值。
10.根據(jù)權(quán)利要求1到9的任何一個的積和運算電路,進一步包括多個運算塊,每一個都包括所述的乘法電路和所述的累積和電路。
11.根據(jù)權(quán)利要求10的積和運算電路,其中所述多個運算塊并行執(zhí)行運算。
12.根據(jù)權(quán)利要求10或11的積和運算電路,其中多個操作數(shù)值的每一個都包括標簽,并且每一個操作數(shù)值在對應(yīng)于該標簽的運算塊內(nèi)進行相乘。
13.根據(jù)權(quán)利要求12的積和運算電路,進一步包括切換電路,切換將每一個操作數(shù)值輸入到對應(yīng)于標簽的運算電路中的路徑。
14.根據(jù)權(quán)利要求1到13的任何一個的積和運算電路,其中所述乘法電路執(zhí)行給每一個操作數(shù)值分配一個權(quán)重值的加權(quán)運算。
15.根據(jù)權(quán)利要求1到14的任何一個的積和運算電路,其中多個操作數(shù)值為數(shù)字信號;并且所述排序電路通過使用相聯(lián)存儲器以大小遞減或遞增的順序輸出多個操作數(shù)值。
16.根據(jù)權(quán)利要求1到15的任何一個的積和運算電路,進一步包括信號輸出電路,根據(jù)從所述排序電路的輸出來輸出始終單調(diào)增加或減少的電壓信號到所述乘法電路。
17.根據(jù)權(quán)利要求16的積和運算電路,其中,所述信號輸出電路包括用于用預(yù)定系數(shù)乘以電壓信號的裝置。
18.根據(jù)權(quán)利要求1到17的任何一個的積和運算電路,其中,所述乘法電路接收到作為電壓控制的電流源以及電壓控制的電阻設(shè)備的控制電壓的對應(yīng)于操作數(shù)值的電壓值并且輸出作為電壓值的相乘結(jié)果。
19.一種具有多級神經(jīng)元元素的神經(jīng)網(wǎng)絡(luò),其中每一個神經(jīng)元元素包括根據(jù)權(quán)利要求1到18的任何一個的積和運算電路;所述脈寬/數(shù)字轉(zhuǎn)換電路接收作為操作數(shù)值的來自上一級的神經(jīng)元元素的輸出值;所述乘法電路用作為相應(yīng)操作數(shù)值的突觸權(quán)重乘以每一個操作數(shù)值;并且所述累積和電路計算作為累積和的內(nèi)部狀態(tài)值。
20.一種執(zhí)行積和運算的方法,包括步驟(a)將具有代表操作數(shù)值的脈寬的脈沖信號轉(zhuǎn)換為數(shù)字信號;(b)以大小遞減或遞增的順序,輸出多個轉(zhuǎn)換為數(shù)字信號的操作數(shù)值;(c)用每一個輸出的操作數(shù)值乘以相應(yīng)的操作數(shù)值;并且(d)計算在步驟(c)的乘法結(jié)果的累積和其中步驟(a)包括步驟(a-1)引發(fā)計數(shù)器對時鐘進行計數(shù)并且輸出計數(shù)值作為數(shù)字信號;(a-2)引發(fā)多個后沿鎖存電路在輸入脈沖信號的后沿對從計數(shù)器輸出的共用計數(shù)值進行鎖存。
21.一種運算電路,計算通過并行運算處理得到的運算結(jié)果的累積值,包括多個模擬運算電路,其中每一個執(zhí)行對于由模擬信號表示的信息的運算處理;電容器,累積作為電荷量的由所述多個模擬運算電路進行的運算結(jié)果的和;比較器,將累積在所述電容器上的電荷量轉(zhuǎn)換為具有相應(yīng)脈寬的脈沖信號;脈寬/數(shù)字轉(zhuǎn)換電路,將脈沖信號轉(zhuǎn)換為數(shù)字信號;以及數(shù)字運算電路,根據(jù)轉(zhuǎn)換的數(shù)字信號計算累積值;其中所述的脈寬/數(shù)字轉(zhuǎn)換電路包括計數(shù)器,對時鐘進行計數(shù)并且將計數(shù)值作為數(shù)字信號輸出,以及多個后沿鎖存電路,每一個后沿鎖存電路在輸入脈沖信號的后沿對從所述計數(shù)器輸出的共用計數(shù)值進行鎖存。
22.根據(jù)權(quán)利要求21的運算電路,其中所述脈寬/數(shù)字轉(zhuǎn)換電路相應(yīng)于所述多個后沿鎖存電路的每一個,包括前沿鎖存電路,在脈沖信號的前沿鎖存從所述計數(shù)器輸出的計數(shù)值;以及減法電路,對從所述后沿鎖存電路輸出的數(shù)字輸出值以及所述的前沿鎖存電路輸出的數(shù)字輸出值之間的差值進行運算并且輸出。
23.根據(jù)權(quán)利要求21的運算電路,其中所述數(shù)字運算電路根據(jù)關(guān)于由所述模擬運算電路進行的運算結(jié)果的正/負的信息有選擇地對由所述脈寬/數(shù)字轉(zhuǎn)換電路得到的數(shù)字信號執(zhí)行加法處理和減法處理以計算數(shù)字信號的累積值。
24.根據(jù)權(quán)利要求21到23的任何一個的運算電路,其中所述電容器并行連接所述多個模擬運算電路。
25.根據(jù)權(quán)利要求21到24的任何一個的運算電路,其中所述電容器累積對應(yīng)于根據(jù)輸入模擬信號計算的累積值的部分和的電荷量。
26.根據(jù)權(quán)利要求21到25的任何一個的運算電路,其中所述數(shù)字運算電路每當由所述多個模擬運算電路進行的運算處理結(jié)束時執(zhí)行處理。
27根據(jù)權(quán)利要求21到26的任何一個的運算電路,其中所述模擬運算電路用預(yù)定的權(quán)重值乘以該模擬信號。
28.根據(jù)權(quán)利要求21到26的任何一個的運算電路,其中所述模擬運算電路對于該模擬信號執(zhí)行預(yù)定的非線性轉(zhuǎn)換。
29.根據(jù)權(quán)利要求8的運算電路,其中所述模擬運算電路用預(yù)定的權(quán)重值乘以非線性轉(zhuǎn)換的輸出值。
30.根據(jù)權(quán)利要求21到29的任何一個的運算電路,其中根據(jù)模擬信號計算的累積值等于包括在將模擬信號作為輸入值而接收的神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元的內(nèi)部狀態(tài)值。
31.根據(jù)權(quán)利要求21到30的任何一個的運算電路,其中在所述電容器中累積的電荷量等于包括在將模擬信號作為輸入值而接收的神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元的內(nèi)部狀態(tài)值。
32.根據(jù)權(quán)利要求21到31的任何一個的運算電路,其中該模擬信號是圖像信號,并且所述模擬運算電路對于每一行執(zhí)行圖像信號的運算處理。
33.根據(jù)權(quán)利要求21到32的任何一個的運算電路,進一步包括存儲器,保持數(shù)字數(shù)據(jù);其中所述數(shù)字運算電路將保持在所述存儲器中的數(shù)字數(shù)據(jù)加至轉(zhuǎn)換的數(shù)字信號,并且所述的存儲器保持和,從而計算累積值。
34.根據(jù)權(quán)利要求21到33的任何一個的運算電路,進一步包括存儲器,保持數(shù)字數(shù)據(jù);其中在從所述模擬運算電路輸出正運算結(jié)果后,所述數(shù)字運算電路將保持在所述存儲器中的數(shù)字數(shù)據(jù)加至由所述脈寬/數(shù)字轉(zhuǎn)換電路轉(zhuǎn)換的數(shù)字信號中,并且所述存儲器保持和;以及在從所述模擬運算電路輸出負運算結(jié)果后,所述數(shù)字運算電路從保持在所述存儲器中的數(shù)字數(shù)據(jù)中減去由所述脈寬/數(shù)字轉(zhuǎn)換電路轉(zhuǎn)換的數(shù)字信號,并且所述存儲器保持差值以計算累積值。
35.根據(jù)權(quán)利要求23的運算電路,其中所述數(shù)字運算電路交替執(zhí)行加法運算和減法運算。
36.根據(jù)權(quán)利要求21到35的任何一個的運算電路,進一步包括D/A轉(zhuǎn)換電路,將輸入數(shù)字信號轉(zhuǎn)換為模擬信號并且將該模擬信號提供給所述多個模擬運算電路,所述D/A轉(zhuǎn)換電路包括數(shù)字/脈寬轉(zhuǎn)換電路,將數(shù)字信號轉(zhuǎn)換為具有對應(yīng)于數(shù)字信號值的脈寬的脈沖信號,所述數(shù)字/脈寬轉(zhuǎn)換電路包括第二計數(shù)器,對時鐘進行計數(shù)并且將計數(shù)值作為數(shù)字信號輸出,以及多個脈沖產(chǎn)生電路,其中的每一個將數(shù)字輸入值與從所述第二計數(shù)器輸出的共用計數(shù)值進行比較,并且產(chǎn)生一個以下輸出脈沖信號中的一個,其中一個輸出脈沖信號的時間寬度為從預(yù)定的時間到輸入值與計數(shù)值重合的時間,還有一個輸出脈沖信號的時間寬度為從當通過從預(yù)定最大計數(shù)值中減去輸入值而獲得的值與計數(shù)值重合的時間到計數(shù)值達到最大計數(shù)值的時間。
37.根據(jù)權(quán)利要求36的運算電路,其中所述多個脈沖產(chǎn)生電路中的每個脈沖產(chǎn)生電路包括脈寬寄存器,鎖存輸入值;定時觸發(fā)產(chǎn)生電路,對由所述脈寬寄存器鎖存的輸入值的每一個比特與從所述第二計數(shù)器輸出的計數(shù)值的每一個比特進行比較,并且當比特完全重合時產(chǎn)生觸發(fā);以及輸出脈沖反轉(zhuǎn)電路,在所述定時觸發(fā)產(chǎn)生電路產(chǎn)生觸發(fā)后,對輸出脈沖信號的真值進行反轉(zhuǎn)。
38.根據(jù)權(quán)利要求36的運算電路,其中所述多個脈沖產(chǎn)生電路的每一個包括參考值寄存器,鎖存作為代表輸出脈沖前沿的定時的數(shù)字值的參考值;加法電路,輸出參考值和作為輸入數(shù)字值的輸入值之和;脈寬寄存器,鎖存所述加法電路的輸出值;切換電路,有選擇地輸出由所述參考值寄存器鎖存的數(shù)字值以及由所述脈寬寄存器鎖存的數(shù)字值中的一個;定時觸發(fā)產(chǎn)生電路,對從所述切換電路輸出的數(shù)字值的每一個比特與從所述第二計數(shù)器輸出的計數(shù)值的每一個比特進行比較,并且當比特完全重合時產(chǎn)生觸發(fā);以及輸出脈沖反轉(zhuǎn)電路,在所述定時觸發(fā)產(chǎn)生電路產(chǎn)生觸發(fā)后,對輸出脈沖信號的真值進行反轉(zhuǎn);以及所述切換電路執(zhí)行切換以在輸出來自所述輸出脈沖反轉(zhuǎn)電路的具有假值的輸出脈沖之后輸出由所述參考值寄存器鎖存的數(shù)字值,并且在輸出來自所述輸出脈沖反轉(zhuǎn)電路的具有真值的輸出脈沖之后輸出由所述脈寬寄存器鎖存的數(shù)字值。
39.根據(jù)權(quán)利要求36到38的運算電路,進一步包括電流源電路,由來自所述數(shù)字/脈寬轉(zhuǎn)換電路的輸出脈沖信號進行控制;以及第二電容器,累積來自所述電流源電路的電荷。
40.一種運算控制方法,該方法用于計算通過并行運算處理得到的運算結(jié)果的累積值的運算電路,包括步驟(a)引發(fā)多個模擬運算電路,執(zhí)行對于由模擬信號表示的信息的運算處理;(b)引發(fā)電容器累積作為電荷量的運算處理的結(jié)果的和;(c)將累積在電容器上的電荷量轉(zhuǎn)換為具有相應(yīng)脈寬的脈沖信號;(d)將脈沖信號轉(zhuǎn)換為數(shù)字信號;以及(e)根據(jù)轉(zhuǎn)換的數(shù)字信號計算累積值;其中步驟(d)包括步驟(d-1)引發(fā)計數(shù)器對時鐘進行計數(shù)并且將計數(shù)值作為數(shù)字信號輸出,以及(d-2)引發(fā)多個后沿鎖存電路,在輸入脈沖信號的后沿對從所述計數(shù)器輸出的共用計數(shù)值進行鎖存。
全文摘要
一種積和運算電路包括脈寬/數(shù)字轉(zhuǎn)換電路(9),將具有代表操作數(shù)值的脈寬的脈沖信號轉(zhuǎn)換為數(shù)字信號;排序電路(4),將由該脈寬/數(shù)字轉(zhuǎn)換電路(9)轉(zhuǎn)換為數(shù)字信號的多個操作數(shù)值Xi以大小遞減或遞增的順序輸出;以及累積和電路(1),用相應(yīng)的操作數(shù)值Wi乘以從排序電路(4)輸出的每一個操作數(shù)值并且計算相乘結(jié)果的累積和。該脈寬/數(shù)字轉(zhuǎn)換電路(9)包括計數(shù)器(10),對時鐘進行計數(shù)并將計數(shù)值作為數(shù)字信號輸出,以及n個后沿鎖存電路(11-0-11-(n-1)),其中的每一個在輸入脈沖信號的后沿鎖存從計數(shù)器輸出的共用計數(shù)值。
文檔編號H03M5/00GK1867888SQ20048003026
公開日2006年11月22日 申請日期2004年10月14日 優(yōu)先權(quán)日2003年10月16日
發(fā)明者野村修, 森江隆, 中野鐵平 申請人:佳能株式會社