FPGA综合实验 04 - | ADC采样控制电路设计

Posted Neutionwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FPGA综合实验 04 - | ADC采样控制电路设计相关的知识,希望对你有一定的参考价值。

一、实验目的和任务

      学习用状态机对A/D转换器ADC0809的采样控制电路的实现。

二、设计代码(或原理图)、仿真波形及分析

1、ADC控制电路代码

module ADC0809(D,CLK,EOC,RST,ALE,START,OE,ADDA,ADDB,ADDC,Q,LOCK_T,CLK_OUT);
  input[7:0] D;
  input CLK,RST;
  input EOC;
  output reg CLK_OUT;
  output ALE;
  output START,OE;
  output ADDA,ADDB,ADDC,LOCK_T;
  output[7:0] Q;
  reg ALE,START,OE;
  parameter s0=0,s1=1,s2=2,s3=3,s4=4;
  reg[4:0] cs, next_state;
  reg[7:0] REGL;
  reg[5:0] clki;
  reg LOCK;
  
  always @(posedge CLK)
    if(clki>10)
	 begin 
	 CLK_OUT=~CLK_OUT;
	 clki=0;
	 end
	 else
	 clki=clki+1;
	 
	 
	 
	 always @(cs or EOC) begin
	 case(cs)
	 s0:begin ALE=0;    START=0  ;  OE=0;  LOCK=0;
	              next_state <=s1; end
	 s1:begin ALE=1;    START=1  ;  OE=0;  LOCK=0;
                  next_state <=s2; end
	 s2:begin ALE=0;    START=0  ;  OE=0;  LOCK=0;	
           if(EOC==1'b1) next_state =s3;
			else next_state =s2; end
	 s3:begin ALE=0;    START=0  ;  OE=1;  LOCK=0;		
      	next_state =s4; end
	 s4:begin ALE=0;    START=0  ;  OE=1;  LOCK=1;
         next_state <= s0;   end
	 default :begin ALE=0;    START=0  ;  OE=0;  LOCK=0;
	      next_state =s0;   end
	endcase
end	
  always @(posedge CLK or posedge RST ) begin
  if(RST)cs<=s0;
  else cs <=next_state;end
  always @(posedge LOCK)
  if (LOCK) REGL <= D;
  assign ADDA=0;
  assign ADDB=0;
  assign ADDC=0;
  assign Q=REGL;
  assign LOCK_T=LOCK;
  endmodule
  

2、ADC控制电路仿真截图

3、ADC控制电路的仿真分析

结合代码分析,如图所示,每一个时钟上升沿都使状态机进入下一个状态,刚开始的ALE和START高电位表明状态机经过了状态s1,在给EOC输入高电位前,给D所写的值121并没有送进电路,因而Q输出为0,这是因为从状态s2到s3需要EOC信号为高电位才能进入状态s3,否则会一直停留在状态s2,当给EOC输入高电位后,此时D值为220,OE高电位处说明经过了状态s3,而其后LOCK_T输出高电位,说明变量LOCK为高电平,即经过了状态s4,此时会把D的值给读走,同时Q输出220,即D的值。

4、ADC控制电路的状态机截图及分析

 结合代码分析,如图所示,在s0状态之时,当CLK信号处于上升沿,则进入s1状态;在s1状态之时,当CLK信号处于上升沿,ALE、START输出为1,则进入s2状态;在s2状态之时,当CLK信号处于上升沿,ALE、START下拉为0,如果EOC输入为1则进入s3状态,否则仍然处于s2状态;在s3状态之时,OE输出为1,同时进入s4状态;在s4状态之时,OE、LOCK输出为1,并且重新回到s0状态;如果执行RST复位操作,无论当前处于什么状态,都回到s0状态。

以上是关于FPGA综合实验 04 - | ADC采样控制电路设计的主要内容,如果未能解决你的问题,请参考以下文章

基于28035的ePWM触发ADC采样设计

基于28035的ePWM触发ADC采样设计

基于28035的ePWM触发ADC采样设计

低功耗电池电压ADC采样电路,墨水屏通电掉电控制电路,PMOS电子开关,可用于待机低功耗的项目

FPGA综合实验 03 - | 8位硬件乘法器设计

ADC学习——采样电路