AD7606是一个16位的8路通道采集模块,本文主要对其时序图进行分析从而了解接口电路状态机的编译原理。
下图为AD7606的时序图以及时间要求。芯片手册链接
很多博客里只是对状态机进行编写,但是对于里面的延时时钟的计算没有讲解,也没有结合时序图进行分析,我在此进行一个简要分析。首先是conv上升沿触发系统开始采样转换,进入busy状态,然后busy下降沿后开始进行8个通道的读取。
首先是系统主频为100mhz,那么一个clock就是10ns。根据上图可得,
ad7606的一个cycle为5us;
conv的时间为4.15us;
t8和t9虽然没做最低时间要求,但是仍然赋予一个clock;
conv的低电平和高电平时间均为25ns,则均赋予3个clock;
读取一个通道,首先是read信号低电平时间为21ns,(因为fpga的电压一般为3.3v),根据向上取整的原则,给3个clock,read高电平为15ns,给两个clock;
编译的时候主要对conv信号的高低电平时间和read信号的高低电平时间做了约束。
接口模块编辑如下:
module AD_IF(
input clk, //clock
input rst_n, //reset
input ad_data, //input data
input ad_busy, //busy signal
input first_data,