adc.v

来自「编写verilog代码 利用实验箱上的A/D芯片完成模数转换。输入电压由实验箱」· Verilog 代码 · 共 71 行

V
71
字号
module	adc(adda,ale,start,eoc,oe,clk,rst_,data_in,data_out);
	input	eoc,clk,rst_;
	input	[7:0] data_in;
	output	adda,ale,start,oe;
	reg		adda,ale,start,oe;
	output	[7:0] data_out;
	reg		[7:0] data_out;
	reg 	[2:0]	state;
	parameter	IDLE=3'd0,A=3'd1,B=3'd2,C=3'd3,D=3'd4;
always @ (posedge clk or negedge rst_)
	if(!rst_)
		begin
		adda<=1;
		ale<=0;
		start<=0;
		oe<=0;
		data_out<=0;
		end
	else
	case(state)
	 	IDLE:	begin
			adda<=1;
			ale<=0;
			start<=0;
			oe<=0;
			state<=A;
			end
		A:	begin
			adda<=1;
			ale<=1;
			start<=0;
			oe<=0;
			state<=B;
			end
		B:	begin
			adda<=1;
			ale<=0;
			start<=1;
			oe<=0;
			state<=C;
			end
		C:	begin
			adda<=1;
			ale<=0;
			start<=0;
			if(!eoc)	
				begin
				oe<=1;
				state<=D;
				end
			else		
				begin
				oe<=0;
				state<=C;
				end
			end
		D:	begin
			adda<=1;
			ale<=0;
			start<=0;
			oe<=1;
			data_out<=data_in;
			state<=IDLE;
			end
		default:;
	endcase
endmodule
			
			

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?