本设计首先根据MD5协处理器的功能设计MD5算法IP核,软件部分使用串口程序助手进行64位加解密结果的输出,E203内核根据地址取出对应的数据,使用相关的指令进行传输显示。通过NICE接口将MD5协处理器与E203内核连接,其中状态跳转使用卡洛图进行化简,assign语句实现。使用一个32x6的寄存器堆向MD5协处理器传输数据,控制信号通过对指令译码获得的结果控制MD5协处理器进行工作。MD5协处理器的运算结果通过返回电路将数据存储在对应的地址中,这里的地址即串口程序助手进行取指的地方。NICE接口和MD5协处理器SoC体系结构设计图如下图3-10所示。
图1 NICE接口和MD5协处理器SoC体系结构设计图
在NICE接口和MD5模块间,设置了一个使能电路,该电路把NICE指令译码后,根据译码的结果控制MD5的控制模块。例如,根据指令译码后,得出start_en的值为111,就表明该指令用于控制MD5协处理器进行数据输入;如果是101则表明该指令是控制MD5协处理器进行加密。协处理器所使用的数据存储位置会根据指令的28、27位来判断。例如01表示密钥,就会存储在寄存器的前两个寄存器,10、11表示明文或密文,就会存在寄存器的后两个寄存器中。