亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

置換規(guī)則配置簡(jiǎn)潔的通用置換電路結(jié)構(gòu)的制作方法

文檔序號(hào):6766939閱讀:189來(lái)源:國(guó)知局
置換規(guī)則配置簡(jiǎn)潔的通用置換電路結(jié)構(gòu)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種置換規(guī)則配置簡(jiǎn)潔的通用置換電路結(jié)構(gòu),包括控制模塊、置換規(guī)則寄存器模塊、源寄存器模塊、n選1多路選擇器、結(jié)果寄存器模塊,控制模塊的三個(gè)寫(xiě)使能控制信號(hào)端分別連接源寄存器模塊、結(jié)果寄存器模塊和置換規(guī)則寄存器模塊的寫(xiě)使能控制信號(hào)接收端,控制模塊的移位模式控制信號(hào)輸出端連接置換規(guī)則寄存器模塊的通道選擇輸入端;源寄存器模塊的n個(gè)數(shù)據(jù)輸出端對(duì)應(yīng)連接n選1多路選擇器的n個(gè)輸入通道端口,n選1多路選擇器的輸出通道端口連接結(jié)果寄存器模塊的數(shù)據(jù)輸入端;置換規(guī)則寄存器模塊的置換信息輸出端分別連接n選1多路選擇器的通道選擇輸入端和置換規(guī)則寄存器模塊的循環(huán)移位數(shù)據(jù)輸入端。
【專利說(shuō)明】置換規(guī)則配置簡(jiǎn)潔的通用置換電路結(jié)構(gòu)

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及密碼芯片集成電路設(shè)計(jì)【技術(shù)領(lǐng)域】,尤其涉及一種置換規(guī)則配置簡(jiǎn)潔的 通用置換電路結(jié)構(gòu)。

【背景技術(shù)】
[0002] Bit Permutation (位置換)和 sub-block permutation (子塊置換)在密碼算法 應(yīng)用中有著重要的地位。例如DES,Present,Sperent等密碼算法中均使用了比特級(jí)的位置 換。位置換只改變數(shù)據(jù)中比特位數(shù)據(jù)的位置而不改變這些位的值。假設(shè)某一個(gè)位置換函數(shù) 將η比特的數(shù)據(jù)S轉(zhuǎn)成η比特的數(shù)據(jù)D,則有D [i] = S [ π⑴],即數(shù)據(jù)D的第i位的值等 于數(shù)據(jù)S的第π (i)位的值,其中〇彡i彡η-1,π表示一個(gè)置換規(guī)則函數(shù),其值域?yàn)閇0, η-1]的整數(shù),D[i]表示數(shù)據(jù)D的第i位的值,Sh⑴]表示數(shù)據(jù)S的第π⑴位的值。這 里稱數(shù)據(jù)S為源數(shù)據(jù),數(shù)據(jù)D為結(jié)果數(shù)據(jù)。如圖1所示,一種固定置換規(guī)則下的4比特位置 換示意圖。假設(shè)數(shù)據(jù)S由4比特的二進(jìn)制數(shù)據(jù)組成,從左至右各比特位依次記作S 3、S2、Sp \,則數(shù)據(jù)S可以表示成S= {S^SiSj,其中值等于0或1。同理,數(shù)據(jù)D可以表示為 D = {D^DpJ。在圖1所示的位置換中的置換規(guī)則函數(shù)為:π⑶=1,π⑵=3, π⑴ =0, π (〇) = 2,即數(shù)據(jù)D的第3位的值來(lái)自給數(shù)據(jù)S的第1位,數(shù)據(jù)D的第2位的值來(lái)自 給數(shù)據(jù)S的第3位,數(shù)據(jù)D的第1位的值來(lái)自給數(shù)據(jù)S的第0位,數(shù)據(jù)D的第0位的值來(lái)自 給數(shù)據(jù)S的第2位。在該位置換規(guī)則下,若數(shù)據(jù)S的值為S = {1110},那么數(shù)據(jù)D的值就為 D = {1101};若數(shù)據(jù)S的值為S = {0101},那么數(shù)據(jù)D的值就為D = {0011}。
[0003] 將上述數(shù)據(jù)中連續(xù)的m個(gè)比特位看作一個(gè)整體,這個(gè)整體就形成一個(gè)子塊,子塊 的大小為m比特。子塊置換與位置換類(lèi)似,只改變子塊的位置,不改變子塊內(nèi)部數(shù)據(jù)值。在 廣義Feistel型密碼算法中,通常將分組數(shù)據(jù)分成多個(gè)子塊,并使用子塊置換進(jìn)行擴(kuò)散。在 現(xiàn)有的密碼算法中通常采用子塊循環(huán)移動(dòng)的置換規(guī)則。同時(shí),實(shí)現(xiàn)對(duì)任意置換規(guī)則的子塊 置換的支持,有利于實(shí)現(xiàn)更安全的密碼算法。對(duì)于固定規(guī)則置換可以采用硬件連線的方式 來(lái)實(shí)現(xiàn),該方法雖然具有實(shí)現(xiàn)成本低的優(yōu)點(diǎn),但缺乏靈活性。每個(gè)設(shè)計(jì)只能支持一種固定規(guī) 則的置換,無(wú)法支持任意規(guī)則的置換。然而,不同的密碼算法中的位置換規(guī)則并不相同。此 夕卜,在支持可自定義位置換或子塊置換規(guī)則的密碼算法芯片中,需要一種支持任意置換規(guī) 貝1J,且置換規(guī)則信息配置簡(jiǎn)單、實(shí)現(xiàn)成本較低的置換電路。因此,存在著支持任意置換規(guī)則 的設(shè)計(jì)需求。
[0004] 實(shí)現(xiàn)任意規(guī)則的位置換或子塊置換,通常有軟件和硬件兩種途徑。
[0005] 采用軟件方式實(shí)現(xiàn)位置換的思想通常是根據(jù)置換規(guī)則,從源數(shù)據(jù)中取出一位數(shù) 據(jù),然后移動(dòng)到相應(yīng)目標(biāo)位置上,再將該值合并到結(jié)果數(shù)據(jù)中,即反復(fù)進(jìn)行取數(shù)、屏蔽(按 位與)、移動(dòng)、合并(按位或)四類(lèi)操作。其時(shí)間開(kāi)銷(xiāo)較大,對(duì)于η比特?cái)?shù)據(jù)進(jìn)行任意位置換 時(shí),如果采用具有桶形移位寄存器的處理器,一般需要4η個(gè)周期。如果處理器不具備桶形 移位寄存器,則所耗時(shí)間更長(zhǎng)。為了在通用處理器中高效地支持位置換,Ruly.B. LEE等人 提出了 GRP,BFLY,0MFLIP等幾種位置換指令。這些設(shè)計(jì)雖然能夠靈活地支持位置換,但其 硬件開(kāi)銷(xiāo)較大,根據(jù)公開(kāi)數(shù)據(jù)顯示在ASIC設(shè)計(jì)中至少需要一萬(wàn)九千個(gè)等效門(mén)。此外,用軟 件實(shí)現(xiàn)任意位置換時(shí)編程較為復(fù)雜。對(duì)于子塊置換,如果子塊的大小不是一個(gè)字節(jié)大小的 整數(shù)倍時(shí),用軟件實(shí)現(xiàn)子塊置換將會(huì)非常麻煩,且執(zhí)行效率低下。
[0006] 采用硬件實(shí)現(xiàn)位置換(或子塊置換)的常見(jiàn)思想是根據(jù)置換規(guī)則在源數(shù)據(jù)和結(jié)果 數(shù)據(jù)相應(yīng)位(或子塊)之間建立起對(duì)應(yīng)的數(shù)據(jù)傳輸通道,將源數(shù)據(jù)中各位(或子塊)的值 傳遞到結(jié)果數(shù)據(jù)的相應(yīng)的位置上。為了實(shí)現(xiàn)支持任意的位置換(或子塊置換),一般采用 可配置的交換網(wǎng)絡(luò)來(lái)實(shí)現(xiàn),如交叉開(kāi)關(guān)網(wǎng)絡(luò)、Benes網(wǎng)絡(luò)等。通常相同規(guī)模下,Benes網(wǎng)絡(luò) 的硬件資源開(kāi)銷(xiāo)比交叉開(kāi)關(guān)網(wǎng)絡(luò)低。但這些交換網(wǎng)絡(luò)均需要大量的置換開(kāi)關(guān)和控制位寄存 器。例如,采用Benes網(wǎng)絡(luò)實(shí)現(xiàn)η比特位置換電路時(shí),需要《^l〇g;^-"/2個(gè)2-2置換開(kāi)關(guān)、 "^og'd-n/2比特用于存儲(chǔ)置換開(kāi)關(guān)控制信息的寄存器,和2n比特用于存儲(chǔ)置換前后數(shù) 據(jù)的寄存器,其中一個(gè)置換開(kāi)關(guān)由兩個(gè)二選一多路選擇器構(gòu)成。對(duì)η = 128任意位置換,采 用Benes網(wǎng)絡(luò)實(shí)現(xiàn)時(shí),需要1664個(gè)二選一多路選擇器和1088比特的寄存器,其中832比特 寄存器用于存儲(chǔ)控制位信息,256比特用于存儲(chǔ)數(shù)據(jù)S和數(shù)據(jù)D。此外,在Benes網(wǎng)絡(luò)下,當(dāng) 給定某一置換規(guī)則時(shí),需要間接地通過(guò)一套復(fù)雜的配置算法從該置換規(guī)則中推算出各控制 位的配置信息。這使得置換規(guī)則與配置信息之間的關(guān)系并不直觀明了。


【發(fā)明內(nèi)容】

[0007] 本發(fā)明的目的是提供一種置換規(guī)則配置簡(jiǎn)潔的通用置換電路結(jié)構(gòu),使用簡(jiǎn)單的配 置算法,簡(jiǎn)便、直觀地配置置換電路的置換規(guī)則信息,有效降低任意置換的使用難度,并能 夠有效降低置換電路的芯片面積,從而降低芯片生產(chǎn)成本。
[0008] 本發(fā)明采用的技術(shù)方案為:
[0009] -種置換規(guī)則配置簡(jiǎn)潔的通用置換電路結(jié)構(gòu),其特征在于:包括控制模塊、置換規(guī) 則寄存器模塊、源寄存器模塊、η選1多路選擇器、結(jié)果寄存器模塊,控制模塊的控制信號(hào)輸 入端用于接收外部輸入的控制信息,控制模塊的第一寫(xiě)使能控制信號(hào)端連接源寄存器模塊 的寫(xiě)使能控制信號(hào)接收端,控制模塊的第二寫(xiě)使能控制信號(hào)端連接結(jié)果寄存器模塊的寫(xiě)使 能控制信號(hào)接收端,控制模塊的第三寫(xiě)使能控制信號(hào)端連接置換規(guī)則寄存器模塊的寫(xiě)使能 控制信號(hào)接收端,控制模塊的狀態(tài)信號(hào)輸出端用于輸出置換電路的工作狀態(tài),控制模塊的 移位模式控制信號(hào)輸出端連接置換規(guī)則寄存器模塊的通道選擇輸入端;源寄存器模塊的數(shù) 據(jù)輸入端用于接收外部輸入的源數(shù)據(jù),源寄存器模塊的η個(gè)數(shù)據(jù)輸出端對(duì)應(yīng)連接η選1多 路選擇器的η個(gè)輸入通道端口,η選1多路選擇器的輸出通道端口連接結(jié)果寄存器模塊的 數(shù)據(jù)輸入端;置換規(guī)則寄存器模塊的置換規(guī)則輸入端用于接收外部輸入的置換規(guī)則信息, 置換規(guī)則寄存器模塊的置換信息輸出端分別連接η選1多路選擇器的通道選擇輸入端和置 換規(guī)則寄存器模塊的循環(huán)移位數(shù)據(jù)輸入端,結(jié)果寄存器模塊的數(shù)據(jù)輸出端用于輸出置換后 數(shù)據(jù);本置換電路還包括有一個(gè)時(shí)鐘信號(hào)輸入端口,時(shí)鐘信號(hào)輸入端口用于接收外部提供 的時(shí)鐘信號(hào),并為整個(gè)置換電路提供時(shí)鐘脈沖信號(hào);
[0010] 其中,所述的控制模塊用于控制整個(gè)置換電路的工作狀態(tài)、接收并解析操作命令 字、反饋置換電路輸出置換電路的工作狀態(tài);控制模塊包括一個(gè)狀態(tài)機(jī)和一個(gè)計(jì)數(shù)器;
[0011] 所述的源寄存器模塊用于存放需要進(jìn)行位置換或子塊置換的數(shù)據(jù),由η個(gè)數(shù)據(jù)位 寬為m比特的源數(shù)據(jù)寄存器構(gòu)成,源數(shù)據(jù)寄存器從左至右的編號(hào)依次為Sn_i,Sn_2,……,Sp S〇;
[0012] 所述的η選1多路選擇器用于從源寄存器模塊中選擇出相應(yīng)編號(hào)源數(shù)據(jù)寄存器中 的數(shù)據(jù),其η個(gè)輸入通道端口和1個(gè)輸出通道端口的數(shù)據(jù)位寬均為m比特;η選1多路選擇 器的第〇號(hào)輸入通道端口連接源寄存器模塊中的第\號(hào)寄存器的數(shù)據(jù)輸出端,第1號(hào)輸入 通道端口連接源寄存器模塊中的第Si號(hào)寄存器的數(shù)據(jù)輸出端,第2, 3, 4,……n-1號(hào)以此 類(lèi)推,η選1多路選擇器的輸出通道端口連接結(jié)果寄存器模塊中的數(shù)據(jù)輸入端;
[0013] 所述的置換規(guī)則寄存器模塊用于存放置換規(guī)則,包括η個(gè)數(shù)據(jù)位寬為k比特的置 換規(guī)則寄存器和一個(gè)數(shù)據(jù)位寬為k比特的二選一多路選擇器,其中k是大于或等于log〗的 最小正整數(shù);η個(gè)置換規(guī)則寄存器從左至右的編號(hào)依次為:心,Αρ……,A n_2, An_i ;n個(gè)置換 規(guī)則寄存器按如下規(guī)則連接構(gòu)成一個(gè)移位寄存器鏈:當(dāng)〇〈i < n-1時(shí),第&號(hào)置換規(guī)則寄 存器的數(shù)據(jù)輸入端連接第Ah號(hào)置換規(guī)則寄存器的數(shù)據(jù)輸出端;第&號(hào)置換規(guī)則寄存器的 數(shù)據(jù)輸入端連接二選一多路選擇器的輸出端;二選一多路選擇器的通道選擇輸入端連接控 制模塊的移位模式控制信號(hào)輸出端;二選一多路選擇器的循環(huán)移位數(shù)據(jù)輸入端連接置換規(guī) 則寄存器模塊中第A n_i號(hào)置換規(guī)則寄存器的數(shù)據(jù)輸出端,此時(shí)這些置換規(guī)則寄存器工作于 循環(huán)移位模式;二選一多路選擇器的置換規(guī)則輸入端用于接收置換規(guī)則信息,此時(shí)這些置 換規(guī)則寄存器工作于移位模式;第A n_i號(hào)置換規(guī)則寄存器的數(shù)據(jù)輸出端同時(shí)作為置換信息 輸出端;
[0014] 所述的結(jié)果寄存器模塊用于存放置換后的數(shù)據(jù),由η個(gè)數(shù)據(jù)位寬為m比特的結(jié)果 寄存器構(gòu)成;結(jié)果寄存器從左至右的編號(hào)依次為D n_i,Dn_2,……,Dp % ;n個(gè)結(jié)果寄存器按 如下規(guī)則連接構(gòu)成一個(gè)移位寄存器鏈:當(dāng)〇〈i < n-1時(shí),第Di號(hào)結(jié)果寄存器的數(shù)據(jù)輸入端 連接第Dg號(hào)結(jié)果寄存器的數(shù)據(jù)輸出端;而第%號(hào)結(jié)果寄存器的數(shù)據(jù)輸入端連接η選1多 路選擇器的輸出通道端口,η個(gè)結(jié)果寄存器的數(shù)據(jù)輸出端拼接在一起作為置換后數(shù)據(jù)輸出 端口。
[0015] 本發(fā)明通過(guò)控制模塊控制并協(xié)調(diào)置換電路中的置換規(guī)則寄存器模塊、源寄存器模 塊、η選1多路選擇器和結(jié)果寄存器模塊各個(gè)模塊之間的工作,并將接收到的外部控制信息 進(jìn)行解析處理,合理的控制各個(gè)模塊間的協(xié)調(diào)動(dòng)作;
[0016] 優(yōu)點(diǎn):1.通過(guò)本發(fā)明的置換電路結(jié)構(gòu)能夠靈活地開(kāi)發(fā)出支持任意置換規(guī)則的位 置換或子塊置換電路,本發(fā)明所提供的置換電路結(jié)構(gòu),置換規(guī)則的配置信息與置換規(guī)則之 間的關(guān)系簡(jiǎn)單明了,不需要使用復(fù)雜的配置算法來(lái)確定配置信息,能夠有效地降低任意規(guī) 則位置換或子塊置換的使用難度;
[0017] 2.利用本發(fā)明提供的置換電路結(jié)構(gòu)具有實(shí)現(xiàn)成本低的優(yōu)點(diǎn),特別是當(dāng)η大于16 時(shí),DC綜合結(jié)果顯示,本發(fā)明所提供的置換電路的面積小于相同尺寸的Benes網(wǎng)絡(luò)的面積。 本發(fā)明所提供的置換電路結(jié)構(gòu),進(jìn)行η比特置換時(shí),僅需要《1?〇0 + 2η比特的寄存器、一 個(gè)η選1多路選擇器和簡(jiǎn)單控制電路;其中一個(gè)η選一多路選擇器可以用n-1個(gè)二選一多 路選擇器來(lái)構(gòu)建;當(dāng)η較大時(shí),其中的二選一多路選擇器的個(gè)數(shù)遠(yuǎn)小于Benes網(wǎng)絡(luò)中的個(gè) 數(shù)2?嚇1〇§^-? ;例如,n = 128時(shí),本發(fā)明中只需要127個(gè)二選一多路選擇器,而B(niǎo)enes網(wǎng) 絡(luò)需要1664個(gè)二選一多路選擇。控制模塊部分主要包括flogd + 3比特寄存器(其中2比 特用表示狀態(tài)機(jī),pog^ + Ι比特用于計(jì)數(shù))和一些邏輯電路構(gòu)成,其面積開(kāi)銷(xiāo)較??;以η = 128比特的位置換電路為例,在TSMC的130nm工藝庫(kù)下DC綜合結(jié)果顯示,其中控制模塊的 面積約為210個(gè)等效門(mén),小于100個(gè)二選一多路選擇的面積。因此可以認(rèn)為在η不超128 時(shí),控制電路的面積不超100個(gè)二選一多路選擇器的面積。

【專利附圖】

【附圖說(shuō)明】
[0018] 圖1為本發(fā)明的【背景技術(shù)】中一種置換規(guī)則下的4比特位置換示意圖;
[0019] 圖2為本發(fā)明的電路結(jié)構(gòu)原理框圖;
[0020] 圖3為本發(fā)明的支持128比特任意置換規(guī)則的位置換電路結(jié)構(gòu)原理框圖;
[0021] 圖4為本發(fā)明的支持16個(gè)子塊任意置換規(guī)則的子塊置換電路原理框圖。

【具體實(shí)施方式】
[0022] 如圖2所示,本發(fā)明包括控制模塊、置換規(guī)則寄存器模塊、源寄存器模塊、η選1多 路選擇器、結(jié)果寄存器模塊,控制模塊的控制信號(hào)輸入端用于接收外部輸入的控制信息Α, 控制模塊的第一寫(xiě)使能控制信號(hào)端enl連接源寄存器模塊的寫(xiě)使能控制信號(hào)接收端,控制 模塊的第二寫(xiě)使能控制信號(hào)端en2連接結(jié)果寄存器模塊的寫(xiě)使能控制信號(hào)接收端,控制模 塊的第三寫(xiě)使能控制信號(hào)端en3連接置換規(guī)則寄存器模塊的寫(xiě)使能控制信號(hào)接收端,控制 模塊的狀態(tài)信號(hào)輸出端用于輸出置換電路的工作狀態(tài)B,控制模塊的移位模式控制信號(hào)輸 出端mod連接置換規(guī)則寄存器模塊的通道選擇輸入端;源寄存器模塊的數(shù)據(jù)輸入端用于接 收外部輸入的源數(shù)據(jù)S,源寄存器模塊的η個(gè)數(shù)據(jù)輸出端對(duì)應(yīng)連接η選1多路選擇器的η個(gè) 輸入通道端口,η選1多路選擇器的輸出通道端口連接結(jié)果寄存器模塊的數(shù)據(jù)輸入端;置換 規(guī)則寄存器模塊的置換規(guī)則輸入端用于接收外部輸入的置換規(guī)則信息C,置換規(guī)則寄存器 模塊的置換信息輸出端分別連接η選1多路選擇器的通道選擇輸入端和置換規(guī)則寄存器模 塊的循環(huán)移位數(shù)據(jù)輸入端,結(jié)果寄存器模塊的數(shù)據(jù)輸出端用于輸出置換后數(shù)據(jù)D ;本置換 電路還包括有一個(gè)時(shí)鐘信號(hào)輸入端口,時(shí)鐘信號(hào)輸入端口用于接收外部提供的時(shí)鐘信號(hào), 并為整個(gè)置換電路提供時(shí)鐘脈沖信號(hào)elk ;
[0023] 其中,所述的控制模塊用于控制整個(gè)置換電路的工作狀態(tài)、接收并解析操作命令 字、反饋置換電路的工作狀態(tài);控制模塊包括一個(gè)狀態(tài)機(jī)和一個(gè)計(jì)數(shù)器;所述的狀態(tài)機(jī)包 含四種工作狀態(tài),分別為:加載置換規(guī)則狀態(tài)、加載源數(shù)據(jù)狀態(tài)、執(zhí)行置換狀態(tài)和輸出置換 結(jié)果狀態(tài);
[0024] 狀態(tài)機(jī)的四種工作狀態(tài)下控制模塊的輸出信號(hào)狀態(tài)如下:
[0025] "加載置換規(guī)則狀態(tài)":控制模塊輸出的第一寫(xiě)使能控制信號(hào)(enl)無(wú)效(用'0' 表示),控制模塊輸出的第二寫(xiě)使能控制信號(hào)(en2)無(wú)效(用'0'表示),控制模塊輸出的 第三寫(xiě)使能控制信號(hào)(en3)有效(用'1'表示),控制模塊輸出的置換規(guī)則寄存器模塊移位 模式控制信號(hào)(mod)為高電平(即使第&號(hào)置換規(guī)則寄存器的輸入數(shù)據(jù)來(lái)自外部輸入的 置換規(guī)則信息輸入端),輸出的狀態(tài)信息為"01 "。
[0026] "加載源數(shù)據(jù)狀態(tài)"下,控制模塊輸出的第一寫(xiě)使能控制信號(hào)(enl)有效(用'1' 表示),即可以接收外部輸入的源數(shù)據(jù),控制模塊輸出的第二寫(xiě)使能控制信號(hào)(en2)無(wú)效, 控制模塊輸出的第三寫(xiě)使能控制信號(hào)(en3)無(wú)效(用'0'表示),控制模塊輸出的置換規(guī)則 寄存器模塊移位模式控制信號(hào)(mod)為低電平,輸出的狀態(tài)信息為"10"。
[0027] "執(zhí)行置換狀態(tài)"下,控制模塊輸出的第一寫(xiě)使能控制信號(hào)(enl)無(wú)效,控制模塊輸 出的第二寫(xiě)使能控制信號(hào)(en2)有效(用'1'表示),控制模塊輸出的第三寫(xiě)使能控制信號(hào) (en3)有效,控制模塊輸出的置換規(guī)則寄存器模塊移位模式控制信號(hào)(mod)為低電平(即使 第&號(hào)置換規(guī)則寄存器的輸入數(shù)據(jù)來(lái)自置換規(guī)則寄存器模塊的循環(huán)移位數(shù)據(jù)輸入端i0), 輸出的狀態(tài)信息為"11"。
[0028] "輸出置換結(jié)果狀態(tài)"下,控制模塊輸出的第一寫(xiě)使能控制信號(hào)(enl)無(wú)效,控制模 塊輸出的第二寫(xiě)使能控制信號(hào)(en2)無(wú)效,控制模塊輸出的第三寫(xiě)使能控制信號(hào)(en3)無(wú) 效,控制模塊輸出的置換規(guī)則寄存器模塊移位模式控制信號(hào)(mod)為低電平,輸出的狀態(tài) 信息為"〇〇"。
[0029] 當(dāng)輸出的狀態(tài)信息為" 10"或" 11"時(shí),表示結(jié)果寄存器模塊中的數(shù)據(jù)將被更新,輸 出的結(jié)果數(shù)據(jù)無(wú)效。當(dāng)輸出的狀態(tài)信息為"〇〇"或"01"時(shí),表示輸出的結(jié)果數(shù)據(jù)有效。
[0030] 狀態(tài)機(jī)的四種工作狀態(tài)按如下規(guī)則切換:
[0031] 狀態(tài)機(jī)默認(rèn)狀態(tài)為"輸出置換結(jié)果狀態(tài)",此狀態(tài)下計(jì)數(shù)器的值被設(shè)置為0 ;
[0032] 在"輸出置換結(jié)果狀態(tài)"下,當(dāng)接收到"加載置換規(guī)則信息命令"后,狀態(tài)機(jī)轉(zhuǎn)入"加 載置換規(guī)則狀態(tài)";
[0033] 在"加載置換規(guī)則狀態(tài)"下,置換規(guī)則寄存器模塊可以接收由外部輸入的置換規(guī)則 信息,每接收一個(gè)置換規(guī)則信息,計(jì)數(shù)器的值加1,當(dāng)計(jì)數(shù)器的值等于η時(shí),即當(dāng)接收完η個(gè) 置換規(guī)則信息后,狀態(tài)機(jī)自動(dòng)轉(zhuǎn)入到"輸出置換結(jié)果狀態(tài)";
[0034] 在"輸出置換結(jié)果狀態(tài)"下,當(dāng)接收到"加載源數(shù)據(jù)命令"后,狀態(tài)機(jī)轉(zhuǎn)入"加載源 數(shù)據(jù)狀態(tài)";
[0035] 在"加載源數(shù)據(jù)狀態(tài)"下,當(dāng)完成將外部輸入的源數(shù)據(jù)寫(xiě)入到源寄存器模塊的寄存 器后,狀態(tài)機(jī)自動(dòng)轉(zhuǎn)入"執(zhí)行置換狀態(tài)";
[0036] 在"執(zhí)行置換狀態(tài)"下,置換規(guī)則寄存器模塊中的各置換規(guī)則寄存器工作于循環(huán)移 位模式,同時(shí)結(jié)果寄存器模塊中的結(jié)果寄存器工作于向左移位模式,即每經(jīng)過(guò)一個(gè)時(shí)鐘周 期,置換規(guī)則寄存器模塊中的各置換規(guī)則寄存器中的數(shù)據(jù)向右循環(huán)移動(dòng)一個(gè)位置,同時(shí)結(jié) 果寄存器模塊中的各結(jié)果寄存器中的數(shù)據(jù)向左移動(dòng)一個(gè)位置,且第%號(hào)結(jié)果寄存器的接收 η選1多路選擇器的輸出值;每經(jīng)過(guò)一個(gè)時(shí)鐘周期,計(jì)數(shù)器的值加1 ;當(dāng)計(jì)數(shù)器的值等于η 時(shí),狀態(tài)機(jī)自動(dòng)轉(zhuǎn)入"輸出置換結(jié)果狀態(tài)"。
[0037] 所述的源寄存器模塊是用于存放需要進(jìn)行位置換或子塊置換的數(shù)據(jù),由η個(gè)數(shù)據(jù) 位寬為m比特的源數(shù)據(jù)寄存器構(gòu)成,源數(shù)據(jù)寄存器從左至右的編號(hào)依次為Sn_i,Sn_2,……, Spl ;當(dāng)源寄存器模塊的寫(xiě)使能控制信號(hào)接收端的信號(hào)有效時(shí)(enl = 1),則將外部輸入的 數(shù)據(jù)寫(xiě)入到對(duì)應(yīng)的源數(shù)據(jù)寄存器中。當(dāng)源寄存器模塊的寫(xiě)使能端的信號(hào)無(wú)效時(shí)(enl = 0), 則這些源數(shù)據(jù)寄存器中的值保持不變。
[0038] 所述的η選1多路選擇器用于從源寄存器模塊中選擇出相應(yīng)編號(hào)源數(shù)據(jù)寄存器中 的數(shù)據(jù),其η個(gè)輸入通道端口和1個(gè)輸出通道端口的數(shù)據(jù)位寬均為m比特;η選1多路選擇 器的第〇號(hào)輸入通道端口連接源寄存器模塊中的第\號(hào)寄存器的數(shù)據(jù)輸出端,第1號(hào)輸入 通道端口連接源寄存器模塊中的第Si號(hào)寄存器的數(shù)據(jù)輸出端,第2, 3, 4,……n-1號(hào)以此 類(lèi)推,η選1多路選擇器的輸出通道端口連接結(jié)果寄存器模塊中的數(shù)據(jù)輸入端;
[0039] 所述的置換規(guī)則寄存器模塊用于存放置換規(guī)則,包括η個(gè)數(shù)據(jù)位寬為k比特的置 換規(guī)則寄存器和一個(gè)數(shù)據(jù)位寬為k比特的二選一多路選擇器,其中k是大于或等于log?的 最小正整數(shù);η個(gè)置換規(guī)則寄存器從左至右的編號(hào)依次為:心,Αρ……,An_2, An_i ;n個(gè)置換 規(guī)則寄存器按如下規(guī)則連接構(gòu)成一個(gè)移位寄存器鏈:當(dāng)〇〈i < n-1時(shí),第&號(hào)置換規(guī)則寄 存器的數(shù)據(jù)輸入端連接第Ah號(hào)置換規(guī)則寄存器的數(shù)據(jù)輸出端;第&號(hào)置換規(guī)則寄存器的 數(shù)據(jù)輸入端連接二選一多路選擇器的輸出端;二選一多路選擇器的通道選擇輸入端連接控 制模塊的移位模式控制信號(hào)輸出端(mod);當(dāng)mod信號(hào)為0時(shí)(用低電平表不),二選一多 路選擇器的輸出來(lái)自于第A n_i號(hào)置換規(guī)則寄存器的數(shù)據(jù)輸出端時(shí)(即i0端口),此時(shí)這些 置換規(guī)則寄存器工作于循環(huán)移位模式;當(dāng)mod信號(hào)為1時(shí)(用高電平表示),二選一多路選 擇器的輸出來(lái)自外部輸入的置換規(guī)則信息(即il端口),此時(shí)這些置換規(guī)則寄存器工作于 移位模式;第A n_i號(hào)置換規(guī)則寄存器的數(shù)據(jù)輸出端同時(shí)作為置換信息輸出端;
[0040] 所述的結(jié)果寄存器模塊用于存放置換后的數(shù)據(jù),由η個(gè)數(shù)據(jù)位寬為m比特的結(jié)果 寄存器構(gòu)成;結(jié)果寄存器從左至右的編號(hào)依次為D n_i,Dn_2,……,Dp % ;n個(gè)結(jié)果寄存器按 如下規(guī)則連接構(gòu)成一個(gè)移位寄存器鏈:當(dāng)〇〈i < n-1時(shí),第Di號(hào)結(jié)果寄存器的數(shù)據(jù)輸入端 連接第Dg號(hào)結(jié)果寄存器的數(shù)據(jù)輸出端;而第%號(hào)結(jié)果寄存器的數(shù)據(jù)輸入端連接η選1多 路選擇器的輸出通道端口,η個(gè)結(jié)果寄存器的數(shù)據(jù)輸出端拼接在一起作為置換后數(shù)據(jù)輸出 端口。當(dāng)結(jié)果寄存器模塊的寫(xiě)使能端控制信號(hào)接收端的信號(hào)有效時(shí),則本模塊中各結(jié)果寄 存器輸入端的數(shù)據(jù)在時(shí)鐘信號(hào)上升沿的觸發(fā)下寫(xiě)入對(duì)應(yīng)的結(jié)果寄存器中,從而使得結(jié)果數(shù) 據(jù)向左移動(dòng)一個(gè)位置;當(dāng)結(jié)果寄存器模塊的寫(xiě)使能控制信號(hào)接收端的信號(hào)無(wú)效時(shí),則這些 結(jié)果寄存器中的值保持不變。
[0041] 在實(shí)際應(yīng)用中,該置換電路由外部功能單元控制和使用,以完成相應(yīng)的置換功能。 本發(fā)明所述的置換電路完成位置換或子塊置換功能時(shí)的工作過(guò)程如下:
[0042] 第一步:配置置換規(guī)則。當(dāng)控制模塊輸出的狀態(tài)信息為"00"時(shí)(此時(shí)代表可以 接收外部輸入),外部功能單元輸入"加載置換規(guī)則信息命令",狀態(tài)機(jī)轉(zhuǎn)入"加載置換規(guī)則 狀態(tài)",并在后續(xù)的η個(gè)時(shí)鐘周期內(nèi),根據(jù)位置換(或子塊置換)規(guī)則,依次向置換規(guī)則寄存 器模塊中寫(xiě)入表示結(jié)果數(shù)據(jù)的第i位(或子塊)的值將來(lái)自源數(shù)據(jù)的哪一位(或子塊)的 數(shù)據(jù);假設(shè)用n(i)表示,〇彡i彡n-1,寫(xiě)入的順序?yàn)?:π(η-1),π(η-2),…….,π (1), ^ (0)。當(dāng)η個(gè)置換信息寫(xiě)入完成后,狀態(tài)機(jī)自動(dòng)轉(zhuǎn)入"輸出置換狀態(tài)"。此時(shí),從邏輯上看 置換規(guī)則寄存器模塊中的第Α號(hào)置換規(guī)則寄存器代表著置換后數(shù)據(jù)的第i位(或第i個(gè)子 塊),同時(shí)第化號(hào)置換規(guī)則寄存器中的值等于π (i),代表著結(jié)果數(shù)據(jù)的第i位(或第i個(gè) 子塊)來(lái)自于源數(shù)據(jù)的第n (i)位(或第n (i)個(gè)子塊)。在上述過(guò)程中,外部功能單元發(fā) 出的"加載置換規(guī)則信息命令"所持續(xù)的時(shí)間不能超過(guò)η個(gè)時(shí)鐘周期,否則將觸發(fā)新的一輪 置換規(guī)則信息加載過(guò)程。
[0043] 第二步:加載源數(shù)據(jù)。當(dāng)控制模塊輸出的狀態(tài)信息為"00"時(shí),外部輸入"加載源數(shù) 據(jù)命令",狀態(tài)機(jī)轉(zhuǎn)入"加載源數(shù)據(jù)狀態(tài)",將待置換的源數(shù)據(jù)通過(guò)數(shù)據(jù)輸入端口寫(xiě)入到源數(shù) 據(jù)寄存器中。當(dāng)加載源數(shù)據(jù)完成后,狀態(tài)機(jī)自動(dòng)轉(zhuǎn)入"執(zhí)行置換狀態(tài)",即自動(dòng)轉(zhuǎn)入第三步。 外部功能單元發(fā)出的"加載源數(shù)據(jù)命令"所持續(xù)的時(shí)間不能超過(guò)η個(gè)時(shí)鐘周期,否則,將自 動(dòng)引起新的一次源數(shù)據(jù)加載。即外部輸入的控制信息在完成源數(shù)據(jù)加載后可以變?yōu)闊o(wú)效命 令 "00" 或 "01"。
[0044] 第三步:執(zhí)行置換過(guò)程。此過(guò)程共需要η個(gè)周期。在每個(gè)時(shí)鐘周期內(nèi)進(jìn)行如下操 作:
[0045] (1)η選1多路選擇器根據(jù)置換規(guī)則寄存器模塊的置換信息輸出端提供的數(shù)據(jù)作 為通道選擇信號(hào),從源寄存器模塊中選擇出相應(yīng)編號(hào)源數(shù)據(jù)寄存器中的值,并送入到結(jié)果 寄存器模塊的數(shù)據(jù)輸入端。
[0046] (2)結(jié)果寄存器模塊中的各結(jié)果寄存器中的數(shù)據(jù)向左移動(dòng)一位置,即結(jié)果寄存器 %中的數(shù)據(jù)傳遞給結(jié)果寄存器Di,結(jié)果寄存器Di中的數(shù)據(jù)傳遞給結(jié)果寄存器D2,結(jié)果寄存 器03、結(jié)果寄存器D4......依次類(lèi)推。
[0047] (3)置換規(guī)則寄存器模塊中各置換規(guī)則寄存器數(shù)據(jù)向右循環(huán)移動(dòng)一個(gè)位置,即置 換規(guī)則寄存器\中的數(shù)據(jù)傳遞給置換規(guī)則寄存器&,置換規(guī)則寄存器&中的數(shù)據(jù)傳遞給置 換規(guī)則寄存器A2,置換規(guī)則寄存器A3、置換規(guī)則寄存器A4......依次類(lèi)推,但置換規(guī)則寄存 器An_i的值傳遞給置換規(guī)則寄存器經(jīng)過(guò)η個(gè)時(shí)鐘周期后,置換規(guī)則寄存器模塊中各置換 規(guī)則寄存器的值回到第一步完成后的狀態(tài),同時(shí)結(jié)果寄存器模塊的輸出值就是置換后的結(jié) 果。
[0048] 第四步:讀出置換后的數(shù)據(jù)結(jié)果。待上述的第三步完成后,置換電路輸出的狀態(tài)信 息將變?yōu)?〇〇",此時(shí)代表著置換結(jié)果數(shù)據(jù)有效,外部功能單元可以從結(jié)果寄存器模塊中的 數(shù)據(jù)輸出端口讀得置換后的結(jié)果數(shù)據(jù)。
[0049] 若對(duì)多個(gè)數(shù)據(jù)使用相同的置換規(guī)則進(jìn)行置換時(shí),第一步配置置換規(guī)則僅需要在首 次置換時(shí)進(jìn)行配置,而進(jìn)行后續(xù)置換時(shí)可以跳過(guò)配置置換規(guī)則這一步驟,直接進(jìn)行上述的 第二、第三、第四步。上述的源寄存器模塊、結(jié)果寄存器模塊中各寄存器的數(shù)據(jù)位寬m以及η 選1多路選擇器的各通道數(shù)據(jù)位寬m均等于1時(shí),利用本發(fā)明的置換電路結(jié)構(gòu)可以實(shí)現(xiàn)支 持任意置換規(guī)則的比特級(jí)位置換電路;當(dāng)上述m為大于1的整數(shù)時(shí),利用本發(fā)明的置換電路 結(jié)構(gòu)可以實(shí)現(xiàn)支持任意置換規(guī)則的子塊置換電路,其中子塊的大小為m比特,源數(shù)據(jù)和結(jié) 果數(shù)據(jù)的數(shù)據(jù)位寬度為n*m比特。
[0050] 下面以實(shí)施例的方式詳細(xì)說(shuō)明本發(fā)明的工作原理:
[0051] 實(shí)施例1 :
[0052] 利用本發(fā)明所提供的置換規(guī)則配置簡(jiǎn)潔的通用置換電路結(jié)構(gòu)實(shí)現(xiàn)了一種支持128 比特任意置換規(guī)則的位置換電路,其電路結(jié)構(gòu)圖如圖3所示。
[0053] 該位置換電路包括五個(gè)部分,分別是源寄存器模塊、128選1多路選擇器、結(jié)果寄 存器模塊、置換規(guī)則寄存器模塊和控制模塊。在該實(shí)例中η的值為128, m的值為1,k的值 為7。其中,所述的源寄存器模塊內(nèi)包含128個(gè)數(shù)據(jù)位寬為1比特的源寄存器和一個(gè)門(mén)控 時(shí)鐘單元,該門(mén)控時(shí)鐘單元的輸入為時(shí)鐘信號(hào)(elk)和第一寫(xiě)使能控制信號(hào)(enl),該門(mén)控 時(shí)鐘單元輸出一個(gè)門(mén)控時(shí)鐘信號(hào),并將該門(mén)控時(shí)鐘信號(hào)作為源寄存器模塊內(nèi)所有源數(shù)據(jù)寄 存器的時(shí)鐘信號(hào);所述的128選1多路選擇器的各輸入通道端口、輸出通道端口的數(shù)據(jù)位寬 為1比特;所述的結(jié)果寄存器模塊內(nèi)包含128個(gè)數(shù)據(jù)位寬為1比特的結(jié)果寄存器和一個(gè)門(mén) 控時(shí)鐘單元,該門(mén)控時(shí)鐘單元的輸入為時(shí)鐘信號(hào)(elk)和第二寫(xiě)使能控制信號(hào)(en2),該門(mén) 控時(shí)鐘單元輸出一個(gè)門(mén)控時(shí)鐘信號(hào),并將該門(mén)控時(shí)鐘信號(hào)作為結(jié)果寄存器模塊內(nèi)所有結(jié)果 寄存器的時(shí)鐘信號(hào),所述的結(jié)果寄存器模塊的數(shù)據(jù)輸出端口的數(shù)據(jù)位寬為128比特,數(shù)據(jù) 輸入端口數(shù)據(jù)位寬為1比特;所述的置換規(guī)則寄存器模塊的置換規(guī)則輸入端的數(shù)據(jù)位寬為 7比特,置換信息輸出端的數(shù)據(jù)位寬為7比特;所述的置換規(guī)則寄存器模塊內(nèi)包含128個(gè)數(shù) 據(jù)位寬為7比特的置換規(guī)則寄存器、一個(gè)輸入/輸出通道數(shù)據(jù)位寬均為7比特的二選一多 路選擇器和一個(gè)門(mén)控時(shí)鐘單元;該門(mén)控時(shí)鐘單元的輸入為時(shí)鐘信號(hào)(elk)和第三寫(xiě)使能控 制信號(hào)(en3),該門(mén)控時(shí)鐘單元輸出一個(gè)門(mén)控時(shí)鐘信號(hào),并將該門(mén)控時(shí)鐘信號(hào)作為置換規(guī)則 寄存器模塊內(nèi)所有置換規(guī)則寄存器的時(shí)鐘信號(hào);所述的控制模塊用于控制和協(xié)調(diào)置換電路 內(nèi)各模塊的工作、接收并解析外部輸入的控制信息、反饋置換電路的工作狀態(tài);置換電路有 四種工作狀態(tài),分別是加載置換規(guī)則狀態(tài)、加載源數(shù)據(jù)狀態(tài)、執(zhí)行置換狀態(tài)和輸出置換結(jié)果 狀態(tài)??刂颇K結(jié)合外部輸入的控制信息控制各種工作狀態(tài)之間的切換;控制信號(hào)輸入端 的數(shù)據(jù)寬度為2比特,用于接收外部輸入的控制命令,控制命令包括:加載置換規(guī)則信息命 令(用"10"表示),加載源數(shù)據(jù)命令(用"11"表示);當(dāng)外部輸入的控制信息為"〇〇"或 者"01"時(shí),控制模塊將其看作無(wú)效命令,不進(jìn)行處理;狀態(tài)信息輸出端口的數(shù)據(jù)寬度為2比 特,用于反饋置換電路的工作狀態(tài);控制模塊包括一個(gè)具有四個(gè)狀態(tài)的狀態(tài)機(jī)和一個(gè)計(jì)數(shù) 器;狀態(tài)機(jī)的四個(gè)狀態(tài)分別對(duì)應(yīng)著置換電路的四種工作狀態(tài)。在該實(shí)例中所述的狀態(tài)機(jī)描 述中η的值為128,該狀態(tài)機(jī)的四種工作狀態(tài)下控制模塊的輸出信號(hào)狀態(tài)以及四種工作狀 態(tài)之間的切換規(guī)則與上述【具體實(shí)施方式】中狀態(tài)機(jī)的描述相同,只需將η的值實(shí)例化為128 即可,這里不再贅述。
[0054] 在具體應(yīng)用中,根據(jù)具體需求將該置換電路與相應(yīng)的外部功能單元連接,并由外 部功能單元來(lái)控制和使用該置換電路,以完成相應(yīng)的位置換功能。
[0055] 外部功能單元通過(guò)控制信號(hào)輸入端向控制模塊輸入操作命令字;通過(guò)輸入數(shù)據(jù)端 口提供待置換的128比特?cái)?shù)據(jù);通過(guò)置換規(guī)則信息輸入端提供相應(yīng)的置換規(guī)則信息;通過(guò) 輸出數(shù)據(jù)端口得到相應(yīng)的置換結(jié)果;通過(guò)狀態(tài)信息輸出端口獲知置換電路的工作狀態(tài);該 置換電路的時(shí)鐘信號(hào)與外部功能單元的時(shí)鐘信號(hào)相同。
[0056] 實(shí)施例1所述的置換電路完成128比特的位置換的工作過(guò)程如下:
[0057] 第一步:配置置換規(guī)則。當(dāng)置換電路輸出的狀態(tài)信息為"00"時(shí),外部功能單元發(fā) 出一次"加載置換規(guī)則信息命令",該置換電路轉(zhuǎn)入"加載置換規(guī)則狀態(tài)",外部功能單元在 后續(xù)的128個(gè)時(shí)鐘周期內(nèi),根據(jù)位置換規(guī)則,通過(guò)置換規(guī)則信息輸入端口依次向置換規(guī)則 寄存器模塊中寫(xiě)入128個(gè)7比特的置換規(guī)則信息,這些置換規(guī)則信息表示置換后結(jié)果數(shù)據(jù) 的第i位的值將來(lái)自源數(shù)據(jù)的哪一位的數(shù)據(jù),假設(shè)用n (i)表示,〇 < i < 127,每個(gè)時(shí)鐘 周期外部功能單元提供一個(gè)置換規(guī)則信息,其順序?yàn)椋害?(127),π (126),…….,π (1), π (0)。當(dāng)128個(gè)置換規(guī)則信息寫(xiě)入完成后,該置換電路自動(dòng)轉(zhuǎn)入"輸出置換結(jié)果狀態(tài)"。從 邏輯上看,此時(shí)置換規(guī)則寄存器模塊中的第&號(hào)置換規(guī)則寄存器代表著置換后數(shù)據(jù)的第i 位,同時(shí)第&號(hào)置換規(guī)則寄存器中的值等于π (i),這代表著結(jié)果數(shù)據(jù)的第i位來(lái)自于源數(shù) 據(jù)的第n (i)位。在上述過(guò)程中外部功能單元發(fā)出的"加載置換規(guī)則信息命令"所持續(xù)的 時(shí)間不能超過(guò)128個(gè)時(shí)鐘周期。
[0058] 第二步:加載源數(shù)據(jù)。當(dāng)置換電路輸出的狀態(tài)信息為"00"時(shí),外部功能單元將待 置換的源數(shù)據(jù)準(zhǔn)備好,并發(fā)出"加載源數(shù)據(jù)命令",狀態(tài)機(jī)轉(zhuǎn)入"加載源數(shù)據(jù)狀態(tài)",將待置換 的源數(shù)據(jù)通過(guò)數(shù)據(jù)輸入端口寫(xiě)入到源數(shù)據(jù)寄存器中。當(dāng)加載源數(shù)據(jù)完成后,自動(dòng)轉(zhuǎn)入第三 步。外部功能單元在發(fā)出的"加載源數(shù)據(jù)命令"持續(xù)時(shí)間不能超過(guò)128個(gè)時(shí)鐘周期。
[0059] 第三步:執(zhí)行置換過(guò)程。在此過(guò)程中置換電路根據(jù)置換規(guī)則寄存器模塊中的置換 規(guī)則信息,更新結(jié)果寄存器模塊的中數(shù)據(jù)。共需要128個(gè)時(shí)鐘周期。此過(guò)程完成后,狀態(tài)機(jī) 自動(dòng)轉(zhuǎn)入"輸出置換結(jié)果狀態(tài)"。
[0060] 第四步:讀出置換后的數(shù)據(jù)結(jié)果。上述的第三步完成后置換電路輸出的狀態(tài)信息 變?yōu)?00",此時(shí)結(jié)果寄存器模塊輸出的數(shù)據(jù)即為置換后的結(jié)果數(shù)據(jù),并且該值在"輸出置換 結(jié)果狀態(tài)"下保持不變,外部功能單元可以讀取本次的置換結(jié)果數(shù)據(jù)。
[0061] 若對(duì)多個(gè)數(shù)據(jù)使用相同的置換規(guī)則進(jìn)行置換時(shí),第一步配置位置換規(guī)僅需要在首 次置換時(shí)進(jìn)行配置,而進(jìn)行后續(xù)置換時(shí)可以跳過(guò)配置置換規(guī)則這一步驟,直接進(jìn)行上述的 第二、第三、第四步。
[0062] 該實(shí)施例在TSMC的130nm工藝庫(kù)下,DC綜合結(jié)果顯示,其面積約為7756個(gè)等效 門(mén),與128位Benes網(wǎng)絡(luò)(面積約為11275個(gè)等效門(mén))相比可以節(jié)省近30%的面積。上述 數(shù)據(jù)顯示,本發(fā)明所涉及的通用置換電路結(jié)構(gòu)達(dá)到了降低成本的目的,為后期的實(shí)際生產(chǎn) 帶來(lái)有利的經(jīng)濟(jì)效益。
[0063] 實(shí)施例2 :
[0064] 利用本發(fā)明所提供的置換規(guī)則配置簡(jiǎn)潔的通用置換電路結(jié)構(gòu)實(shí)現(xiàn)了一種支持16 個(gè)子塊(塊大小為4比特)任意置換規(guī)則的子塊置換電路,其電路結(jié)構(gòu)如圖4所示。
[0065] 該子塊置換電路主要包括五個(gè)部分,分別是源寄存器模塊、16選1多路選擇器、結(jié) 果寄存器模塊、置換規(guī)則寄存器模塊和控制模塊。在該實(shí)例中η的值為16,m的值為4,k的 值為4。所述的源寄存器模塊內(nèi)包含16個(gè)數(shù)據(jù)位寬為4比特的源寄存器和一個(gè)門(mén)控時(shí)鐘單 元,該門(mén)控時(shí)鐘單元的輸入為時(shí)鐘信號(hào)(elk)和第一寫(xiě)使能控制信號(hào)(enl),該門(mén)控時(shí)鐘單 元輸出一個(gè)門(mén)控時(shí)鐘信號(hào),并將該門(mén)控時(shí)鐘信號(hào)作為源寄存器模塊內(nèi)所有源寄存器的時(shí)鐘 信號(hào),所述的源寄存器模塊的數(shù)據(jù)輸入端口的數(shù)據(jù)位寬為64比特,分成16個(gè)子塊連接到相 應(yīng)的源寄存器的數(shù)據(jù)輸入端;所述的16選1多路選擇器的各輸入、輸出通道端口的數(shù)據(jù)位 寬為4比特;所述的結(jié)果寄存器模塊內(nèi)包含16個(gè)數(shù)據(jù)位寬為4比特的結(jié)果寄存器和一個(gè)門(mén) 控時(shí)鐘單元,該門(mén)控時(shí)鐘單元的輸入為時(shí)鐘信號(hào)(elk)和第二寫(xiě)使能控制信號(hào)(en2),該門(mén) 控時(shí)鐘單元輸出一個(gè)門(mén)控時(shí)鐘信號(hào),并將該門(mén)控時(shí)鐘信號(hào)作為結(jié)果寄存器模塊內(nèi)所有結(jié)果 寄存器的時(shí)鐘信號(hào);所述的結(jié)果寄存器模塊的數(shù)據(jù)輸入端口的數(shù)據(jù)位寬為4比特,數(shù)據(jù)輸 出端口的數(shù)據(jù)位寬為64比特,它由16個(gè)4比特結(jié)果寄存器的數(shù)據(jù)輸出端拼接而成;所述的 置換規(guī)則寄存器模塊內(nèi)包含16個(gè)數(shù)據(jù)位寬為4比特的置換規(guī)則寄存器、一個(gè)輸入/輸出通 道數(shù)據(jù)位寬均為4比特的二選一多路選擇器和一個(gè)門(mén)控時(shí)鐘單元;該門(mén)控時(shí)鐘單元的輸入 為時(shí)鐘信號(hào)(elk)和第三寫(xiě)使能控制信號(hào)(en3),該門(mén)控時(shí)鐘單元輸出一個(gè)門(mén)控時(shí)鐘信號(hào), 并將該門(mén)控時(shí)鐘信號(hào)作為置換規(guī)則寄存器模塊內(nèi)所有置換規(guī)則寄存器的時(shí)鐘信號(hào);所述的 置換規(guī)則寄存器模塊的置換規(guī)則數(shù)據(jù)輸入端口的數(shù)據(jù)位寬為4比特,置換信息的輸出端口 的數(shù)據(jù)位寬為4比特;在該實(shí)例中所述的狀態(tài)機(jī)描述中η的值為16,該狀態(tài)機(jī)的四種工作 狀態(tài)下控制模塊的輸出信號(hào)狀態(tài)以及四種工作狀態(tài)之間的切換規(guī)則與上述【具體實(shí)施方式】 中狀態(tài)機(jī)的描述相同,只需將η的值實(shí)例化為16即可,這里不再贅述。
[0066] 實(shí)施例2所述的置換電路完成16個(gè)子塊大小位4比特的任意置換規(guī)則的子塊置 換的工作過(guò)程如下:
[0067] 第一步:配置置換規(guī)則。當(dāng)置換電路輸出的狀態(tài)信息為"00"時(shí),外部功能單元發(fā) 出一次"加載置換規(guī)則信息命令",該置換電路轉(zhuǎn)入"加載置換規(guī)則狀態(tài)",外部功能單元在 后續(xù)的16個(gè)時(shí)鐘周期內(nèi),根據(jù)子塊置換規(guī)則,通過(guò)置換規(guī)則信息輸入端口依次向置換規(guī)則 寄存器模塊中寫(xiě)入16個(gè)4比特的置換規(guī)則信息,這些置換規(guī)則信息表示置換后結(jié)果數(shù)據(jù)的 第i個(gè)子塊的值將來(lái)自源數(shù)據(jù)的哪一個(gè)子塊的數(shù)據(jù)(假設(shè)用n (i)表示,〇<i<15),每個(gè) 時(shí)鐘周期外部功能單元提供一個(gè)置換規(guī)則信息,其順序?yàn)橐裕?5),π (14),…….,π (1), π (0)。當(dāng)16個(gè)置換規(guī)則信息寫(xiě)入完成后,該置換電路自動(dòng)轉(zhuǎn)入"輸出置換結(jié)果狀態(tài)"。從 邏輯上看,此時(shí)置換規(guī)則寄存器模塊中的第4號(hào)置換規(guī)則寄存器代表著置換后數(shù)據(jù)的第i 個(gè)子塊,同時(shí)第&號(hào)置換規(guī)則寄存器中的值等于π (i),這代表著結(jié)果數(shù)據(jù)的第i個(gè)子塊的 值來(lái)自于源數(shù)據(jù)的第n (i)個(gè)子塊。在上述過(guò)程中外部功能單元發(fā)出的"加載置換規(guī)則信 息命令"所持續(xù)的時(shí)間不能超過(guò)16個(gè)時(shí)鐘周期。
[0068] 第二步:加載源數(shù)據(jù)。當(dāng)置換電路輸出的狀態(tài)信息為"00"時(shí),外部功能單元將待 置換的源數(shù)據(jù)準(zhǔn)備好,并發(fā)出"加載源數(shù)據(jù)命令",狀態(tài)機(jī)轉(zhuǎn)入"加載源數(shù)據(jù)狀態(tài)",將待置換 的源數(shù)據(jù)通過(guò)數(shù)據(jù)輸入端口寫(xiě)入到源數(shù)據(jù)寄存器中。當(dāng)加載源數(shù)據(jù)完成后,自動(dòng)轉(zhuǎn)入第三 步。外部功能單元在發(fā)出的"加載源數(shù)據(jù)命令"持續(xù)時(shí)間不能超過(guò)16個(gè)時(shí)鐘周期。
[0069] 第三步:執(zhí)行置換過(guò)程。在此過(guò)程中置換電路根據(jù)置換規(guī)則寄存器模塊中的置換 規(guī)則信息,更新結(jié)果寄存器模塊的中數(shù)據(jù)。共需要16個(gè)時(shí)鐘周期。此過(guò)程完成后,狀態(tài)機(jī) 自動(dòng)轉(zhuǎn)入"輸出置換結(jié)果狀態(tài)"。
[0070] 第四步:讀出置換后的數(shù)據(jù)結(jié)果。上述的第三步完成后置換電路輸出的狀態(tài)信息 變?yōu)?00",此時(shí)結(jié)果寄存器模塊輸出的數(shù)據(jù)即為置換后的結(jié)果數(shù)據(jù),并且該值在"輸出置換 結(jié)果狀態(tài)"保持不變,外部功能單元可以讀取本次的置換結(jié)果數(shù)據(jù)。
[0071] 若對(duì)多個(gè)數(shù)據(jù)使用相同的置換規(guī)則進(jìn)行置換時(shí),第一步配置子塊置換規(guī)僅需要在 首次置換時(shí)進(jìn)行配置,而進(jìn)行后續(xù)置換時(shí)可以跳過(guò)配置置換規(guī)則這一步驟,直接進(jìn)行上述 的第二、第三、第四步。
[0072] 該實(shí)施例在TSMC的130nm工藝庫(kù)下,DC綜合結(jié)果顯示,其面積約為1608個(gè)等效 門(mén),與用64位Benes網(wǎng)絡(luò)(面積約為5616個(gè)等效門(mén))來(lái)實(shí)現(xiàn)相同功能的子塊置換相比,該 實(shí)施例可以節(jié)省近70%的面積。上述數(shù)據(jù)顯示,本發(fā)明所涉及的任意置換電路結(jié)構(gòu)達(dá)到了 減低成本的目的,為后期的實(shí)際生產(chǎn)帶來(lái)有利的經(jīng)濟(jì)效益。
[0073] 由上述實(shí)施例可以看出,本發(fā)明能夠支持任意置換規(guī)則的位置換或者子塊置換。
【權(quán)利要求】
1. 一種置換規(guī)則配置簡(jiǎn)潔的通用置換電路結(jié)構(gòu),其特征在于:包括控制模塊、置換規(guī) 則寄存器模塊、源寄存器模塊、η選1多路選擇器、結(jié)果寄存器模塊,控制模塊的控制信號(hào)輸 入端用于接收外部輸入的控制信息,控制模塊的第一寫(xiě)使能控制信號(hào)端連接源寄存器模塊 的寫(xiě)使能控制信號(hào)接收端,控制模塊的第二寫(xiě)使能控制信號(hào)端連接結(jié)果寄存器模塊的寫(xiě)使 能控制信號(hào)接收端,控制模塊的第三寫(xiě)使能控制信號(hào)端連接置換規(guī)則寄存器模塊的寫(xiě)使能 控制信號(hào)接收端,控制模塊的狀態(tài)信號(hào)輸出端用于輸出置換電路的工作狀態(tài),控制模塊的 移位模式控制信號(hào)輸出端連接置換規(guī)則寄存器模塊的通道選擇輸入端;源寄存器模塊的數(shù) 據(jù)輸入端用于接收外部輸入的源數(shù)據(jù),源寄存器模塊的η個(gè)數(shù)據(jù)輸出端對(duì)應(yīng)連接η選1多 路選擇器的η個(gè)輸入通道端口,η選1多路選擇器的輸出通道端口連接結(jié)果寄存器模塊的 數(shù)據(jù)輸入端;置換規(guī)則寄存器模塊的置換規(guī)則輸入端用于接收外部輸入的置換規(guī)則信息, 置換規(guī)則寄存器模塊的置換信息輸出端分別連接η選1多路選擇器的通道選擇輸入端和置 換規(guī)則寄存器模塊的循環(huán)移位數(shù)據(jù)輸入端,結(jié)果寄存器模塊的數(shù)據(jù)輸出端用于輸出置換后 數(shù)據(jù);本置換電路還包括有一個(gè)時(shí)鐘信號(hào)輸入端口,時(shí)鐘信號(hào)輸入端口用于接收外部提供 的時(shí)鐘信號(hào),并為整個(gè)置換電路提供時(shí)鐘脈沖信號(hào); 其中,所述的控制模塊用于控制整個(gè)置換電路的工作狀態(tài)、接收并解析操作命令字、反 饋置換電路的工作狀態(tài);控制模塊包括一個(gè)狀態(tài)機(jī)和一個(gè)計(jì)數(shù)器; 所述的源寄存器模塊用于存放需要進(jìn)行位置換或子塊置換的數(shù)據(jù),由η個(gè)數(shù)據(jù)位寬為 m比特的源數(shù)據(jù)寄存器構(gòu)成,源數(shù)據(jù)寄存器從左至右的編號(hào)依次為Sn_i,Sn_2,……,Sp SQ ; 所述的η選1多路選擇器用于從源寄存器模塊中選擇出相應(yīng)編號(hào)源數(shù)據(jù)寄存器中的數(shù) 據(jù),其η個(gè)輸入通道端口和1個(gè)輸出通道端口的數(shù)據(jù)位寬均為m比特;η選1多路選擇器的 第0號(hào)輸入通道端口連接源寄存器模塊中的第\號(hào)寄存器的數(shù)據(jù)輸出端,第1號(hào)輸入通道 端口連接源寄存器模塊中的第Si號(hào)寄存器的數(shù)據(jù)輸出端,第2, 3, 4,……n-1號(hào)以此類(lèi)推, η選1多路選擇器的輸出通道端口連接結(jié)果寄存器模塊中的數(shù)據(jù)輸入端; 所述的置換規(guī)則寄存器模塊用于存放置換規(guī)則,包括η個(gè)數(shù)據(jù)位寬為k比特的置換規(guī) 則寄存器和一個(gè)數(shù)據(jù)位寬為k比特的二選一多路選擇器,其中k是大于或等于log〗的最小 正整數(shù);η個(gè)置換規(guī)則寄存器從左至右的編號(hào)依次為:心,……,A n_2, An_i ;n個(gè)置換規(guī)則 寄存器按如下規(guī)則連接構(gòu)成一個(gè)移位寄存器鏈:當(dāng)〇〈i < n-1時(shí),第&號(hào)置換規(guī)則寄存器的 數(shù)據(jù)輸入端連接第Ah號(hào)置換規(guī)則寄存器的數(shù)據(jù)輸出端;第&號(hào)置換規(guī)則寄存器的數(shù)據(jù)輸 入端連接二選一多路選擇器的輸出端;二選一多路選擇器的通道選擇輸入端連接控制模塊 的移位模式控制信號(hào)輸出端;二選一多路選擇器的循環(huán)移位數(shù)據(jù)輸入端連接置換規(guī)則寄存 器模塊中第A n_i號(hào)置換規(guī)則寄存器的數(shù)據(jù)輸出端;二選一多路選擇器的置換規(guī)則輸入端用 于接收置換規(guī)則信息;第An_i號(hào)置換規(guī)則寄存器的數(shù)據(jù)輸出端同時(shí)作為置換信息輸出端; 所述的結(jié)果寄存器模塊用于存放置換后的數(shù)據(jù),由η個(gè)數(shù)據(jù)位寬為m比特的結(jié)果寄存 器構(gòu)成;結(jié)果寄存器從左至右的編號(hào)依次為D n_i,Dn_2,……,Dp % ;n個(gè)結(jié)果寄存器按如下 規(guī)則連接構(gòu)成一個(gè)移位寄存器鏈:當(dāng)〇〈i < n-1時(shí),第Di號(hào)結(jié)果寄存器的數(shù)據(jù)輸入端連接 第Dg號(hào)結(jié)果寄存器的數(shù)據(jù)輸出端;而第%號(hào)結(jié)果寄存器的數(shù)據(jù)輸入端連接η選1多路選 擇器的輸出通道端口,η個(gè)結(jié)果寄存器的數(shù)據(jù)輸出端拼接在一起作為置換后數(shù)據(jù)輸出端口。
【文檔編號(hào)】G11C8/06GK104123959SQ201410347018
【公開(kāi)日】2014年10月29日 申請(qǐng)日期:2014年7月21日 優(yōu)先權(quán)日:2014年7月21日
【發(fā)明者】敖天勇, 向兵, 吳永輝 申請(qǐng)人:河南大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1