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 28 and 34

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

Rev 28 Rev 34
Line 17... Line 17...
######################
######################
#   soc_generate_verilog
#   soc_generate_verilog
#####################
#####################
 
 
sub soc_generate_verilog{
sub soc_generate_verilog{
        my ($soc)= @_;
        my ($soc,$sw_path)= @_;
        my $soc_name=$soc->object_get_attribute('soc_name');
        my $soc_name=$soc->object_get_attribute('soc_name');
        #my $top_ip=ip_gen->ip_gen_new();
        #my $top_ip=ip_gen->ip_gen_new();
        my $top_ip=ip_gen->top_gen_new();
        my $top_ip=ip_gen->top_gen_new();
        if(!defined $soc_name){$soc_name='soc'};
        if(!defined $soc_name){$soc_name='soc'};
 
 
        my @instances=$soc->soc_get_all_instances();
        my @instances=$soc->soc_get_all_instances();
        my $io_sim_v;
        my $io_sim_v;
        my $core_id= $soc->object_get_attribute('global_param','CORE_ID');
        my $core_id= $soc->object_get_attribute('global_param','CORE_ID');
        $core_id= 0 if(!defined $core_id);
        $core_id= 0 if(!defined $core_id);
        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\"";
 
 
 
 
 
 
 
 
        my $param_pass_v="\t.CORE_ID(CORE_ID)";
        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);
        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);
        my $wires=soc->new_wires();
        my $wires=soc->new_wires();
        my $intfc=interface->interface_new();
        my $intfc=interface->interface_new();
Line 82... Line 83...
        add_text_to_string(\$soc_v,$sockets_assign_v_all);
        add_text_to_string(\$soc_v,$sockets_assign_v_all);
        add_text_to_string(\$soc_v,$addr_map);
        add_text_to_string(\$soc_v,$addr_map);
        add_text_to_string(\$soc_v,"endmodule\n\n");
        add_text_to_string(\$soc_v,"endmodule\n\n");
 
 
 
 
        $soc->soc_add_top($top_ip);
        $soc->object_add_attribute('top_ip',undef,$top_ip);
        #print @assigned_wires;
        #print @assigned_wires;
 
 
        #generate topmodule
        #generate topmodule
 
 
        my $top_v = (defined $param_as_in_v )? "module ${soc_name}_top #(\n $param_as_in_v\n)(\n$io_sim_v\n);\n": "module ${soc_name}_top (\n $io_sim_v\n);\n";
        my $top_v = (defined $param_as_in_v )? "module ${soc_name}_top #(\n $param_as_in_v\n)(\n$io_sim_v\n);\n": "module ${soc_name}_top (\n $io_sim_v\n);\n";
        my $ins= gen_soc_instance_v($soc,$soc_name,$param_pass_v);
        my $ins= gen_soc_instance_v($soc,$soc_name,$param_pass_v);
 
        add_text_to_string(\$top_v,$functions_all);
        add_text_to_string(\$top_v,$local_param_v_all."\n".$io_full_v_all);
        add_text_to_string(\$top_v,$local_param_v_all."\n".$io_full_v_all);
        add_text_to_string(\$top_v,$ins);
        add_text_to_string(\$top_v,$ins);
        my ($readme,$prog)=gen_system_info($soc,$param_as_in_v);
        my ($readme,$prog)=gen_system_info($soc,$param_as_in_v);
        return ("$soc_v",$top_v,$readme,$prog);
        return ("$soc_v",$top_v,$readme,$prog);
 
 
Line 726... Line 727...
                        my $v=$soc->soc_get_module_param_value($instance_id,$JTAG_INDEX);
                        my $v=$soc->soc_get_module_param_value($instance_id,$JTAG_INDEX);
                        $JTAG_INDEX = $v if (defined $v);
                        $JTAG_INDEX = $v if (defined $v);
                        $v= $soc->object_get_attribute('global_param',$JTAG_INDEX);
                        $v= $soc->object_get_attribute('global_param',$JTAG_INDEX);
                        $JTAG_INDEX = $v if (defined $v);
                        $JTAG_INDEX = $v if (defined $v);
 
 
                        my $BINFILE=$soc->soc_get_module_param_value($instance_id,'INIT_FILE_NAME');
                        my $BINFILE=$soc->soc_get_module_param_value($instance_id,'JTAG_MEM_FILE');
                        ($BINFILE)=$BINFILE=~ /"([^"]*)"/ if(defined $BINFILE);
                        ($BINFILE)=$BINFILE=~ /"([^"]*)"/ if(defined $BINFILE);
                        $BINFILE=(defined $BINFILE) ? $BINFILE.'.bin' : 'ram0.bin';
                        $BINFILE=(defined $BINFILE) ? $BINFILE.'.bin' : 'ram0.bin';
 
 
                        my $OFSSET="0x00000000";
                        my $OFSSET="0x00000000";
                        my $end=((1<<$aw)*($dw/8))-1;
                        my $end=((1<<$aw)*($dw/8))-1;

powered by: WebSVN 2.1.0

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