本發(fā)明涉及數(shù)字邏輯控制技術(shù)領(lǐng)域,特別是涉及一種通用伺服控制算術(shù)邏輯單元。
背景技術(shù):
FPGA(Field-Programmable GateArray),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。
在工業(yè)控制領(lǐng)域,F(xiàn)PGA是伺服控制算法常見的實(shí)現(xiàn)方法,其具有性能高、算法實(shí)現(xiàn)靈活等特性,但是不同的算法需要設(shè)計(jì)不同的FPGA實(shí)現(xiàn)架構(gòu),開發(fā)周期和難度都比較大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種通用伺服控制算術(shù)邏輯單元,可在無(wú)需二次開發(fā)的基礎(chǔ)上實(shí)現(xiàn)更多的伺服控制算法。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:提供一種通用伺服控制算術(shù)邏輯單元,包括預(yù)加器、預(yù)調(diào)器B、預(yù)調(diào)器C、乘法器、復(fù)用器X、復(fù)用器Y、累加器和移位器,所述預(yù)加器的輸入端連接有兩個(gè)輸入信號(hào),用于對(duì)輸入的信號(hào)進(jìn)行加法或減法運(yùn)算,輸出端與乘法器的第一輸入端相連,所述預(yù)調(diào)器B的輸入端連接有一個(gè)輸入信號(hào),用于對(duì)輸入的信號(hào)進(jìn)行預(yù)先調(diào)整,輸出端與所述乘法器的第二輸入端相連;所述乘法器用于對(duì)輸入的信號(hào)進(jìn)行乘法運(yùn)算;所述乘法器的輸出端與所述復(fù)用器X的M端相連;所述預(yù)調(diào)器C的輸入端連接有一個(gè)輸入信號(hào),輸出端與所述復(fù)用器Y的CRG端相連;所述復(fù)用器X與復(fù)用器Y的輸出端與累加器相連,用于選擇累加器的輸入信號(hào);所述累加器的輸出端經(jīng)過(guò)累加復(fù)用器與所述移位器相連;所述復(fù)用器X的LMT端限值器的輸出端相連,所述限值器的兩個(gè)輸入端分別與累加器的輸出端和復(fù)用器Y的CRG端相連,所述累加器的輸出端還與復(fù)用器Y的ALU端相連;所述預(yù)加器、復(fù)用器X、復(fù)用器Y、限值器和累加復(fù)用器的信號(hào)控制端與用于對(duì)模式控制信號(hào)做延時(shí)調(diào)整的模式信號(hào)調(diào)整器相應(yīng)的輸出端相連,通過(guò)控制模式信號(hào)調(diào)整器輸出的控制信號(hào)使得輸出信號(hào)和輸入信號(hào)的配置關(guān)系為多種。
所述輸出信號(hào)和輸入信號(hào)的配置關(guān)系為7種,具體為:其中,A和D為預(yù)加器的輸入信號(hào),B為預(yù)調(diào)器B的輸入信號(hào),C為預(yù)調(diào)器C的輸入信號(hào),P為輸出信號(hào),ALU為累加器的輸出信號(hào),LMT為限值器的輸出信號(hào),S為移位器的移位值。
所述預(yù)加器包括寄存器A、寄存器D、加法器和寄存器AD,所述寄存器A的輸入端與一個(gè)輸入信號(hào)相連,寄存器D的輸入端與另一個(gè)輸入信號(hào)相連,所述寄存器A和寄存器B的輸出端分別與加法器的兩個(gè)輸入端相連,所述加法器的輸出端與寄存器AD的輸入端相連。
所述預(yù)調(diào)器B包括寄存器B1、寄存器B2和復(fù)用器B,所述寄存器B1的輸出端分為兩路,一路直接與復(fù)用器B的一個(gè)輸入端相連,另一路通過(guò)一個(gè)反相器與所述復(fù)用器B的另一個(gè)輸入端,所述復(fù)用器B的輸出端與寄存器B2相連。
所述預(yù)調(diào)器C包括寄存器C1、寄存器C2、寄存器C3和復(fù)用器C,所述寄存器C1的輸出端分為兩路,一路直接與復(fù)用器C的一個(gè)輸入端相連,另一路通過(guò)一個(gè)反相器與所述復(fù)用器C的另一個(gè)輸入端,所述復(fù)用器C的輸出端依次與寄存器C2和寄存器C3相連。
所述限值器將所述預(yù)調(diào)器C的輸出作為最大限制值,累加器的輸出與所述最大限制值進(jìn)行比較,決定所述限值器的輸出為最大限制值還是累加器的輸出值。
所述移位器包括復(fù)用器S、復(fù)用器DIR、寄存器S、飽和器和移位模塊,所述復(fù)用器S與模式信號(hào)調(diào)整器相連,所述模式信號(hào)調(diào)制器的移位值控制信號(hào)端的位數(shù)位分為兩路,一路直接與復(fù)用器S的一個(gè)輸入端相連,另一路通過(guò)一個(gè)反相器與所述復(fù)用器S的另一個(gè)輸入端相連,所述模式信號(hào)調(diào)制器的移位值控制信號(hào)端的符號(hào)位與所述復(fù)用器S的控制端相連;所述復(fù)用器S的輸出端經(jīng)過(guò)寄存器S后與移位模塊相連,所述移位模塊的輸出的兩個(gè)輸出端分別與復(fù)用器DIR的兩個(gè)輸入端相連,所述復(fù)用器DIR的控制端與所述模式信號(hào)調(diào)制器的移位值控制信號(hào)端的符號(hào)位相連,所述復(fù)用器DIR的輸出端與飽和器相連。
所述模式信號(hào)調(diào)整器共分五路,分別為限值器模式控制信號(hào)、輸入模式控制信號(hào)、算術(shù)模式控制信號(hào)、累加器模式控制信號(hào)和移位值控制信號(hào);所述限值器模式控制信號(hào)經(jīng)過(guò)五個(gè)寄存器延時(shí)調(diào)整,與限值器中的寄存器同步;所述輸入模式控制信號(hào)經(jīng)過(guò)一個(gè)寄存器延時(shí)調(diào)整,與預(yù)加器中的加法器、預(yù)調(diào)器B中的復(fù)用器B和預(yù)調(diào)器C中的復(fù)用器C同步;所述算術(shù)模式控制信號(hào)經(jīng)過(guò)三個(gè)寄存器延時(shí)調(diào)整,與復(fù)用器X和復(fù)用器Y同步;所述累加器模式控制信號(hào)經(jīng)過(guò)五個(gè)寄存器延時(shí)調(diào)整,與累加復(fù)用器同步;所述移位值控制信號(hào)經(jīng)過(guò)四個(gè)寄存器延時(shí)調(diào)整,與移位器中的復(fù)用器S同步。
有益效果
由于采用了上述的技術(shù)方案,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下的優(yōu)點(diǎn)和積極效果:本發(fā)明主要由預(yù)加器、預(yù)調(diào)器、乘法器、累加器、限值器、移位器、飽和器、模式信號(hào)調(diào)整器、復(fù)用器和若干寄存器組成,通過(guò)模式控制信號(hào)使得輸出信號(hào)和輸入信號(hào)的關(guān)系可配置成7種,從而在無(wú)需二次開發(fā)的基礎(chǔ)上實(shí)現(xiàn)更多的伺服控制算法,縮短FPGA實(shí)現(xiàn)的開發(fā)周期。
附圖說(shuō)明
圖1是本發(fā)明的結(jié)構(gòu)示意圖;
圖2是本發(fā)明中預(yù)加器的結(jié)構(gòu)示意圖;
圖3是本發(fā)明中預(yù)調(diào)器B的結(jié)構(gòu)示意圖;
圖4是本發(fā)明中預(yù)調(diào)器C的結(jié)構(gòu)示意圖;
圖5是本發(fā)明中限值器的結(jié)構(gòu)示意圖;
圖6是本發(fā)明中移位器的結(jié)構(gòu)示意圖;
圖7是本發(fā)明中模式信號(hào)調(diào)整器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例,進(jìn)一步闡述本發(fā)明。應(yīng)理解,這些實(shí)施例僅用于說(shuō)明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對(duì)本發(fā)明作各種改動(dòng)或修改,這些等價(jià)形式同樣落于本申請(qǐng)所附權(quán)利要求書所限定的范圍。
本發(fā)明的實(shí)施方式涉及一種通用伺服控制算術(shù)邏輯單元,如圖1所示,包括預(yù)加器、預(yù)調(diào)器B、預(yù)調(diào)器C、乘法器、復(fù)用器X、復(fù)用器Y、累加器和移位器,所述預(yù)加器的輸入端連接有兩個(gè)輸入信號(hào),用于對(duì)輸入的信號(hào)進(jìn)行加法或減法運(yùn)算,輸出端與乘法器的第一輸入端相連,所述預(yù)調(diào)器B的輸入端連接有一個(gè)輸入信號(hào),用于對(duì)輸入的信號(hào)進(jìn)行預(yù)先調(diào)整,輸出端與所述乘法器的第二輸入端相連;所述乘法器用于對(duì)輸入的信號(hào)進(jìn)行乘法運(yùn)算;所述乘法器的輸出端與所述復(fù)用器X的M端相連;所述預(yù)調(diào)器C的輸入端連接有一個(gè)輸入信號(hào),輸出端與所述復(fù)用器Y的CRG端相連;所述復(fù)用器X與復(fù)用器Y的輸出端與累加器相連,用于選擇累加器的輸入信號(hào);所述累加器的輸出端經(jīng)過(guò)累加復(fù)用器與所述移位器相連;所述復(fù)用器X的LMT端限值器的輸出端相連,所述限值器的兩個(gè)輸入端分別與累加器的輸出端和復(fù)用器Y的CRG端相連,所述累加器的輸出端還與復(fù)用器Y的ALU端相連;所述預(yù)加器、復(fù)用器X、復(fù)用器Y、限值器和累加復(fù)用器的信號(hào)控制端與用于對(duì)模式控制信號(hào)做延時(shí)調(diào)整的模式信號(hào)調(diào)整器相應(yīng)的輸出端相連,通過(guò)控制模式信號(hào)調(diào)整器輸出的控制信號(hào)使得輸出信號(hào)和輸入信號(hào)的配置關(guān)系為7種,具體為:
其中,A和D為預(yù)加器的輸入信號(hào),B為預(yù)調(diào)器B的輸入信號(hào),C為預(yù)調(diào)器C的輸入信號(hào),ALU為累加器的輸出信號(hào),LMT為限值器的輸出信號(hào),S為移位器的移位值。
預(yù)加器用于在乘法器之前預(yù)先計(jì)算的加法模塊,如圖2所示,所述預(yù)加器包括寄存器A、寄存器D、加法器和寄存器AD,所述寄存器A的輸入端與一個(gè)輸入信號(hào)相連,寄存器D的輸入端與另一個(gè)輸入信號(hào)相連,所述寄存器A和寄存器B的輸出端分別與加法器的兩個(gè)輸入端相連,所述加法器的輸出端與寄存器AD的輸入端相連。輸入信號(hào)A和D的數(shù)據(jù)寬度是16比特,首先分別經(jīng)過(guò)寄存器A和D進(jìn)行數(shù)據(jù)寄存,然后經(jīng)過(guò)加法器進(jìn)行加法或者減法計(jì)算,通過(guò)模式控制信號(hào)INMODE的第0比特選擇,關(guān)系如表1所示,計(jì)算得到結(jié)果M為17比特?cái)?shù)據(jù),最后通過(guò)寄存器AD進(jìn)行寄存后輸出至下一級(jí)。
表1
預(yù)調(diào)器B用于對(duì)輸入信號(hào)B進(jìn)行預(yù)先調(diào)整,如圖3所示,所述預(yù)調(diào)器B包括寄存器B1、寄存器B2和復(fù)用器B,所述寄存器B1的輸出端分為兩路,一路直接與復(fù)用器B的一個(gè)輸入端相連,另一路通過(guò)一個(gè)反相器與所述復(fù)用器B的另一個(gè)輸入端,所述復(fù)用器B的輸出端與寄存器B2相連。輸入信號(hào)B的數(shù)據(jù)寬度是16比特,首先經(jīng)過(guò)復(fù)用器B選擇輸出信號(hào)B的原值或者相反值,通過(guò)模式控制信號(hào)INMODE的第1比特選擇,關(guān)系如表2所示,選擇結(jié)果最后經(jīng)過(guò)寄存器B2進(jìn)行數(shù)據(jù)寄存后輸出至下一級(jí)。
表2
預(yù)調(diào)器C用于對(duì)輸入信號(hào)C進(jìn)行預(yù)先調(diào)整,如圖4所示,所述預(yù)調(diào)器C包括寄存器C1、寄存器C2、寄存器C3和復(fù)用器C,所述寄存器C1的輸出端分為兩路,一路直接與復(fù)用器C的一個(gè)輸入端相連,另一路通過(guò)一個(gè)反相器與所述復(fù)用器C的另一個(gè)輸入端,所述復(fù)用器C的輸出端依次與寄存器C2和寄存器C3相連。輸入信號(hào)C的數(shù)據(jù)寬度是48比特,首先經(jīng)過(guò)復(fù)用器C選擇輸出信號(hào)C的原值或者相反值,通過(guò)模式控制信號(hào)INMODE的第2比特選擇,關(guān)系如表3所示,選擇結(jié)果最后經(jīng)過(guò)兩級(jí)寄存器C2和C3進(jìn)行數(shù)據(jù)寄存后輸出至下一級(jí)。
表3
乘法器對(duì)預(yù)加器和預(yù)調(diào)器B的輸出進(jìn)行乘法計(jì)算,其結(jié)構(gòu)如圖1所示,由乘法模塊、寄存器M和移位器組成。預(yù)加器和預(yù)調(diào)器B的輸出分別為17比特和16比特的數(shù)據(jù),經(jīng)過(guò)乘法計(jì)算后得到33比特的數(shù)據(jù)結(jié)果,在寄存器M中進(jìn)行數(shù)據(jù)寄存,經(jīng)過(guò)移位模塊對(duì)數(shù)據(jù)向左移一位后輸出至下一級(jí)。
復(fù)用器X和復(fù)用器Y用于選擇累加器的輸入信號(hào),如圖1所示,通過(guò)模式控制信號(hào)OPMODE選擇,關(guān)系如表4和表5中所示,其中LMT是限值器的輸出,ALU是累加器的輸出。復(fù)用器X和復(fù)用器Y的輸出經(jīng)過(guò)寄存器X和寄存器Y進(jìn)行數(shù)據(jù)寄存后,在累加器中執(zhí)行加法計(jì)算,得到結(jié)果經(jīng)過(guò)寄存器ALU寄存后輸出至下一級(jí)。
表4
表5
所述限值器將所述預(yù)調(diào)器C的輸出作為最大限制值,累加器的輸出與所述最大限制值進(jìn)行比較,決定所述限值器的輸出為最大限制值還是累加器的輸出值。由此可見,限值器是用于限制累加器的輸出值的大小,其關(guān)系如式所示,其中ALU為累加器的輸出,L為最大限制值,LMT為限值器的輸出。限值器的結(jié)構(gòu)如圖5所示,由最大值比較、最小值比較、寄存器CMP、寄存器DAT、寄存器L、復(fù)用器L1和復(fù)用器L2組成。
移位器用于移位操作,如圖6所示,所述移位器包括復(fù)用器S、復(fù)用器DIR、寄存器S、飽和器和移位模塊,所述復(fù)用器S與模式信號(hào)調(diào)整器相連,所述模式信號(hào)調(diào)制器的移位值控制信號(hào)端的位數(shù)位分為兩路,一路直接與復(fù)用器S的一個(gè)輸入端相連,另一路通過(guò)一個(gè)反相器與所述復(fù)用器S的另一個(gè)輸入端相連,所述模式信號(hào)調(diào)制器的移位值控制信號(hào)端的符號(hào)位與所述復(fù)用器S的控制端相連;所述復(fù)用器S的輸出端經(jīng)過(guò)寄存器S后與移位模塊相連,所述移位模塊的輸出的兩個(gè)輸出端分別與復(fù)用器DIR的兩個(gè)輸入端相連,所述復(fù)用器DIR的控制端與所述模式信號(hào)調(diào)制器的移位值控制信號(hào)端的符號(hào)位相連,所述復(fù)用器DIR的輸出端與飽和器相連。圖中移位值S為2比特,第1比特是符號(hào)位,決定向左移位或者向右移位,第0比特位決定移位的位數(shù)。復(fù)用器ALU的輸出進(jìn)行移位操作后,經(jīng)過(guò)飽和器判斷是否有數(shù)據(jù)溢出的情況,最后輸出至下一級(jí)。
模式信號(hào)調(diào)整器用于對(duì)模式控制信號(hào)做延時(shí)調(diào)整,通過(guò)插入寄存器組,使各模式控制信號(hào)與各模塊中的其它信號(hào)同步,如圖7所示,所述模式信號(hào)調(diào)整器共分五路,分別為限值器模式控制信號(hào)、輸入模式控制信號(hào)、算術(shù)模式控制信號(hào)、累加器模式控制信號(hào)和移位值控制信號(hào);所述限值器模式控制信號(hào)經(jīng)過(guò)五個(gè)寄存器延時(shí)調(diào)整,與限值器中的寄存器DAT同步;所述輸入模式控制信號(hào)經(jīng)過(guò)一個(gè)寄存器延時(shí)調(diào)整,與預(yù)加器中的加法器、預(yù)調(diào)器B中的復(fù)用器B和預(yù)調(diào)器C中的復(fù)用器C同步;所述算術(shù)模式控制信號(hào)經(jīng)過(guò)三個(gè)寄存器延時(shí)調(diào)整,與復(fù)用器X和復(fù)用器Y同步;所述累加器模式控制信號(hào)經(jīng)過(guò)五個(gè)寄存器延時(shí)調(diào)整,與累加復(fù)用器同步;所述移位值控制信號(hào)經(jīng)過(guò)四個(gè)寄存器延時(shí)調(diào)整,與移位器中的復(fù)用器S同步。