明德扬论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1238|回复: 0

【书籍连载】FPGA和ASIC时序分析和时序约束

[复制链接]

242

主题

259

帖子

2129

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2129
QQ
发表于 2019-11-7 19:03:40 | 显示全部楼层 |阅读模式

马上注册,看完整文章,学更多FPGA知识。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
   
第一篇  D触发器原理和FPGA时序结构

  要掌握FPGA时序约束,了解D触发器以及FPGA运行原理是必备的前提。因此今天第一章,我们就从D触发器开始讲起。


D触发器结构

     首先是D触发器的结构,其硬件电路图如下所示,可以看到D触发器包含复位、时钟、输入和输出;信号由D端输入,clk给到上升沿的指示,Q端输出信号。

图片1.png

D触发器的功能很简单。

      当R等于0时,q固定输出0;
    当R等于1时,遇到CLK的上升沿时,将D的值赋给Q,D是什么Q就是什么;非CLK的上升沿,Q保持不变。



D触发器代码


     D触发器的代码也很简单,如下图所示,从代码的描述来看,依旧是
   当rst_n等于0时,q固定输出0;
     当rst_n等于1时,遇到clk的上升沿时,将d的值赋给q,d是什么q就是什么;非clk的上升沿,q保持不变。
图片2.png

D触发器波形

     D触发器工作波形如下所示,时钟处于上升沿的时,如果输入信号D1,输出信号Q也为1;如果输入信号D为0,那么输出信号Q也为0。
图片3.png


建立时间和保持时间


        前面波形图可以看到,D触发器在上升沿处进行信号采集,为了保证采集到的数据准确性,信号D在上升沿前后会保持状态一段时间。在上升沿前的这段时间为setup_time,叫做建立时间;上升沿后的这段时间为hold_time部分,叫做保持时间。

      关于建立时间和保持时间有几个关键点需要注意。

      首先D触发器的数据输入端必须在建立时间前到达,并且要保持到持续时间以后,这样才可以保证FPGA可以采集到正确的数据。
其次建立时间和保持时间是D触发器的固有属性,是不可改变的。注意,这里说的不可改变,是指不能从代码层次去改变。例如我们买了一个FPGA开发板,其FPGA芯片的D触发器建立时间和保持时间就是固定的,没办法从VERILOG去修改,除非换一个芯片。



FPGA的电路结构


图片4.png

       FPGA的基本电路结构如上图所示。我们可以把电路分成两个部分:D触发器和组合逻辑。每两个D触发器之间,都会有或多或少的组合逻辑。组合逻辑可以是乘法器、加法器、RAM,甚至就是一条简单的连线。前一个D触发器的输出端,经过组合逻辑运算后,给了下一个D触发器的输入端,等待时钟上升沿的时候,再传递给D触发器的输出端。

    上图中,所有的D触发器都统一受时钟CLK的控制,都是在CLK的上升沿把输入的值传递给输出端。

      FPGA中有4个组合逻辑A、B、C、D ,逻辑与逻辑之间,共使用了5个D触发器传输数据。其中组合逻辑A持续20纳秒,组合逻辑B持续40纳秒,组合逻辑C持续50纳秒,组合逻辑D持续35纳秒。时钟周期为100纳秒,即上升沿100纳秒产生一次;每个触发器的建立时间为5纳秒,保持时间为25纳秒。



现实案例



      为了便于理解,我们用一个生活中的例子类比一下D触发器与组合逻辑的关系。如下图所示,现在有一个生产线生产一款产品,一共需要4个步骤,分别由员工ABCD来完成,其中A做完一个工序需要2小时,B需要1小时,C需要3小时,D是0.5小时。工厂统一规定每隔5个小时交接一次;为了避免交接混乱,要求交接点5分钟交接,交接点10分钟才能继续工作。


图片5.png


      此生产线就像是前面我们讲到的FPGA电路结构,四个员工就相当于FPGA中四个组合逻辑,大家在同一个环境下工作,被同一个时钟所支配,相互间又有着传输关系。

      要求每5个小时交接一次相当于100纳秒产生一次时钟上升沿;每一位员工交接给下一位员工的这个过程就相当于D触发器将两个组合逻辑相连接并且传输有效信号。

      所有员工在交接点前5分钟都停下手中工作,进入准备交接状态,5分钟相当于D触发器的建立时间5纳秒;交接点后10分钟,大家依旧保持交接状态,10分钟相当于D触发器的保持时间25纳秒。

      公司的规定必须提前5分钟,等待10分钟进行交接,就和D触发器的硬件特性相同,交接时间是不能因为个人改变的;不论工作什么时候完成,在交接点前5分钟一定要准备交接,交接点后保持交接状态10分钟才可以继续工作,这样才可以保证整个生产线可以流畅进行。

      我们用了一个简单的案例比较清晰的理解了D触发器,通俗来说就是需要传输的数据等待在D触发器前,D触发器每个时钟都会在门口进行检测,检测到  了有效数据后,在此时钟上升沿进行数据输出。



以上就是D触发器的相关知识,欢迎更多的同学与我们进行讨论与交流!






上一篇:《基于FPGA至简设计法实现的图像处理系统》
下一篇:【基于FPGA的图像处理工程】边缘检测工程之串口接收模块代码解析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|MDYBBS ( 粤ICP备16061416号

GMT+8, 2020-1-20 22:08 , Processed in 0.588119 second(s), 28 queries , File On.

Powered by Discuz! X3.4

本论坛由广州健飞通信有限公司所有

© 2001-2019 Comsenz Inc.

快速回复 返回顶部 返回列表