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

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

?? maincontrol.v

?? 高速AD采集卡應用程序及SDRAM控制器
?? V
字號:
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer:
//
// Create Date:    17:18:45 01/18/06
// Design Name:    
// Module Name:    maincontrol
// Project Name:   
// Target Device:  
// Tool versions:  
// Description:
//
// Dependencies:
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
////////////////////////////////////////////////////////////////////////////////

//注意:100M猝發讀寫:的確切含義是以100M采樣,以更高的頻率(系統的工作時鐘,暫定為105MHz)讀寫SDRAM,以50M的速度從pci讀取數據
//在FPGA本地側的控制邏輯(從PCI—FIFO讀取數據的邏輯)一定要與PCI9054的50M時鐘一致





module maincontrol (clk,clk50m,doing_precharge,rd_count,doing_refresh,lwr,blast,ads,sd_data_out,sd_rst,addr,do_write,do_read,do_write_ack,do_read_ack,ainit,FIFO_ad_rd,FIFO_ad_wr,pci_data
							,sddataout_reg1);

//-------------------------IO

input clk;
input clk50m;
input doing_precharge;
input doing_refresh;

input [31:0] sd_data_out;

input [1:0]rd_count;


input lwr;
input blast;
input ads;
input do_read_ack;
input do_write_ack;


output sd_rst;
output [12:0] addr;
output do_write;
output do_read;

output ainit;

output FIFO_ad_rd;
output FIFO_ad_wr;
output sddataout_reg1;


inout [31:0] pci_data;

//---------------------------REG
reg sd_rst;
reg [12:0] addr;
reg do_write;
reg do_read;

reg ainit;
reg FIFO_ad_wr;
reg [2:0] rst_counter;




reg [7:0] read_counter;
reg [7:0] write_counter;

reg [31:0] reg_data;
reg [31:0] pci_out_reg;


reg	mem_write_ena;
reg 	[31:0] sddataout_reg1;

reg read_ack_reg1;

reg [3:0] next_state;
//---------------------------------------wire  用于連接FIFO core和邏輯

wire [1:0] rd_count;
wire FIFO_ad_rd;
wire [31:0] mem_data_out;

//---------------------------------------parameter
   parameter   reset=4'd0,
					IDLE=4'd1,
               arbitrate =4'd2, 
					send_write_cmd=4'd3,
               write_wait=4'd4,
					write_burst=4'd5,
					
					precharge_wait=4'd6,
					send_read_cmd=4'd7,
					read_wait=4'd8,
					burst_read=4'd9;
						

//-------------------------------------------------------------------FIFO_ad_rd
	assign FIFO_ad_rd = do_write_ack;
//--------------------------------------------------------------------

always@(posedge clk)
begin
	if(!sd_rst)
		begin
			read_ack_reg1<=1'b0;
	
		end
		else
			begin
				read_ack_reg1<=do_read_ack;
			
			end
end


//-----------------------------------------------------------------state machine
//各個狀態的操作:

always @(posedge clk)

begin
	case (next_state)

		reset:
			begin
				sd_rst<=1'b0;
				addr<=13'd0;
				do_write<=1'b0;
				do_read<=1'b0;
				ainit<=1'b1;
			   
				write_counter<=9'd0;
			
				FIFO_ad_wr<=1'b0;
				mem_write_ena<=1'b0; 	//停止向pcimem寫數據	
				
				
			
				
				

			
 				if(rst_counter==3'd7)			////將reset狀態延長7個周期

					begin
						rst_counter<=3'd0;
						next_state<=IDLE;
					end
				else
					begin
						rst_counter<=rst_counter+1;
						next_state<=reset;
					end 
                                
			end
	
//----------------------------------------------------------------------------------
		IDLE:
			begin
				rst_counter<=3'd0;
				sd_rst<=1'b1;
				ainit<=1'b0;				
            do_read<=1'b0;
				do_write<=1'b0;
		
			write_counter<=9'd0;			
				
				FIFO_ad_wr<=1'b0;//停止向ad FIFO寫數據 

				

				if(lwr&(!blast))					//每當pci寫入數據或命令時,跳轉至“判斷”狀態
					next_state<=arbitrate;
				else next_state<=IDLE;
				
			end
 //------------------------------------------------------------------------------------------------
		arbitrate:
	
		begin
			if(reg_data==32'd0)				 //reset命令	,跳轉之reset狀態
				begin
					sd_rst<=1'b0;
					next_state<=reset;		
				end
   
			else if(reg_data==32'd2147479278)	  //發出讀行命令,跳轉至send_read_cmd狀態
	
			  next_state<=send_read_cmd;
					
			else	if(reg_data==32'd47)				 //發出寫命令,跳轉至send _write_cmd狀態
				next_state<=send_write_cmd; 			
			else next_state<=IDLE;		
		end
//-----------------------------------------------------------------------------------------
		send_write_cmd:
				begin	

					FIFO_ad_wr<=1'b1;   //開始向FIFO寫數據
					sd_rst<=1'b1;
					if(doing_refresh)       //如果正在進行refresh,等結束后再寫
						begin
						
							
							do_write<=1'b0;   //停止向SDRAM寫數據
						
							next_state<=send_write_cmd;
						end
					else
						begin		

					 
							if(rd_count>=2'b01)   
								begin
								

									do_write<=1'b1;	 								

									next_state<=write_wait;
								end
							else                   
													
								begin
  								
									do_write<=1'b0;     
								

									next_state<=send_write_cmd;					
						
								end

					
			
					
						end
			end
//---------------------------------------------------------------------------------------
		write_wait:	  //等待寫入開始
			begin
			
				FIFO_ad_wr<=1'b1;//將AD數據寫入FIFO
				sd_rst<=1'b1;
				if(do_write_ack) //收到寫應答,表示下個周期數據開始有效的寫入SDRAM
					begin
						do_write	<=1'b0;
						next_state<=write_burst;  //進入寫猝發
					end
				else
					begin
						do_write<=1'b1;
						next_state<=write_wait;
					end
				
			end
//--------------------------------------------------------------------------------------
	

 	  write_burst:	//等待寫猝發結束
	  		begin			  				
				
					FIFO_ad_wr<=1'b1;
					sd_rst<=1'b1;
				if(do_write_ack)

					begin
					
						
						next_state<=write_burst;
					end
				else //猝發寫入完成
					begin
				
						addr<=addr+1;		//進行過precharge之后,行地址加1
						
					
						next_state<=precharge_wait;
		
					end
				
			end
//----------------------------------------------------------------------------------------



//--------------------------------------------------------------------------------
	precharge_wait:		 //等待precharge結束
		begin	 
				sd_rst<=1'b1;				 			

				if(doing_precharge)              //  在sdram控制模塊中,每寫完一行并precharge后,
					begin
							FIFO_ad_wr<=1'b1;
						next_state<=precharge_wait;       //等待auto refresh完成
					end
				else 
					begin  //precharge結束之后
						if(addr==13'b1111111111111) //行地址和BANK地址加滿
							begin
								addr<=13'd0;			//ba和行地址清零					
									//	FIFO_ad_rd<=1'b0;//停止讀AD FIFO
								FIFO_ad_wr<=1'b0;//停止向AD FIFO寫數據

								next_state<=IDLE;
							end
						else 
							begin
								FIFO_ad_wr<=1'b1;
								next_state<=send_write_cmd;
							end		  //沒有寫完2M的數據,再接著寫
					  //在send_write_cmd狀態中等待refresh結束
					end

		end  
//---------------------------------------------------------------------------------
		send_read_cmd:						  //發出讀命令
			begin
			sd_rst<=1'b1;
			do_write<=1'b0;				//添加,保證穩定
				if(doing_refresh)       //如果正在進行refresh,等結束后再讀

					begin
						do_read<=1'b0;  //停止讀SDRAM 
						
						next_state<=send_read_cmd;	 						
					end
				else
					begin
						do_read<=1'b1;
					
					next_state<=read_wait;
					end
				
			end
//--------------------------------------------------------------------------------
	
	//調試屏蔽	  
	
		read_wait:						//		等待讀應答信號
			begin
			sd_rst<=1'b1;
			do_write<=1'b0;		  //添加,保證穩定
			//	if(do_read_ack)   //當收到do_read_ack后表示下一個周期數據有效,開始接受數據
			if(read_ack_reg1)   //當收到read_ack_reg1后表示下一個周期數據有效,開始接受數據		
						begin
						
							do_read<=1'b0;	
							//mem[0]<= sd_data_out;//
							mem_write_ena<=1'b1;	  //開始向pcimem寫數據
								 							
							next_state<=burst_read;
						end		 
					else next_state<=read_wait;

				
			end
//----------------------------------------------------------------------------------  		
   	burst_read:							  //讀猝發,將SDRAM的數據以行猝發的方式讀到FPGA中
   			begin		
		
					 sd_rst<=1'b1;
					 do_write<=1'b0;		  
				//	if(mem_addr==9'd256)			 //到256后清零,有效mem地址是0-255,共256個
					if(write_counter==8'd255)
			
						begin
					
						write_counter<=8'd0;	
					
						mem_write_ena<=1'b0; 	//停止向pcimem寫數據						
							addr<=addr+1;          //讀完一行后,行地址加1
							next_state<=IDLE;			//寫完了一行(256列),進入IDLE狀態
						end
					 else 
						begin
					
							mem_write_ena<=1'b1; 	//開始向pcimem寫數據	
						write_counter<=write_counter+1;
							next_state<=	burst_read;
						end

					

				
			end		 
										  
//------------------------------------------------------------------------------
		default:
			next_state<=IDLE;

	endcase


end

//--------------------------------------------------------------read pci_mem

always@(posedge clk50m or negedge sd_rst)  //與pci側的50M時鐘同步

	begin
	


			if(!sd_rst)		
				begin
				
					read_counter<=8'd0;
					pci_out_reg<=32'd0;
			
				end
			

			else if((!lwr)&(!ads))    //當pci發出讀命令時
				
						begin
      				
						if(read_counter==8'd255)	//只有發出讀命令時才改變地址,否則地址不變
							 read_counter<=8'd0;	
						else
							begin
								read_counter<=read_counter+1;
								pci_out_reg<=mem_data_out;
							end
						end
		


	end


//-----------------------------------------------------------------------------雙向總線pci_data的控制


 //pci端雙向總線的輸入,將輸入的命令存儲在reg_data

always@(posedge clk50m or negedge sd_rst)   //與pci側的50M時鐘同步

	begin
		if(!sd_rst)					 
			reg_data<=32'd0;
		else if(lwr&(!blast))     //每當pci寫入命令時
		   reg_data<=pci_data;	//	將輸入命令寄存
	end																		 

//-------------------------------------------------------------------------
//pci端雙向總線的輸出
assign pci_data = ((!lwr)&(!ads))? 	pci_out_reg: 32'hzzzzzzzz;//當輸出使能時,將pci_mem的數據輸出,否則為高阻

//-------------------------------------------------------------------
//using pcimem
 pcimem mypcimem(
	.addra(write_counter[7:0]),
	.addrb(read_counter[7:0]),
	.clka(clk),
	.clkb(clk50m),
	.dina(sd_data_out),

	
	.doutb(mem_data_out),
	.wea(mem_write_ena));


	always@(posedge clk or negedge sd_rst)	 //將從sdram中讀回的數據用寄存器存儲,
															
	begin
		if(!sd_rst)
		 begin
			sddataout_reg1<=32'd0;
			
		  end
		else
			begin
				sddataout_reg1<=sd_data_out;
				
			end
	end 

endmodule


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人av一区| 日本欧美一区二区在线观看| 色综合色综合色综合| 国产精品自拍三区| 激情成人午夜视频| 国产伦精品一区二区三区在线观看| 亚洲大尺度视频在线观看| 国内精品久久久久影院色| 91免费在线看| 在线精品国精品国产尤物884a| 91天堂素人约啪| 欧美成人精品3d动漫h| 欧美不卡一区二区三区| 亚洲精品一卡二卡| 天天操天天干天天综合网| 视频一区欧美精品| 狠狠狠色丁香婷婷综合久久五月| 色婷婷综合久久久久中文| 久久青草国产手机看片福利盒子| 国产性做久久久久久| 亚洲欧洲日韩一区二区三区| 一区二区三区中文在线| 天堂av在线一区| 色综合久久综合网欧美综合网 | 亚洲福利一区二区三区| 亚洲午夜免费视频| a在线欧美一区| 911精品国产一区二区在线| 日韩欧美国产综合在线一区二区三区| 久久亚洲私人国产精品va媚药| 国产精品国产三级国产aⅴ入口| 亚洲精品伦理在线| 不卡欧美aaaaa| 欧美一卡二卡在线观看| 欧美tickling挠脚心丨vk| 三级成人在线视频| 欧美理论在线播放| 中文字幕一区二区三区色视频| 国产精品综合视频| 国产欧美久久久精品影院| 亚洲福利视频一区二区| 欧美天天综合网| 国产精品妹子av| 免费观看日韩电影| 91国偷自产一区二区使用方法| 亚洲精品一区二区在线观看| 亚洲精品国产品国语在线app| 成人avav影音| 亚洲一区二区四区蜜桃| 风间由美中文字幕在线看视频国产欧美 | xvideos.蜜桃一区二区| 伦理电影国产精品| 欧美三级日韩三级国产三级| 欧美极品另类videosde| 人人超碰91尤物精品国产| 日韩美女一区二区三区四区| 激情小说亚洲一区| 中文字幕久久午夜不卡| 欧美综合欧美视频| 老司机午夜精品| 国产精品天天看| 欧洲国内综合视频| 久久99久久99| 欧美一区二区二区| 国产一区二区精品在线观看| 1区2区3区国产精品| 欧美日韩在线直播| 久久精品国产精品亚洲综合| 国产精品久久影院| 精品视频一区 二区 三区| 国产尤物一区二区在线| 1024国产精品| 日韩无一区二区| 丝袜亚洲另类丝袜在线| 久久久91精品国产一区二区三区| 97久久超碰国产精品| 国产精品国产三级国产aⅴ无密码| 欧美亚洲综合色| 国产乱码精品一品二品| 亚洲激情中文1区| 精品国产自在久精品国产| 91无套直看片红桃| 国产精品一区二区在线播放| 一区二区三区中文字幕电影 | 人妖欧美一区二区| 亚洲视频中文字幕| 成人av在线资源网| 青草av.久久免费一区| 国产精品二三区| 欧美一区二区三区色| 色噜噜夜夜夜综合网| 韩国欧美国产1区| 午夜精品久久久久久不卡8050| 国产女主播在线一区二区| 91精品国产色综合久久| 色婷婷久久99综合精品jk白丝| 国产综合久久久久久鬼色| 亚洲国产精品天堂| 亚洲色图视频网| 亚洲国产成人一区二区三区| 日韩精品专区在线| 欧美乱妇15p| 欧美日韩在线播放一区| 一本大道久久a久久精品综合| 国产精品综合在线视频| 久久精品国产精品亚洲综合| 天堂一区二区在线免费观看| 亚洲欧美日韩国产中文在线| 欧美丝袜丝交足nylons| 99re亚洲国产精品| 成人18精品视频| 大尺度一区二区| 偷拍一区二区三区| 亚洲第一av色| 亚洲一区二区三区精品在线| 亚洲欧美日韩久久| 一区二区三区四区亚洲| 亚洲免费在线电影| 亚洲人亚洲人成电影网站色| 亚洲欧洲一区二区在线播放| 国产精品三级av| 中文字幕一区日韩精品欧美| 国产日韩欧美一区二区三区乱码 | 亚洲欧洲日韩在线| 亚洲欧美经典视频| 一二三四区精品视频| 一区二区免费看| 亚洲国产另类av| 免费成人在线播放| 国产一区二区三区免费观看| 国产一区二区影院| 成人黄页在线观看| 色偷偷久久人人79超碰人人澡| 欧美影院一区二区| 日韩一区国产二区欧美三区| 欧美成人在线直播| 久久久久久亚洲综合| 国产精品区一区二区三| 综合自拍亚洲综合图不卡区| 亚洲曰韩产成在线| 蜜臀av在线播放一区二区三区| 亚洲欧美福利一区二区| 一区二区三区在线视频播放 | 亚洲精品自拍动漫在线| 亚洲不卡一区二区三区| 蜜臀av性久久久久av蜜臀妖精| 国产麻豆视频一区| 97se亚洲国产综合自在线观| 欧美日韩综合在线免费观看| 日韩亚洲欧美成人一区| 国产亚洲欧美一区在线观看| 玉米视频成人免费看| 毛片一区二区三区| 成人精品免费网站| 欧美电影在哪看比较好| 久久久久久免费毛片精品| 亚洲欧美一区二区不卡| 奇米一区二区三区| 色婷婷一区二区三区四区| 日韩欧美区一区二| 亚洲视频电影在线| 久久99精品一区二区三区| 色婷婷综合久久久中文字幕| 欧美本精品男人aⅴ天堂| 亚洲欧美日韩国产另类专区| 蜜臀精品一区二区三区在线观看| 91在线你懂得| 久久久久一区二区三区四区| 午夜精品一区二区三区免费视频 | 国产精品欧美一区喷水| 人人精品人人爱| 91福利国产成人精品照片| 国产亚洲一区二区三区四区| 亚洲国产视频一区二区| 白白色亚洲国产精品| 欧美电视剧在线看免费| 洋洋av久久久久久久一区| 粉嫩av一区二区三区| 精品视频一区三区九区| 1区2区3区国产精品| 国产精品一区二区你懂的| 69堂亚洲精品首页| 一区二区三区精品视频| 国产成人8x视频一区二区| 日韩欧美一二三区| 午夜精品福利久久久| 91在线porny国产在线看| 久久免费的精品国产v∧| 视频一区在线播放| 欧美日韩一区二区三区高清| 亚洲欧美综合色| 成人黄色片在线观看| 久久婷婷成人综合色| 捆绑调教美女网站视频一区| 欧美日韩不卡一区| 国产亚洲综合av| 国产美女精品一区二区三区| 26uuu欧美| 国产精品一二三| 中文字幕第一区综合|