高速串行总线的设计基础(一)同步时序模型介绍

李锐博恩 2020-11-30 23:56:05 10872

前言

高速信号设计涉及到方方面面的知识积累,也许你认为即使没有掌握甚至没有听过一些高速设计的专业术语,也没有关系?因为专业集成的IP可以帮你解决这一问题,但殊不知,根基不牢,地动山摇!基础不牢固,你可能永远成不了一个expert,甚至难以成为一位出色的工程师。

本系列文章通过联系高速串行的相关知识,从基础到进阶,可以助你很好地理解高速串行设计中的重难点。

短期可助于理解各厂家集成IP,高速协议等,长期有助于技术积累,提高技术修养。
相信无论新手还是行家,都会有所收益。

以下是本系列第一篇,同步时序模型介绍。

芯片间通信的时序模型

大体上,有三种时序模型用于芯片间通信,那就是系统同步,源同步以及自同步,下面分别介绍:

系统同步

所谓的系统同步,即在IC之间通信中,外部公共时钟应用于两个IC之间,并用于数据发送以及接收。

系统同步是最常用的同步方式,其示意图如下:

系统同步电路图

这是一种很常见的电路模型,在IC应届生招聘时,这种类型的时序分析题,也最为常见。

如下图为上图的详细时序模型:

系统同步时序模型

阴影部分为必须要考虑的延迟。

由于具体时序分析计算非本文重点,因此不在多余赘述,如有需要可以参考:
时序分析基础概念

源同步

所谓的源同步,即两个IC之间通信,发送IC会生成一个伴随数据的时钟,接收IC使用此转发时钟进行数据接收。

源同步电路图如下:

源同步电路图

这种同步方式的特点是时钟副本与数据一同发送到目的IC。

由于数据与时钟一起发送,因此需要调整转发时钟的输出时间,数据线与时钟线的走线长度必须匹配。

其时序模型如下:

源同步时序模型

自同步

所谓自同步,即两个IC之间同步,其中发送IC生成的包含数据和时钟的流发送至接收IC。
自同步的电路图如下:

自同步电路图

如果你曾使用过高速串口相关的IP或者高速串口相关的协议,你会发现很多高速串口使用这种方式进行数据传输。例如Xilinx的Transceiver以及基于Transceiver的几乎所有其他高速协议,如aurora,srio等。

其时序模型如下:

自同步时序模型

可见,自同步接口主要有三个部分:

  1. 并串转换
  2. 串并转换
  3. 时钟数据恢复

下面分别解释:

并串转换

并串转换的原理十分简单,可以使用移位寄存器实现,即将并行数据不断进行移位,取最高位或最低位(最高或最低取决于左移还是右移)作为串行输出即可。
下面给出部分Verilog描述的简单示例,以助于理解:


// Verilog example
assign sDOut = shift[7];

always@(posedge clk8x)
begin
    if(en == 1'b1) // 1 pulse every 8 clk8x period
    begin
        shift <= pDout; // MSB first
    end
    else
    begin
        shift <= {shift[6:0], 1'b0};
    end
end

这仅仅是给出一个简单的理解方式,实际应用肯定会更加灵活,例如并行数据需要更新,则使用可加载数据的移位寄存器,
如下示意图:

并串转换示意图

当然还有除了移位寄存器以外的其他方式实现并串转换,例如旋转选择器(Revolving Selector),如下示意图:

旋转选择器

其设计方式可自行谷歌。

串并转换

相对于并串转换,串并转换让人更加的熟悉,这源于学习过程中更加的常见,就连应届生笔试题也更加青睐于此,所谓懂了串并转换,还不懂并串转换?

确实如此,二者是一个逆过程,串并转换自然可以使用移位寄存器实现,串行数据不断移位形成并行数据,如下同样给出一段简单的串并转换Verilog部分设计,以助于理解:

always @ (posedge clk)  begin  

    qtemp <= {qtemp[6:0], din}; 

end  

时机一到,便取出并行数据。

如下为串并转换示意图:

串并转换示意图

相对于并串转换的旋转选择(Revolving Selector)实现方式,串并转换对应的有旋转使能(Revolving Enables)方式,示意图如下:

旋转使能实现串并转换示意图

时钟/数据恢复

与系统同步提供的公共时钟以及源同步提供的同数据一起发送的时钟不同,时钟恢复过程使用锁相环(PLL)来合成与生成输入串行数据流的时钟频率相匹配的时钟。

锁相环就有这个能力,为什么呢?
这里不再给出繁琐的锁相环原理图,只给出锁相环的定义即可体会:
锁相环是一种采样参考时钟和输入信号并创建一个锁定到输入信号的新时钟的电路。

参考文章

关于外界接口的编程思路

PLL Phase Locked Loop Tutorial & Primer

移位寄存器专题

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 378 21 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
李锐博恩
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区