Page 390 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 390
module ADC (clk, reset, adc_start, adc_ale, adc_oe, adc_clk, adc_eoc, adc_input, adc_channel, CDS);
input clk, reset, adc_eoc;//adc_eoc(end of conversen) 입력 받음
input [7:0] adc_input;//adc 변환값
output reg adc_start, adc_ale, adc_oe;//adc 변환과정을 위한 출력
output reg[7:0]CDS; //lcd 출력
output reg [2:0] adc_channel;//adc채널 설정
output reg adc_clk;//1Mhz 입력
reg [7:0] adc_time;//adc 타이밍 설정
reg [7:0] clk_count;//1Mhz생성
reg [1:0] state;//상태천이 변수
parameter [1:0]
S_START = 2'd0,
S_WAIT = 2'd1,
S_OE = 2'd2,
S_DATA_OUT = 2'd3;
always @ (posedge clk) begin//1Mhz생성
if(!reset) begin
clk_count <= 8'h00;
adc_clk <= 1'b0;
end
else begin
if(clk_count < 25) clk_count <= clk_count + 1; //1Mhz
else begin
clk_count <= 8'h00;
adc_clk <= ~adc_clk;
end
end
end
always @ (posedge clk) begin//adc 변환
if(!reset) begin
state <= S_START;
adc_oe <= 0;
adc_ale <= 0;
adc_start <= 0;
adc_channel <= 0;
end
- 383 -