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()
相关文章
|
存储 算法
通过MATLAB自动产生Hamming编译码的verilog实现,包含testbench
通过MATLAB自动产生Hamming编译码的verilog实现,包含testbench
通过MATLAB自动产生Hamming编译码的verilog实现,包含testbench
|
6月前
|
算法 异构计算
m基于FPGA的Alamouti编码verilog实现,包含testbench测试文件
m基于FPGA的Alamouti编码verilog实现,包含testbench测试文件
77 5
|
算法 数据安全/隐私保护 异构计算
m基于FPGA的桶形移位寄存器verilog实现,包含testbench
m基于FPGA的桶形移位寄存器verilog实现,包含testbench
342 0
|
算法 异构计算
m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
267 0
|
算法 异构计算
通过状态机方法实现基于FPGA的维特比译码器,包含testbench测试文件
通过状态机方法实现基于FPGA的维特比译码器,包含testbench测试文件
162 0
|
算法 异构计算
基于FPGA的直接序列扩频通信verilog设计,包括汉明编译码,扩频解扩,同步模块以及testbench
基于FPGA的直接序列扩频通信verilog设计,包括汉明编译码,扩频解扩,同步模块以及testbench
309 0
基于FPGA的直接序列扩频通信verilog设计,包括汉明编译码,扩频解扩,同步模块以及testbench
|
编解码 算法 异构计算
m基于FPGA的LDPC最小和译码算法verilog实现,包括testbench和matlab辅助验证程序
m基于FPGA的LDPC最小和译码算法verilog实现,包括testbench和matlab辅助验证程序
250 0
|
算法 数据处理
MATLAB 之 M 文件和程序控制结构(顺序、选择、循环)-1
M 文件是由若干 MATLAB 命令组合在一起构成的程序,其扩展名为 .m。它可以完成某些操作,也可以实现某种算法。实际上,MATLAB 提供的内部函数以及各种工具箱,都是利用 MATLAB 命令开发的 M 文件。
|
机器学习/深度学习
MATLAB 之 M 文件和程序控制结构(顺序、选择、循环)-2
循环结构的基本思想是重复,即利用计算机运算速度快以及能进行逻辑控制的特点,重复执行某些语句,以满足大量的计算要求。
|
异构计算
FPGA(6)--7段显示译码器的加法计数器
FPGA(6)--7段显示译码器的加法计数器
250 1
FPGA(6)--7段显示译码器的加法计数器