首页 > 其他分享 >FPGA综合实验 04 - | ADC采样控制电路设计

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

时间:2023-01-17 17:35:21浏览次数:48  
标签:begin 04 FPGA CLK LOCK OE ALE START 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控制电路仿真截图

FPGA综合实验 04 - | 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控制电路的状态机截图及分析

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

 结合代码分析,如图所示,在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状态。

标签:begin,04,FPGA,CLK,LOCK,OE,ALE,START,ADC
From: https://blog.51cto.com/u_13726704/6017520

相关文章

  • FPGA综合实验 01 - | 8位加法器的设计
    一、实验目的和任务1、利用QuartusII原理图输入方法设计简单组合电路,通过一个8位全加器的2、设计掌握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。二、设......
  • 数字电路实验 04 - | 组合逻辑电路的设计与测试
    一、实验目的和任务掌握组合逻辑电路的分析与设计方法。加深对基本门电路使用的理解。二、实验原理介绍三、实验数据、计算及分析ABCDZ00000001000100001100100001010011000......
  • 04 BOM和DOM
    BOM和DOM前戏到目前为止,已经学过了JavaScript的一些简单的语法。但是这些简单的语法,并没有和浏览器有任何交互。也就是还不能制作一些经常看到的网页的一些交互,需要继续......
  • Ubuntu16.04 ftp服务器安装
    1.安装vsftpd软件包sudoapt-getinstallvsftpd2.修改配置文件vim/etc/vsftpd.confcopy下面内容:#这些设置系统默认是开启的,可以不管listen=NOlisten_ipv6=YESdirmessa......
  • 读书笔记:价值投资.04.做对的事情,把事情做对
    做对的事情,把事情做对.什么是"做对的事情",难道还有人明知是错的事惰还会做吗!看看周边有多少人抽烟你就明白了.为什么人们明知是错的事情还会去做,因为错的事情往往......
  • Android BroadcastReceiver
    Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会收到自己所关心的广播内容,这些广播可能是来自于系统的,也可能是来自于其他应用程序的。Androi......
  • 04-代理模式
    04代理模式背景本博客是照着程杰的《大话设计模式》一书实现的Java代码的版本,再加自己的一点理解问题卓贾易追求娇娇的方式是派出自己的好友戴笠实现该模型的代码逻辑......
  • adg3304使用注意事项
    1.常见的电平转换芯片有74LVC4245,74LVC8T245,这两个芯片有方向和使能控制引脚。 ADG3304有使能脚,但是没有方向选择脚。2.3304不用的引脚不允许悬空,必须接vcc或者gnd。3.......
  • FPGA运算符详解
     1moduletop(2output[31:0]c3);45localparam[15:0]a=65535;6localparam[15:0]b=25687;7......
  • ubuntu20.04搭建Nginx+rtmp服务器
    1.ubuntu20.04安装Nginx代理服务器安装nginxsudoaptupdatesudoaptinstallnginx安装完成后,Nginx将会自动被启动。运行下面的命令来验证:   测试安装在网页......