CN104123959B - The generic permutations circuit structure that replacement rule configuration is succinct - Google Patents
The generic permutations circuit structure that replacement rule configuration is succinct Download PDFInfo
- Publication number
- CN104123959B CN104123959B CN201410347018.9A CN201410347018A CN104123959B CN 104123959 B CN104123959 B CN 104123959B CN 201410347018 A CN201410347018 A CN 201410347018A CN 104123959 B CN104123959 B CN 104123959B
- Authority
- CN
- China
- Prior art keywords
- replacement
- data
- register
- module
- replacement rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 238000000034 method Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种置换规则配置简洁的通用置换电路结构,包括控制模块、置换规则寄存器模块、源寄存器模块、n选1多路选择器、结果寄存器模块,控制模块的三个写使能控制信号端分别连接源寄存器模块、结果寄存器模块和置换规则寄存器模块的写使能控制信号接收端,控制模块的移位模式控制信号输出端连接置换规则寄存器模块的通道选择输入端;源寄存器模块的n个数据输出端对应连接n选1多路选择器的n个输入通道端口,n选1多路选择器的输出通道端口连接结果寄存器模块的数据输入端;置换规则寄存器模块的置换信息输出端分别连接n选1多路选择器的通道选择输入端和置换规则寄存器模块的循环移位数据输入端。
The invention discloses a general replacement circuit structure with simple configuration of replacement rules, including a control module, a replacement rule register module, a source register module, an n-to-1 multiplexer, a result register module, and three write enable controls of the control module The signal end is respectively connected to the write enable control signal receiving end of the source register module, the result register module and the replacement rule register module, and the shift mode control signal output end of the control module is connected to the channel selection input end of the replacement rule register module; The n data output ports are connected to the n input channel ports of the n-to-1 multiplexer, and the output channel port of the n-to-1 multiplexer is connected to the data input port of the result register module; the replacement information output port of the replacement rule register module The channel selection input terminal of the n-to-1 multiplexer and the circular shift data input terminal of the replacement rule register module are respectively connected.
Description
技术领域technical field
本发明涉及密码芯片集成电路设计技术领域,尤其涉及一种置换规则配置简洁的通用置换电路结构。The invention relates to the technical field of cryptographic chip integrated circuit design, in particular to a general replacement circuit structure with simple configuration of replacement rules.
背景技术Background technique
Bit Permutation(位置换)和sub-block permutation(子块置换)在密码算法应用中有着重要的地位。例如DES,Present,Sperent等密码算法中均使用了比特级的位置换。位置换只改变数据中比特位数据的位置而不改变这些位的值。假设某一个位置换函数将n比特的数据S转成n比特的数据D,则有D[i]=S[π(i)],即数据D的第i位的值等于数据S的第π(i)位的值,其中0≤i≤n-1,π表示一个置换规则函数,其值域为[0,n-1]的整数,D[i]表示数据D的第i位的值,S[π(i)]表示数据S的第π(i)位的值。这里称数据S为源数据,数据D为结果数据。如图1所示,一种固定置换规则下的4比特位置换示意图。假设数据S由4比特的二进制数据组成,从左至右各比特位依次记作S3、S2、S1、S0,则数据S可以表示成S={S3S2S1S0},其中Si的值等于0或1。同理,数据D可以表示为D={D3D2D1D0}。在图1所示的位置换中的置换规则函数为:π(3)=1,π(2)=3,π(1)=0,π(0)=2,即数据D的第3位的值来自给数据S的第1位,数据D的第2位的值来自给数据S的第3位,数据D的第1位的值来自给数据S的第0位,数据D的第0位的值来自给数据S的第2位。在该位置换规则下,若数据S的值为S={1110},那么数据D的值就为D={1101};若数据S的值为S={0101},那么数据D的值就为D={0011}。Bit Permutation (position replacement) and sub-block permutation (sub-block replacement) have an important position in the application of cryptographic algorithms. Bit-level position replacement is used in cryptographic algorithms such as DES, Present, and Sperent, for example. Bit permutation only changes the position of the bits in the data without changing the value of those bits. Assuming that a certain position replacement function converts n-bit data S into n-bit data D, then D[i]=S[π(i)], that is, the value of the i-th bit of data D is equal to the π-th of data S (i) The value of the bit, where 0≤i≤n-1, π represents a permutation rule function whose value range is an integer of [0, n-1], D[i] represents the value of the i-th bit of the data D , S[π(i)] represents the value of the π(i)th bit of the data S. Here, the data S is called the source data, and the data D is the result data. As shown in FIG. 1 , a schematic diagram of 4-bit permutation under a fixed permutation rule. Assuming that the data S is composed of 4-bit binary data, and the bits from left to right are recorded as S 3 , S 2 , S 1 , S 0 in turn, then the data S can be expressed as S={S 3 S 2 S 1 S 0 }, where the value of S i is equal to 0 or 1. Similarly, the data D can be expressed as D={D 3 D 2 D 1 D 0 }. The replacement rule function in the position replacement shown in Figure 1 is: π(3)=1, π(2)=3, π(1)=0, π(0)=2, that is, the third bit of the data D The value of the first bit of data S comes from the first bit of data S, the value of the second bit of data D comes from the third bit of data S, the value of the first bit of data D comes from the 0th bit of data S, and the 0th bit of data D The value of the bit comes from bit 2 of the given data S. Under this replacement rule, if the value of data S is S={1110}, then the value of data D is D={1101}; if the value of data S is S={0101}, then the value of data D is is D={0011}.
将上述数据中连续的m个比特位看作一个整体,这个整体就形成一个子块,子块的大小为m比特。子块置换与位置换类似,只改变子块的位置,不改变子块内部数据值。在广义Feistel型密码算法中,通常将分组数据分成多个子块,并使用子块置换进行扩散。在现有的密码算法中通常采用子块循环移动的置换规则。同时,实现对任意置换规则的子块置换的支持,有利于实现更安全的密码算法。对于固定规则置换可以采用硬件连线的方式来实现,该方法虽然具有实现成本低的优点,但缺乏灵活性。每个设计只能支持一种固定规则的置换,无法支持任意规则的置换。然而,不同的密码算法中的位置换规则并不相同。此外,在支持可自定义位置换或子块置换规则的密码算法芯片中,需要一种支持任意置换规则,且置换规则信息配置简单、实现成本较低的置换电路。因此,存在着支持任意置换规则的设计需求。Considering the continuous m bits in the above data as a whole, the whole forms a sub-block, and the size of the sub-block is m bits. Sub-block replacement is similar to position replacement, only the position of the sub-block is changed, and the internal data value of the sub-block is not changed. In the generalized Feistel-type cryptographic algorithm, the packet data is usually divided into multiple sub-blocks, and sub-block permutation is used for diffusion. In the existing cryptographic algorithms, the replacement rule of sub-block cyclical movement is usually adopted. At the same time, the realization of sub-block permutation support for arbitrary permutation rules is conducive to the realization of more secure cryptographic algorithms. The replacement of fixed rules can be implemented by means of hardware wiring. Although this method has the advantage of low implementation cost, it lacks flexibility. Each design can only support a fixed rule of replacement, and cannot support the replacement of arbitrary rules. However, the bit replacement rules in different cryptographic algorithms are not the same. In addition, in a cryptographic algorithm chip that supports user-defined position replacement or sub-block replacement rules, there is a need for a replacement circuit that supports arbitrary replacement rules, has simple configuration of replacement rule information, and is low in implementation cost. Therefore, there is a design requirement to support arbitrary permutation rules.
实现任意规则的位置换或子块置换,通常有软件和硬件两种途径。There are usually two ways to realize arbitrary regular position replacement or sub-block replacement, software and hardware.
采用软件方式实现位置换的思想通常是根据置换规则,从源数据中取出一位数据,然后移动到相应目标位置上,再将该值合并到结果数据中,即反复进行取数、屏蔽(按位与)、移动、合并(按位或)四类操作。其时间开销较大,对于n比特数据进行任意位置换时,如果采用具有桶形移位寄存器的处理器,一般需要4n个周期。如果处理器不具备桶形移位寄存器,则所耗时间更长。为了在通用处理器中高效地支持位置换,Ruly.B.LEE等人提出了GRP,BFLY,OMFLIP等几种位置换指令。这些设计虽然能够灵活地支持位置换,但其硬件开销较大,根据公开数据显示在ASIC设计中至少需要一万九千个等效门。此外,用软件实现任意位置换时编程较为复杂。对于子块置换,如果子块的大小不是一个字节大小的整数倍时,用软件实现子块置换将会非常麻烦,且执行效率低下。The idea of using software to realize position replacement is usually to take out a bit of data from the source data according to the replacement rules, then move to the corresponding target position, and then merge the value into the result data, that is, to repeatedly fetch and mask (press Bitwise and), move, merge (bitwise or) four types of operations. Its time overhead is relatively large. When performing arbitrary position replacement for n-bit data, if a processor with a barrel shift register is used, generally 4n cycles are required. It will take even longer if the processor does not have a barrel shifter. In order to efficiently support position replacement in general-purpose processors, Ruly.B.LEE et al. proposed several position replacement instructions such as GRP, BFLY, and OMFLIP. Although these designs can flexibly support position replacement, their hardware overhead is large. According to public data, at least 19,000 equivalent gates are required in an ASIC design. In addition, programming is complicated when performing arbitrary position replacement by software. For sub-block replacement, if the size of the sub-block is not an integer multiple of the size of a byte, it will be very troublesome to implement the sub-block replacement by software, and the execution efficiency is low.
采用硬件实现位置换(或子块置换)的常见思想是根据置换规则在源数据和结果数据相应位(或子块)之间建立起对应的数据传输通道,将源数据中各位(或子块)的值传递到结果数据的相应的位置上。为了实现支持任意的位置换(或子块置换),一般采用可配置的交换网络来实现,如交叉开关网络、Benes网络等。通常相同规模下,Benes网络的硬件资源开销比交叉开关网络低。但这些交换网络均需要大量的置换开关和控制位寄存器。例如,采用Benes网络实现n比特位置换电路时,需要个2-2置换开关、比特用于存储置换开关控制信息的寄存器,和2n比特用于存储置换前后数据的寄存器,其中一个置换开关由两个二选一多路选择器构成。对n=128任意位置换,采用Benes网络实现时,需要1664个二选一多路选择器和1088比特的寄存器,其中832比特寄存器用于存储控制位信息,256比特用于存储数据S和数据D。此外,在Benes网络下,当给定某一置换规则时,需要间接地通过一套复杂的配置算法从该置换规则中推算出各控制位的配置信息。这使得置换规则与配置信息之间的关系并不直观明了。The common idea of using hardware to realize position replacement (or sub-block replacement) is to establish a corresponding data transmission channel between the corresponding bits (or sub-blocks) of source data and result data according to the replacement rules, and transfer each bit (or sub-block) in the source data to ) is passed to the corresponding position of the result data. In order to support arbitrary position permutation (or sub-block permutation), it is generally realized by using a configurable switching network, such as a crossbar switch network, a Benes network, and the like. Generally, at the same scale, the hardware resource overhead of the Benes network is lower than that of the crossbar network. However, these switching networks require a large number of permutation switches and control bit registers. For example, when using a Benes network to realize an n-bit permutation circuit, it is necessary a 2-2 displacement switch, The bit is used for storing the register of the replacement switch control information, and the 2n bits are used for the register of storing the data before and after the replacement, and one of the replacement switches is composed of two two-to-one multiplexers. For the replacement of n=128 arbitrary positions, when the Benes network is used to implement, 1664 two-to-one multiplexers and 1088-bit registers are required, of which 832-bit registers are used to store control bit information, and 256 bits are used to store data S and data d. In addition, under the Benes network, when a certain replacement rule is given, it is necessary to indirectly calculate the configuration information of each control bit from the replacement rule through a set of complex configuration algorithms. This makes the relationship between substitution rules and configuration information not intuitive.
发明内容Contents of the invention
本发明的目的是提供一种置换规则配置简洁的通用置换电路结构,使用简单的配置算法,简便、直观地配置置换电路的置换规则信息,有效降低任意置换的使用难度,并能够有效降低置换电路的芯片面积,从而降低芯片生产成本。The purpose of the present invention is to provide a general permutation circuit structure with simple configuration of permutation rules. Using a simple configuration algorithm, the permutation rule information of the permutation circuit can be configured simply and intuitively, effectively reducing the difficulty of using any permutation, and effectively reducing the permutation circuit complexity. chip area, thereby reducing chip production costs.
本发明采用的技术方案为:The technical scheme adopted in the present invention is:
一种置换规则配置简洁的通用置换电路结构,其特征在于:包括控制模块、置换规则寄存器模块、源寄存器模块、n选1多路选择器、结果寄存器模块,控制模块的控制信号输入端用于接收外部输入的控制信息,控制模块的第一写使能控制信号端连接源寄存器模块的写使能控制信号接收端,控制模块的第二写使能控制信号端连接结果寄存器模块的写使能控制信号接收端,控制模块的第三写使能控制信号端连接置换规则寄存器模块的写使能控制信号接收端,控制模块的状态信号输出端用于输出置换电路的工作状态,控制模块的移位模式控制信号输出端连接置换规则寄存器模块的通道选择输入端;源寄存器模块的数据输入端用于接收外部输入的源数据,源寄存器模块的n个数据输出端对应连接n选1多路选择器的n个输入通道端口,n选1多路选择器的输出通道端口连接结果寄存器模块的数据输入端;置换规则寄存器模块的置换规则输入端用于接收外部输入的置换规则信息,置换规则寄存器模块的置换信息输出端分别连接n选1多路选择器的通道选择输入端和置换规则寄存器模块的循环移位数据输入端,结果寄存器模块的数据输出端用于输出置换后数据;本置换电路还包括有一个时钟信号输入端口,时钟信号输入端口用于接收外部提供的时钟信号,并为整个置换电路提供时钟脉冲信号;A general replacement circuit structure with simple configuration of replacement rules is characterized in that it includes a control module, a replacement rule register module, a source register module, an n-to-1 multiplexer, and a result register module, and the control signal input terminal of the control module is used for Receive external input control information, the first write enable control signal end of the control module is connected to the write enable control signal receiving end of the source register module, and the second write enable control signal end of the control module is connected to the write enable of the result register module The control signal receiving end, the third write enable control signal end of the control module is connected to the write enable control signal receiving end of the replacement rule register module, the status signal output end of the control module is used to output the working state of the replacement circuit, and the shifting of the control module The output terminal of the bit pattern control signal is connected to the channel selection input terminal of the replacement rule register module; the data input terminal of the source register module is used to receive the source data input from the outside, and the n data output terminals of the source register module are correspondingly connected to an n-to-1 multiplexer n input channel ports of the device, and the output channel port of the n-choice 1 multiplexer is connected to the data input end of the result register module; the replacement rule input port of the replacement rule register module is used to receive the replacement rule information input from the outside, and the replacement rule register The replacement information output terminal of the module is respectively connected to the channel selection input terminal of the n-to-1 multiplexer and the cyclic shift data input terminal of the replacement rule register module, and the data output terminal of the result register module is used to output the data after replacement; the replacement circuit It also includes a clock signal input port, the clock signal input port is used to receive the clock signal provided by the outside, and provide the clock pulse signal for the whole replacement circuit;
其中,所述的控制模块用于控制整个置换电路的工作状态、接收并解析操作命令字、反馈置换电路输出置换电路的工作状态;控制模块包括一个状态机和一个计数器;Wherein, the control module is used to control the working state of the entire replacement circuit, receive and analyze the operation command word, and feed back the working state of the replacement circuit to output the replacement circuit; the control module includes a state machine and a counter;
所述的源寄存器模块用于存放需要进行位置换或子块置换的数据,由n个数据位宽为m比特的源数据寄存器构成,源数据寄存器从左至右的编号依次为Sn-1,Sn-2,……,S1,S0;The source register module is used to store data that requires position replacement or sub-block replacement, and is composed of n source data registers with a data bit width of m bits, and the numbers of the source data registers from left to right are S n-1 ,S n-2 ,……,S 1 ,S 0 ;
所述的n选1多路选择器用于从源寄存器模块中选择出相应编号源数据寄存器中的数据,其n个输入通道端口和1个输出通道端口的数据位宽均为m比特;n选1多路选择器的第0号输入通道端口连接源寄存器模块中的第S0号寄存器的数据输出端,第1号输入通道端口连接源寄存器模块中的第S1号寄存器的数据输出端,第2,3,4,……n-1号以此类推,n选1多路选择器的输出通道端口连接结果寄存器模块中的数据输入端;The n-choice 1 multiplexer is used to select the data in the source data register of the corresponding number from the source register module, and the data bit widths of its n input channel ports and 1 output channel port are all m bits; 1. The No. 0 input channel port of the multiplexer is connected to the data output end of the No. S0 register in the source register module, and the No. 1 input channel port is connected to the data output end of the No. S1 register in the source register module, No. 2, 3, 4, ... n-1 and so on, the output channel port of n selecting 1 multiplexer is connected to the data input terminal in the result register module;
所述的置换规则寄存器模块用于存放置换规则,包括n个数据位宽为k比特的置换规则寄存器和一个数据位宽为k比特的二选一多路选择器,其中k是大于或等于的最小正整数;n个置换规则寄存器从左至右的编号依次为:A0,A1,……,An-2,An-1;n个置换规则寄存器按如下规则连接构成一个移位寄存器链:当0<i≤n-1时,第Ai号置换规则寄存器的数据输入端连接第Ai-1号置换规则寄存器的数据输出端;第A0号置换规则寄存器的数据输入端连接二选一多路选择器的输出端;二选一多路选择器的通道选择输入端连接控制模块的移位模式控制信号输出端;二选一多路选择器的循环移位数据输入端连接置换规则寄存器模块中第An-1号置换规则寄存器的数据输出端,此时这些置换规则寄存器工作于循环移位模式;二选一多路选择器的置换规则输入端用于接收置换规则信息,此时这些置换规则寄存器工作于移位模式;第An-1号置换规则寄存器的数据输出端同时作为置换信息输出端;The replacement rule register module is used to store replacement rules, including n replacement rule registers with a data bit width of k bits and a two-to-one multiplexer with a data bit width of k bits, wherein k is greater than or equal to The smallest positive integer; the numbers of the n replacement rule registers from left to right are: A 0 , A 1 ,...,A n-2 , A n-1 ; the n replacement rule registers are connected according to the following rules to form a shift Bit register chain: when 0<i≤n-1, the data input end of the No. A i replacement rule register is connected to the data output end of the No. A i-1 replacement rule register; the data input of the A No. 0 replacement rule register The terminal is connected to the output end of the two-choice one multiplexer; the channel selection input end of the two-choice one multiplexer is connected to the shift mode control signal output end of the control module; the circular shift data input of the two-choice one multiplexer End is connected to the data output end of No. A n-1 replacement rule register in the replacement rule register module, and now these replacement rule registers work in the circular shift mode; the replacement rule input end of the two-choice one multiplexer is used to receive the replacement Rule information, these replacement rule registers work in shift mode at this moment; the data output end of No. A n-1 replacement rule register is simultaneously used as the replacement information output end;
所述的结果寄存器模块用于存放置换后的数据,由n个数据位宽为m比特的结果寄存器构成;结果寄存器从左至右的编号依次为Dn-1,Dn-2,……,D1,D0;n个结果寄存器按如下规则连接构成一个移位寄存器链:当0<i≤n-1时,第Di号结果寄存器的数据输入端连接第Di-1号结果寄存器的数据输出端;而第D0号结果寄存器的数据输入端连接n选1多路选择器的输出通道端口,n个结果寄存器的数据输出端拼接在一起作为置换后数据输出端口。The result register module is used to store the exchanged data, and is composed of n result registers with a data bit width of m bits; the numbers of the result registers from left to right are D n-1 , D n-2 ,... , D 1 , D 0 ; n result registers are connected according to the following rules to form a shift register chain: when 0<i≤n-1, the data input terminal of No. D i result register is connected to No. D i-1 result The data output end of the register; and the data input end of the No. D0 result register is connected to the output channel port of the n-to-1 multiplexer, and the data output ends of the n result registers are spliced together as the data output port after replacement.
本发明通过控制模块控制并协调置换电路中的置换规则寄存器模块、源寄存器模块、n选1多路选择器和结果寄存器模块各个模块之间的工作,并将接收到的外部控制信息进行解析处理,合理的控制各个模块间的协调动作;The invention controls and coordinates the work among the modules of the replacement rule register module, the source register module, the n-to-1 multiplexer and the result register module in the replacement circuit through the control module, and analyzes and processes the received external control information , to reasonably control the coordinated action between each module;
优点:1.通过本发明的置换电路结构能够灵活地开发出支持任意置换规则的位置换或子块置换电路,本发明所提供的置换电路结构,置换规则的配置信息与置换规则之间的关系简单明了,不需要使用复杂的配置算法来确定配置信息,能够有效地降低任意规则位置换或子块置换的使用难度;Advantages: 1. Through the replacement circuit structure of the present invention, a position replacement or sub-block replacement circuit supporting any replacement rule can be flexibly developed, the replacement circuit structure provided by the present invention, the relationship between the configuration information of the replacement rule and the replacement rule It is simple and clear, does not need to use complex configuration algorithms to determine configuration information, and can effectively reduce the difficulty of using any regular position replacement or sub-block replacement;
2.利用本发明提供的置换电路结构具有实现成本低的优点,特别是当n大于16时,DC综合结果显示,本发明所提供的置换电路的面积小于相同尺寸的Benes网络的面积。本发明所提供的置换电路结构,进行n比特置换时,仅需要比特的寄存器、一个n选1多路选择器和简单控制电路;其中一个n选一多路选择器可以用n-1个二选一多路选择器来构建;当n较大时,其中的二选一多路选择器的个数远小于Benes网络中的个数例如,n=128时,本发明中只需要127个二选一多路选择器,而Benes网络需要1664个二选一多路选择。控制模块部分主要包括比特寄存器(其中2比特用表示状态机,比特用于计数)和一些逻辑电路构成,其面积开销较小;以n=128比特的位置换电路为例,在TSMC的130nm工艺库下DC综合结果显示,其中控制模块的面积约为210个等效门,小于100个二选一多路选择的面积。因此可以认为在n不超128时,控制电路的面积不超100个二选一多路选择器的面积。2. Utilizing the replacement circuit structure provided by the present invention has the advantage of low cost, especially when n is greater than 16, the DC synthesis result shows that the area of the replacement circuit provided by the present invention is smaller than that of the Benes network of the same size. The permutation circuit structure provided by the present invention, when performing n-bit permutation, only needs bit registers, an n-to-1 multiplexer and a simple control circuit; one of the n-to-one multiplexers can be constructed with n-1 two-to-one multiplexers; when n is larger, the The number of two-to-one multiplexers is much smaller than that in the Benes network For example, when n=128, only 127 two-to-one multiplexers are needed in the present invention, while the Benes network requires 1664 two-to-one multiplexers. The control module part mainly includes Bit register (where 2 bits are used to represent the state machine, Bits are used for counting) and some logic circuits, and its area overhead is relatively small; taking the n=128-bit position replacement circuit as an example, the DC synthesis results under TSMC’s 130nm process library show that the area of the control module is about 210 The equivalent gate is less than the area of 100 two-choice one-to-one multi-way selections. Therefore, it can be considered that when n does not exceed 128, the area of the control circuit does not exceed the area of 100 two-to-one multiplexers.
附图说明Description of drawings
图1为本发明的背景技术中一种置换规则下的4比特位置换示意图;Fig. 1 is a schematic diagram of a 4-bit position replacement under a replacement rule in the background technology of the present invention;
图2为本发明的电路结构原理框图;Fig. 2 is a schematic block diagram of circuit structure of the present invention;
图3为本发明的支持128比特任意置换规则的位置换电路结构原理框图;Fig. 3 is the functional block diagram of the position replacement circuit structure supporting 128 bits of arbitrary replacement rules of the present invention;
图4为本发明的支持16个子块任意置换规则的子块置换电路原理框图。Fig. 4 is a functional block diagram of a sub-block replacement circuit supporting arbitrary replacement rules of 16 sub-blocks according to the present invention.
具体实施方式detailed description
如图2所示,本发明包括控制模块、置换规则寄存器模块、源寄存器模块、n选1多路选择器、结果寄存器模块,控制模块的控制信号输入端用于接收外部输入的控制信息A,控制模块的第一写使能控制信号端en1连接源寄存器模块的写使能控制信号接收端,控制模块的第二写使能控制信号端en2连接结果寄存器模块的写使能控制信号接收端,控制模块的第三写使能控制信号端en3连接置换规则寄存器模块的写使能控制信号接收端,控制模块的状态信号输出端用于输出置换电路的工作状态B,控制模块的移位模式控制信号输出端mod连接置换规则寄存器模块的通道选择输入端;源寄存器模块的数据输入端用于接收外部输入的源数据S,源寄存器模块的n个数据输出端对应连接n选1多路选择器的n个输入通道端口,n选1多路选择器的输出通道端口连接结果寄存器模块的数据输入端;置换规则寄存器模块的置换规则输入端用于接收外部输入的置换规则信息C,置换规则寄存器模块的置换信息输出端分别连接n选1多路选择器的通道选择输入端和置换规则寄存器模块的循环移位数据输入端,结果寄存器模块的数据输出端用于输出置换后数据D;本置换电路还包括有一个时钟信号输入端口,时钟信号输入端口用于接收外部提供的时钟信号,并为整个置换电路提供时钟脉冲信号clk;As shown in Figure 2, the present invention includes a control module, a replacement rule register module, a source register module, an n-to-1 multiplexer, and a result register module, and the control signal input terminal of the control module is used to receive externally input control information A, The first write enable control signal end en1 of the control module is connected to the write enable control signal receiving end of the source register module, and the second write enable control signal end en2 of the control module is connected to the write enable control signal receiving end of the result register module, The third write enable control signal end en3 of the control module is connected to the write enable control signal receiving end of the replacement rule register module, the state signal output end of the control module is used to output the working state B of the replacement circuit, and the shift mode control of the control module The signal output terminal mod is connected to the channel selection input terminal of the replacement rule register module; the data input terminal of the source register module is used to receive the source data S input from the outside, and the n data output terminals of the source register module are correspondingly connected to an n-to-1 multiplexer n input channel ports, the output channel port of n selecting 1 multiplexer is connected to the data input end of the result register module; the replacement rule input end of the replacement rule register module is used to receive the replacement rule information C of the external input, the replacement rule register The replacement information output terminal of the module is respectively connected to the channel selection input terminal of the n-to-1 multiplexer and the cyclic shift data input terminal of the replacement rule register module, and the data output terminal of the result register module is used to output the data D after replacement; this replacement The circuit also includes a clock signal input port, which is used to receive an externally provided clock signal and provide a clock pulse signal clk for the entire replacement circuit;
其中,所述的控制模块用于控制整个置换电路的工作状态、接收并解析操作命令字、反馈置换电路的工作状态;控制模块包括一个状态机和一个计数器;所述的状态机包含四种工作状态,分别为:加载置换规则状态、加载源数据状态、执行置换状态和输出置换结果状态;Wherein, the control module is used to control the working state of the entire replacement circuit, receive and analyze the operation command word, and feed back the working state of the replacement circuit; the control module includes a state machine and a counter; the state machine includes four kinds of work Status, respectively: load replacement rule status, load source data status, execution replacement status, and output replacement result status;
状态机的四种工作状态下控制模块的输出信号状态如下:The output signal states of the control module under the four working states of the state machine are as follows:
“加载置换规则状态”:控制模块输出的第一写使能控制信号(en1)无效(用‘0’表示),控制模块输出的第二写使能控制信号(en2)无效(用‘0’表示),控制模块输出的第三写使能控制信号(en3)有效(用‘1’表示),控制模块输出的置换规则寄存器模块移位模式控制信号(mod)为高电平(即使第A0号置换规则寄存器的输入数据来自外部输入的置换规则信息输入端),输出的状态信息为“01”。"Load replacement rule state": the first write enable control signal (en1) output by the control module is invalid (indicated by '0'), and the second write enable control signal (en2) output by the control module is invalid (indicated by '0' Indicates), the third write enable control signal (en3) output by the control module is valid (indicated by '1'), the replacement rule register module shift mode control signal (mod) output by the control module is high level (even if the A The input data of No. 0 replacement rule register comes from the replacement rule information input terminal input from the outside), and the output state information is "01".
“加载源数据状态”下,控制模块输出的第一写使能控制信号(en1)有效(用‘1’表示),即可以接收外部输入的源数据,控制模块输出的第二写使能控制信号(en2)无效,控制模块输出的第三写使能控制信号(en3)无效(用‘0’表示),控制模块输出的置换规则寄存器模块移位模式控制信号(mod)为低电平,输出的状态信息为“10”。In the "load source data state", the first write enable control signal (en1) output by the control module is valid (indicated by '1'), that is, the source data input from the outside can be received, and the second write enable control signal output by the control module The signal (en2) is invalid, the third write enable control signal (en3) output by the control module is invalid (indicated by '0'), the replacement rule register module shift mode control signal (mod) output by the control module is low level, The output status information is "10".
“执行置换状态”下,控制模块输出的第一写使能控制信号(en1)无效,控制模块输出的第二写使能控制信号(en2)有效(用‘1’表示),控制模块输出的第三写使能控制信号(en3)有效,控制模块输出的置换规则寄存器模块移位模式控制信号(mod)为低电平(即使第A0号置换规则寄存器的输入数据来自置换规则寄存器模块的循环移位数据输入端i0),输出的状态信息为“11”。In the "execution replacement state", the first write enable control signal (en1) output by the control module is invalid, the second write enable control signal (en2) output by the control module is valid (indicated by '1'), and the output by the control module The third write enabling control signal (en3) is valid, and the replacement rule register module shift mode control signal (mod) of the control module output is low level (even if the input data of the No. A 0 replacement rule register comes from the replacement rule register module. The circular shift data input terminal i0), the output state information is "11".
“输出置换结果状态”下,控制模块输出的第一写使能控制信号(en1)无效,控制模块输出的第二写使能控制信号(en2)无效,控制模块输出的第三写使能控制信号(en3)无效,控制模块输出的置换规则寄存器模块移位模式控制信号(mod)为低电平,输出的状态信息为“00”。In the "output replacement result state", the first write enable control signal (en1) output by the control module is invalid, the second write enable control signal (en2) output by the control module is invalid, and the third write enable control signal (en2) output by the control module is invalid. The signal (en3) is invalid, the displacement rule register module shift mode control signal (mod) output by the control module is low level, and the output state information is "00".
当输出的状态信息为“10”或“11”时,表示结果寄存器模块中的数据将被更新,输出的结果数据无效。当输出的状态信息为“00”或“01”时,表示输出的结果数据有效。When the output status information is "10" or "11", it means that the data in the result register module will be updated and the output result data is invalid. When the output status information is "00" or "01", it means that the output result data is valid.
状态机的四种工作状态按如下规则切换:The four working states of the state machine are switched according to the following rules:
状态机默认状态为“输出置换结果状态”,此状态下计数器的值被设置为0;The default state of the state machine is "output replacement result state", and the value of the counter is set to 0 in this state;
在“输出置换结果状态”下,当接收到“加载置换规则信息命令”后,状态机转入“加载置换规则状态”;In the "output replacement result state", when the "load replacement rule information command" is received, the state machine transfers to the "load replacement rule state";
在“加载置换规则状态”下,置换规则寄存器模块可以接收由外部输入的置换规则信息,每接收一个置换规则信息,计数器的值加1,当计数器的值等于n时,即当接收完n个置换规则信息后,状态机自动转入到“输出置换结果状态”;In the "load replacement rule state", the replacement rule register module can receive the replacement rule information input from the outside, and each time a replacement rule information is received, the value of the counter is increased by 1. When the value of the counter is equal to n, that is, when n After replacing the rule information, the state machine automatically transfers to the "output replacement result state";
在“输出置换结果状态”下,当接收到“加载源数据命令”后,状态机转入“加载源数据状态”;In the "output replacement result state", when the "load source data command" is received, the state machine transfers to the "load source data state";
在“加载源数据状态”下,当完成将外部输入的源数据写入到源寄存器模块的寄存器后,状态机自动转入“执行置换状态”;In the "loading source data state", when the externally input source data is written into the register of the source register module, the state machine automatically transfers to the "executing replacement state";
在“执行置换状态”下,置换规则寄存器模块中的各置换规则寄存器工作于循环移位模式,同时结果寄存器模块中的结果寄存器工作于向左移位模式,即每经过一个时钟周期,置换规则寄存器模块中的各置换规则寄存器中的数据向右循环移动一个位置,同时结果寄存器模块中的各结果寄存器中的数据向左移动一个位置,且第D0号结果寄存器的接收n选1多路选择器的输出值;每经过一个时钟周期,计数器的值加1;当计数器的值等于n时,状态机自动转入“输出置换结果状态”。In the "execution replacement state", each replacement rule register in the replacement rule register module works in the circular shift mode, and at the same time, the result register in the result register module works in the left shift mode, that is, every time a clock cycle passes, the replacement rule The data in each replacement rule register in the register module moves one position to the right, and at the same time, the data in each result register in the result register module moves one position to the left, and the receiving n of the No. 0 result register of D0 is multiplexed The output value of the selector; every time a clock cycle passes, the value of the counter is increased by 1; when the value of the counter is equal to n, the state machine automatically transfers to the "output replacement result state".
所述的源寄存器模块是用于存放需要进行位置换或子块置换的数据,由n个数据位宽为m比特的源数据寄存器构成,源数据寄存器从左至右的编号依次为Sn-1,Sn-2,……,S1,S0;当源寄存器模块的写使能控制信号接收端的信号有效时(en1=1),则将外部输入的数据写入到对应的源数据寄存器中。当源寄存器模块的写使能端的信号无效时(en1=0),则这些源数据寄存器中的值保持不变。The source register module is used to store data that requires position replacement or sub-block replacement, and is composed of n source data registers with a data bit width of m bits, and the numbers of the source data registers from left to right are S n- 1 ,S n-2 ,...,S 1 ,S 0 ; when the signal at the receiving end of the write enable control signal of the source register module is valid (en1=1), write the externally input data into the corresponding source data register. When the signal at the write enable end of the source register module is invalid (en1=0), the values in these source data registers remain unchanged.
所述的n选1多路选择器用于从源寄存器模块中选择出相应编号源数据寄存器中的数据,其n个输入通道端口和1个输出通道端口的数据位宽均为m比特;n选1多路选择器的第0号输入通道端口连接源寄存器模块中的第S0号寄存器的数据输出端,第1号输入通道端口连接源寄存器模块中的第S1号寄存器的数据输出端,第2,3,4,……n-1号以此类推,n选1多路选择器的输出通道端口连接结果寄存器模块中的数据输入端;The n-choice 1 multiplexer is used to select the data in the source data register of the corresponding number from the source register module, and the data bit widths of its n input channel ports and 1 output channel port are all m bits; 1. The No. 0 input channel port of the multiplexer is connected to the data output end of the No. S0 register in the source register module, and the No. 1 input channel port is connected to the data output end of the No. S1 register in the source register module, No. 2, 3, 4, ... n-1 and so on, the output channel port of n selecting 1 multiplexer is connected to the data input terminal in the result register module;
所述的置换规则寄存器模块用于存放置换规则,包括n个数据位宽为k比特的置换规则寄存器和一个数据位宽为k比特的二选一多路选择器,其中k是大于或等于的最小正整数;n个置换规则寄存器从左至右的编号依次为:A0,A1,……,An-2,An-1;n个置换规则寄存器按如下规则连接构成一个移位寄存器链:当0<i≤n-1时,第Ai号置换规则寄存器的数据输入端连接第Ai-1号置换规则寄存器的数据输出端;第A0号置换规则寄存器的数据输入端连接二选一多路选择器的输出端;二选一多路选择器的通道选择输入端连接控制模块的移位模式控制信号输出端(mod);当mod信号为0时(用低电平表示),二选一多路选择器的输出来自于第An-1号置换规则寄存器的数据输出端时(即i0端口),此时这些置换规则寄存器工作于循环移位模式;当mod信号为1时(用高电平表示),二选一多路选择器的输出来自外部输入的置换规则信息(即i1端口),此时这些置换规则寄存器工作于移位模式;第An-1号置换规则寄存器的数据输出端同时作为置换信息输出端;The replacement rule register module is used to store replacement rules, including n replacement rule registers with a data bit width of k bits and a two-to-one multiplexer with a data bit width of k bits, wherein k is greater than or equal to The smallest positive integer; the numbers of the n replacement rule registers from left to right are: A 0 , A 1 ,...,A n-2 , A n-1 ; the n replacement rule registers are connected according to the following rules to form a shift Bit register chain: when 0<i≤n-1, the data input end of the No. A i replacement rule register is connected to the data output end of the No. A i-1 replacement rule register; the data input of the A No. 0 replacement rule register terminal is connected to the output terminal of the two-to-one multiplexer; the channel selection input of the two-to-one multiplexer is connected to the shift mode control signal output (mod) of the control module; when the mod signal is 0 (with low power flat representation), when the output of the two-select-one multiplexer comes from the data output terminal of the No. A n-1 permutation rule register (i0 port), these permutation rule registers are working in the circular shift mode at this moment; when mod When the signal is 1 (indicated by a high level), the output of the two-choice multiplexer comes from the externally input permutation rule information (that is, the i1 port), and these permutation rule registers work in shift mode at this time; the first A n- The data output terminal of No. 1 replacement rule register is also used as the replacement information output terminal;
所述的结果寄存器模块用于存放置换后的数据,由n个数据位宽为m比特的结果寄存器构成;结果寄存器从左至右的编号依次为Dn-1,Dn-2,……,D1,D0;n个结果寄存器按如下规则连接构成一个移位寄存器链:当0<i≤n-1时,第Di号结果寄存器的数据输入端连接第Di-1号结果寄存器的数据输出端;而第D0号结果寄存器的数据输入端连接n选1多路选择器的输出通道端口,n个结果寄存器的数据输出端拼接在一起作为置换后数据输出端口。当结果寄存器模块的写使能端控制信号接收端的信号有效时,则本模块中各结果寄存器输入端的数据在时钟信号上升沿的触发下写入对应的结果寄存器中,从而使得结果数据向左移动一个位置;当结果寄存器模块的写使能控制信号接收端的信号无效时,则这些结果寄存器中的值保持不变。The result register module is used to store the exchanged data, and is composed of n result registers with a data bit width of m bits; the numbers of the result registers from left to right are D n-1 , D n-2 ,... , D 1 , D 0 ; n result registers are connected according to the following rules to form a shift register chain: when 0<i≤n-1, the data input terminal of No. D i result register is connected to No. D i-1 result The data output end of the register; and the data input end of the No. D0 result register is connected to the output channel port of the n-to-1 multiplexer, and the data output ends of the n result registers are spliced together as the data output port after replacement. When the signal of the control signal receiving end of the write enable end of the result register module is valid, the data at the input end of each result register in this module is written into the corresponding result register under the trigger of the rising edge of the clock signal, so that the result data moves to the left One location; when the write enable control signal receiving end of the result register block is deasserted, the values in these result registers remain unchanged.
在实际应用中,该置换电路由外部功能单元控制和使用,以完成相应的置换功能。本发明所述的置换电路完成位置换或子块置换功能时的工作过程如下:In practical applications, the replacement circuit is controlled and used by an external functional unit to complete the corresponding replacement function. The working process when the replacement circuit of the present invention completes the position replacement or sub-block replacement function is as follows:
第一步:配置置换规则。当控制模块输出的状态信息为“00”时(此时代表可以接收外部输入),外部功能单元输入“加载置换规则信息命令”,状态机转入“加载置换规则状态”,并在后续的n个时钟周期内,根据位置换(或子块置换)规则,依次向置换规则寄存器模块中写入表示结果数据的第i位(或子块)的值将来自源数据的哪一位(或子块)的数据;假设用π(i)表示,0≤i≤n-1,写入的顺序为:π(n-1),π(n-2),…….,π(1),π(0)。当n个置换信息写入完成后,状态机自动转入“输出置换状态”。此时,从逻辑上看置换规则寄存器模块中的第Ai号置换规则寄存器代表着置换后数据的第i位(或第i个子块),同时第Ai号置换规则寄存器中的值等于π(i),代表着结果数据的第i位(或第i个子块)来自于源数据的第π(i)位(或第π(i)个子块)。在上述过程中,外部功能单元发出的“加载置换规则信息命令”所持续的时间不能超过n个时钟周期,否则将触发新的一轮置换规则信息加载过程。Step 1: Configure replacement rules. When the state information output by the control module is "00" (representing that the external input can be received at this time), the external functional unit inputs the "loading replacement rule information command", and the state machine is transferred to the "loading replacement rule state", and in the subsequent n In a clock cycle, according to the position replacement (or sub-block replacement) rule, which bit (or sub-block) value of the i-th (or sub-block) representing the result data will be written in the replacement rule register module sequentially from the source data (or sub-block) block) data; assuming represented by π(i), 0≤i≤n-1, the order of writing is: π(n-1), π(n-2),……, π(1), π(0). When the writing of n pieces of replacement information is completed, the state machine automatically transfers to the "output replacement state". At this time, logically, the A i -th replacement rule register in the replacement rule register module represents the i-th (or i-th sub-block) of the data after replacement, and the value in the A i -th replacement rule register is equal to π (i), representing that the i-th bit (or i-th sub-block) of the result data comes from the π(i)-th bit (or π(i)-th sub-block) of the source data. In the above process, the duration of the "load replacement rule information command" issued by the external functional unit cannot exceed n clock cycles, otherwise a new round of replacement rule information loading process will be triggered.
第二步:加载源数据。当控制模块输出的状态信息为“00”时,外部输入“加载源数据命令”,状态机转入“加载源数据状态”,将待置换的源数据通过数据输入端口写入到源数据寄存器中。当加载源数据完成后,状态机自动转入“执行置换状态”,即自动转入第三步。外部功能单元发出的“加载源数据命令”所持续的时间不能超过n个时钟周期,否则,将自动引起新的一次源数据加载。即外部输入的控制信息在完成源数据加载后可以变为无效命令“00”或“01”。Step 2: Load the source data. When the state information output by the control module is "00", the external input "load source data command", the state machine transfers to "load source data state", and the source data to be replaced is written into the source data register through the data input port . When the loading of the source data is completed, the state machine automatically transfers to the "execution replacement state", that is, it automatically transfers to the third step. The duration of the "load source data command" issued by the external functional unit cannot exceed n clock cycles, otherwise, a new source data load will be automatically triggered. That is, the externally input control information can become an invalid command "00" or "01" after the source data loading is completed.
第三步:执行置换过程。此过程共需要n个周期。在每个时钟周期内进行如下操作:Step 3: Execute the replacement process. This process requires a total of n cycles. The following operations are performed in each clock cycle:
(1)n选1多路选择器根据置换规则寄存器模块的置换信息输出端提供的数据作为通道选择信号,从源寄存器模块中选择出相应编号源数据寄存器中的值,并送入到结果寄存器模块的数据输入端。(1) n selects 1 multiplexer according to the data provided by the replacement information output terminal of the replacement rule register module as a channel selection signal, selects the value in the corresponding number source data register from the source register module, and sends it to the result register The data input of the module.
(2)结果寄存器模块中的各结果寄存器中的数据向左移动一位置,即结果寄存器D0中的数据传递给结果寄存器D1,结果寄存器D1中的数据传递给结果寄存器D2,结果寄存器D3、结果寄存器D4......依次类推。(2) The data in each result register in the result register module moves to the left by one position, that is, the data in the result register D 0 is passed to the result register D 1 , the data in the result register D 1 is passed to the result register D 2 , and the result Register D 3 , result register D 4 ... and so on.
(3)置换规则寄存器模块中各置换规则寄存器数据向右循环移动一个位置,即置换规则寄存器A0中的数据传递给置换规则寄存器A1,置换规则寄存器A1中的数据传递给置换规则寄存器A2,置换规则寄存器A3、置换规则寄存器A4......依次类推,但置换规则寄存器An-1的值传递给置换规则寄存器A0;经过n个时钟周期后,置换规则寄存器模块中各置换规则寄存器的值回到第一步完成后的状态,同时结果寄存器模块的输出值就是置换后的结果。(3) The data of each replacement rule register in the replacement rule register module moves to the right by one position, that is, the data in the replacement rule register A 0 is passed to the replacement rule register A 1 , and the data in the replacement rule register A 1 is passed to the replacement rule register A 2 , replacement rule register A 3 , replacement rule register A 4 ...... and so on, but the value of the replacement rule register A n-1 is passed to the replacement rule register A 0 ; after n clock cycles, the replacement rule The value of each replacement rule register in the register module returns to the state after the first step is completed, and the output value of the result register module is the result after replacement.
第四步:读出置换后的数据结果。待上述的第三步完成后,置换电路输出的状态信息将变为“00”,此时代表着置换结果数据有效,外部功能单元可以从结果寄存器模块中的数据输出端口读得置换后的结果数据。Step 4: Read out the data result after replacement. After the third step above is completed, the status information output by the replacement circuit will change to "00", which means that the replacement result data is valid, and the external functional unit can read the replacement result from the data output port in the result register module data.
若对多个数据使用相同的置换规则进行置换时,第一步配置置换规则仅需要在首次置换时进行配置,而进行后续置换时可以跳过配置置换规则这一步骤,直接进行上述的第二、第三、第四步。上述的源寄存器模块、结果寄存器模块中各寄存器的数据位宽m以及n选1多路选择器的各通道数据位宽m均等于1时,利用本发明的置换电路结构可以实现支持任意置换规则的比特级位置换电路;当上述m为大于1的整数时,利用本发明的置换电路结构可以实现支持任意置换规则的子块置换电路,其中子块的大小为m比特,源数据和结果数据的数据位宽度为n*m比特。If the same replacement rule is used to replace multiple data, the first step of configuring the replacement rule only needs to be configured during the first replacement, and the step of configuring the replacement rule can be skipped for subsequent replacements, and the above-mentioned second step can be directly performed. , third, and fourth steps. When the data bit width m of each register in the above-mentioned source register module and the result register module and the data bit width m of each channel of the n-to-1 multiplexer are equal to 1, the replacement circuit structure of the present invention can be used to support any replacement rule bit-level position replacement circuit; when the above-mentioned m is an integer greater than 1, the sub-block replacement circuit supporting any replacement rule can be realized by using the replacement circuit structure of the present invention, wherein the size of the sub-block is m bits, source data and result data The data bit width of is n*m bits.
下面以实施例的方式详细说明本发明的工作原理:The working principle of the present invention is described in detail below in the mode of embodiment:
实施例1:Example 1:
利用本发明所提供的置换规则配置简洁的通用置换电路结构实现了一种支持128比特任意置换规则的位置换电路,其电路结构图如图3所示。A general permutation circuit structure with simple permutation rule configuration provided by the present invention is used to realize a position permutation circuit supporting any permutation rule of 128 bits, and its circuit structure diagram is shown in FIG. 3 .
该位置换电路包括五个部分,分别是源寄存器模块、128选1多路选择器、结果寄存器模块、置换规则寄存器模块和控制模块。在该实例中n的值为128,m的值为1,k的值为7。其中,所述的源寄存器模块内包含128个数据位宽为1比特的源寄存器和一个门控时钟单元,该门控时钟单元的输入为时钟信号(clk)和第一写使能控制信号(en1),该门控时钟单元输出一个门控时钟信号,并将该门控时钟信号作为源寄存器模块内所有源数据寄存器的时钟信号;所述的128选1多路选择器的各输入通道端口、输出通道端口的数据位宽为1比特;所述的结果寄存器模块内包含128个数据位宽为1比特的结果寄存器和一个门控时钟单元,该门控时钟单元的输入为时钟信号(clk)和第二写使能控制信号(en2),该门控时钟单元输出一个门控时钟信号,并将该门控时钟信号作为结果寄存器模块内所有结果寄存器的时钟信号,所述的结果寄存器模块的数据输出端口的数据位宽为128比特,数据输入端口数据位宽为1比特;所述的置换规则寄存器模块的置换规则输入端的数据位宽为7比特,置换信息输出端的数据位宽为7比特;所述的置换规则寄存器模块内包含128个数据位宽为7比特的置换规则寄存器、一个输入/输出通道数据位宽均为7比特的二选一多路选择器和一个门控时钟单元;该门控时钟单元的输入为时钟信号(clk)和第三写使能控制信号(en3),该门控时钟单元输出一个门控时钟信号,并将该门控时钟信号作为置换规则寄存器模块内所有置换规则寄存器的时钟信号;所述的控制模块用于控制和协调置换电路内各模块的工作、接收并解析外部输入的控制信息、反馈置换电路的工作状态;置换电路有四种工作状态,分别是加载置换规则状态、加载源数据状态、执行置换状态和输出置换结果状态。控制模块结合外部输入的控制信息控制各种工作状态之间的切换;控制信号输入端的数据宽度为2比特,用于接收外部输入的控制命令,控制命令包括:加载置换规则信息命令(用“10”表示),加载源数据命令(用“11”表示);当外部输入的控制信息为“00”或者“01”时,控制模块将其看作无效命令,不进行处理;状态信息输出端口的数据宽度为2比特,用于反馈置换电路的工作状态;控制模块包括一个具有四个状态的状态机和一个计数器;状态机的四个状态分别对应着置换电路的四种工作状态。在该实例中所述的状态机描述中n的值为128,该状态机的四种工作状态下控制模块的输出信号状态以及四种工作状态之间的切换规则与上述具体实施方式中状态机的描述相同,只需将n的值实例化为128即可,这里不再赘述。The replacement circuit includes five parts, which are source register module, 128-to-1 multiplexer, result register module, replacement rule register module and control module. In this example the value of n is 128, the value of m is 1, and the value of k is 7. Wherein, the source register module includes 128 source registers with a data bit width of 1 bit and a clock gate unit, the input of the clock gate unit is a clock signal (clk) and the first write enable control signal ( en1), the gated clock unit outputs a gated clock signal, and uses the gated clock signal as the clock signal of all source data registers in the source register module; each input channel port of the 128-choice 1 multiplexer , the data bit width of the output channel port is 1 bit; the described result register module contains 128 result registers and a gated clock unit whose data bit width is 1 bit, and the input of the gated clock unit is a clock signal (clk ) and the second write enable control signal (en2), the gating clock unit outputs a gating clock signal, and uses the gating clock signal as the clock signal of all result registers in the result register module, the result register module The data bit width of the data output port is 128 bits, and the data bit width of the data input port is 1 bit; the data bit width of the replacement rule input end of the described replacement rule register module is 7 bits, and the data bit width of the replacement information output end is 7 bits Bit; the replacement rule register module includes 128 data bit widths that are 7-bit replacement rule registers, an input/output channel data bit width that is 7-bit two-to-one multiplexer and a gate clock unit ; The input of the gated clock unit is a clock signal (clk) and the third write enable control signal (en3), the gated clock unit outputs a gated clock signal, and uses the gated clock signal as the replacement rule register module The clock signal of all the replacement rule registers in the replacement circuit; the control module is used to control and coordinate the work of each module in the replacement circuit, receive and analyze the control information input from the outside, and feed back the working state of the replacement circuit; the replacement circuit has four working states , which are the status of loading replacement rules, loading source data, executing replacement and outputting replacement results. The control module controls switching between various working states in combination with externally input control information; the data width of the control signal input end is 2 bits, which is used to receive externally input control commands, and the control commands include: load replacement rule information commands (use "10 " indicates), load the source data command (indicated by "11"); when the external input control information is "00" or "01", the control module regards it as an invalid command and does not process it; the status information output port The data width is 2 bits, which is used to feed back the working state of the replacement circuit; the control module includes a state machine with four states and a counter; the four states of the state machine correspond to the four working states of the replacement circuit respectively. In the description of the state machine described in this example, the value of n is 128. The output signal state of the control module and the switching rules between the four working states of the state machine are the same as the state machine in the above-mentioned specific embodiment. The description of is the same, just instantiate the value of n to 128, so I won't go into details here.
在具体应用中,根据具体需求将该置换电路与相应的外部功能单元连接,并由外部功能单元来控制和使用该置换电路,以完成相应的位置换功能。In a specific application, the permutation circuit is connected to a corresponding external functional unit according to specific requirements, and the permutation circuit is controlled and used by the external functional unit to complete the corresponding position permutation function.
外部功能单元通过控制信号输入端向控制模块输入操作命令字;通过输入数据端口提供待置换的128比特数据;通过置换规则信息输入端提供相应的置换规则信息;通过输出数据端口得到相应的置换结果;通过状态信息输出端口获知置换电路的工作状态;该置换电路的时钟信号与外部功能单元的时钟信号相同。The external functional unit inputs operation command words to the control module through the control signal input port; provides 128-bit data to be replaced through the input data port; provides corresponding replacement rule information through the replacement rule information input port; obtains the corresponding replacement result through the output data port ; Obtain the working state of the replacement circuit through the status information output port; the clock signal of the replacement circuit is the same as the clock signal of the external functional unit.
实施例1所述的置换电路完成128比特的位置换的工作过程如下:The permutation circuit described in Embodiment 1 completes the working process of the 128-bit position permutation as follows:
第一步:配置置换规则。当置换电路输出的状态信息为“00”时,外部功能单元发出一次“加载置换规则信息命令”,该置换电路转入“加载置换规则状态”,外部功能单元在后续的128个时钟周期内,根据位置换规则,通过置换规则信息输入端口依次向置换规则寄存器模块中写入128个7比特的置换规则信息,这些置换规则信息表示置换后结果数据的第i位的值将来自源数据的哪一位的数据,假设用π(i)表示,0≤i≤127,每个时钟周期外部功能单元提供一个置换规则信息,其顺序为:π(127),π(126),…….,π(1),π(0)。当128个置换规则信息写入完成后,该置换电路自动转入“输出置换结果状态”。从逻辑上看,此时置换规则寄存器模块中的第Ai号置换规则寄存器代表着置换后数据的第i位,同时第Ai号置换规则寄存器中的值等于π(i),这代表着结果数据的第i位来自于源数据的第π(i)位。在上述过程中外部功能单元发出的“加载置换规则信息命令”所持续的时间不能超过128个时钟周期。Step 1: Configure replacement rules. When the state information output by the replacement circuit is "00", the external functional unit sends a "load replacement rule information command", and the replacement circuit enters the "load replacement rule state". According to the position replacement rule, 128 pieces of 7-bit replacement rule information are sequentially written into the replacement rule register module through the replacement rule information input port. One bit of data, assuming represented by π(i), 0≤i≤127, each clock cycle external functional unit provides a replacement rule information, the order is: π(127), π(126),..., π(1), π(0). After the writing of 128 replacement rule information is completed, the replacement circuit automatically transfers to the "state of outputting replacement results". From a logical point of view, the No. A i replacement rule register in the replacement rule register module represents the i-th bit of the data after replacement, and the value in the No. A i replacement rule register is equal to π(i), which represents The i-th bit of the result data comes from the π(i)-th bit of the source data. In the above process, the duration of the "load replacement rule information command" issued by the external functional unit cannot exceed 128 clock cycles.
第二步:加载源数据。当置换电路输出的状态信息为“00”时,外部功能单元将待置换的源数据准备好,并发出“加载源数据命令”,状态机转入“加载源数据状态”,将待置换的源数据通过数据输入端口写入到源数据寄存器中。当加载源数据完成后,自动转入第三步。外部功能单元在发出的“加载源数据命令”持续时间不能超过128个时钟周期。Step 2: Load the source data. When the status information output by the replacement circuit is "00", the external functional unit prepares the source data to be replaced, and issues a "load source data command", the state machine transfers to the "load source data state", and the source data to be replaced Data is written into the source data register through the data input port. When the source data is loaded, it will automatically go to the third step. The duration of the "load source data command" issued by the external functional unit cannot exceed 128 clock cycles.
第三步:执行置换过程。在此过程中置换电路根据置换规则寄存器模块中的置换规则信息,更新结果寄存器模块的中数据。共需要128个时钟周期。此过程完成后,状态机自动转入“输出置换结果状态”。Step 3: Execute the replacement process. During this process, the replacement circuit updates the data in the result register module according to the replacement rule information in the replacement rule register module. A total of 128 clock cycles are required. After this process is completed, the state machine automatically transfers to the "output permutation result state".
第四步:读出置换后的数据结果。上述的第三步完成后置换电路输出的状态信息变为“00”,此时结果寄存器模块输出的数据即为置换后的结果数据,并且该值在“输出置换结果状态”下保持不变,外部功能单元可以读取本次的置换结果数据。Step 4: Read out the data result after replacement. After the above third step is completed, the state information output by the replacement circuit becomes "00", and the data output by the result register module is the result data after replacement, and this value remains unchanged under the "output replacement result state". The external functional unit can read the replacement result data of this time.
若对多个数据使用相同的置换规则进行置换时,第一步配置位置换规仅需要在首次置换时进行配置,而进行后续置换时可以跳过配置置换规则这一步骤,直接进行上述的第二、第三、第四步。If multiple data are replaced by the same replacement rule, the first step to configure the position replacement rule only needs to be configured during the first replacement, and the step of configuring the replacement rule can be skipped for subsequent replacements, and the above-mentioned first step can be directly performed. Two, three, and four steps.
该实施例在TSMC的130nm工艺库下,DC综合结果显示,其面积约为7756个等效门,与128位Benes网络(面积约为11275个等效门)相比可以节省近30%的面积。上述数据显示,本发明所涉及的通用置换电路结构达到了降低成本的目的,为后期的实际生产带来有利的经济效益。In this embodiment, under the 130nm process library of TSMC, the DC synthesis result shows that its area is about 7756 equivalent gates, which can save nearly 30% of the area compared with the 128-bit Benes network (area is about 11275 equivalent gates). . The above data show that the universal replacement circuit structure involved in the present invention achieves the purpose of reducing costs and brings favorable economic benefits to later actual production.
实施例2:Example 2:
利用本发明所提供的置换规则配置简洁的通用置换电路结构实现了一种支持16个子块(块大小为4比特)任意置换规则的子块置换电路,其电路结构如图4所示。A sub-block replacement circuit supporting arbitrary replacement rules for 16 sub-blocks (with a block size of 4 bits) is realized by using the general replacement circuit structure provided by the present invention with a simple configuration of replacement rules, and its circuit structure is shown in FIG. 4 .
该子块置换电路主要包括五个部分,分别是源寄存器模块、16选1多路选择器、结果寄存器模块、置换规则寄存器模块和控制模块。在该实例中n的值为16,m的值为4,k的值为4。所述的源寄存器模块内包含16个数据位宽为4比特的源寄存器和一个门控时钟单元,该门控时钟单元的输入为时钟信号(clk)和第一写使能控制信号(en1),该门控时钟单元输出一个门控时钟信号,并将该门控时钟信号作为源寄存器模块内所有源寄存器的时钟信号,所述的源寄存器模块的数据输入端口的数据位宽为64比特,分成16个子块连接到相应的源寄存器的数据输入端;所述的16选1多路选择器的各输入、输出通道端口的数据位宽为4比特;所述的结果寄存器模块内包含16个数据位宽为4比特的结果寄存器和一个门控时钟单元,该门控时钟单元的输入为时钟信号(clk)和第二写使能控制信号(en2),该门控时钟单元输出一个门控时钟信号,并将该门控时钟信号作为结果寄存器模块内所有结果寄存器的时钟信号;所述的结果寄存器模块的数据输入端口的数据位宽为4比特,数据输出端口的数据位宽为64比特,它由16个4比特结果寄存器的数据输出端拼接而成;所述的置换规则寄存器模块内包含16个数据位宽为4比特的置换规则寄存器、一个输入/输出通道数据位宽均为4比特的二选一多路选择器和一个门控时钟单元;该门控时钟单元的输入为时钟信号(clk)和第三写使能控制信号(en3),该门控时钟单元输出一个门控时钟信号,并将该门控时钟信号作为置换规则寄存器模块内所有置换规则寄存器的时钟信号;所述的置换规则寄存器模块的置换规则数据输入端口的数据位宽为4比特,置换信息的输出端口的数据位宽为4比特;在该实例中所述的状态机描述中n的值为16,该状态机的四种工作状态下控制模块的输出信号状态以及四种工作状态之间的切换规则与上述具体实施方式中状态机的描述相同,只需将n的值实例化为16即可,这里不再赘述。The sub-block replacement circuit mainly includes five parts, namely, a source register module, a 16-to-1 multiplexer, a result register module, a replacement rule register module and a control module. The value of n is 16, the value of m is 4, and the value of k is 4 in this example. The source register module includes 16 source registers with a data bit width of 4 bits and a gated clock unit, the input of which is a clock signal (clk) and the first write enable control signal (en1) , the gated clock unit outputs a gated clock signal, and uses the gated clock signal as the clock signal of all source registers in the source register module, the data bit width of the data input port of the source register module is 64 bits, Divided into 16 sub-blocks and connected to the data input terminals of the corresponding source registers; the data bit width of each input and output channel port of the 16-choice multiplexer is 4 bits; the described result register module contains 16 A result register with a data bit width of 4 bits and a gated clock unit whose input is a clock signal (clk) and a second write enable control signal (en2), and which outputs a gated clock unit Clock signal, and this gated clock signal is used as the clock signal of all result registers in the result register module; The data bit width of the data input port of the result register module is 4 bits, and the data bit width of the data output port is 64 bits , which is spliced by the data output ends of 16 4-bit result registers; the replacement rule register module includes 16 replacement rule registers with a data bit width of 4 bits, and an input/output channel with a data bit width of 4 bits. Bit two-to-one multiplexer and a gating clock unit; the input of the gating clock unit is the clock signal (clk) and the third write enable control signal (en3), and the gating clock unit outputs a gating clock unit clock signal, and this gated clock signal is used as the clock signal of all replacement rule registers in the replacement rule register module; the data bit width of the replacement rule data input port of the replacement rule register module is 4 bits, and the output port of the replacement information The data bit width is 4 bits; in the description of the state machine described in this example, the value of n is 16, the state of the output signal of the control module and the switching rules between the four working states of the state machine It is the same as the description of the state machine in the above-mentioned specific implementation manner, only need to instantiate the value of n as 16, which will not be repeated here.
实施例2所述的置换电路完成16个子块大小位4比特的任意置换规则的子块置换的工作过程如下:The permutation circuit described in Embodiment 2 completes the sub-block permutation process of any permutation rule with 16 sub-block sizes of 4 bits as follows:
第一步:配置置换规则。当置换电路输出的状态信息为“00”时,外部功能单元发出一次“加载置换规则信息命令”,该置换电路转入“加载置换规则状态”,外部功能单元在后续的16个时钟周期内,根据子块置换规则,通过置换规则信息输入端口依次向置换规则寄存器模块中写入16个4比特的置换规则信息,这些置换规则信息表示置换后结果数据的第i个子块的值将来自源数据的哪一个子块的数据(假设用π(i)表示,0≤i≤15),每个时钟周期外部功能单元提供一个置换规则信息,其顺序为:π(15),π(14),…….,π(1),π(0)。当16个置换规则信息写入完成后,该置换电路自动转入“输出置换结果状态”。从逻辑上看,此时置换规则寄存器模块中的第Ai号置换规则寄存器代表着置换后数据的第i个子块,同时第Ai号置换规则寄存器中的值等于π(i),这代表着结果数据的第i个子块的值来自于源数据的第π(i)个子块。在上述过程中外部功能单元发出的“加载置换规则信息命令”所持续的时间不能超过16个时钟周期。Step 1: Configure replacement rules. When the state information output by the replacement circuit is "00", the external functional unit sends a "load replacement rule information command", and the replacement circuit is transferred to the "load replacement rule state", and the external functional unit is within the next 16 clock cycles. According to the sub-block replacement rules, 16 pieces of 4-bit replacement rule information are sequentially written into the replacement rule register module through the replacement rule information input port, and these replacement rule information indicates that the value of the ith sub-block of the result data after replacement will come from the source data Which sub-block’s data (assumed to be represented by π(i), 0≤i≤15), each clock cycle external functional unit provides a replacement rule information, the order is: π(15), π(14), ...., π(1), π(0). After the writing of the 16 replacement rule information is completed, the replacement circuit automatically transfers to the "output replacement result state". From a logical point of view, at this time, the No. A i replacement rule register in the replacement rule register module represents the ith sub-block of the data after replacement, and the value in the A i No. replacement rule register is equal to π(i), which represents Then the value of the ith sub-block of the result data comes from the value of the π(i)-th sub-block of the source data. In the above process, the duration of the "load replacement rule information command" issued by the external functional unit cannot exceed 16 clock cycles.
第二步:加载源数据。当置换电路输出的状态信息为“00”时,外部功能单元将待置换的源数据准备好,并发出“加载源数据命令”,状态机转入“加载源数据状态”,将待置换的源数据通过数据输入端口写入到源数据寄存器中。当加载源数据完成后,自动转入第三步。外部功能单元在发出的“加载源数据命令”持续时间不能超过16个时钟周期。Step 2: Load the source data. When the status information output by the replacement circuit is "00", the external functional unit prepares the source data to be replaced, and issues a "load source data command", the state machine transfers to the "load source data state", and the source data to be replaced Data is written into the source data register through the data input port. When the source data is loaded, it will automatically go to the third step. The duration of the "load source data command" issued by the external functional unit cannot exceed 16 clock cycles.
第三步:执行置换过程。在此过程中置换电路根据置换规则寄存器模块中的置换规则信息,更新结果寄存器模块的中数据。共需要16个时钟周期。此过程完成后,状态机自动转入“输出置换结果状态”。Step 3: Execute the replacement process. During this process, the replacement circuit updates the data in the result register module according to the replacement rule information in the replacement rule register module. A total of 16 clock cycles are required. After this process is completed, the state machine automatically transfers to the "output permutation result state".
第四步:读出置换后的数据结果。上述的第三步完成后置换电路输出的状态信息变为“00”,此时结果寄存器模块输出的数据即为置换后的结果数据,并且该值在“输出置换结果状态”保持不变,外部功能单元可以读取本次的置换结果数据。Step 4: Read out the data result after replacement. After the above third step is completed, the state information output by the replacement circuit becomes "00". At this time, the data output by the result register module is the result data after replacement, and this value remains unchanged in the "output replacement result state". The functional unit can read the replacement result data of this time.
若对多个数据使用相同的置换规则进行置换时,第一步配置子块置换规仅需要在首次置换时进行配置,而进行后续置换时可以跳过配置置换规则这一步骤,直接进行上述的第二、第三、第四步。If multiple data are replaced by the same replacement rule, the first step of configuring the sub-block replacement rule only needs to be configured at the first replacement, and the step of configuring the replacement rule can be skipped for subsequent replacements, and the above steps can be performed directly The second, third, and fourth steps.
该实施例在TSMC的130nm工艺库下,DC综合结果显示,其面积约为1608个等效门,与用64位Benes网络(面积约为5616个等效门)来实现相同功能的子块置换相比,该实施例可以节省近70%的面积。上述数据显示,本发明所涉及的任意置换电路结构达到了减低成本的目的,为后期的实际生产带来有利的经济效益。This embodiment is under the 130nm process library of TSMC, and the result of DC synthesis shows that its area is about 1608 equivalent gates, which is equivalent to the sub-block replacement that realizes the same function with a 64-bit Benes network (with an area of about 5616 equivalent gates). In comparison, this embodiment can save nearly 70% of the area. The above data shows that the arbitrary replacement circuit structure involved in the present invention achieves the purpose of reducing costs and brings favorable economic benefits to later actual production.
由上述实施例可以看出,本发明能够支持任意置换规则的位置换或者子块置换。It can be seen from the above embodiments that the present invention can support position replacement or sub-block replacement of any replacement rule.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410347018.9A CN104123959B (en) | 2014-07-21 | 2014-07-21 | The generic permutations circuit structure that replacement rule configuration is succinct |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410347018.9A CN104123959B (en) | 2014-07-21 | 2014-07-21 | The generic permutations circuit structure that replacement rule configuration is succinct |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104123959A CN104123959A (en) | 2014-10-29 |
CN104123959B true CN104123959B (en) | 2016-09-21 |
Family
ID=51769344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410347018.9A Active CN104123959B (en) | 2014-07-21 | 2014-07-21 | The generic permutations circuit structure that replacement rule configuration is succinct |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104123959B (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1192595A (en) * | 1997-02-28 | 1998-09-09 | 阿尔卡塔尔-阿尔斯托姆通用电气公司 | Interfacing device to replace M sets of bits out of N sets of bits, control unit and logical cell |
US20090100247A1 (en) * | 2007-10-12 | 2009-04-16 | Moyer William C | Simd permutations with extended range in a data processor |
US20100095087A1 (en) * | 2008-10-14 | 2010-04-15 | International Business Machines Corporation | Dynamic Data Driven Alignment and Data Formatting in a Floating-Point SIMD Architecture |
WO2013095657A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Instruction and logic to provide vector blend and permute functionality |
-
2014
- 2014-07-21 CN CN201410347018.9A patent/CN104123959B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1192595A (en) * | 1997-02-28 | 1998-09-09 | 阿尔卡塔尔-阿尔斯托姆通用电气公司 | Interfacing device to replace M sets of bits out of N sets of bits, control unit and logical cell |
US20090100247A1 (en) * | 2007-10-12 | 2009-04-16 | Moyer William C | Simd permutations with extended range in a data processor |
US20100095087A1 (en) * | 2008-10-14 | 2010-04-15 | International Business Machines Corporation | Dynamic Data Driven Alignment and Data Formatting in a Floating-Point SIMD Architecture |
WO2013095657A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Instruction and logic to provide vector blend and permute functionality |
Non-Patent Citations (1)
Title |
---|
比特置换网络及其在密码处理器中的应用研究;向楠;《中国优秀硕士学位论文全文数据库》;20080423;正文第27-42页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104123959A (en) | 2014-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109716318B (en) | Apparatus and method for configuring hardware to operate in multiple modes during runtime | |
US6243808B1 (en) | Digital data bit order conversion using universal switch matrix comprising rows of bit swapping selector groups | |
US9564902B2 (en) | Dynamically configurable and re-configurable data path | |
US20090031106A1 (en) | Reconfigurable device | |
JP3987783B2 (en) | Array type processor | |
CN110059493B (en) | SKINNY-128-128 encryption algorithm implementation method and system based on coarse-grained reconfigurable computing unit | |
CN110291511A (en) | Order and address (CA) bus to the registration clock driver (RCD) for dynamic random access memory (DRAM) provide single data rate (SDR) mode or double data rate (DDR) mode | |
US9966960B2 (en) | Configurable logic circuit including dynamic lookup table | |
KR20180116117A (en) | Logic block architecture for programmable gate array | |
JP4527571B2 (en) | Reconfigurable processing unit | |
CN105260162B (en) | A kind of vector arrangement circuit and vector processor | |
JP7250953B2 (en) | Data processing equipment and artificial intelligence chips | |
JP2004133780A (en) | Array processor | |
CN104123959B (en) | The generic permutations circuit structure that replacement rule configuration is succinct | |
US9754644B2 (en) | Extensible configurable FPGA storage structure and FPGA device | |
CN100388264C (en) | Computer device with reconfigurable architecture | |
US7917707B2 (en) | Semiconductor device | |
KR20170089678A (en) | Processing unit, apparatus and method for in-memory data processing | |
CN103559161B (en) | A kind of bus many width change-over circuit for FPGA configuration | |
CN102789190B (en) | Column address distributor circuit suitable for different types of FPGA circuit programming | |
JP2006011825A (en) | Reconfigurable arithmetic device and semiconductor device | |
JP2016514421A (en) | Parallel configuration of reconfigurable instruction cell array | |
US8023614B2 (en) | Counting circuit and address counter using the same | |
CN104202055B (en) | Key circuit for detecting key trigger sate in real time, gamepad and method | |
CN116360852A (en) | Electronic device, storage address generation method and terminal equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190417 Address after: 215600 A10, 100 North Ring Road, Tangqiao Town, Zhangjiagang City, Jiangsu Province Patentee after: Weimi (Suzhou) Information Technology Co., Ltd. Address before: 475001 Henan province city Minglun Street No. 85 Patentee before: Henan University |
|
TR01 | Transfer of patent right |