FPGA第四节(一):AD7606时序图分析以及接口模块编译
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, output [2:0] ad_os, //Oversampling
output reg ad_cs, //chip select
output reg ad_reset, //data reset
output reg ad_convstab, // Conversion signal
output reg ad_rd, //read signal
output ad_data_valid, //data validoutput reg [15:0] ad_ch1, //channel 1
output reg [15:0] ad_ch2, //channel 2
output reg [15:0] ad_ch3, //channel 3
output reg [15:0] ad_ch4, //channel 4
output reg [15:0] ad_ch5, //channel 5
output reg [15:0] ad_ch6, //channel 6
output reg [15:0] ad_ch7, //channel 7
output reg [15:0] ad_ch8 //channel 8);reg [15:0] rst_cnt; //reset count signal
reg [8:0] i;always@(posedge clk or negedge rst_n) //reset module
beginif(rst_n == 1'b0) //reset signal validbeginrst_cnt <= 16'b0; //count signal set 0ad_reset <= 1'b0; //set ad reset signalendelse if(rst_n< 16'hffff)beginrst_cnt <=rst_cnt+16'h1; //count signal add 1ad_reset <=1'b1; //ad reset signal invalidendelse ad_reset <=1'b0; //count signal full,ad reset siganl valid
end always@(posedge clk)
beginif(ad_reset==1'b0) // ad resetbegini = 9'b0;ad_ch1<= 0; //ad channel 1-8 all reset ad_ch2<= 0;ad_ch3<= 0;ad_ch4<= 0;ad_ch5<= 0;ad_ch6<= 0;ad_ch7<= 0;ad_ch8<= 0;ad_cs<= 1'b1;ad_rd<=1'b1;ad_convstab <=1'b1;i<=6'b0;endelsebeginif(i==9'd499) i<=1'd0;i<=i+1'd1;case(i)9'd0: //initial statebeginad_cs<=1'b1;ad_rd<=1'b1;ad_convstab<=1'b1;end9'd3: //convst low levelbeginad_cs<=1'b1;ad_rd<=1'b1;ad_convstab<=1'b0;end9'd6: //convst high levelbeginad_cs<=1'b1;ad_rd<=1'b1;ad_convstab<=1'b1;end//wait conversion9'd450:beginad_cs<=1'b0;ad_rd<=1'b1;ad_convstab<=1'b1;end9'd451: //ch1,read signal initial statebegin ad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;end 9'd454: //wait 3 clockbeginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;ad_ch1<=ad_data;end 9'd455: //wait 2 clockbeginad_cs<=1'b0;ad_rd<=1'b1;ad_convstab<=1'b1;end 9'd457:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;end 9'd460:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;ad_ch2<=ad_data;end 9'd461:beginad_cs<=1'b0;ad_rd<=1'b1;ad_convstab<=1'b1;end 9'd463: beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;end 9'd466:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;ad_ch3<=ad_data;end 9'd467:beginad_cs<=1'b0;ad_rd<=1'b1;ad_convstab<=1'b1;end 9'd469:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;end 9'd472:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;ad_ch4<=ad_data;end 9'd473:beginad_cs<=1'b0;ad_rd<=1'b1;ad_convstab<=1'b1;end 9'd475: beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;end 9'd478:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;ad_ch5<=ad_data;end 9'd479:beginad_cs<=1'b0;ad_rd<=1'b1;ad_convstab<=1'b1;end 9'd481:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;end 9'd484:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;ad_ch6<=ad_data;end 9'd485:beginad_cs<=1'b0;ad_rd<=1'b1;ad_convstab<=1'b1;end 9'd487: beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;end 9'd490:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;ad_ch7<=ad_data;end 9'd491:beginad_cs<=1'b0;ad_rd<=1'b1;ad_convstab<=1'b1;end 9'd493:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;end 9'd496:beginad_cs<=1'b0;ad_rd<=1'b0;ad_convstab<=1'b1;ad_ch8<=ad_data;end 9'd497:beginad_cs<=1'b0;ad_rd<=1'b1;ad_convstab<=1'b1;end default: ;endcase end
end
endmodule
FPGA第四节(一):AD7606时序图分析以及接口模块编译相关推荐
- SPI四种工作模式时序图
1.SPI总线简介 SPI(serial peripheral interface,串行外围设备接口)总线技术是Motorola公司推出的一种同步串行接口.它用于CPU与各种外围器件进行全双工.同步串 ...
- spi四种工作模式时序图_SPI总线协议及SPI时序图详解
嵌入式linux QQ交流群:175159209,欢迎爱好者加入交流技术问题! SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种 ...
- 8255工作方式一选通输入——A口(含时序图分析)
北京交通大学戴胜华老师MOOC微机原理与接口技术 7.3 并行接口8255A 课件 定性描述 选通:有选择有甄别的让数据传输 STB和IBF握手信号线,避免数据丢失 PC几个口做联络信号,PA全部用来 ...
- C51单总线时序图分析与底层编程配置(DS18B20为例)
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一.场景 二.编程实现 ...
- spi四种工作模式时序图_还没学会SPI总线协议?干货都在这里
SPI总线基本概念 SPI是一种高速.全双工.同步的串行通信总线,全称是Serial Peripheral Interface,使用时在芯片的管脚上只占用三根或者四根线(如果单向传输的话只需三根线就可 ...
- 使用PlantText画时序图分析业务流程
- spi协议时序图和四种模式实际应用详解
大家好,我是无际. 上个章节我们讲解了spi接口定义,今天我们更加深入讲解下spi协议时序图和spi四种模式的用法. 刚开始接触单片机开发时,最怕就是看时序图,对于我来说就是奇怪的知识. 特别是SPI ...
- 经典同步时序逻辑电路分析汇总(第六道)(同步四进制可逆加减法计数器)
题: 分析该时序逻辑电路 的功能, 写出电路的驱动方程.状态方程和输出方程, 画出电路的状态转换图和时序图. 分析: 第一步, 根据电路逻辑图写出驱动方程和输出方程. (由于书中Y的接法不合理, 我将 ...
- 4米乘以12米CAD图_设备时序图的绘制方法
每日一省:你觉得工作上还有哪些需要改进的地方? 在方案说明书中常用C/T来作为设备性能参数,说明设备的生产能力.C/T是指设备完成一个完整动作周期所需要的时间.设备的理论C/T是通过时序图的分析得到的 ...
最新文章
- python3笔记_python3 笔记
- 比较某两个时间的时间戳相等
- C语言scanf函数详解
- python基于什么语言-一种基于Python语言的EDA开发平台及其使用方法与流程
- 课程直播|极致AI助力新经济时代个性化精准营销
- Django(part15)--页面跳转
- Web自动化测试理论知识
- Membership学习记录
- 前端工作笔记-element ui弹窗嵌套并获取输入
- Linux select()
- db2如何锁定一张表_办公必备的保护工作表技巧,你会了么?
- Redis Manager 如何查看监控
- Python程序打包exe文件(pyinstaller)
- hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2
- JavaScript网页特效
- 充电IC中的动态路径管理
- 自学编程,上这8个免费网站,省去上万元学费
- Java 岗史上最全八股文面试真题汇总,堪称 2022 年面试天花板
- 如何将风险应用加入白名单_vivo手机怎么把风险应用添加到白名单
- 一些基于 D3.js 的图表库