Verilog置换处理脚本

简介: Verilog置换处理脚本


一、介绍

在Verilog中的置换处理,为将一个数据的数据位按照某种规则进行重新排列。

以DES算法的初始置换为例

初始置换将64比特的明文,按照初始置换表进行置换,得到一个乱序的64bit明文组。

初始置换表如下:

第一个数58表示,将明文M的第58位放置在第1位。

二、脚本

  • config.txt文件
data
14 17 11 24 1  5  3  28
15 6  21 10 23 19 12 4
26 8  16 7  27 20 13 2
41 52 31 37 47 55 30 40
51 45 33 48 44 49 39 56 
34 53 46 42 50 36 29 32
  • 第一行为变量的名称
  • 接下来的行为置换表的内容
  • main.py
def get_varinfo(config_path:str)->[str,[]]:
    f = open(config_path,"r")
    varname = f.readline().strip()
    varidxs = []
    for line in f.readlines():
        for idx in line.split():
            varidxs.append(int(idx.strip()))
    f.close()
    return [varname,varidxs]
def output_expression(varname:str,varidxs:[int],linenum=8,databit=2)->None:
    print("{")
    for idx in range(len(varidxs)-1):
        print(("{}[{:"+str(databit)+"}],").format(varname,varidxs[idx]),end=' ')
        if (idx+1)%linenum == 0 :
            print("")
    print(("{}[{:"+str(databit)+"}]").format(varname,varidxs[len(varidxs)-1]))
    print("};")
        
def main():
    varname , varidxs = get_varinfo("./config.txt")
    output_expression(varname,varidxs)
if __name__ == "__main__":
    main()
相关文章
|
4月前
|
存储 缓存
CPU运算器的工作原理基于其内部结构,通过执行算术和逻辑操作来完成各种任务
CPU运算器的工作原理基于其内部结构,通过执行算术和逻辑操作来完成各种任务
138 3
|
9月前
|
编解码 算法 异构计算
基于FPGA的NC图像质量评估verilog实现,包含testbench和MATLAB辅助验证程序
在Vivado 2019.2和Matlab 2022a中测试的图像质量评估算法展示了效果。该算法基于NC指标,衡量图像与原始图像的相似度,关注分辨率、色彩深度和失真。提供的Verilog代码段用于读取并比较两个BMP文件,计算NC值。
|
算法 异构计算
m基于FPGA的costas环载波同步verilog实现,包含testbench,可以修改频偏大小
m基于FPGA的costas环载波同步verilog实现,包含testbench,可以修改频偏大小
274 0
|
9月前
|
算法 关系型数据库 计算机视觉
基于FPGA的9/7整数小波变换和逆变换verilog实现,包含testbench
基于FPGA的9/7整数小波变换和逆变换verilog实现,包含testbench
西门子S7-1200编程实例,移位和循环移位指令如何使用?
西门子S7-1200的移位指令包括左移位指令和右移位指令,循环移位指令包括循环左移位指令和循环右移位指令。
西门子S7-1200编程实例,移位和循环移位指令如何使用?
|
算法 数据安全/隐私保护 异构计算
基于FPGA的AES加密解密vivado仿真,verilog开发,包含testbench
基于FPGA的AES加密解密vivado仿真,verilog开发,包含testbench
346 0
基于FPGA的AES加密解密vivado仿真,verilog开发,包含testbench
|
算法 异构计算
m基于FPGA的QPSK软解调verilog实现,含testbench和MATLAB辅助验证程序
m基于FPGA的QPSK软解调verilog实现,含testbench和MATLAB辅助验证程序
436 0
|
机器学习/深度学习 算法 异构计算
基于FPGA的低通滤波器,通过verilog实现并提供testbench测试文件
基于FPGA的低通滤波器,通过verilog实现并提供testbench测试文件
134 0
|
算法 异构计算
基于FPGA的直接序列扩频通信verilog设计,包括汉明编译码,扩频解扩,同步模块以及testbench
基于FPGA的直接序列扩频通信verilog设计,包括汉明编译码,扩频解扩,同步模块以及testbench
340 0
基于FPGA的直接序列扩频通信verilog设计,包括汉明编译码,扩频解扩,同步模块以及testbench
|
算法 异构计算
通过状态机方法实现基于FPGA的维特比译码器,包含testbench测试文件
通过状态机方法实现基于FPGA的维特比译码器,包含testbench测试文件
174 0

热门文章

最新文章