本發(fā)明涉及FPGA(Field Programmable Gate Array,可編程邏輯器件)技術領域,尤其涉及一種寬位累加器電路及其設計方法、可編程邏輯器件。
背景技術:
累加器,在運算器中,是專門可用來存放算術或邏輯運算的一個操作數(shù)和運算結(jié)果的寄存器,能進行加、減、讀出、移位、循環(huán)移位和求補等操作,是運算器的主要組成部分。在數(shù)字系統(tǒng)中也有著廣泛的應用,是諸多數(shù)字系統(tǒng)數(shù)據(jù)通路中的重要運算部件,尤其是在高性能微處理器、數(shù)字信號處理器、圖形圖像系統(tǒng)、科學計算以及某些特定數(shù)據(jù)處理設備中更是不可或缺的組成部分,有著舉足輕重的地位,常常會成為系統(tǒng)性能的瓶頸。
目前,在現(xiàn)有的FPGA中DSP(Digital Signal Processor,數(shù)字信號處理器)內(nèi)嵌有累加器功能,但是DSP內(nèi)嵌的累加器都是固定的,在實際應用中,若需求寬位累加器時,則需要借助DSP外部資源配置來進行實現(xiàn),這會消耗大量FPGA的繞線資源,同時因為DSP外部繞線長度增加,會增大寄存器到DSP的延遲,從而會影響實現(xiàn)累加器的最高時鐘頻率。
因此,本領域技術人員亟待提供一種寬位累加器,以解決現(xiàn)有的寬位累加器需要通過借助外部配置資源實現(xiàn)的技術問題。
技術實現(xiàn)要素:
本發(fā)明提供了一種寬位累加器電路及其設計方法、可編程邏輯器件,以解決現(xiàn)有累加器需要借助DSP外部電路配置資源才能實現(xiàn)的技術問題。
為解決上述技術問題,本發(fā)明提供了一種寬位累加器電路,包括:第一輸入端A、第二輸入端B、第三輸入端C、第四輸入端PI、第一輸出端P0、第一加法器以及與所述第一輸入端A、第二輸入端B及第三輸入端C連接的第一支路、與所述第四輸入端PI連接的第二支路、與所述第一輸出端P0連接的第三支路,所述第一加法器將所述第一支路的輸出結(jié)果與所述第二支路的輸出結(jié)果進行運算,通過所述第三支路輸出第一并行數(shù)據(jù);
所述第一支路包括乘法器和第一選擇器,所述乘法器用于將所述第一輸入端A和第二輸入端B輸入的數(shù)據(jù)進行乘法運算,得到第一運算數(shù)據(jù),并輸出至所述第一選擇器,所述第一選擇器根據(jù)第一選擇信號sel0從所述第一運算數(shù)據(jù)和所述第三輸入端C輸入的數(shù)據(jù)兩個數(shù)據(jù)中選擇一個數(shù)據(jù)輸出至所述第一加法器;
所述第二支路包括第二選擇器,所述第二選擇器用于根據(jù)第二選擇信號sel1從所述第四輸入端PI輸入的至少三個數(shù)據(jù)中選擇一個數(shù)據(jù)輸出至所述第一加法器;
所述第三支路包括第一輸出寄存器preg1,所述第一輸出寄存器preg1的輸入端與所述第一加法器的輸出端連接,所述第一輸出寄存器preg1的輸出端與所述第一輸出端P0連接,用于輸出第一并行數(shù)據(jù)。
進一步的,所述寬位累加器電路還包括第四支路,所述第四支路與所述第一加法器的輸出端連接,用于將所述第一加法器輸出的第一輸出級聯(lián)數(shù)據(jù)進行運算,輸出第二并行數(shù)據(jù)。
進一步的,所述第四支路包括第三選擇器、第二加法器、第二輸出寄存器preg2以及與所述第二輸出寄存器preg2連接的第二輸出端P1,所述第三選擇器根據(jù)第三選擇信號sel2選擇由所述第一輸出級聯(lián)數(shù)據(jù)經(jīng)過右移M位得到的級聯(lián)數(shù)據(jù)輸出至所述第二加法器,所述第二加法器將所述第三選擇器輸出的右移M位得到的級聯(lián)數(shù)據(jù)與所述第二輸出寄存器preg2輸出的數(shù)據(jù)進行加法運算,并輸出至所述第二輸出寄存器preg2。
進一步的,若所述第四輸入端PI輸入的至少三個數(shù)據(jù)包括:由第一輸入級聯(lián)數(shù)據(jù)右移M位得到的級聯(lián)數(shù)據(jù)、所述第一輸出寄存器preg1輸出的數(shù)據(jù)以及所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)三個數(shù)據(jù)時,所述第二選擇器為三選一選擇器,所述三選一選擇器根據(jù)第二選擇信號sel1從該三個數(shù)據(jù)中選擇一個輸出給所述第一加法器。
進一步的,當所述第一選擇信號sel0為所述第一運算數(shù)據(jù)的選擇信號,所述第二選擇信號sel1為所述第一輸出寄存器preg1輸出的數(shù)據(jù)的選擇信號時,所述第一加法器將所述第一運算數(shù)據(jù)與所述第一輸出寄存器preg1輸出的數(shù)據(jù)進行加法運算,輸出運算結(jié)果至所述第一輸出寄存器preg1,得到第一并行數(shù)據(jù)。
進一步的,當所述第一選擇信號sel0為所述第一運算數(shù)據(jù)的選擇信號,所述第二選擇信號sel1為所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)的選擇信號時,所述第一加法器將所述第一運算數(shù)據(jù)與所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)進行加法運算,輸出運算結(jié)果至所述第一輸出寄存器preg1,得到第三并行數(shù)據(jù)。
進一步的,當所述第一選擇信號sel0為所述第一運算數(shù)據(jù)的選擇信號,所述第二選擇信號sel1為所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)的選擇信號,所述第三選擇信號sel2為由所述第一輸出級聯(lián)數(shù)據(jù)經(jīng)過右移M位得到的級聯(lián)數(shù)據(jù)的選擇信號時,所述第一加法器將所述第一運算數(shù)據(jù)與所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)進行加法運算,所述第一加法器根據(jù)運算結(jié)果輸出第一輸出級聯(lián)數(shù)據(jù)至所述第三選擇器,所述第三選擇器與所述第二加法器連接,將經(jīng)過右移M位得到的第一輸出級聯(lián)數(shù)據(jù)輸出至所述第二加法器,所述第二加法器將所述右移M位得到的第一輸出級聯(lián)數(shù)據(jù)與所述第二輸出寄存器preg2輸出的數(shù)據(jù)進行加法運算,輸出運算結(jié)果至所述第二輸出寄存器preg2,得到第四并行數(shù)據(jù)。
為了解決上述技術問題,本發(fā)明還提供了一種可編程邏輯器件,包括如上所述的寬位累加器電路。
為了解決上述技術問題,本發(fā)明還提供了一種寬位累加器電路設計方法,所述寬位累加器電路包括第一支路、第二支路、第一輸出寄存器preg1、與所述第一輸出寄存器preg1連接的第一輸出端P0和第一加法器,其特征在于,所述方法包括:
在所述第一支路上設置乘法器和第一選擇器,所述乘法器將第一輸入端A和第二輸入端B輸入的數(shù)據(jù)進行乘法運算得到的第一運算數(shù)據(jù)輸出至所述第一選擇器,所述第一選擇器根據(jù)第一選擇信號sel0從所述第一運算數(shù)據(jù)和第三輸入端C輸入的數(shù)據(jù)兩個數(shù)據(jù)中選擇一個數(shù)據(jù)輸出至所述第一加法器;
在所述第二支路上設置第二選擇器,其中所述第二選擇器為三選一選擇器,所述第二選擇器用于根據(jù)第二選擇信號sel1從第四輸入端PI輸入的至少三個數(shù)據(jù)中選擇一個數(shù)據(jù)輸出至所述第一加法器,所述第一加法器將根據(jù)所述第一選擇器輸出的數(shù)據(jù)與所述第二選擇器輸出的數(shù)據(jù)進行運算,通過所述第一輸出寄存器preg1輸出第一并行數(shù)據(jù);
在所述第一加法器的輸出端上設置第四支路,所述第四支路與所述第一加法器的輸出端連接,用于將所述第一加法器輸出的第一輸出級聯(lián)數(shù)據(jù)進行運算,輸出第二并行數(shù)據(jù)。
進一步的,所述在所述第一加法器和所述第一輸出寄存器preg1之間設置第四支路包括:在所述第一加法器的輸出端上設置第三選擇器、第二加法器、第二輸出寄存器preg2以及與所述第二輸出寄存器preg2連接的第二輸出端P1,所述第三選擇器根據(jù)第三選擇信號sel2選擇由所述第一輸出級聯(lián)數(shù)據(jù)經(jīng)過右移M位得到的級聯(lián)數(shù)據(jù)輸出至所述第二加法器,所述第二加法器將所述第三選擇器輸出的右移M位得到的級聯(lián)數(shù)據(jù)與所述第二輸出寄存器preg2輸出的數(shù)據(jù)進行加法運算,并輸出至所述第二輸出寄存器preg2,所述第二輸出寄存器preg2輸出第二并行數(shù)據(jù)。
本發(fā)明的有益效果是:
本發(fā)明提供了一種寬位累加器電路及其設計方法、可編程邏輯器件,直接通過配置可實現(xiàn)寬位累加器能節(jié)省數(shù)字邏輯處理模塊外的FPGA繞線資源和寄存器資源;進一步的,可通過硬核直接配置支持寬位累加器功能,節(jié)省軟IP資源;進一步地,通過硬核配置可直接實現(xiàn)的寬位累加器,不需要通過外部的寄存器和繞線,減少寄存器輸出到邏輯運算單元之間的延時,使其時序性能優(yōu)于通過軟IP實現(xiàn)的累加器。
附圖說明
圖1為本發(fā)明第一實施例提供的寬位累加器電路的電路連接示意圖;
圖2為本發(fā)明第一實施例提供的2個級聯(lián)輸出的寬位累加器電路的電路連接示意圖;
圖3為本發(fā)明第一實施例提供的輸出最大位寬48比特的寬位累加器電路的電路連接示意圖;
圖4為本發(fā)明第一實施例提供的輸出最大位寬66比特的寬位累加器電路的電路連接示意圖;
圖5為本發(fā)明第二實施例提供的寬位累加器電路的設計方法流程圖。
具體實施方式
下面通過具體實施方式結(jié)合附圖對本發(fā)明提出的方案作進一步詳細說明。
第一實施例:
請參見圖1,圖1為本發(fā)明第一實施例提供的寬位累加器電路的電路連接示意圖,由圖1可知,在本實施例中,本發(fā)明提供的寬位累加器電路包括:第一輸入端A、第二輸入端B、第三輸入端C、第四輸入端PI、第一輸出端P0、第一加法器adder0以及與所述第一輸入端A、第二輸入端B以及第三輸入端C連接的第一支路、與所述第四輸入端PI連接的第二支路、與所述第一輸出端P0連接的第三支路,其中,第一加法器adder0adder0的兩個輸入端分別與第一支路和第二支路的輸出端連接,用于將第一支路和第二支路的輸出結(jié)果進行運算處理,根據(jù)運算結(jié)果輸出第一輸出級聯(lián)數(shù)據(jù),并且所述第一加法器adder0還將輸出的第一輸出級聯(lián)數(shù)據(jù)輸出至所述第三支路,通過第一輸出端P0輸出第一并行數(shù)據(jù)。
如圖1所示,所述第一支路包括乘法器multipler和第一選擇器mux0,所述乘法器multipler的輸出端分別與所述第一輸入端A和第二輸入端B連接,用于接收通過所述第一輸入端A和第二輸入端B并行輸入的數(shù)據(jù),并將接收到的兩個數(shù)據(jù)進行乘法運算,得到第一運算數(shù)據(jù);進一步的,所述乘法器multipler將所述第一運算數(shù)據(jù)輸出至所述第一選擇器mux0中的其中一個輸入端,所述第一選擇器mux0的另一個輸入端與所述第三輸入端C連接,所述第一選擇器mux0根據(jù)第一選擇信號sel0從所述乘法器multipler輸出的第一運算數(shù)據(jù)以及第三輸入端C輸入的數(shù)據(jù)兩個數(shù)據(jù)中選擇一個數(shù)據(jù)輸出至所述第一加法器adder0。
所述第二支路包括第二選擇器mux1,所述第二選擇器mux1的輸入端與第四輸入端PI連接,輸出端與所述第一加法器adder0的輸入端連接,用于根據(jù)第二選擇信號sel1從所述第四輸入端PI輸入的至少三個數(shù)據(jù)中選擇一個數(shù)據(jù)輸出至所述第一加法器adder0。
所述第三支路包括第一輸出寄存器preg1,所述第一輸出寄存器preg1的輸入端與所述第一加法器adder0的輸出端連接,所述第一輸出寄存器preg1的輸出端與所述第一輸出端P0連接,用于輸出第一并行數(shù)據(jù)。
如圖2所示,所述寬位累加器電路還包括第四支路,所述第四支路與所述第一加法器adder0的輸出端連接,用于將所述第一加法器adder0輸出的第一輸出級聯(lián)數(shù)據(jù)進行運算,輸出第二并行數(shù)據(jù)。
具體的,所述第四支路包括第三選擇器mux2、第二加法器adder1、第二輸出寄存器preg2以及與所述第二輸出寄存器preg2連接的第二輸出端P1,其中,優(yōu)選的,所述第三選擇器mux2采用三選一選擇器,所述第三選擇器mux2的輸入端與第一加法器adder0的輸出端連接,輸出端與所述第二加法器adder1的輸入端連接,所述第二加法器adder1的輸出端與所述第二輸出寄存器preg2連接,所述第二輸出端P1與所述第二輸出寄存器preg2的輸出端連接。
在本實施例中,所述第三選擇信號sel2為選擇右移后的級聯(lián)數(shù)據(jù)時,所述第三選擇器mux2用于根據(jù)第三選擇信號sel2選擇由所述第一輸出級聯(lián)數(shù)據(jù)經(jīng)過右移M位得到的級聯(lián)數(shù)據(jù)輸出至所述第二加法器adder1,所述第二加法器adder1將所述第三選擇器mux2輸出的右移M位得到的級聯(lián)數(shù)據(jù)與所述第二輸出寄存器preg2輸出的數(shù)據(jù)進行加法運算,并輸出至所述第二輸出寄存器preg2,所述第二輸出寄存器preg2輸出第二并行數(shù)據(jù)。
在本實施例中,若所述第四輸入端PI輸入的至少三個數(shù)據(jù)包括:由第一輸入級聯(lián)數(shù)據(jù)右移M位得到的級聯(lián)數(shù)據(jù)、所述第一輸出寄存器preg1輸出的數(shù)據(jù)以及所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)三個數(shù)據(jù)時,所述第二選擇器mux1為三選一選擇器,所述三選一選擇器根據(jù)第二選擇信號sel1從該三個數(shù)據(jù)中選擇一個輸出給所述第一加法器adder0,優(yōu)選的,該M為大于等于18且小于48(18≤M<48)的正整數(shù)。
進一步的,所述第三輸入端C和第四輸入端PI可以為合并,具體的,當所述第三輸入端C輸入的數(shù)據(jù)同為所述第一輸出寄存器preg1輸出的數(shù)據(jù)時,所述第三輸入端C和第四輸入端PI可以共用。
如圖3所示,為輸出最大位寬48比特的寬位累加器電路示意圖,若所述第一輸入端A和第二輸入端B輸入的數(shù)據(jù)均為18比特的數(shù)據(jù)A[17:0]和B[17:0],且所述第一選擇器mux0、第二選擇器mux1對應的選擇信號分別為:當所述第一選擇信號sel0為所述第一運算數(shù)據(jù)的選擇信號,所述第二選擇信號sel1為所述第一輸出寄存器preg1輸出的數(shù)據(jù)的選擇信號時,所述第一加法器adder0將所述第一運算數(shù)據(jù)與所述第一輸出寄存器preg1輸出的數(shù)據(jù)Pr[47:0]進行加法運算,輸出運算結(jié)果至所述第一輸出寄存器preg1,得到第一并行數(shù)據(jù)P0[47:0],其對應的計算公式為:P0[47:0]=Pr[47:0]+A[17:0]*B[17:0]。
如圖4所示,為輸出最大位寬66比特的寬位累加器電路的示意圖,具體的實現(xiàn)66比特的輸出具體的通過2個級聯(lián)的輸出來實現(xiàn),其中第一個級聯(lián)輸出的數(shù)據(jù)P1為18比特,第2個級聯(lián)輸出的數(shù)據(jù)P2為48比特,2個級聯(lián)輸出相疊加起來剛好為最大的并行輸出66比特。
當所述第一選擇信號sel0為所述第一運算數(shù)據(jù)的選擇信號,所述第二選擇信號sel1為所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)的選擇信號時,所述第一加法器adder0將所述第一運算數(shù)據(jù)與所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù){30'h0,Pr0[17:0]}進行加法運算,輸出運算結(jié)果至所述第一輸出寄存器preg1,得到第三并行數(shù)據(jù)P1[17:0],其對應的計算公式為:P1[17:0]={30'h0,Pr0[17:0]}+A[17:0]*B[17:0]。
進一步的,在所述第一選擇信號sel0為所述第一運算數(shù)據(jù)的選擇信號,所述第二選擇信號sel1為所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)的選擇信號的基礎上,所述第三選擇信號sel2為由所述第一輸出級聯(lián)數(shù)據(jù)經(jīng)過右移M位得到的級聯(lián)數(shù)據(jù)的選擇信號時,所述第一加法器adder0根據(jù)運算結(jié)果輸出第一輸出級聯(lián)數(shù)據(jù)PO[47:0]至所述第三選擇器mux2,所述第三選擇器mux2根據(jù)第三選擇信號首先將第一輸出級聯(lián)數(shù)據(jù)右移18位后,得到右移級聯(lián)數(shù)據(jù)PO[47:0]>>>18,并選擇該右移級聯(lián)數(shù)據(jù)輸出PO[47:0]>>>18至所述第二加法器adder1,所述第二加法器adder1將所述右移18位得到的級聯(lián)數(shù)據(jù)與所述第二輸出寄存器preg2輸出的數(shù)據(jù)Pr1[47:0]進行加法運算,輸出運算結(jié)果至所述第二輸出寄存器preg2,得到第四并行數(shù)據(jù)P2[65:18]=Pr1[47:0]+PO[47:0]>>>18。
對應的,本發(fā)明還提供了一種可編程邏輯器件,其包括本實施例提供的寬累加器電路,所述寬累加器電路中的第一支路、第二支路、第三支路、第四支路、乘法器multipler、選擇器通過所述可編程邏輯器件的硬核配置來實現(xiàn)。
本實施例提供的寬位累加器電路,通過硬核配置可直接實現(xiàn)的寬位累加器,不需要通過外部的寄存器和繞線,解決了現(xiàn)有累加器需要借助DSP外部電路配置資源才能實現(xiàn)的問題,同時也減少寄存器輸出到邏輯運算單元之間的延時,使其時序性能優(yōu)于通過軟IP實現(xiàn)的累加器。
第二實施例:
圖5為本發(fā)明第餓實施例提供的寬位累加器電路設計方法的流程圖,請參考圖5,該寬位累加器電路包括:第一支路、第二支路、第一輸出寄存器preg1、與所述第一輸出寄存器preg1連接的第一輸出端P0和第一加法器adder0,在設計該電路時,具體是通過硬核配置來實現(xiàn),其配置設計流程如下所示:
S501,在所述第一支路上設置乘法器multipler和第一選擇器mux0。
在該步驟中,通過硬核配置為第一支路配置有乘法器multipler和二選一選擇器,將所述乘法器multipler的兩個輸入端分別與第一輸入端A、第二輸入端B連接,用于接收兩個輸入端輸入的數(shù)據(jù)A[17:0]和B[17:0],并且將A[17:0]和B[17:0]進行乘法運算,得到第一運算數(shù)據(jù)輸出至二選一選擇器,所述二選一選擇器根據(jù)第一選擇信號sel0從所述第一運算數(shù)據(jù)和第三輸入端C輸入的數(shù)據(jù)Pr[47:0]兩個數(shù)據(jù)中選擇一個數(shù)據(jù)輸出至所述第一加法器adder0。
S502,在所述第二支路上設置第二選擇器mux1。
在該步驟中,通過硬核配置為第二支路配置三選一選擇器,在所述三選一選擇器的輸入端中輸入三個數(shù)據(jù),包括由第一輸入級聯(lián)數(shù)據(jù)右移M位得到的級聯(lián)數(shù)據(jù)、所述第一輸出寄存器preg1輸出的數(shù)據(jù)以及所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)三個數(shù)據(jù),所述三選一選擇器根據(jù)第二選擇信號sel1從該三個數(shù)據(jù)中選擇一個輸出給所述第一加法器adder0。
S503,判斷所述第一選擇信號sel0和第二選擇信號sel1是否滿足第一條件,若滿足,則輸出第一并行數(shù)據(jù)。
在該步驟中,具體的所述第一選擇信號sel0和第二選擇信號sel1滿足第一條件為:當所述第一選擇信號sel0為所述第一運算數(shù)據(jù)的選擇信號,所述第二選擇信號sel1為所述第一輸出寄存器preg1輸出的數(shù)據(jù)的選擇信號時,所述第一加法器adder0將所述第一運算數(shù)據(jù)與所述第一輸出寄存器preg1輸出的數(shù)據(jù)進行加法運算,輸出運算結(jié)果至所述第一輸出寄存器preg1,得到第一并行數(shù)據(jù)。
在本實施例中,當寬位累加器電路只需要輸出最大數(shù)據(jù)為48比特時,只需要通過執(zhí)行步驟S501-S503即可實現(xiàn),通過控制第一選擇器mux0選擇輸出乘法器multipler的運算結(jié)果,以及控制所述第二選擇器mux1選擇輸出第一輸出寄存器preg1輸出的數(shù)據(jù),即可實現(xiàn)一個最大輸出為48比特的寬位累加器,具體電路連接如圖3所示。
但是,若輸出的數(shù)據(jù)為大于48比特時,則還需要在通過步驟S501-S503設計的寬位累加器電路的基礎上,再增加一級輸出,具體如步驟S504-S507。
S504,在所述第一加法器adder0的輸出端上設置第四支路。
在該步驟中,具體是通過硬核配置在所述第一加法器adder0的輸出端上設置第三選擇器mux2、第二加法器adder1、第二輸出寄存器preg2以及與所述第二輸出寄存器preg2連接的第二輸出端P1,所述第三選擇器mux2根據(jù)第三選擇信號sel2選擇由所述第一輸出級聯(lián)數(shù)據(jù)經(jīng)過右移M位得到的級聯(lián)數(shù)據(jù)輸出至所述第二加法器adder1,所述第二加法器adder1將所述第三選擇器mux2輸出的右移M位得到的級聯(lián)數(shù)據(jù)與所述第二輸出寄存器preg2輸出的數(shù)據(jù)進行加法運算,并輸出至所述第二輸出寄存器preg2。
S505,判斷所述第一選擇信號sel0和第二選擇信號sel1是否滿足第二條件,若滿足,則輸出第三并行數(shù)據(jù)。
當所述第一選擇信號sel0為所述第一運算數(shù)據(jù)的選擇信號,所述第二選擇信號sel1為所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)的選擇信號時,所述第一加法器adder0將所述第一運算數(shù)據(jù)與所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)進行加法運算,輸出運算結(jié)果至所述第一輸出寄存器preg1,得到第三并行數(shù)據(jù)。
S506,在步驟S505的基礎上,選擇第三選擇信號sel2為由所述第一輸出級聯(lián)數(shù)據(jù)經(jīng)過右移M位得到的級聯(lián)數(shù)據(jù)的選擇信號。
S507,根據(jù)第三選擇信號sel2,所述第四支路將所述第一加法器adder0輸出的第一輸出級聯(lián)數(shù)據(jù)進行運算,輸出第四并行數(shù)據(jù)。
具體的,該第二并行數(shù)據(jù)是通過2個級聯(lián)的輸出來實現(xiàn),其中第1個級聯(lián)輸出的數(shù)據(jù)P1為18比特,第2個級聯(lián)輸出的數(shù)據(jù)P2為48比特,2個級聯(lián)輸出相疊加起來剛好為最大的并行輸出66比特。
首先,第1個級聯(lián)輸出是由所述第一加法器adder0將所述第一運算數(shù)據(jù)與所述第一輸出寄存器preg1輸出的數(shù)據(jù)的低M位數(shù)據(jù)進行加法運算,輸出運算結(jié)果至所述第一輸出寄存器preg1,得到第三并行數(shù)據(jù)。
在第一個級聯(lián)輸出完成后,由第2個級聯(lián)輸出繼續(xù)輸出,具體是由所述第一加法器adder0根據(jù)運算結(jié)果輸出第一輸出級聯(lián)數(shù)據(jù)至所述第三選擇器mux2,將經(jīng)過右移M位得到的第一輸出級聯(lián)數(shù)據(jù)輸出至所述第二加法器adder1,所述第二加法器adder1將所述右移M位得到的第一輸出級聯(lián)數(shù)據(jù)與所述第二輸出寄存器preg2輸出的數(shù)據(jù)進行加法運算,輸出運算結(jié)果至所述第二輸出寄存器preg2,得到第四并行數(shù)據(jù)。
通過第1個級聯(lián)和第2個級聯(lián)的交替輸出,從而實現(xiàn)了最高輸出位數(shù)達到66比特的并行數(shù)據(jù)。
綜上所述,通過本發(fā)明的實施,至少存在以下有益效果:
本發(fā)明提供了一種寬位累加器電路及其設計方法、可編程邏輯器件,直接通過硬核配置可實現(xiàn)寬位累加器,不僅能節(jié)省數(shù)字邏輯處理模塊外的FPGA繞線資源和寄存器資源,還可以節(jié)省軟IP資源;進一步地,通過硬核配置可直接實現(xiàn)的寬位累加器,不需要通過外部的寄存器和繞線,減少寄存器輸出到邏輯運算單元之間的延時,使其時序性能優(yōu)于通過軟IP實現(xiàn)的累加器。
以上內(nèi)容是結(jié)合具體的實施方式對本發(fā)明實施例所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術領域的普通技術人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的保護范圍。