SM3算法Systemverilog Scoreboard 以及C++(Visual Studio 2022)实现
因为需要和新写的Systemverilog SM3 scoreboard 来做double golden check;
找到下面博主的C++代码来做Scoreboard的正确性比对,
其中C++ 代码实现见下链接中博主
https://blog.csdn.net/nicai_hualuo/article/details/121555000
使用中,做随机比对时注意事项和更新:
- 输入字符串更改成在输入指定长度随机
- 原C++ code中,DecToHex这个函数有错误,错误向量输入960 结果应为3C0,但是此function结果为30C;
- 建议修改为
string DecToHex_daniel(int x) {
string s;
while (x) {
int remainder = x % 16; //拿到余数,对余数进行处理
x = x / 16; //这两步可以对比以十进制获取一个整数的每一位
if (remainder < 10) {
s += remainder + ‘0’; //将整数转为字符
}
else {
s += remainder - 10 + ‘A’;
}
}
reverse(s.begin(), s.end()); //最后要进行翻转
return s;
}
SystemVerilog Scoreboard 版本等大量测试完成后再公布;
关于SM2,SM3,SM4 欢迎讨论;



