RISC-V MCU中文社区

【分享】 DES算法分享——DES控制模块架构

发表于 全国大学生集成电路创新创业大赛 2021-06-10 15:56:38
0
2389
1

队伍编号:CICC1905   团队名称:青稞战队

本设计的DES控制模块是使用有限状态机(FSM)实现的。FSM的现态是边沿触发的,根据rst_n复位信号和start启动信号进行现态的赋值;次态逻辑设计是S0-S17的次态跳转;输出逻辑设计是控制不同状态的逻辑输出进而控制其它模块工作,所输出的信号均为运算模块和子密钥产生模块工作所需的控制信号。

对于DES控制模块,其外框图见图3-3所示,外部信号定义见表3-6所示。

 

3-3 DES控制模块外框图

Fig.3-3 Frame diagram of DES control module

 

3-6 DES控制模块外部信号定义

Tab.3-6 DES control module external signal definition

信号名称

信号方向

宽度

信号描述

clk

input

1

时钟信号,上升沿有效

rst_n

input

1

复位信号,低电平有效

start

input

1

加解密使能信号,高电平有效

keysel

output

1

二选一选通器控制信号,1为初始置换结果,0为中间结果

count

output

4

轮密钥选择控制信号

completed

output

1

加密/解密完成信号,1为完成加密解密运算

整个FSM使用S0-S1718个状态,其中,S17是初始状态,无论电路处于何种状态,只要rst_n复位信号有效都将跳转至初始状态;S0-S15为控制协处理器进行加密运算;S16为延迟一个时钟的空转状态,用于配合运算数据从协处理器写回至E203处理器内核中。S0-S17的状态跳转见图3-4所示。此外,为减小状态转换过程中出现的噪音,本设计的状态编码采用格雷码,状态名称与状态编码如下表3-7所示。控制模块的状态转移和控制信号逻辑输出见表3-8所示。

 

3-4 控制模块FSM状态跳转

Fig.3-4 FSM status jump of control module

 

3-7 DES控制模块状态编码

Tab.3-7 DES control module status coding

状态名称

状态编码

状态名称

状态编码

状态名称

状态编码

S0

00000

S6

00101

S12

01010

S1

00001

S7

00100

S13

01011

S2

00011

S8

01100

S14

01001

S3

00010

S9

01101

S15

01000

S4

00110

S10

01111

S16

11000

S5

00111

S11

01110

 

 

3-8 DES控制模块FSM的状态转移和控制信号逻辑输出

Tab.3-8 State transition and control signal logic output of DES control module F

现态

输入

次态

输出

S17(IDLE)

rst_n=0

S17

keysel=1,count=0,completed=1

S17

start=1

S0

keysel=1,count=0,completed=1

S0

start=1

S1

keysel=1,count=0,completed=0

S1

start=1

S2

keysel=0,count=1,completed=0

S2

start=1

S3

keysel=0,count=2,completed=0

S3

start=1

S4

keysel=0,count=3,completed=0

S4

start=1

S5

keysel=0,count=4,completed=0

S5

start=1

S6

keysel=0,count=5,completed=0

S6

start=1

S7

keysel=0,count=6,completed=0

S7

start=1

S8

keysel=0,count=7,completed=0

S8

start=1

S9

keysel=0,count=8,completed=0

S9

start=1

S10

keysel=0,count=9,completed=0

S10

start=1

S11

keysel=0,count=10,completed=0

S11

start=1

S12

keysel=0,count=11,completed=0

S12

start=1

S13

keysel=0,count=12,completed=0

S13

start=1

S14

keysel=0,count=13,completed=0

S14

start=1

S15

keysel=0,count=14,completed=0

S15

start=1

S16

keysel=0,count=15,completed=0

S16

start=1

S17

keysel=0,count=0,completed=1

喜欢1
用户评论

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板