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

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

?? 220model.v

?? 這是基于s3c2410+uCos的LCD驅動程序源碼
?? V
?? 第 1 頁 / 共 5 頁
字號:

		
  always @(posedge inclock)
	begin
	  if((lpm_indata === "REGISTERED") && (lpm_address_control === "REGISTERED"))
	  begin
		paddress <= address;
		pdata <= data;
		pwe <= we;
	  end
	  else
	  begin
		if((lpm_indata === "REGISTERED") && (lpm_address_control === "UNREGISTERED"))
			pdata <= data;

		if((lpm_indata === "UNREGISTERED") && (lpm_address_control === "REGISTERED"))
		begin
			paddress <= address;
			pwe <= we;
		end
	  end
	end

  always @(data)
	begin
	  if(lpm_indata === "UNREGISTERED")
		pdata <= data;
	end
	
  always @(address)
  begin
	if(lpm_address_control === "UNREGISTERED")
		paddress <= address;
  end
	
  always @(we)
  begin
	if(lpm_address_control === "UNREGISTERED")
		pwe <= we;
  end
	
  always @( pdata or paddress or pwe )
	begin :unregistered_inclock
		if(ValidAddress(paddress))
		begin
			if((lpm_indata === "UNREGISTERED" && lpm_address_control === "UNREGISTERED") || (lpm_address_control === "UNREGISTERED"))
			begin
				if (pwe)
					mem_data[paddress] <= pdata ;
			end

		end
		else
		begin
			if(lpm_outdata === "UNREGISTERED")
				tmp_q <= UNKNOWN ;
		end
	end

  always @(posedge outclock )
	begin
		if(lpm_outdata === "REGISTERED")
		begin
			if(ValidAddress(paddress))
				tmp_q <= mem_data[paddress] ;
			else
				tmp_q <= UNKNOWN ;
		end
	end
 
  always @(negedge inclock )
	begin
		if (lpm_address_control === "REGISTERED")
		begin
			if (pwe)
				mem_data[paddress] <= pdata;
		end
	end

  assign q = ( lpm_outdata === "UNREGISTERED" ) ? mem_data[paddress] : tmp_q ;

endmodule // lpm_ram_dq
 
//------------------------------------------------------------------------

module lpm_ram_dp ( q, data, wraddress, rdaddress, rdclock, wrclock, rdclken, wrclken, rden, wren) ;

  parameter lpm_type = "lpm_ram_dp" ;
  parameter lpm_width = 1 ;
  parameter lpm_widthad = 1 ;
  parameter lpm_numwords = 1<< lpm_widthad ;
  parameter lpm_indata = "REGISTERED" ;
  parameter lpm_outdata = "REGISTERED" ;
  parameter lpm_rdaddress_control  = "REGISTERED" ;
  parameter lpm_wraddress_control  = "REGISTERED" ;
  parameter lpm_file = "UNUSED" ;
  parameter lpm_hint = "UNUSED" ;

  input  [lpm_width-1:0] data ;
  input  [lpm_widthad-1:0] rdaddress, wraddress ;
  input  rdclock, wrclock, rdclken, wrclken, rden, wren ;
  output [lpm_width-1:0] q;


  // internal reg 
  reg   [lpm_width-1:0] mem_data [lpm_numwords-1:0];
  reg   [lpm_width-1:0] tmp_q ;
  reg   [lpm_width-1:0] prev_q ;
  reg   [lpm_width-1:0] new_data ;
  reg   [lpm_widthad-1:0] new_raddress ;
  reg   [lpm_widthad-1:0] new_wraddress ;
  reg   wren_event, rden_event;
  reg   [lpm_width-1:0]  ZEROS, UNKNOWN ;
  reg [8*256:1] ram_initf ;
  integer i ;

  function ValidAddress ;
	input [lpm_widthad-1:0] paddress ;
	begin
		ValidAddress = 1'b0 ;
		if(^paddress ==='bx)
			$display("%d:Error! Invalid address.\n", $time) ;
		else if(paddress >= lpm_numwords)
			$display("%d:Error! Address out of bound on RAM.\n", $time) ;
		else
			ValidAddress = 1'b1 ;
	end
  endfunction
		
  initial
  begin

	// Initialize the internal data register.
	new_data = 0;
	new_raddress = 0;
	new_wraddress = 0;
	wren_event = 0;
	tmp_q = 0;

	if(lpm_width <= 0)
		$display("Error! lpm_width parameter must be greater than 0.");

	if(lpm_widthad <= 0)
		$display("Error! lpm_widthad parameter must be greater than 0.");
	// check for number of words out of bound
	if((lpm_numwords > (1 << lpm_widthad))
		||(lpm_numwords <= (1 << (lpm_widthad-1))))
	begin
		$display("Error! lpm_numwords must equal to the ceiling of log2(lpm_widthad).");
 
	end
 
	if((lpm_indata !== "REGISTERED") && (lpm_indata !== "UNREGISTERED"))
	begin
	$display("Error! lpm_indata must be REGISTERED (the default) or UNREGISTERED.");
	end
	
	if((lpm_rdaddress_control !== "REGISTERED") && (lpm_rdaddress_control !== "UNREGISTERED"))
	begin
		$display("Error! lpm_rdaddress_control must be REGISTERED (the default) or UNREGISTERED.");
	end
	
	if((lpm_wraddress_control !== "REGISTERED") && (lpm_wraddress_control !== "UNREGISTERED"))
	begin
		$display("Error! lpm_wraddress_control must be REGISTERED (the default) or UNREGISTERED.");
	end
	
	if((lpm_outdata !== "REGISTERED") && (lpm_outdata !== "UNREGISTERED"))
	begin
		$display("Error! lpm_outdata must be REGISTERED (the default) or UNREGISTERED.");
	end  

	// check if lpm_indata or lpm_wraddress_control is set to registered
	// wrclock and wrclken must be used.
	if(((lpm_indata === "REGISTERED") || (lpm_wraddress_control === "REGISTERED")) && ((wrclock === 1'bz) || (wrclken == 1'bz)))
	begin
		$display("Error! wrclock = 1'bz. wrclock and wrclken pins must be used.\n");
	end

	// check if lpm_rdaddress_control is set to registered
	// rdclock and rdclken must be used.
	if((lpm_rdaddress_control === "REGISTERED") && ((rdclock === 1'bz) || (rdclken == 1'bz)))
	begin
		$display("Error! rdclock = 1'bz. rdclock and rdclken pins must be used.\n");
	end

	// check if lpm_outdata, rdclock must be used
	if((lpm_outdata === "REGISTERED") && (rdclock === 1'bz))
	begin
		$display("Error! lpm_outdata = REGISTERED, rdclock = 1'bz . rdclock pnd rdclken pins must be used.\n");
	end

	for(i=0; i < lpm_width; i=i+1)
	begin
		ZEROS[i] = 1'b0 ;
		UNKNOWN[i] = 1'bX ;
	end 
	
	for(i = 0; i < lpm_numwords; i=i+1)
		mem_data[i] = ZEROS ;

	// load data to the RAM
	if(lpm_file != "UNUSED")
	begin
		$convert_hex2ver(lpm_file, lpm_width, ram_initf);
		$readmemh(ram_initf, mem_data);
	end 

  end

		
  always @(posedge wrclock)
	begin
	if (wrclken)
		begin
	  if((lpm_indata === "REGISTERED") && (lpm_wraddress_control === "REGISTERED"))
	  begin
		new_wraddress <= wraddress;
		new_data <= data;
		wren_event <= wren;
	  end
	  else
	  begin
		if((lpm_indata === "REGISTERED") && (lpm_wraddress_control === "UNREGISTERED"))
			new_data <= data;

		if((lpm_indata === "UNREGISTERED") && (lpm_wraddress_control === "REGISTERED"))
		begin
			new_wraddress <= wraddress;
			wren_event <= wren;
		end
	  end
	end
	end


  always @(data)
	begin
	  if(lpm_indata === "UNREGISTERED")
		new_data <= data;
	end
	
  always @(wraddress)
  begin
	if(lpm_wraddress_control === "UNREGISTERED")
		new_wraddress <= wraddress;
  end

  always @(rdaddress)
  begin
	if(lpm_rdaddress_control === "UNREGISTERED")
		new_raddress <= rdaddress;
  end
	
  always @(wren)
  begin
	if(lpm_wraddress_control === "UNREGISTERED")
		wren_event <= wren;
  end

  always @(rden)
  begin
	if(lpm_rdaddress_control === "UNREGISTERED")
		rden_event <= rden;
  end
	
  always @( new_data or new_wraddress or wren_event )
	begin 
		if(ValidAddress(new_wraddress))
		begin
				if ((wren_event) && (wrclken))
				mem_data[new_wraddress] <= new_data ;
		end
		else
		begin
			if(lpm_outdata === "UNREGISTERED")
				tmp_q <= UNKNOWN ;
		end
	end

  always @(posedge rdclock)
	begin
				if(lpm_rdaddress_control == "REGISTERED")
				if (rdclken)
		begin
						new_raddress <= rdaddress;
			rden_event <= rden;
		end
		if(lpm_outdata === "REGISTERED")
		begin
						if ((rdclken) && (rden_event))
						begin
			if(ValidAddress(new_raddress))
			begin
				tmp_q <= mem_data[new_raddress] ;
			end
			else
				tmp_q <= UNKNOWN ;
			
						end
		end
	end
 
  //assign q = ( lpm_outdata === "UNREGISTERED" ) ? mem_data[new_raddress] : tmp_q ;

  always @( mem_data[new_raddress] or tmp_q or rden )
	begin
		if (rden || lpm_outdata === "REGISTERED")
			prev_q <= ( lpm_outdata === "UNREGISTERED" ) ? mem_data[new_raddress] : tmp_q ;
	end

  assign q = prev_q;

endmodule // lpm_ram_dp

//------------------------------------------------------------------------

module lpm_ram_io ( dio, inclock, outclock, we, memenab, outenab, address ) ;

  parameter lpm_type = "lpm_ram_io" ;
  parameter lpm_width = 1 ;
  parameter lpm_widthad = 1 ;
  parameter lpm_numwords = 1<< lpm_widthad ;
  parameter lpm_indata = "REGISTERED" ;
  parameter lpm_address_control = "REGISTERED" ;
  parameter lpm_outdata = "REGISTERED" ;
  parameter lpm_file = "UNUSED" ;
  parameter lpm_hint = "UNUSED" ;

  input  [lpm_widthad-1:0] address ;
  input  inclock, outclock, we ;
  input  memenab ;
  input  outenab ;
  inout  [lpm_width-1:0] dio ;


  // inernal reg 
  reg   [lpm_width-1:0] mem_data [lpm_numwords-1:0];
  reg   [lpm_width-1:0] tmp_io ;
  reg   [lpm_width-1:0] tmp_q ;
  reg   [lpm_width-1:0] pdio ;
  reg   [lpm_widthad-1:0] paddress ;
  reg   pwe ;
  reg   [lpm_width-1:0] ZEROS, UNKNOWN, HiZ ;
  reg   [8*256:1] ram_initf ;
  integer i ;

  function ValidAddress ;
	input [lpm_widthad-1:0] paddress ;
	begin
		ValidAddress = 1'b0 ;
		if(^paddress ==='bx)
			$display("%d:Error: Invalid address.", $time) ;
		else if(paddress >= lpm_numwords)
			$display("%d:Error: Address out of bound on RAM.", $time) ;
		else
			ValidAddress = 1'b1 ;
	end
  endfunction
		
  initial
  begin

	if(lpm_width <= 0)
		$display("Error! lpm_width parameter must be greater than 0.");

	if(lpm_widthad <= 0)
		$display("Error! lpm_widthad parameter must be greater than 0.");

	// check for number of words out of bound
	if((lpm_numwords > (1 << lpm_widthad))
		||(lpm_numwords <= (1 << (lpm_widthad-1))))
	begin
		$display("Error! lpm_numwords must equal to the ceiling of log2(lpm_widthad).");
 
	end

	if((lpm_indata !== "REGISTERED") && (lpm_indata !== "UNREGISTERED")) 
	begin
		$display("Error! lpm_indata must be REGISTERED (the default) or UNREGISTERED.");
	end
	
	if((lpm_address_control !== "REGISTERED") && (lpm_address_control !== "UNREGISTERED")) 
	begin
		$display("Error! lpm_address_control must be REGISTERED (the default) or UNREGISTERED.");
	end
	
	if((lpm_outdata !== "REGISTERED") && (lpm_outdata !== "UNREGISTERED")) 
	begin
		$display("Error! lpm_outdata must be REGISTERED (the default) or UNREGISTERED.");
	end
	

	// check if lpm_indata or lpm_address_control is set to registered
	// inclock must be used.
	if(((lpm_indata === "REGISTERED") || (lpm_address_control === "REGISTERED")) && (inclock === 1'bz))
	begin
		$display("Error! inclock = 1'bz.  Inclock pin must be used.\n");
	end
 
	// check if lpm_outdata, outclock must be used
	if((lpm_outdata === "REGISTERED") && (outclock === 1'bz))
	begin
		$display("Error! lpm_outdata is REGISTERED, outclock = 1'bz.  Outclock pin must be used.\n");  
	end
 
	for(i=0; i < lpm_width; i=i+1)
	begin
		ZEROS[i] = 1'b0 ;
		UNKNOWN[i] = 1'bX ;
		HiZ[i] = 1'bZ ;
	end 
	
	for(i = 0; i < lpm_numwords; i=i+1)
		mem_data[i] = ZEROS ;

	// Initialize input/output 
	pdio = 0;
	paddress = 0;
	tmp_io = 0;
	tmp_q = 0;

	// load data to the RAM
	if(lpm_file != "UNUSED")
	begin
		$convert_hex2ver(lpm_file, lpm_width, ram_initf);
		$readmemh(ram_initf, mem_data);
	end
  end


  always @(dio)
	begin
	  if(lpm_indata === "UNREGISTERED")
		pdio <=  dio;
	end
	
  always @(address)
  begin
	if(lpm_address_control === "UNREGISTERED")
		paddress <=  address;
  end
	
	
  always @(we)
  begin
	if(lpm_address_control === "UNREGISTERED")
		pwe <=  we;
  end
	
  always @(posedge inclock)
  begin
	  if(lpm_indata === "REGISTERED")
		pdio <=  dio;

	  if(lpm_address_control === "REGISTERED")
		begin
			paddress <=  address;
			pwe <=  we;
		end
  end

  always @( pdio or paddress or pwe or memenab  )
  begin :block_a
	if(ValidAddress(paddress))
	begin

		if((lpm_indata === "UNREGISTERED" && lpm_address_control === "UNREGISTERED") || (lpm_address_control === "UNREGISTERED"))
				begin
			if (pwe && memenab)
			mem_data[paddress] <= pdio ;
		end

		if(lpm_outdata === "UNREGISTERED")
		begin
			tmp_q <= mem_data[paddress];
			tmp_q <= mem_data[paddress];
		end

	end
	else
	begin
		if(lpm_outdata === "UNREGISTERED")
			tmp_q <= UNKNOWN ;
	end
  end

  always @(negedge inclock  )
	begin
		if (lpm_address_control === "REGISTERED")
	begin
			if (pwe && memenab)
			mem_data[paddress] <= pdio ;
		end
	end

  always @(posedge outclock )
	begin
		if(lpm_outdata === "REGISTERED")
		begin
		tmp_q <= mem_data[paddress];
 
	
		end
	end

  always @( memenab or outenab or tmp_q)
  begin
	if(memenab && outenab)
		tmp_io <= tmp_q ;
	else if(!memenab || (memenab && !outenab))
		tmp_io <= HiZ ;
  end
 
  assign dio =  tmp_io ;

endmodule // lpm_ram_io
 
//------------------------------------------------------------------------

module lpm_rom ( q, inclock, outclock, memenab, address ) ;

  parameter lpm_type = "lpm_rom" ;
  parameter lpm_width = 1 ;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲无人区一区| 欧美精品一区二区久久久 | 精品在线观看免费| 久久99久久久欧美国产| 欧美一区二区三区视频免费播放 | 国产午夜精品理论片a级大结局| 久久99精品国产麻豆不卡| 精品国产三级a在线观看| 国产高清不卡二三区| 综合色中文字幕| 欧美在线影院一区二区| 日本午夜一本久久久综合| 日韩欧美高清在线| 国产成人精品三级| 一区二区三区在线免费观看| 7777精品伊人久久久大香线蕉 | 中文文精品字幕一区二区| 99国产欧美另类久久久精品| 亚洲大型综合色站| 91精品国产91久久久久久一区二区| 老司机精品视频一区二区三区| 国产精品无人区| 欧美色国产精品| 福利一区在线观看| 一区二区高清免费观看影视大全 | 99精品久久只有精品| 日韩极品在线观看| 国产精品女同互慰在线看 | 欧美一区二区三区免费| 成人在线综合网站| 五月婷婷久久丁香| 国产精品久久久久久久久果冻传媒 | 欧美伊人久久久久久久久影院| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品久久久久一区二区三区 | 国产成人精品综合在线观看| 亚洲小少妇裸体bbw| 久久久一区二区三区捆绑**| 欧美三级韩国三级日本三斤| 国产一区二区三区精品视频| 亚洲丶国产丶欧美一区二区三区| 久久久91精品国产一区二区三区| 欧美丝袜自拍制服另类| 国产精品影视在线观看| 无码av免费一区二区三区试看| 国产精品久久久一区麻豆最新章节| 欧美一区二区三区在线看| 91在线porny国产在线看| 精品一区二区在线视频| 亚洲图片欧美一区| 1024成人网色www| 久久久久久久久久久久电影| 69久久夜色精品国产69蝌蚪网| 91免费看片在线观看| 国产精品一区二区免费不卡| 男男gaygay亚洲| 亚洲国产美女搞黄色| 国产精品电影一区二区三区| 国产日产欧美精品一区二区三区| 91精品国产欧美一区二区18| 欧美在线免费观看视频| 91在线视频18| thepron国产精品| 成人精品视频一区二区三区| 国产一区二区不卡在线| 国内成人自拍视频| 久久国产人妖系列| 蜜臀av性久久久久蜜臀aⅴ流畅| 三级在线观看一区二区| 亚洲.国产.中文慕字在线| 亚洲精品欧美在线| 一区二区三区在线视频免费观看| 亚洲精品欧美激情| 亚洲精品中文在线影院| 亚洲美女视频在线| 亚洲精品视频自拍| 夜夜嗨av一区二区三区| 亚洲一区二区三区四区五区中文| 亚洲一区二区三区四区在线免费观看| 一区二区在线观看视频| 一区二区三区毛片| 婷婷中文字幕综合| 久久精品噜噜噜成人av农村| 麻豆视频一区二区| 国产一区二区三区| 不卡av在线免费观看| 色先锋资源久久综合| 日本高清免费不卡视频| 欧美日韩亚洲丝袜制服| 91精品欧美综合在线观看最新| 欧美一区二区三区四区五区| 精品嫩草影院久久| 中文一区二区在线观看| 亚洲激情五月婷婷| 图片区小说区区亚洲影院| 狠狠色狠狠色合久久伊人| 懂色av一区二区夜夜嗨| 色又黄又爽网站www久久| 欧美日韩激情在线| 26uuu亚洲综合色| 国产精品久久福利| 亚洲一区精品在线| 国内外精品视频| 99re8在线精品视频免费播放| 欧美在线视频你懂得| 精品日韩欧美一区二区| 欧美极品美女视频| 一卡二卡三卡日韩欧美| 久久精品国产久精国产| av在线免费不卡| 欧美美女一区二区在线观看| 久久亚洲精品小早川怜子| 日韩一区有码在线| 美女在线视频一区| av一区二区久久| 欧美一级理论片| 国产精品久久久爽爽爽麻豆色哟哟| 午夜日韩在线电影| 国产福利91精品一区| 欧美性受xxxx| 久久久精品免费免费| 香蕉影视欧美成人| 成人永久aaa| 欧美一级免费大片| 亚洲免费伊人电影| 狠狠久久亚洲欧美| 欧美日韩午夜在线视频| 国产欧美久久久精品影院| 日韩av一区二| 91伊人久久大香线蕉| 精品国产髙清在线看国产毛片| 一区二区三区免费网站| 国产91露脸合集magnet| 欧美一二三区在线| 亚洲一区二区三区四区在线| 大白屁股一区二区视频| 日韩亚洲欧美在线观看| 一个色综合网站| 91在线视频播放| 国产精品情趣视频| 激情综合色丁香一区二区| 欧美日韩一本到| 一区二区在线观看免费| 99久久亚洲一区二区三区青草| 久久综合九色综合97婷婷女人| 石原莉奈一区二区三区在线观看| 一本色道a无线码一区v| 国产亚洲精品资源在线26u| 久久国产三级精品| 日韩午夜中文字幕| 奇米色777欧美一区二区| 欧美一a一片一级一片| 亚洲丝袜精品丝袜在线| 成人综合在线视频| 中文一区在线播放| 成人永久aaa| 中文字幕成人av| 国产精品99久久久久久似苏梦涵 | 久久久久久久久久久久电影| 久久激情五月婷婷| 日韩欧美中文一区二区| 日韩**一区毛片| 日韩一级成人av| 捆绑调教一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 裸体在线国模精品偷拍| 日韩欧美电影一区| 国产一区二区视频在线播放| 精品国产1区二区| 狠狠色丁香久久婷婷综合_中| 久久久亚洲综合| 成人性生交大合| 亚洲日本韩国一区| 欧美在线你懂得| 日韩1区2区3区| 精品久久人人做人人爰| 国产精品综合网| 国产精品国产三级国产普通话三级 | 精品免费日韩av| 国产精品一区二区三区乱码| 国产色91在线| 成人av在线一区二区| 日韩理论片在线| 精品婷婷伊人一区三区三| 视频一区中文字幕| 欧美精品一区二区三区蜜臀| 高清不卡一二三区| 亚洲综合精品久久| 欧美一级免费观看| 成人丝袜18视频在线观看| 亚洲欧美日韩成人高清在线一区| 欧美午夜精品一区| 老司机精品视频线观看86| 国产精品看片你懂得| 欧美日韩欧美一区二区| 久久99精品一区二区三区三区| 国产精品看片你懂得| 欧美人狂配大交3d怪物一区| 精品影院一区二区久久久| 日韩一区欧美一区|