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

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

?? corepwm_pkg.vhd

?? Actel Fusion System Management Development Kit UART Example. Contains Libero design using CoreABC. P
?? VHD
?? 第 1 頁 / 共 3 頁
字號:
variable	vs:				std_logic;
variable	tnow:			integer;
variable	DISP_CORRECT:	boolean;

constant	uline_str2:		string(1 to 77)	:=
"_____________________________________________________________________________";
constant	pound_str2:		string(1 to 77)	:=
"#############################################################################";

begin
	DISP_CORRECT:= false;
				
	tnow		:= NOW / 1 ns;
	nomatch		:= false;
	if (d /= to_stdulogic(v)) then
		nomatch := true;
	end if;
	vs := to_stdulogic(v);

	if (nomatch) then
		printf(" ");
		printf("%s",fmt(pound_str2));
		printf("ERROR!!! Mismatch on signal %s",fmt(sig_name));
		printf("At time: %0d ns",fmt(tnow));
		printf("Expected value was: 0x%0x, observed value is: 0x%0x",
		fmt(vs)&fmt(d));
		printf("%s",fmt(pound_str2));
		printf(" ");
		ERRCNT := ERRCNT + 1;
	elsif (DISP_CORRECT) then
		printf("%s",fmt(uline_str2)); printf(" ");
		printf("CORRECT: match on signal %s",fmt(sig_name));
		printf("At time: %0d ns",fmt(tnow));
		printf("Expected value was: 0x%0x, observed value is: 0x%0x",
		fmt(vs)&fmt(d));
	end if;


end checksig;

------------------------------------------------------------------------
-- Check value of signal (expected output) & print message if mis-match
-- (vector version)
------------------------------------------------------------------------
procedure checksig (
d:			std_logic_vector;
sig_name:	string;
v:			bit_vector;
ERRCNT:		inout	integer) is
variable	nomatch:	boolean;
variable	tnow:		integer;
variable	v_copy:		bit_vector(d'range);
variable	vs:			std_logic_vector(d'range);
variable	DISP_CORRECT:	boolean;

constant	uline_str2:		string(1 to 77)	:=
"_____________________________________________________________________________";
constant	pound_str2:		string(1 to 77)	:=
"#############################################################################";

begin
	DISP_CORRECT:= false;
--	DISP_CORRECT:= true;

	tnow		:= NOW / 1 ns;
	v_copy		:= v;
	nomatch		:= false;
	for i in d'range loop
		vs(i) := to_stdulogic(v_copy(i));
	end loop;
	for i in d'range loop
		if (d(i) /= vs(i)) then
			nomatch := true;
		end if;
	end loop;

	if (nomatch) then
		printf(" ");
		printf("%s",fmt(pound_str2));
		printf("ERROR!!! Mismatch on signal %s",fmt(sig_name));
		printf("At time: %0d ns",fmt(tnow));
		printf("Expected value was: 0x%0x, observed value is: 0x%0x",
		fmt(vs)&fmt(d));
		printf("%s",fmt(pound_str2));
		printf(" ");
		ERRCNT := ERRCNT + 1;
	elsif (DISP_CORRECT) then
		printf("%s",fmt(uline_str2)); printf(" ");
		printf("CORRECT: match on signal %s",fmt(sig_name));
		printf("At time: %0d ns",fmt(tnow));
		printf("Expected value was: 0x%0x, observed value is: 0x%0x",
		fmt(vs)&fmt(d));
	end if;

end checksig;


-- small function to convert std_logic and std_logic_vector to integer
-- Note: only good for vectors < 32 bits!
function sl2int	(s: std_logic_vector) return integer is
variable i: integer;

begin
	i	:= 0;
	for j in s'range loop
		if (s(j) = '1') then
			i := i + (2 ** j);
		end if;
	end loop;
	return i;
end sl2int;
function sl2int	(s: std_logic) return integer is
variable i: integer;
begin
	if (s = '1') then
		i := 1;
	else
		i := 0;
	end if;
	return i;
end sl2int;

-- small function to convert integer to std_logic_vector
function int2slv (val: in integer; len: in integer) return std_logic_vector is
variable rtn	: std_logic_vector(len-1 downto 0) := (others => '0');
variable num	: integer := val;
variable r		: integer;
begin
	for i in 0 to len-1 loop
		r	:= num rem 2;
		num	:= num/2;
		if (r = 1) then
			rtn(i) := '1';
		else
			rtn(i) := '0';
		end if;
	end loop;
	return(rtn);
end int2slv;

-- small function to convert std_logic values to either 'X','0','1', or 'Z'
function sl2x01z(s: std_logic) return std_logic is
variable sl: std_logic;
begin
	case s is
		when 'U'	=> sl:= 'X';
		when 'X'	=> sl:= 'X';
		when '0'	=> sl:= '0';
		when '1'	=> sl:= '1';
		when 'Z'	=> sl:= 'Z';
		when 'W'	=> sl:= 'X';
		when 'L'	=> sl:= '0';
		when 'H'	=> sl:= '1';
		when '-'	=> sl:= 'X';
		when others	=> sl:= 'X';
	end case;
	return sl;
end sl2x01z;

-- small function to convert vlog values (string) to either 'X','0','1', or 'Z'
--function vlg2x01z(s: character) return std_logic is
function vlg2x01z(s: string(1 to 1)) return std_logic is
variable sl: std_logic;
begin
	case s is
		when "x"	=> sl:= 'X';
		when "0"	=> sl:= '0';
		when "1"	=> sl:= '1';
		when "z"	=> sl:= 'Z';
		when others	=> sl:= 'X';
	end case;
	return sl;
end vlg2x01z;


-- small function to convert std_logic_vector values to 'X','0','1', or 'Z'
function slv2x01z(s: std_logic_vector) return std_logic_vector is
variable sl: std_logic;
variable slv: std_logic_vector(s'range);
begin
	for i in s'range loop
		slv(i):= sl2x01z(s(i));
	end loop;
	return slv;
end slv2x01z;

---------------------------------------------------------------------
-- small function to convert hex character to std_logic values
function hex2sl(s: character) return std_logic is
variable sl: std_logic;
begin
	case s is
		when '0'	=> sl:= '0';
		when '1'	=> sl:= '1';
		when '2'	=> sl:= 'L';
		when '3'	=> sl:= 'H';
		when '4'	=> sl:= 'W';
		when '5'	=> sl:= 'Z';
		when '6'	=> sl:= 'U';
		when '7'	=> sl:= 'X';
		when '8'	=> sl:= '-';
		when others	=> sl:= 'X';
	end case;
	return sl;
end hex2sl;
-- small function to convert hex string to std_logic_vector values
function hexv2slv(s: string) return std_logic_vector is
variable sl: std_logic;
variable c: character;
variable slv: std_logic_vector(s'range);
begin
	for i in s'range loop
		slv(i):= hex2sl(s(i));
	end loop;
	return slv;
end hexv2slv;


-- small function to convert hex character to std_logic values
function ev2sl(e: evbit) return std_logic is
variable sl: std_logic;
begin
	case e is
		when '0'	=> sl:= '0';
		when '1'	=> sl:= '1';
		when '2'	=> sl:= 'L';
		when '3'	=> sl:= 'H';
		when '4'	=> sl:= 'W';
		when '5'	=> sl:= 'Z';
		when '6'	=> sl:= 'U';
		when '7'	=> sl:= 'X';
		when '8'	=> sl:= '-';
		when others	=> sl:= 'X';
	end case;
	return sl;
end ev2sl;
-- small function to convert hex string to std_logic_vector values
function evv2slv(e: evbyte) return std_logic_vector is
variable sl: std_logic;
variable slv: std_logic_vector(7 downto 0);
begin
	for i in 7 downto 0 loop
		slv(i):= ev2sl(e(i));
	end loop;
	return slv;
end evv2slv;
-- small function to convert character to evbit
function to_evbit(c: character) return evbit is
variable e: evbit;
begin
	case c is
		when '0'	=> e:= '0';
		when '1'	=> e:= '1';
		when '2'	=> e:= '2';
		when '3'	=> e:= '3';
		when '4'	=> e:= '4';
		when '5'	=> e:= '5';
		when '6'	=> e:= '6';
		when '7'	=> e:= '7';
		when '8'	=> e:= '8';
		when others	=> e:= '7';
	end case;
	return e;
end to_evbit;

---------------------------------------------------------------------


-- small function to do hex numbers for std_logic_vector
function hx	(b: bit_vector)
return std_logic_vector is
begin
	return to_stdlogicvector(b);
end;

---------------------------------------------------------------------
-- Emulate task of cpu writing data to peripheral (IP macro)
---------------------------------------------------------------------
procedure cpu_wr	(
	constant	addr:	in		bit_vector(7 downto 0);
	constant	d:		in		bit_vector(7 downto 0);
	signal		clk:	in		std_logic;
	signal		a:		out		std_logic_vector (7 downto 0);
	signal		do:		out		std_logic_vector (7 downto 0);
	signal		sel:	out		std_logic;
	signal		wr:		out		std_logic;
	signal		en:		out		std_logic
) is
begin
	wait until clk = '0';
	a		<= to_stdlogicvector(addr(7 downto 0));
	sel		<= '1';
	wr		<= '1';
	en		<= '0';
	do		<= to_stdlogicvector(d);
	wait until clk = '1';
	wait until clk = '0';
	en		<= '1';
	wait until clk = '1';
	wait until clk = '0';
	a		<= (others => '0');
	sel		<= '0';
	wr		<= '0';
	en		<= '0';
	do		<= (others => '0');
	wait until clk = '0';
	wait until clk = '1';
	wait until clk = '0';
end cpu_wr;

---------------------------------------------------------------------
-- Emulate task of cpu reading data from peripheral (IP macro)
---------------------------------------------------------------------
procedure cpu_rd	(
	-- only 2 LSB bits used out of 8 legacy
--	constant	addr:		in		bit_vector(7 downto 0);
	constant	addr:		in		bit_vector(7 downto 0);
	constant	d:			in		bit_vector(7 downto 0);
	signal		clk:		in		std_logic;
	signal		a:			out		std_logic_vector (7 downto 0);
	signal		di:			in		std_logic_vector (7 downto 0);
	signal		sel:		out		std_logic;
	signal		wr:	    	out		std_logic;
	signal		en:			out		std_logic;
				simerrors:	inout	integer
) is
	variable	dvar:				std_logic_vector(7 downto 0);
begin
	wait until clk = '0';
	a		<= to_stdlogicvector(addr(7 downto 0));
	sel		<= '1';
	wr		<= '0';
	en		<= '0';
	wait until clk = '1';
	wait until clk = '0';
	en		<= '1';
	wait until clk = '1';
	wait until clk = '0';
	dvar	:= di;
	checksig(dvar,"CPU Data Bus",d,simerrors);
	a		<= (others => '0');
	sel		<= '0';
	wr		<= '0';
	en		<= '0';
	wait until clk = '0';
	wait until clk = '1';
	wait until clk = '0';
end cpu_rd;


end corepwm_pkg;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97se亚洲国产综合在线| 欧美日韩中文国产| 在线免费观看日本欧美| 精品久久久三级丝袜| 亚洲精品成人天堂一二三| 精品无人码麻豆乱码1区2区 | 国产一区三区三区| 欧美性videosxxxxx| 国产精品久久久久久久久晋中 | 午夜精品视频一区| eeuss鲁一区二区三区| 日韩欧美成人午夜| 亚洲成在线观看| 色999日韩国产欧美一区二区| 国产亚洲短视频| 蜜桃视频一区二区三区| 欧美久久久久免费| 亚洲综合激情网| 欧美一区二区在线看| 一区二区三区在线免费播放| 成人精品国产一区二区4080| 精品久久99ma| 麻豆成人久久精品二区三区小说| 欧美性猛交xxxx乱大交退制版| 亚洲精品伦理在线| 99久久精品情趣| 国产精品传媒入口麻豆| 成人激情校园春色| 国产精品免费久久| 成人av网站在线| 亚洲日韩欧美一区二区在线| 99久免费精品视频在线观看| 中文字幕在线一区| 91性感美女视频| 亚洲女同ⅹxx女同tv| 日本精品一区二区三区高清 | 精品久久久久久最新网址| 日韩成人精品在线| 日韩免费看网站| 久久精品免费观看| 久久嫩草精品久久久久| 国产一区二区不卡老阿姨| 国产欧美一区二区精品性色| 99久久er热在这里只有精品66| 亚洲人xxxx| 7777女厕盗摄久久久| 精品在线亚洲视频| 欧美韩国一区二区| 色婷婷综合激情| 香蕉成人啪国产精品视频综合网| 7777精品伊人久久久大香线蕉的 | 91精品国产综合久久久久久久| 日本在线不卡视频一二三区| 精品日韩欧美一区二区| 国产露脸91国语对白| 中文字幕中文乱码欧美一区二区| 日本黄色一区二区| 青青草原综合久久大伊人精品优势| 精品91自产拍在线观看一区| 成人美女视频在线观看| 亚洲一区二区三区四区中文字幕| 91精品免费在线观看| 国产成人av影院| 一区二区在线观看免费| 日韩欧美国产一区二区三区| 成人亚洲一区二区一| 国模大尺度一区二区三区| 国产精品色呦呦| 在线观看91视频| 精品在线免费观看| 亚洲色欲色欲www| 精品三级在线看| 欧美午夜精品免费| 国产激情一区二区三区四区 | 国产乱码精品一区二区三| 亚洲一区二区四区蜜桃| 久久久久久久性| 欧美欧美午夜aⅴ在线观看| 国产盗摄一区二区| 日韩中文字幕亚洲一区二区va在线 | 国产亚洲欧美中文| 欧美日韩一级二级| 99riav一区二区三区| 激情文学综合插| 亚洲国产欧美日韩另类综合 | 91污在线观看| 日韩欧美国产一区二区三区 | 日韩一区二区在线观看视频| av在线播放成人| 久久99久久99精品免视看婷婷| 一区二区三区不卡在线观看| 中文欧美字幕免费| 日韩精品一区在线观看| 欧美日韩视频在线第一区| 99热在这里有精品免费| 国产麻豆精品theporn| 日本视频免费一区| 亚洲风情在线资源站| 亚洲免费在线播放| 亚洲天堂a在线| 国产精品妹子av| 日本一区二区三区四区| 日韩亚洲欧美中文三级| 欧美疯狂做受xxxx富婆| 在线免费观看视频一区| 色国产综合视频| 在线这里只有精品| 一本色道久久综合狠狠躁的推荐| 成人一区二区三区视频在线观看 | 久久久久国色av免费看影院| 日韩三级在线观看| 日韩一区国产二区欧美三区| 欧美日韩成人一区| 这里只有精品电影| 在线播放国产精品二区一二区四区| 欧美视频在线一区| 欧美午夜不卡在线观看免费| 欧美日韩视频第一区| 91精品国产一区二区| 日韩一区二区视频| 精品国产一区久久| 国产人成一区二区三区影院| 国产精品护士白丝一区av| 亚洲色图清纯唯美| 成人一级片网址| av不卡在线观看| 欧美熟乱第一页| 日韩一区二区在线观看视频播放| 欧美精品一区二区在线观看| 国产色产综合色产在线视频| 欧美国产综合一区二区| 中文字幕在线播放不卡一区| 一区二区高清在线| 日韩精品1区2区3区| 精品一区二区免费| 成人中文字幕电影| 欧美偷拍一区二区| 欧美变态tickling挠脚心| 国产日韩三级在线| 亚洲激情在线播放| 免费观看在线综合色| 岛国一区二区在线观看| 色狠狠av一区二区三区| 欧美成人性福生活免费看| 中文乱码免费一区二区| 三级影片在线观看欧美日韩一区二区| 久久精品国产色蜜蜜麻豆| 成人国产免费视频| 欧美电影一区二区三区| 欧美经典一区二区| 亚洲va欧美va国产va天堂影院| 精品一区二区免费看| 在线视频国内一区二区| 精品sm捆绑视频| 一区二区三区电影在线播| 久草在线在线精品观看| 99精品偷自拍| 久久美女艺术照精彩视频福利播放| 亚洲欧美另类久久久精品| 久久精品国产精品亚洲红杏| 在线视频亚洲一区| 国产亚洲精品7777| 免费看黄色91| 91成人网在线| 中文字幕乱码亚洲精品一区| 日韩黄色在线观看| 91麻豆福利精品推荐| 久久这里只有精品首页| 亚洲va韩国va欧美va| 91亚洲国产成人精品一区二三 | 一区二区三区四区视频精品免费| 日本成人在线视频网站| 99精品视频一区| 精品sm捆绑视频| 日本成人在线一区| 欧美日韩不卡一区| 亚洲激情在线激情| 99久久综合国产精品| 久久久综合视频| 久久国产精品一区二区| 欧美人与z0zoxxxx视频| 亚洲人成在线观看一区二区| 成人高清视频在线| 国产视频911| 黄一区二区三区| 日韩欧美成人一区| 日本va欧美va欧美va精品| 欧美另类久久久品| 亚洲一区二区中文在线| 91久久精品午夜一区二区| 亚洲免费在线看| 91免费国产在线观看| 综合激情网...| 欧美tickling网站挠脚心| 男女激情视频一区| 欧美一区二区三区视频免费| 肉肉av福利一精品导航| 欧美日本在线看| 日韩精品午夜视频| 日韩精品资源二区在线|