- 论坛徽章:
- 307
|
本帖最后由 sunzhiguolu 于 2016-08-12 21:07 编辑
- #!/usr/bin/perl
- use strict;
- use warnings;
- my (%hData, @aSubckt, $header, %hMap);
- my @aTypes = qw /drain gate source bulk dev_type length fin_num finger_num mult cpp_val/;
- while (<>){
- if (/\bsubckt\b/){
- push (@aSubckt, @{[split]}[1]);
- $header = $aSubckt[-1];
- next;
- }
- if (/\bl=.+?nf=\d+/){
- my ($pre, $match, $after) = ($`, $&, $');
- my ($inst_name, $drain, $gate, $source, $bulk, $dev_type) = $pre =~ /\w+/g;
- my ($length, $fin_num, undef, $finger_num) = $match =~ /\d+/g;
- my ($mult, $cpp_val) = $after =~ /\b(?:m|cpp)=(\d+)/g;
- @hMap{@aTypes} = ($drain, $gate, $source, $bulk, $dev_type, $length, $fin_num, $finger_num, $mult, $cpp_val);
- foreach my $type (@aTypes){
- $hData{qq($header.$inst_name.x_.$type)} = $hMap{$type};
- }
- }
- }
- print "subcktlist:@aSubckt\n";
- while (my ($k, $v) = each %hData){
- print "key = $k\tvalue = $v\n";
- }
复制代码 perl abc.pl abc
-------------------------------------------------------------------------
subcktlist:A4TW001B1
key = A4TW001B1.T1.x_.drain value = BC
key = A4TW001B1.T5.x_.fin_num value = 1
key = A4TW001B1.T2.x_.source value = NT
key = A4TW001B1.T1.x_.mult value = 1
key = A4TW001B1.T2.x_.cpp_val value = 56
key = A4TW001B1.T6.x_.source value = V_VCS
key = A4TW001B1.T2.x_.drain value = BT
key = A4TW001B1.T3.x_.drain value = NT
key = A4TW001B1.T3.x_.mult value = 1
key = A4TW001B1.T4.x_.gate value = NT
key = A4TW001B1.T6.x_.length value = 16
key = A4TW001B1.T5.x_.length value = 16
key = A4TW001B1.T4.x_.mult value = 1
key = A4TW001B1.T2.x_.gate value = WL
key = A4TW001B1.T3.x_.gate value = NC
key = A4TW001B1.T3.x_.fin_num value = 1
key = A4TW001B1.T5.x_.dev_type value = srapfetpu
key = A4TW001B1.T4.x_.cpp_val value = 56
key = A4TW001B1.T2.x_.finger_num value = 1
key = A4TW001B1.T2.x_.dev_type value = sranfetwl
key = A4TW001B1.T5.x_.cpp_val value = 56
key = A4TW001B1.T5.x_.finger_num value = 1
key = A4TW001B1.T1.x_.gate value = WL
key = A4TW001B1.T5.x_.source value = V_VCS
key = A4TW001B1.T6.x_.dev_type value = srapfetpu
key = A4TW001B1.T3.x_.source value = VSST
key = A4TW001B1.T4.x_.drain value = NC
key = A4TW001B1.T4.x_.bulk value = VSS
key = A4TW001B1.T6.x_.drain value = NC
key = A4TW001B1.T3.x_.finger_num value = 1
key = A4TW001B1.T5.x_.bulk value = VCS
key = A4TW001B1.T4.x_.finger_num value = 1
key = A4TW001B1.T3.x_.bulk value = VSS
key = A4TW001B1.T4.x_.dev_type value = sranfetpd
key = A4TW001B1.T1.x_.dev_type value = sranfetwl
key = A4TW001B1.T1.x_.finger_num value = 1
key = A4TW001B1.T6.x_.finger_num value = 1
key = A4TW001B1.T2.x_.fin_num value = 1
key = A4TW001B1.T6.x_.cpp_val value = 56
key = A4TW001B1.T3.x_.length value = 16
key = A4TW001B1.T1.x_.cpp_val value = 56
key = A4TW001B1.T1.x_.fin_num value = 1
key = A4TW001B1.T5.x_.gate value = NC
key = A4TW001B1.T1.x_.length value = 16
key = A4TW001B1.T6.x_.mult value = 1
key = A4TW001B1.T4.x_.length value = 16
key = A4TW001B1.T2.x_.mult value = 1
key = A4TW001B1.T3.x_.cpp_val value = 56
key = A4TW001B1.T2.x_.length value = 16
key = A4TW001B1.T3.x_.dev_type value = sranfetpd
key = A4TW001B1.T5.x_.mult value = 1
key = A4TW001B1.T6.x_.bulk value = VCS
key = A4TW001B1.T6.x_.gate value = NT
key = A4TW001B1.T1.x_.source value = NC
key = A4TW001B1.T1.x_.bulk value = VSS
key = A4TW001B1.T5.x_.drain value = NT
key = A4TW001B1.T2.x_.bulk value = VSS
key = A4TW001B1.T6.x_.fin_num value = 1
key = A4TW001B1.T4.x_.fin_num value = 1
key = A4TW001B1.T4.x_.source value = VSSC
|
|