Verilog置换处理脚本

文章目录

  • 一、介绍
  • 二、脚本

一、介绍

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

以DES算法的初始置换为例
初始置换将64比特的明文,按照初始置换表进行置换,得到一个乱序的64bit明文组。
初始置换表如下:
Verilog置换处理脚本_第1张图片
第一个数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()
    
    Verilog置换处理脚本_第2张图片

你可能感兴趣的:(脚本工具,python,verilog)