亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cb_generator.pl

?? PWM Verilog HDL原碼和底層C驅動
?? PL
?? 第 1 頁 / 共 3 頁
字號:
    # | dvb2004    my @e_hdl_parameters; # list of e_parameters    my $class_ptf = generator_get_class_ptf_handle();    my $hdl_parameter_definitions_ptf = get_child_by_path($class_ptf,"CLASS/COMPONENT_BUILDER/HDL_PARAMETERS");    my @libraries = get_libraries();    my $hdl_parameter_count = get_child_count($hdl_parameter_definitions_ptf,"HDL_PARAMETER");    my $module_language = $generator_hr->{wrapper_args}{module_language};    for(my $i = 0; $i < $hdl_parameter_count; $i++)        {        my $a_parameter = get_child($hdl_parameter_definitions_ptf,$i,"HDL_PARAMETER");        my $parameter_editable = get_data_by_path($a_parameter,"editable");        if($parameter_editable)                {                my $boring_name = get_data($a_parameter); # legal guinevere-ized                my $name = get_data_by_path($a_parameter,"parameter_name"); # original HDL name                my $default = get_data_by_path($a_parameter,"default_value");                my $type = get_data_by_path($a_parameter,"type");                                $default = turn_anything_into_appropriate_string($default,$type,1,$module_language);                my $a_parameter = e_parameter->new                    ({                    name => $name,                    default => $default,                    type => $type                    });                push (@e_hdl_parameters,$a_parameter);                }        }            # | and @e_hdl_parameters is used below in the wrapee module    # +--------------------------------------------    # +--------------------------------------------    # | Now, we build a "hdl_parameter_map", which is just    # | your basic hash table with keys (parameters)    # | and values (parameter values).    # |    # | these are the particular values for this instance.    # |    my %hdl_parameter_map;    my $module_ptf = $generator_hr->{module_ptf_hr};    my $hdl_parameters_ptf =            get_child_by_path($module_ptf,"WIZARD_SCRIPT_ARGUMENTS/hdl_parameters");    my $child_count = get_child_count($hdl_parameters_ptf);    for(my $i = 0; $i < $child_count; $i++)        {        my $a_parameter = get_child($hdl_parameters_ptf,$i);        my $boring_name = get_name($a_parameter);        my $value = get_data($a_parameter);		# refer back to the original HDL name...        my $parameter_definition_ptf = get_child_by_path($hdl_parameter_definitions_ptf,"HDL_PARAMETER $boring_name");        my $parameter_name = get_data_by_path($parameter_definition_ptf,"parameter_name");        my $parameter_type = get_data_by_path($parameter_definition_ptf,"type");        my $parameter_editable = get_data_by_path($parameter_definition_ptf,"editable");                $value = turn_anything_into_appropriate_string($value,$parameter_type,$parameter_editable,$module_language);        # |        # | our internal _dummy assignment shows up here        # | without a corresponding hdl entry. we        # | ignore it.        # |        if(($parameter_name ne "") and $parameter_editable)            {            $hdl_parameter_map{$parameter_name} = $value;            }        }  my $wrapee_module;  $wrapee_module = e_module->new({				 name => $top_module_name,				 contents =>  [@ports,@e_hdl_parameters],				 do_black_box => 0,				 do_ptf => 0,				 _hdl_generated => 1,				 _explicitly_empty_module => 1,				});  # VHDL Libraries, from PTF file...  $wrapee_module->add_vhdl_libraries(@libraries);  $top->add_vhdl_libraries(@libraries);  $top->add_contents (		      e_instance->new({				       module => $wrapee_module,                       parameter_map => \%hdl_parameter_map				      }),		     );    $project->top()->do_ptf(0);  $project->do_write_ptf(0);      my $module_file = $project->_target_module_name().".v";  $module_file = $project->_target_module_name().".vhd"    if($language eq "vhdl");  $module_file = $generator_hr->{project_path_widget}."/".$module_file;  &generator_set_files_in_system_ptf("Synthesis_HDL_Files", ($module_file));  $project->output();  # if you don't want a simulation model, you don't get a simulation model  if($no_black_box eq "0")  {    my $black_project = e_project->new(@external_args);    $black_project->_target_module_name($top_module_name);    my $black_top = $black_project->top();    $black_top->add_contents(@ports);    my $black_top_instance;    $black_top_instance = e_module->new({				   name => $wrapper_args->{top_module_name}."_bb",				   contents =>  [@ports],				   do_black_box => 1,				   do_ptf => 0,				   _hdl_generated => 0,				   _explicitly_empty_module => 1,				  });        $black_top->add_contents (			e_instance->new({					 module => $black_top_instance,					}),		       );    $black_project->top()->do_ptf(0);    $black_project->do_write_ptf(0);    my $black_module_file = $black_project->_target_module_name().".v";    $black_module_file = $black_project->_target_module_name().".vhd"      if($language eq "vhdl");    $black_module_file = $generator_hr->{project_path_widget}."/".$black_module_file;    &generator_set_files_in_system_ptf("Simulation_HDL_Files", ($black_module_file));#    &set_data_by_path($module_ptf_hr, "HDL_INFO/Simulation_HDL_Files", $black_module_file);    $black_project->output();  }}##### Args: $file_type : "synthesis", "synthesis_only", "simulation"#       @file_list   :  an array of files.  This list of files is assumed to be relative to the#                       component's directorymy $decoder_ring_hr = {			quartus_only => {					 copy => 1,					 copy_to => "project",					 ptf_set => 0,					},			simulation_only => {					    copy => 1,					    copy_to => "simulation",					    ptf_set => 1,					    ptf_section => "Simulation_HDL_Files",					   },			simulation_and_quartus => {						   copy => 1,						   copy_to => "project",						   ptf_set => 1,						   ptf_section => "Synthesis_HDL_Files",						  }, 		       precompiled_simulation_files => {							copy => 0,							ptf_set => 1,							ptf_section => "Precompiled_Simulation_Library_Files",						       },		      };sub generator_copy_files_and_set_system_ptf{  my ($hdl_section, @file_list) = (@_);  my $ptf_path_prefix = "";    my $external_args_hr = $generator_hr->{external_args_hr};  my @new_file_array;  #validate first  my $decoder_hash = $decoder_ring_hr->{$hdl_section};  &default_ribbit("generator_copy_files_and_set_system_ptf: No understood HDL section passed in for first arg\n")    unless($decoder_ring_hr->{$hdl_section} ne "");  &generator_print_verbose("generator_copy_files_and_set_system_ptf: copying files for section ".$hdl_section."\n");  #copy second  my @new_file_array;  # If we need to copy over some files, then we need to make sure we are   # keeping track of what files we copy over.  # Otherwise, we just need to keep track of the files that the user has asked to copy over  # and use these instead.  if($decoder_hash->{copy}){    my $copy_to_location;    my $copy_from_location;    if($decoder_hash->{copy_to} eq "project"){      $copy_to_location = $external_args_hr->{system_directory};    }elsif($decoder_hash->{copy_to} eq "simulation"){      $copy_to_location = $external_args_hr->{system_sim_dir};    }else{      &default_ribbit("generator_copy_files_and_set_system_ptf: No understood copy files to location\n");    }    $copy_from_location = $external_args_hr->{class_directory};    @new_file_array = &generator_copy_files($copy_to_location, $copy_from_location, @file_list);  }else{    @new_file_array = @file_list;  }	  #scribble on PTF hash last  if($decoder_hash->{ptf_set}){    if($decoder_hash->{copy_to} eq "project"){      foreach my $file(@new_file_array){         $file =~ s/^.*\/(.*?)$/$1/;         $file = $generator_hr->{project_path_widget}."/".$file;      }    }    &generator_print_verbose("generator_copy_files_and_set_system_ptf: setting system PTF file in section ".$hdl_section."\n");    if($decoder_hash->{ptf_section} eq "Precompiled_Simulation_Library_Files"){      @new_file_array = map{$external_args_hr->{class_directory}."/".$_} @new_file_array;    }    &generator_set_files_in_system_ptf($decoder_hash->{ptf_section}, @new_file_array);  }}##### Name: generator_set_files_in_system_ptf# Args: $hdl_section#       @list_of_files# Returns: 1 or 0# Purpose: This is an internal function used to set files in the module's section in the system PTF file#sub generator_set_files_in_system_ptf{  my ($hdl_section, @list_of_files) = (@_);  my $file_list = join(",", @list_of_files);  my $previous_data;    &generator_print_verbose("setting HDL_INFO/".$hdl_section." in system PTF file with ".$file_list."\n");  my $previous_data = &get_data_by_path($generator_hr->{module_ptf_hr}, "HDL_INFO/".$hdl_section);    if($previous_data){    $file_list = $previous_data . ", $file_list"; # spr 132177                                                  # swapping order, dvb 2003  }  &set_data_by_path($generator_hr->{module_ptf_hr}, "HDL_INFO/".$hdl_section, $file_list);}##### Name: generator_copy_files# Args: $target_directory#       $source_directory#       @list_of_files# Returns: The list of files which has been copied (suitable for framing!)# Purpose: This is an internal function used to copy files around in the generator program.#sub generator_copy_files{  my ($target_directory, $source_directory, @list_of_files) = (@_);  my @new_file_array;  foreach my $file_name(@list_of_files){     $file_name =~ s|\\|\/|g;    if($file_name =~ /\*\.*/){      $file_name =~ s/\*/$1/;      my @found_list = &_find_all_dir_files_with_ext($source_directory, $file_name);      push(@new_file_array, @found_list);    }else{      &generator_print_verbose("Copying: ".$file_name."\n");      push(@new_file_array, $file_name);    }  }  &_copy_files($target_directory, $source_directory, @new_file_array);  return @new_file_array;}sub _find_all_dir_files_with_ext{  my ($dir,      $ext) = (@_);  opendir (DIR, $dir) or    &default_ribbit("can't open $dir !");    my @all_files = readdir(DIR);  my @new_file_list;      foreach my $file (@all_files){    if($file =~ /^.*($ext)$/){      push(@new_file_list, $file);    }  }  return @new_file_list;}##### Name: generator_begin# Args: Array of generator program launcher args# Returns: A hash reference to the module's section in the system PTF file# Purpose: This is the first subroutine a user should call before running the rest of their#          generator program.#sub generator_begin{  my @external_args = (@_);  my  ($external_args_hr,        $temp_user_defined,        $temp_db_Module,        $temp_db_PTF_File) = Process_Wizard_Script_Arguments("", @external_args);  &generator_print_verbose("generator_begin: initializing\n");  $generator_hr->{external_args_hr} = $external_args_hr;  $generator_hr->{external_args} = \@external_args;  # open up class.ptf and   $generator_hr->{class_ptf_hr} = new_ptf_from_file($external_args_hr->{class_directory}."/class.ptf");  # get the system.ptf   $generator_hr->{system_ptf_hr} = new_ptf_from_file($external_args_hr->{system_directory}."/".$external_args_hr->{system_name}.".ptf");  $generator_hr->{module_ptf_hr} = &get_child_by_path($generator_hr->{system_ptf_hr}, "SYSTEM $external_args_hr->{system_name}/MODULE $external_args_hr->{target_module_name}");  my $class_name = get_data_by_path($generator_hr->{module_ptf_hr}, "class");  # find the default generator section  $generator_hr->{language} = get_data_by_path($generator_hr->{system_ptf_hr}, "SYSTEM $external_args_hr->{system_name}/WIZARD_SCRIPT_ARGUMENTS/hdl_language");  # get some wrapper settings  &get_module_wrapper_arg_hash_from_system_ptf_file();  # clear system ptf's HDL section  &delete_child($generator_hr->{module_ptf_hr}, "HDL_INFO");  return $generator_hr->{module_ptf_hr};}	##### Name: generator_end# Args: none# Returns: nothing# Purpose: This is the last subroutine a user should call from their generator program.#          Not calling this subroutine will make you very sad... =<#

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产日韩在线观看| 国产人久久人人人人爽| 99久久精品一区二区| 秋霞电影一区二区| 亚洲一二三四区| 亚洲天堂a在线| 亚洲国产岛国毛片在线| 亚洲欧美一区二区在线观看| 国产人妖乱国产精品人妖| 久久久美女艺术照精彩视频福利播放| 欧美性xxxxxxxx| 欧美日韩国产不卡| 欧美日韩精品系列| 欧美色涩在线第一页| 九九九久久久精品| 精品一区二区三区在线视频| 麻豆视频一区二区| 免费在线观看成人| 欧美aaaaa成人免费观看视频| 亚洲mv大片欧洲mv大片精品| 亚洲一级二级三级| 日韩精品亚洲专区| 奇米777欧美一区二区| 久久99精品视频| 激情深爱一区二区| 国产一区二区福利视频| 国产伦精品一区二区三区在线观看| 国产精品一级片| 成人短视频下载| 91在线观看地址| 91黄视频在线| 日本精品视频一区二区| 欧美乱妇一区二区三区不卡视频| 欧美色视频在线| 日韩一二三区不卡| 久久精品一区四区| 久久久亚洲精品一区二区三区| 中文一区一区三区高中清不卡| 国产精品乱码久久久久久| 亚洲欧洲成人av每日更新| 一区二区三区精品视频在线| 五月开心婷婷久久| 国内成人精品2018免费看| 成人午夜视频免费看| 99国产精品99久久久久久| 在线免费观看成人短视频| 欧美成人a视频| 国产精品区一区二区三| 亚洲精品视频一区| 天堂在线亚洲视频| 久久se精品一区二区| 91丨porny丨蝌蚪视频| 欧美午夜精品久久久久久孕妇| 91精品婷婷国产综合久久竹菊| 亚洲精品一区二区三区精华液| 国产日韩影视精品| 亚洲影院理伦片| 国产美女在线精品| 日本韩国精品一区二区在线观看| 欧美一级二级三级乱码| 国产香蕉久久精品综合网| 亚洲天堂成人在线观看| 美腿丝袜一区二区三区| 成人听书哪个软件好| 欧美三级电影精品| 久久久久久久久一| 青青国产91久久久久久| 成人ar影院免费观看视频| 欧美剧情片在线观看| 欧美国产综合一区二区| 一区二区三区国产豹纹内裤在线| 国内成人自拍视频| 欧美丝袜丝nylons| 中文一区在线播放| 日韩精品国产精品| 一本久道久久综合中文字幕| 精品国产乱码久久久久久1区2区 | 久久精品免费在线观看| 日韩精品成人一区二区在线| 岛国精品在线观看| 欧美一区二区黄| 日韩伦理av电影| 青青青伊人色综合久久| 欧洲国产伦久久久久久久| 久久久久久**毛片大全| 偷拍与自拍一区| 99国产精品久久久久久久久久久| 欧美一级一级性生活免费录像| 一区二区在线电影| 国产91在线观看丝袜| 欧美一区二区在线不卡| 一区二区三区91| 国产精品一级在线| 久久久午夜电影| 男人操女人的视频在线观看欧美| 91免费在线看| 国产精品嫩草99a| 国产不卡高清在线观看视频| 国产亚洲欧洲997久久综合| 国产综合成人久久大片91| 日韩欧美高清在线| 精品中文字幕一区二区小辣椒| 91精品欧美综合在线观看最新| 亚洲一区二区三区自拍| 色综合久久精品| 亚洲免费在线看| 在线观看亚洲专区| 亚洲午夜影视影院在线观看| 欧美日韩一区视频| 日韩国产精品91| 日韩视频免费观看高清完整版| 日本不卡在线视频| 精品国产污网站| 大白屁股一区二区视频| 国产精品久久久久影视| 色久优优欧美色久优优| 亚洲电影一级黄| 欧美一级夜夜爽| 国产自产v一区二区三区c| 国产喷白浆一区二区三区| 99久久免费视频.com| 亚洲精品一二三| 欧美日韩在线综合| 麻豆精品视频在线观看免费 | 亚洲bt欧美bt精品777| 欧美精品 国产精品| 久久不见久久见免费视频7| 国产亚洲人成网站| 色婷婷av久久久久久久| 日韩综合小视频| 久久久综合激的五月天| 91视视频在线观看入口直接观看www | 国产精品传媒入口麻豆| 色视频一区二区| 青青草国产精品97视觉盛宴| 久久蜜桃一区二区| 91色porny蝌蚪| 麻豆视频一区二区| 亚洲视频一区二区在线观看| 欧美剧在线免费观看网站| 国产精品一区二区久激情瑜伽| 亚洲欧美偷拍三级| 日韩精品专区在线影院重磅| 不卡电影一区二区三区| 午夜国产精品一区| 久久精品视频免费| 欧美性猛片aaaaaaa做受| 韩国精品在线观看| 综合欧美一区二区三区| 欧美精品在欧美一区二区少妇| 国产精品综合视频| 亚洲精品亚洲人成人网| 久久众筹精品私拍模特| 在线一区二区视频| 国产一区三区三区| 亚洲亚洲精品在线观看| 欧美激情在线一区二区| 欧美精品色一区二区三区| 成人性生交大片免费| 亚洲成人一区二区在线观看| 久久久精品日韩欧美| 欧美日韩免费不卡视频一区二区三区| 国内成人免费视频| 午夜在线成人av| 国产精品电影院| 欧美刺激脚交jootjob| 91久久精品一区二区三区| 国产老女人精品毛片久久| 性欧美大战久久久久久久久| 18涩涩午夜精品.www| 26uuu精品一区二区三区四区在线| 在线视频综合导航| 成人精品一区二区三区四区| 捆绑紧缚一区二区三区视频| 亚洲资源在线观看| 国产精品色婷婷久久58| 欧美一级二级三级蜜桃| 欧美日韩激情在线| 99re6这里只有精品视频在线观看| 久久成人综合网| 日韩不卡一区二区三区| 一区二区三区日韩在线观看| 欧美激情在线观看视频免费| 亚洲精品在线观| 日韩欧美一区二区视频| 欧美人体做爰大胆视频| 色系网站成人免费| 粗大黑人巨茎大战欧美成人| 激情欧美一区二区| 日本一区中文字幕| 日韩中文字幕区一区有砖一区| 一区二区三区不卡在线观看 | 国产欧美一区二区精品性色| 日韩精品一区二区三区在线播放| 欧美日韩精品高清| 欧美亚男人的天堂| 在线看日韩精品电影| 欧美主播一区二区三区美女| 成人av电影观看| 成人18视频日本|