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  -
   385   386   387   388   389   390   391   392   393   394   395