Perl提取Verilog文件内input output信号名,生成信号例化和调用到output.txt文件

 extract_signals.pl

#! /usr/bin/perl -w
use 5.010;
use strict;

my $source_file;
my @source_file_lines;
my $source_signal_name;

my $axis_exchange;

$source_file = "$ARGV[0]";

open SOURCE_FILE,"<",$source_file or die "$!";
open OUTPUT_FILE,">","output.txt";

@source_file_lines = <SOURCE_FILE>;

foreach(@source_file_lines){
    chomp;
    if(/\A\s*input\s+(wire\s+)?\s*(\[\S+.*\:\d+\])?\s*([\w|\d]+)\s*(\,)?/){
#       say OUTPUT_FILE 'wire ' . $2 . ' ' . $3 . ';';
        print OUTPUT_FILE 'wire    ';
        printf OUTPUT_FILE "%-52s",$2;
        print OUTPUT_FILE "\t\t";
        printf OUTPUT_FILE "%-52s",$3;
        print OUTPUT_FILE ';' . "\n";
    }
    elsif(/\A\s*output\s+(wire\s+|reg\s+)?\s*(\[\S+.*\:\d+\])?\s*([\w|\d]+)\s*(\,)?/){
#       say OUTPUT_FILE 'wire ' . $2 . ' ' . $3 . ';';
        print OUTPUT_FILE 'wire    ';
        printf OUTPUT_FILE "%-52s",$2;
        print OUTPUT_FILE "\t\t";
        printf OUTPUT_FILE "%-52s",$3;
        print OUTPUT_FILE ';' . "\n";
    }

}

foreach(@source_file_lines){
    chomp;
    if(/\A\s*input\s+(wire\s+)?\s*(\[\S+.*\:\d+\])?\s*([\w|\d]+)\s*(\,)?/){
#        print OUTPUT_FILE "\t" . '.' . $3 . "\t\t" . '    ( ' . $3 . '     )' . $4;
        print OUTPUT_FILE "\t" . '.';
        printf OUTPUT_FILE "%-51s",$3;
        print OUTPUT_FILE "\t\t" . '( ';
        printf OUTPUT_FILE "%-54s",$3;
        print OUTPUT_FILE "\t" . ')' . $4 . "\n";     
    }
    elsif(/\A\s*output\s+(wire\s+|reg\s+)?\s*(\[\S+.*\:\d+\])?\s*([\w|\d]+)\s*(\,)?/){
#        say OUTPUT_FILE "\t" . '.' . $3 . "\t\t" . '    ( ' . $3 . '     )' . $4; 
        print OUTPUT_FILE "\t" . '.';
        printf OUTPUT_FILE "%-51s",$3;
        print OUTPUT_FILE "\t\t" . '( ';
        printf OUTPUT_FILE "%-54s",$3;
        print OUTPUT_FILE "\t" . ')' . $4 . "\n";    
    }

}

close SOURCE_FILE;
close OUTPUT_FILE;

提取Verilog文件内input output信号名,生成信号例化和调用到output.txt文件
./extract_signals.pl 文件名
eg:./extract_signals.pl a.v

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iscas2spice spice netlist generation tool -- version 2.2 by Jingye Xu @ VLSI Group, Dept. of ECE, UIC, June, 2008 This tool reads the ISCAS85 benchmark circuit "*.bench" file and translate the file into SPICE netlist using the given technology and the standard cell library. platform: linux x86 sytem Input: ISCAS85 benchmark circuit: *.bench; standard cell library: stdcells.sclb; standard cell models: stdcells.lib; interconnect paramaters: *.int; Output: SPICE netlist: out.sp The whole procedure of the tools can be divided into several steps: 1. Gate replacement: replace the gates that can't be found in the with the gates in the standard cell lib. (break.pl) Output: *.bench, *.bench.bak 2. Generate the GSRC files: generate the GSRC files for the fengshui placer. (gsrcgen.pl) Output: gsrcfile/iscas.* 3. Placement: using the fengshui placement tool to perform the component placement. (fs50) Output: gsrcfile/iscas_fs50.pl 4. Generate ISPD file: tanslate the placement results into ISPD98 format file that can be used as the input of the global router. (gsrc2ispd.pl) Output: gsrcfile/iscas.laby.txt 5. Perform the routing: use the labyrinth global router to perform the routing. (mazeRoute) Output: gsrcfile/output 6. Generate the SPICE netlist: use all the available information to generate the final SPICE netlist. (spicegen.pl) Output: out.sp Usage: iscas2spice.pl Iscas85BenchmarkFile [-C/L/N] options: -C :default value, use the RC model for interconnect -L :use the RLC model for interconnect -N :treat interconnect as short circuit wire This package used the fengshui placement tools and labyrinth global routing tools, for information regarding these two free tools, please vist: http://www.ece.ucsb.edu/~kastner/labyrinth/ http://vlsicad.cs.binghamton.edu/software.html For information regarding this software itself please visit: http://wave.ece.uic.edu/~iscas2spice Many thanks to my advisor Masud H. Chowdhury for his support!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值