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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? up_hdl_parser.pm

?? 這是一個(gè) NIOSII系統(tǒng)的 1602LCD 控制IP核
?? PM
字號(hào):
# +----------------------------------------------------------------------------+
# | Copyright (C)2001-2006 Altera Corporation                                  |
# |  Any megafunction design, and related net list (encrypted or decrypted),   |
# |  support information, device programming or simulation file, and any other |
# |  associated documentation or information provided by Altera or a partner   |
# |  under Altera's Megafunction Partnership Program may be used only to       |
# |  program PLD devices (but not masked PLD devices) from Altera.  Any other  |
# |  use of such megafunction design, net list, support information, device    |
# |  programming or simulation file, or any other related documentation or     |
# |  information is prohibited for any other purpose, including, but not       |
# |  limited to modification, reverse engineering, de-compiling, or use with   |
# |  any other silicon devices, unless such use is explicitly licensed under   |
# |  a separate agreement with Altera or a megafunction partner.  Title to     |
# |  the intellectual property, including patents, copyrights, trademarks,     |
# |  trade secrets, or maskworks, embodied in any such megafunction design,    |
# |  net list, support information, device programming or simulation file, or  |
# |  any other related documentation or information provided by Altera or a    |
# |  megafunction partner, remains with Altera, the megafunction partner, or   |
# |  their respective licensors.  No other licenses, including any licenses    |
# |  needed under any third party's intellectual property, are provided herein.|
# |  Copying or modifying any file, or portion thereof, to which this notice   |
# |  is attached violates this copyright.                                      |
# +----------------------------------------------------------------------------+




# +----------------------------------------------------------------------------+
# | file: UP_HDL_Parser.pl                                                     |
# |                                                                            |
# | This SOPC Builder Generator program is provided by                         |
# | Altera's University Program.                                               |
# |                                                                            |
# | Its purpose is to construct the HDL files for                              |
# | a particular instance of a particular University                           |
# | Program SOPC Builder peripheral.                                           |
# |                                                                            |
# | version: 0.3                                                               |
# |                                                                            |
# +----------------------------------------------------------------------------+

package UP_HDL_Parser;
use Exporter;


@ISA = Exporter;
@EXPORT = qw(
	parse_hdl_file
);

use strict;
use UP_System_Info;
use UP_PTF_Parser;

sub parse_hdl_file
{
	my ($filename, $top_level_file) = (@_);

	my $error;
	my $module_name;
	my @hdl_file;

	$module_name = $filename;
	$module_name =~ s/hdl\///;
	$module_name =~ s/\.v//;

	($error, @hdl_file) = load_hdl_file($filename);
	return $error if ($error != 1);

	($error, @hdl_file) = modify_the_parameters(@hdl_file);
	return $error if ($error != 1);

	($error, @hdl_file) = parse_preprocessor_directives($module_name, @hdl_file);
	return $error if ($error != 1);

	if ($top_level_file == 1)
	{
		$module_name = get_ip_core_target_name();
		($error, @hdl_file) = change_module_name($module_name, @hdl_file);
		return $error if ($error != 1);
	}

	return 1, $module_name, @hdl_file;
}

sub load_hdl_file
{
	my ($info) = (@_);

	my $filename = get_ip_core_directory()."/".$info;

	generator_print_verbose ("Loading Module File: ".$info.", with fullpath name: ".$filename);

	my $text;

	my $line_count;
	my @hdl_file;

	open (FILE, $filename) or return "Unable to find the module: ".$info;
	while(<FILE>)
	{
		$line_count = push @hdl_file, $_;		
	}
	close (FILE);

	generator_print_verbose ("Module File ".$info." was loaded and contains ".$line_count." lines of code.");

	return (1, @hdl_file);
}

sub modify_the_parameters
{
	my (@hdl_file) = (@_);
	my @new_hdl_file;
	my $error;

	my $line_count = $#hdl_file + 1;

	for (my $i = 0; $i < $line_count; $i++)
	{
		my ($line) = $hdl_file[$i];
		if ($line =~ /^\s*parameter\s*/)
		{	 
			my $the_start = $&;
			my $the_rest = $';

			my $comment = ";\n";
			if ($the_rest =~ /;\s*\/\//)
			{
				$comment = $&.$';
				$the_rest = $`;
			}

			$the_rest =~ /\s*=\s*/;
			my $the_param		= $`;
			my $the_equal_sign	= $&;
			my $bit_width_info	= $';

			if ($bit_width_info =~ /\'./)
			{
				$bit_width_info = $`.$&;
			}
			else
			{
				$bit_width_info = "";
			}

			my $new_value;
			($error, $new_value) = check_parameter_from_ptf_file($the_param);
			if ($error != 1)
			{
				push @new_hdl_file, $line;
			}
			else
			{
				push @new_hdl_file, ($the_start.$the_param.$the_equal_sign.$bit_width_info.$new_value.$comment);
			}
		}
		else
		{
			push @new_hdl_file, $line;
		}
	}

	return 1, @new_hdl_file;
}

# Does not handle nested IF directives
sub parse_preprocessor_directives
{
	my ($moduleName, @hdl_file) = (@_);

	generator_print_verbose ("Parsing preprocessor directives for the module: ".$moduleName);

	my $line;
	my $line_number = 0;
	my @new_hdl_file;

	my $in_directive = 0;
	my $valid_directive = 0;
	my $has_valid_directive = 0;

	foreach $line (@hdl_file)
	{
		if ($line =~ /^`.+/)
		{
			if ($line =~ /^`IF\s+/)
			{
				chop (my $section_name = $');
				if ($in_directive == 1)
				{
					return "Preprocessor directive parse error: found nested `IF directives at line number: ".$line_number;
				}
				else
				{
					$in_directive = 1;
					if ($section_name eq "1")
					{
						$valid_directive = 1;
					}
					elsif ($section_name eq "0")
					{
						$valid_directive = 0;
					}
					else
					{
						my ($error, $value) = check_section_from_ptf_file($section_name);
						if (($error == 1) && ($value == 1))
						{
							$valid_directive = 1;
						}
						else
						{
							$valid_directive = 0;
						}
					}
					$has_valid_directive = $valid_directive;
				}
			}
			elsif ($line =~ /^`ELSIF\s+/)
			{
				chop (my $section_name = $');
				if ($in_directive == 0)
				{
					return "Preprocessor directive parse error: found `ELSIF before `IF at line number: ".$line_number;
				}
				elsif ($has_valid_directive == 1)
				{
					$valid_directive = 0;
				}
				else
				{
					if ($section_name eq "1")
					{
						$valid_directive = 1;
					}
					elsif ($section_name eq "0")
					{
						$valid_directive = 0;
					}
					else
					{
						my ($error, $value) = check_section_from_ptf_file($section_name);
						if (($error == 1) && ($value == 1))
						{
							$valid_directive = 1;
						}
						else
						{
							$valid_directive = 0;
						}
					}
					$has_valid_directive = $valid_directive;
				}
			}
			elsif ($line =~ /^`ELSE/)
			{
				if ($in_directive == 0)
				{
					return "Preprocessor directive parse error: found `ELSE before `IF at line number: ".$line_number;
				}
				elsif ($has_valid_directive == 1)
				{
					$valid_directive = 0;
				}
				else
				{
					$valid_directive = 1;
				}
				$has_valid_directive = 1;
			}
			elsif ($line =~ /^`ENDIF/)
			{
				if ($in_directive == 0)
				{
					return "Preprocessor directive parse error: found `ENDIF before `IF at line number: ".$line_number;
				}
				else
				{
					$in_directive = 0;
					$valid_directive = 0;
					$has_valid_directive = 0;
				}
			}
			else
			{
				return "Preprocessor directive parse error: found unknown directive ".$&." at line number: ".$line_number;
			}
		}
		elsif (($in_directive == 0) || ($valid_directive == 1))
		{
			push @new_hdl_file, $line;
		}

		$line_number++;
	}

	return (1, @new_hdl_file);
}

sub change_module_name
{
	my $new_module_name;
	my @hdl_file;
	($new_module_name, @hdl_file) = (@_);

	my $line;
	my @new_hdl_file;
	foreach $line (@hdl_file)
	{
		if ($line =~ /^module/)
		{
			push @new_hdl_file, "module ".$new_module_name." (\n";		
		}
		else
		{
			push @new_hdl_file, $line;
		}
	}

	return 1, @new_hdl_file;
}

# End with success

return 1;

# end of file

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久婷婷国产综合精品青草| 欧美在线视频全部完| 一级做a爱片久久| 日韩一级免费观看| 99久久精品国产一区| 久久成人免费网| 洋洋av久久久久久久一区| 久久久久国产精品麻豆ai换脸| 欧美性猛交xxxx黑人交| 国产.欧美.日韩| 久久99热国产| 婷婷综合五月天| 一区二区三区在线视频免费观看| 国产日韩欧美一区二区三区乱码| 欧美一级在线免费| 欧美日韩国产精品成人| 91香蕉视频污| www.色精品| 国产成人av电影| 国产麻豆视频一区二区| 美国欧美日韩国产在线播放| 性久久久久久久久久久久| 亚洲欧美一区二区视频| 国产欧美视频在线观看| 26uuu亚洲综合色| 日韩精品一区二区在线观看| 欧美日韩不卡一区二区| 欧美色综合天天久久综合精品| 不卡av在线网| 99麻豆久久久国产精品免费| 国产成人免费视| 国产伦精品一区二区三区免费| 久久国产日韩欧美精品| 理论片日本一区| 老司机免费视频一区二区| 久久成人18免费观看| 久久不见久久见免费视频7| 美女www一区二区| 日韩高清一区在线| 日韩激情av在线| 免费人成黄页网站在线一区二区 | 欧美日韩三级视频| 欧美日韩在线一区二区| 欧美揉bbbbb揉bbbbb| 欧美日韩久久一区| 欧美电影影音先锋| 日韩精品最新网址| 久久综合视频网| 国产午夜精品福利| 极品少妇xxxx精品少妇| 免费成人av在线| 国产九色精品成人porny| 国产高清无密码一区二区三区| 粉嫩一区二区三区性色av| 不卡一区二区在线| 色婷婷综合久久久久中文| 91福利视频久久久久| 欧美高清视频一二三区 | 99久精品国产| 色综合天天综合色综合av | 成人动漫精品一区二区| 99久久久国产精品免费蜜臀| 欧美在线不卡一区| **欧美大码日韩| 亚洲自拍都市欧美小说| 日韩精品一区二区在线| 精品国产一区久久| 欧美韩日一区二区三区| 一区二区在线观看视频| 天天免费综合色| 国产精品一区在线观看你懂的| 本田岬高潮一区二区三区| 欧美色精品天天在线观看视频| 日韩欧美在线一区二区三区| 国产欧美日韩三级| 亚洲在线视频网站| 精品一区二区三区免费观看| 波多野结衣精品在线| 欧美系列日韩一区| 久久综合九色综合欧美就去吻| 18欧美乱大交hd1984| 强制捆绑调教一区二区| 成人免费毛片app| 欧美精品一卡两卡| 亚洲国产高清aⅴ视频| 首页综合国产亚洲丝袜| 成人午夜激情影院| 在线播放91灌醉迷j高跟美女| 久久久99久久| 日韩电影免费一区| 99综合电影在线视频| 日韩欧美综合在线| 亚洲欧美国产77777| 理论电影国产精品| 欧美性猛交xxxx乱大交退制版| 国产亚洲精久久久久久| 首页国产丝袜综合| 91网站在线播放| 久久精品亚洲一区二区三区浴池| 亚洲一区二区视频在线观看| 国产一区二区三区av电影| 欧美视频在线一区| 中文字幕一区二区三区在线不卡| 美女尤物国产一区| 欧美老年两性高潮| 亚洲日穴在线视频| 精品国产亚洲一区二区三区在线观看| 亚洲免费观看高清| 国v精品久久久网| 久久综合九色综合久久久精品综合 | 国内精品国产三级国产a久久| 欧美午夜精品久久久久久孕妇| 欧美精彩视频一区二区三区| 美女被吸乳得到大胸91| 欧美丰满一区二区免费视频| 亚洲欧美乱综合| av高清不卡在线| 久久久国产午夜精品| 久久99国产乱子伦精品免费| 911精品产国品一二三产区 | 国产精品一区不卡| 日韩视频不卡中文| 日日欢夜夜爽一区| 欧美日韩在线直播| 亚洲福利视频三区| 在线欧美日韩国产| 亚洲欧美在线视频观看| 99re这里都是精品| 国产精品久久久久久久午夜片| 国产精选一区二区三区| 精品欧美一区二区三区精品久久| 天天色天天操综合| 7777精品伊人久久久大香线蕉超级流畅| 一区二区三区欧美| 色综合天天综合网天天看片 | 久久激情五月激情| 欧美大片在线观看一区二区| 秋霞成人午夜伦在线观看| 亚洲图片你懂的| 99精品欧美一区| 亚洲欧洲www| 91丨九色丨蝌蚪丨老版| 亚洲美女屁股眼交3| 欧美性videosxxxxx| 午夜久久久久久| 91精品国产麻豆| 国内国产精品久久| 国产色91在线| 成人黄色在线网站| 一区二区三区在线视频免费 | 欧美午夜一区二区三区免费大片| 亚洲一区在线播放| 欧美伦理影视网| 精品一区二区免费视频| 精品国产91久久久久久久妲己| 国产一区二区在线观看免费| 国产喷白浆一区二区三区| 99国产精品久久久久久久久久| 亚洲精品国产精品乱码不99| 欧美伦理视频网站| 狠狠狠色丁香婷婷综合激情 | 午夜欧美视频在线观看| 日韩美女视频在线| 国产成人免费视频网站高清观看视频 | 国产精品美女久久久久久久久| 成人三级在线视频| 亚洲va欧美va天堂v国产综合| 欧美一级欧美一级在线播放| 国产乱子伦视频一区二区三区| 中文在线资源观看网站视频免费不卡| 99国产精品视频免费观看| 丝袜国产日韩另类美女| 26uuu色噜噜精品一区| 91一区二区三区在线观看| 亚洲.国产.中文慕字在线| 日本网站在线观看一区二区三区| 久久久99精品免费观看不卡| 日本福利一区二区| 日本不卡免费在线视频| 国产日本一区二区| 欧洲激情一区二区| 国产精品自在在线| 亚洲一区二区三区影院| 久久婷婷久久一区二区三区| 91蜜桃免费观看视频| 免费观看91视频大全| 中文字幕中文字幕中文字幕亚洲无线| 欧美精品一二三| 北岛玲一区二区三区四区| 日本女人一区二区三区| 亚洲色图丝袜美腿| 欧美精品一区二区高清在线观看 | yourporn久久国产精品| 日本三级韩国三级欧美三级| 中文字幕中文字幕一区二区| 精品日韩欧美在线| 欧美日韩视频专区在线播放| 成人黄色片在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲乱码一区二区三区在线观看|