接口逻辑设计

原创 2016年05月30日 20:59:09

之前写DDS那部分时,对于SPI接口琢磨了好久,当然了,首先想得到的状态机,控制DDS输出的数据送至后端DA。将整个数据传输过程分解成四个状态: IDLE、WR_START、WR_DATA、STOP,根据事件猝发每个状态的跳转,例如IDLE -> WR_START的跳转条件是out_en = 1,这种设计思想是最直接的,但有的时候时序调整很麻烦(比如多了或少了时钟周期),直到某天,看了ADI公司针对AD7960给的一个demo,有了下面的一种思路:

    数据传输一般是周期性的,我们可以根据数据传输的时序图和时序规格表(一般都可在器件手册上找到)计算好每个读写数据周期所需时钟数,然后通过一个时钟计数器来控制数据读写的过程,比如计数值为a时,使能,计数值为b时,写数据.....

   附录部分代码:

assign data_rd_rdy_o    = ((serial_read_done_s == 1'b1) && (adc_tcyc_cnt == 32'd4)) ? 1'b1 : 1'b0; 
assign cnv_s            = (adc_tcyc_cnt > 32'd17) ? 1'b1 : 1'b0;
assign tmsb_done_s      = (adc_tcyc_cnt == 32'd18) ? 1'b1 : 1'b0; //Last convert data MSB is valid
assign buffer_reset_s   = (adc_tcyc_cnt == 32'd2) ? 1'b1 : 1'b0;
assign data_out         = (data_rd_rdy_o == 1'b1) ? data_o : data_out;

// Update conversion timing counters 
always @(posedge m_clk_i) begin
    if(reset_n_i == 1'b0) adc_tcyc_cnt <= ADC_CYC_CNT; //19~0: 200ns
    else begin
        if(adc_tcyc_cnt != 32'd0) adc_tcyc_cnt <= adc_tcyc_cnt - 32'd1;
        else adc_tcyc_cnt <= ADC_CYC_CNT; 
    end
end 



版权声明:本文为博主原创文章,未经博主允许不得转载。

SQL数据库设计(一)---需求分析与逻辑设计

今天先来介绍 数据库设计中的需求分析和逻辑设计(ER图)阶段,明天介绍物理设计与维护优化,数据库设计是非常有意思的:-) 数据库设计 根据系统业务的需要,结合我们所选用的DBMS,为这个业务系统构...
  • y874961524
  • y874961524
  • 2016年05月22日 21:20
  • 3303

数字电路与逻辑设计——组合逻辑篇

在数字电路中,根据逻辑功能的不同而分为两大类,组合逻辑电路与时序逻辑电路。 1、何为组合逻辑电路 我们只需铭记一点就是,这种电路的输出Y只与当时的输入X有关,而与之前的输入X’无关。所以这是一个可以随...
  • qq1647243511
  • qq1647243511
  • 2016年10月08日 17:19
  • 1836

Java接口特征与细节

接口 书面定义: Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 在j...
  • u012768347
  • u012768347
  • 2016年04月02日 23:50
  • 906

组合逻辑设计原理

组合逻辑设计原理公理 如果X≠1X\neq 1,则X=0X=0;如果X≠0X\neq 0,则X=1X=1 如果X=0X=0,则X′=1X'=1;如果X=1X=1,则X′=0X’=0 0⋅0=00\cd...
  • u013795675
  • u013795675
  • 2015年03月17日 11:55
  • 441

[架构设计] 什么是业务逻辑

讨论设计时,专业词汇满天飞,每个人的技术背景、工作经验上的不同都会导致在理解上存在着差异。无论是SEI的定义、OMG UML的定义、还有各路大神的定义,都有从不同视角带来的差异。准备后面关注这些定义的...
  • HorkyChen
  • HorkyChen
  • 2015年04月15日 00:51
  • 5197

20.如何从app业务逻辑提炼api接口

在app后端的工作中,设计api是一个很考验设计能力的工作。在项目的初始阶段,只知道具体的业务逻辑,那怎么把业务逻辑抽象和提炼,设计出api呢?通过阅读本文,可解答以上疑惑。...
  • newjueqi
  • newjueqi
  • 2015年03月23日 12:54
  • 17321

数据库 - 逻辑结构设计

逻辑结构设计逻辑结构设计的任务 把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构 逻辑结构设计的步骤 将概念结构转化为一般的关系、网状、层次模型 ...
  • wangzi11322
  • wangzi11322
  • 2015年05月08日 10:22
  • 10347

可编程逻辑器件原理与应用 中科大 2017回忆版考题及复习重点

USTC 任课教师:宋克柱 我做回忆版试题的原因就是自己在备考的时候没有学长们的往年题参考,心里没底。希望看到这篇blog的学弟学妹们发扬精神,继续回忆考题造福以后的同学。 回忆版试题 ...
  • DrCube
  • DrCube
  • 2018年01月06日 13:10
  • 41

数据库设计(3)_逻辑结构设计_常用模块

下面列出了在项目开发过程中,经常遇到的数据库设计模块。一、常用实体 1.1、全局实体 (1)独立参数 记录系统中独立存在的参数,通常使用整形和字符型即可兼顾所有常用类型的参数。结构如下: 参...
  • qilixiang012
  • qilixiang012
  • 2015年06月01日 00:24
  • 1226

如何从app业务逻辑提炼api接口

在app后端的工作中,设计api是一个很考验设计能力的工作。在项目的初始阶段,只知道具体的业务逻辑,那怎么把业务逻辑抽象和提炼,设计出api呢?通过阅读本文,可解答以上疑惑。          ...
  • leeandmins
  • leeandmins
  • 2015年08月08日 10:30
  • 697
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:接口逻辑设计
举报原因:
原因补充:

(最多只允许输入30个字)