OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [perl_gui/] [lib/] [perl/] [verilog_gen.pl] - Diff between revs 42 and 43

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 42 Rev 43
Line 3... Line 3...
 
 
use lib 'lib/perl';
use lib 'lib/perl';
 
 
use strict;
use strict;
use warnings;
use warnings;
 
 
 
 
 
use FindBin;
 
use lib $FindBin::Bin;
 
 
use soc;
use soc;
use ip;
use ip;
use ip_gen;
use ip_gen;
use Cwd;
use Cwd;
 
 
Line 33... Line 38...
        my $param_as_in_v="\tparameter\tCORE_ID=$core_id,
        my $param_as_in_v="\tparameter\tCORE_ID=$core_id,
\tparameter\tSW_LOC=\"$sw_path\"";
\tparameter\tSW_LOC=\"$sw_path\"";
 
 
 
 
 
 
 
    my $system_v="";
        my $param_pass_v="\t.CORE_ID(CORE_ID),\n\t.SW_LOC(SW_LOC)";
        my $param_pass_v="\t.CORE_ID(CORE_ID),\n\t.SW_LOC(SW_LOC)";
        my $body_v;
        my $body_v;
 
 
        my ($param_v_all, $local_param_v_all, $wire_def_v_all, $inst_v_all, $plugs_assign_v_all, $sockets_assign_v_all,$io_full_v_all,$io_top_full_v_all);
        my ($param_v_all, $local_param_v_all, $wire_def_v_all, $inst_v_all, $plugs_assign_v_all, $sockets_assign_v_all,$io_full_v_all,$io_top_full_v_all);
        my $wires=soc->new_wires();
        my $wires=soc->new_wires();
        my $intfc=interface->interface_new();
        my $intfc=interface->interface_new();
 
 
        foreach my $id (@instances){
        foreach my $id (@instances){
                my ($param_v, $local_param_v, $wire_def_v, $inst_v, $plugs_assign_v, $sockets_assign_v,$io_full_v,$io_top_full_v)=gen_module_inst($id,$soc,\$io_sim_v,\$io_top_sim_v,\$param_as_in_v,$top_ip,$intfc,$wires,\$param_pass_v);
                my ($param_v, $local_param_v, $wire_def_v, $inst_v, $plugs_assign_v, $sockets_assign_v,$io_full_v,$io_top_full_v)=gen_module_inst($id,$soc,\$io_sim_v,\$io_top_sim_v,\$param_as_in_v,$top_ip,$intfc,$wires,\$param_pass_v,\$system_v);
                my $inst        = $soc->soc_get_instance_name($id);
                my $inst        = $soc->soc_get_instance_name($id);
                add_text_to_string(\$body_v,"/*******************\n*\n*\t$inst\n*\n*\n*********************/\n");
                add_text_to_string(\$body_v,"/*******************\n*\n*\t$inst\n*\n*\n*********************/\n");
 
 
                add_text_to_string(\$local_param_v_all,"$local_param_v\n")      if(defined($local_param_v));
                add_text_to_string(\$local_param_v_all,"$local_param_v\n")      if(defined($local_param_v));
                add_text_to_string(\$wire_def_v_all,"$wire_def_v\n")                    if(defined($wire_def_v));
                add_text_to_string(\$wire_def_v_all,"$wire_def_v\n")                    if(defined($wire_def_v));
Line 54... Line 59...
                add_text_to_string(\$plugs_assign_v_all,"$plugs_assign_v\n")    if(defined($plugs_assign_v));
                add_text_to_string(\$plugs_assign_v_all,"$plugs_assign_v\n")    if(defined($plugs_assign_v));
                add_text_to_string(\$sockets_assign_v_all,"$sockets_assign_v\n")if(defined($sockets_assign_v));
                add_text_to_string(\$sockets_assign_v_all,"$sockets_assign_v\n")if(defined($sockets_assign_v));
                add_text_to_string(\$io_full_v_all,"$io_full_v\n")                              if(defined($io_full_v));
                add_text_to_string(\$io_full_v_all,"$io_full_v\n")                              if(defined($io_full_v));
                add_text_to_string(\$io_top_full_v_all,"$io_top_full_v\n")                      if(defined($io_top_full_v));
                add_text_to_string(\$io_top_full_v_all,"$io_top_full_v\n")                      if(defined($io_top_full_v));
 
 
 
 
 
 
                #print  "$param_v $local_param_v $wire_def_v $inst_v $plugs_assign_v $sockets_assign_v $io_full_v";
                #print  "$param_v $local_param_v $wire_def_v $inst_v $plugs_assign_v $sockets_assign_v $io_full_v";
 
 
        }
        }
        my ($addr_map,$addr_localparam,$module_addr_localparam)= generate_address_cmp($soc,$wires);
        my ($addr_map,$addr_localparam,$module_addr_localparam)= generate_address_cmp($soc,$wires);
 
 
Line 70... Line 77...
        }
        }
        close($file1);
        close($file1);
        my $unused_wiers_v=assign_unconnected_wires($wires,$intfc);
        my $unused_wiers_v=assign_unconnected_wires($wires,$intfc);
 
 
 
 
 
 
        my $soc_v = (defined $param_as_in_v )? "module $soc_name #(\n $param_as_in_v\n)(\n$io_sim_v\n);\n": "module $soc_name (\n$io_sim_v\n);\n";
        my $soc_v = (defined $param_as_in_v )? "module $soc_name #(\n $param_as_in_v\n)(\n$io_sim_v\n);\n": "module $soc_name (\n$io_sim_v\n);\n";
        add_text_to_string(\$soc_v,$functions_all);
        add_text_to_string(\$soc_v,$functions_all);
 
        add_text_to_string(\$soc_v,$system_v);
        add_text_to_string(\$soc_v,$local_param_v_all);
        add_text_to_string(\$soc_v,$local_param_v_all);
        add_text_to_string(\$soc_v,$addr_localparam);
        add_text_to_string(\$soc_v,$addr_localparam);
        add_text_to_string(\$soc_v,$module_addr_localparam);
        add_text_to_string(\$soc_v,$module_addr_localparam);
        add_text_to_string(\$soc_v,$io_full_v_all);
        add_text_to_string(\$soc_v,$io_full_v_all);
        add_text_to_string(\$soc_v,$wire_def_v_all);
        add_text_to_string(\$soc_v,$wire_def_v_all);
Line 106... Line 115...
#################
#################
#       gen_module_inst
#       gen_module_inst
###############
###############
 
 
sub gen_module_inst {
sub gen_module_inst {
        my ($id,$soc,$io_sim_v,$io_top_sim_v,$param_as_in_v,$top_ip, $intfc,$wires,$param_pass_v)=@_;
        my ($id,$soc,$io_sim_v,$io_top_sim_v,$param_as_in_v,$top_ip, $intfc,$wires,$param_pass_v,$system_v)=@_;
        my $module      =$soc->soc_get_module($id);
        my $module      =$soc->soc_get_module($id);
        my $module_name =$soc->soc_get_module_name($id);
        my $module_name =$soc->soc_get_module_name($id);
        my $category    =$soc->soc_get_category($id);
        my $category    =$soc->soc_get_category($id);
 
 
        my $inst        = $soc->soc_get_instance_name($id);
        my $inst        = $soc->soc_get_instance_name($id);
Line 133... Line 142...
        $top_ip->top_add_def_to_instance($id,'module',$module);
        $top_ip->top_add_def_to_instance($id,'module',$module);
        $top_ip->top_add_def_to_instance($id,'module_name',$module_name);
        $top_ip->top_add_def_to_instance($id,'module_name',$module_name);
        $top_ip->top_add_def_to_instance($id,'category',$category);
        $top_ip->top_add_def_to_instance($id,'category',$category);
        $top_ip->top_add_def_to_instance($id,'instance',$inst);
        $top_ip->top_add_def_to_instance($id,'instance',$inst);
 
 
 
        #
 
 
 
 
 
 
 
 
        #module name    
        #module name    
        $inst_v=( defined $instance_param_v )? "$module_name #(\n": $module_name ;
        $inst_v=( defined $instance_param_v )? "$module_name #(\n": $module_name ;
 
 
 
 
 
 
        #module parameters
        #module parameters
        $inst_v=( defined $instance_param_v)? "$inst_v $instance_param_v\n\t)": $inst_v;
        $inst_v=( defined $instance_param_v)? "$inst_v $instance_param_v\n\t)": $inst_v;
        #module instance name 
        #module instance name 
        $inst_v="$inst_v  $inst \t(\n";
        $inst_v="$inst_v  $inst \t(\n";
 
 
        #module ports
        #module ports
        $counter=0;
        $counter=0;
        foreach my $port (@ports){
        foreach my $port (@ports){
                my ($type,$range,$intfc_name,$i_port)=$ip->ip_get_port($category,$module,$port);
                my ($type,$range,$intfc_name,$i_port)=$ip->ip_get_port($category,$module,$port);
                my $assigned_port;
                my $assigned_port;
Line 302... Line 305...
 
 
 
 
        }
        }
        $inst_v="$inst_v\t);\n";
        $inst_v="$inst_v\t);\n";
 
 
 
        my $hdr =$ip->ip_get($category,$module,'system_v');
 
        if(defined $hdr){
 
                        $hdr=replace_golb_var($hdr,\%params);
 
                $$system_v= "$$system_v $hdr\n";
 
        }
 
 
 
 
        return ($param_v, $local_param_v, $wire_def_v, $inst_v, $plugs_assign_v, $sockets_assign_v,$io_full_v,$io_top_full_v,$param_pass_v);
        return ($param_v, $local_param_v, $wire_def_v, $inst_v, $plugs_assign_v, $sockets_assign_v,$io_full_v,$io_top_full_v,$param_pass_v);
 
 
 
 
Line 926... Line 933...
\tparameter\tSW_LOC=\"$sw_path\"\n,";
\tparameter\tSW_LOC=\"$sw_path\"\n,";
 
 
        my $param_pass_v="\t.CORE_ID(CORE_ID),\n\t.SW_LOC(SW_LOC)";
        my $param_pass_v="\t.CORE_ID(CORE_ID),\n\t.SW_LOC(SW_LOC)";
        my $body_v;
        my $body_v;
 
 
        my ($param_v_all, $local_param_v_all, $wire_def_v_all, $inst_v_all, $plugs_assign_v_all, $sockets_assign_v_all,$io_full_v_all,$io_top_full_v_all);
        my ($param_v_all, $local_param_v_all, $wire_def_v_all, $inst_v_all, $plugs_assign_v_all, $sockets_assign_v_all,$io_full_v_all,$io_top_full_v_all,$system_v);
        my $wires=soc->new_wires();
        my $wires=soc->new_wires();
        my $intfc=interface->interface_new();
        my $intfc=interface->interface_new();
 
 
 
 
        foreach my $id (@instances){
        foreach my $id (@instances){
                my ($param_v, $local_param_v, $wire_def_v, $inst_v, $plugs_assign_v, $sockets_assign_v,$io_full_v,$io_top_full_v)=gen_module_inst($id,$soc,\$io_sim_v,\$io_top_sim_v,\$param_as_in_v,$top_ip,$intfc,$wires,\$param_pass_v);
                my ($param_v, $local_param_v, $wire_def_v, $inst_v, $plugs_assign_v, $sockets_assign_v,$io_full_v,$io_top_full_v,$system_v)=gen_module_inst($id,$soc,\$io_sim_v,\$io_top_sim_v,\$param_as_in_v,$top_ip,$intfc,$wires,\$param_pass_v,\$system_v);
 
 
                my $inst        = $soc->soc_get_instance_name($id);
                my $inst        = $soc->soc_get_instance_name($id);
                add_text_to_string(\$body_v,"/*******************\n*\n*\t$inst\n*\n*\n*********************/\n");
                add_text_to_string(\$body_v,"/*******************\n*\n*\t$inst\n*\n*\n*********************/\n");
 
 
                add_text_to_string(\$local_param_v_all,"$local_param_v\n")      if(defined($local_param_v));
                add_text_to_string(\$local_param_v_all,"$local_param_v\n")      if(defined($local_param_v));

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.