「FPGA」基本时序电路元件——锁存器和触发器

news2024/11/20 12:41:47

「FPGA」基本时序电路元件——锁存器和触发器

文章目录

    • 「FPGA」基本时序电路元件——锁存器和触发器
      • 1. 最简单的双稳态元件
      • 2. SR锁存器
      • 3. D锁存器(data latch)
      • 4. D触发器
      • 5. 寄存器(register)

FPGA是一种数字电路实现的方式,它是基于小型查找表(16X1)设计的,它的兄弟CPLD是基于高密度复杂组合逻辑设计的。FPGA的一个优点是触发器资源丰富,适合实现复杂的时序设计。本文将从 门级电路的角度来介绍时序电路的基本结构,锁存器(Latch)和触发器(flip-flop)。实际上,还可以直接使用晶体管来构建锁存器和触发器,这样更节约。

1. 最简单的双稳态元件

双稳态元件是记忆电路的基础,它的特点是有两个稳定状态(Q=1,Q=0),当外界无外来触发信号的时候,它将保持上一个状态。

最简单的双稳态元件是交叉耦合的反相器,如图1。当Q=1的时候,下面反相器的输入为1,输出为0,即Q-=0,这个输出0又作为上面反相器的输入,从而进一步“巩固”Q=1。Q=0同理。
图1

不过,这个电路是没有使用价值的,因为没有输入,其状态完全由一个无法控制的初始状态决定,Q=1则一直为1,Q=0则一直为0。因此,具有实用价值的是它的改进版,锁存器和触发器

2. SR锁存器

其中S是set的首字母,表示置位,R是reset的首字母,表示复位。它的组成是两个交叉耦合的或非门,如图2,其中绿线表示高电平,灰线表示地电平。当S=1,R=0的时候,Q=1,Q-=0。当R=0时,与的结果一定是0,则其上面的或非门的输出Q=1。Q=1作为下面的或非门的输入,同时S=1,两个1相或结果为1,则下面的或非门的输出为0。

当S=0,R=1的时候,Q=0,Q-=1。分析同理。

图2

当S=0,R=0的时候,这两个或非门和两个反相器在逻辑功能上没有区别。当一个或非门的一端输入常为0,那么当另外一端输入为1,输出为0,另一端输入为0,则输出为1。其分析可参考交叉耦合反相器。该锁存器将保持原有的状态。

当S=1,R=1的时候,由于或门是有1为1,因此两个或非门的输出都是0。这是一个混乱的电路响应(正常的Q和Q-应互为相反数)。

值得注意的是,以上电路是采用或非门实现的SR锁存器,实际上,我们可以,只要满足上述输入输出关系的元件都是SR锁存器。比如可以采用与非门实现SR锁存器,如图3。注意区别,当S=0,R=0时,该器件无效,当S=1,R=1时,该器件保持。

图3

3. D锁存器(data latch)

SR锁存器可以在Q上储存一个1bit的状态值,还可以通过S和R来控制Q=1或者是Q=0。但是这种设计有个缺陷,我们不知道什么时候进行置位和复位。或句话说,SR锁存器在时间和内容上是混在一起的。

因此,对电路进行改进,引入一路时钟信号(占空比为50%的方波),当时钟信号为高电平的时候,才让数据信号(D)作用在SR锁存器的S端,并直接体现在Q上,就好像一根导线,用专业术语叫透明(transparent)。当时钟信号为低电平的时候,SR锁存器保持,就好像把数据信号阻断了一样,叫不透明(opaque)。要实现该功能,需要在外侧加入两个与门,其电路结构如图4。

图4

D锁存器又称电平敏感锁存器。

4. D触发器

触发器的英文是flip-flop,flip是轻抛,flop是重重地落下。相比于电平敏感的D锁存器,D触发器是上跳沿敏感的,只有当时钟CLK从低电平变化到高电平的时候,电路才是透明的。所以其实现可以是,用两个D锁存器,第一个锁存器在时钟低电平的时候储存D的值,当变化成高电平的时候,再将储存的值送到第二个D锁存器中。

图5
如图5,左图是当CLK为低电平时,下侧的D锁存器(又称“主锁存器”),读入输入数据,右图是当CLK为高电平时,上侧的D锁存器(又称“从锁存器”),将主锁存器的输出作为输入。

5. 寄存器(register)

寄存器的概念,最开始接触,可能是在学习C语言的时候。那个时候刚刚接触到内存,知道一个变量的值是被储存在某个地址对应的内存空间,内存则是由寄存器构成的。然后如果使用到一些微处理器,也会接触到寄存器的概念,通过对某些寄存器写入特定值,从而设置微处理器的工作模式。

所谓寄存器,是由共用一路时钟的一列D触发器构成。图6所示的寄存器,被设置成1001。

图6

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/653426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法设计与分析知识点整理

文章目录 前言一、算法的基本概念1.算法的基本特征2.算法设计需要满足的目标3.算法和程序的区别 二、时间复杂度计算1.大O表示法2.最坏和平均情况3.根据递归方程求解时间复杂度3.1 根据递归树求解3.2 根据主方法求解 三、六大算法1.分治法1.1 算法思路1.2 适用范围1.3 基本步骤…

【MySql】聚合函数group byOJ题目

文章目录 聚合函数分组group by使用OJ题目描述描述 本篇主要介绍mysql的聚合函数和group by的使用,最后是OJ题目的练习。 聚合函数 MySQL中的聚合函数用于对数据进行计算和统计,常见的聚合函数包括下面列举出来的聚合函数: 函数 说明…

python开发构建深度学习分类模型,探索AI在地震事件分类中的应用于可解释性分析

最近看到了一篇蛮有意思的论文,如下: 将深度学习开发应用到了地震事件分析分类领域中去了,感觉挺有意思,就想着也来自己体验下看看,这里的数据集是网上找到的一个地震波应该是仿真实验的数据集,我们先来看下…

Pytest教程__Hook函数pytest_addoption(parser):定义自己的命令行参数(14-1)

考虑场景: 我们的自动化用例需要支持在不同测试环境运行,有时候在dev环境运行,有时候在test环境运行;有时候需要根据某个参数不同的参数值,执行不同的业务逻辑; 上面的场景我们都可以通过“在命令行中输入…

浏览器之BFC

浏览器之BFC 什么是BFCBFC的特性特性1:BFC会阻止垂直外边距折叠①相邻兄弟元素margin重叠问题②父子元素margin重叠问题 特性2:BFC不会重叠浮动元素BFC可以包含浮动----清除浮动 什么是BFC Block formatting context直译为"块级格式化上下文Block …

Python进阶语法之字符串

Python进阶语法之字符串 当我们处理文本数据时,字符串是不可避免的数据类型。Python 提供了很多字符串方法,它们可以帮助我们更方便地操作和处理字符串。在本篇博客中,我们将深入探讨 Python 字符串。 字符串的基本操作 在深入了解字符串…

亚马逊云科技 | Summit - 中国峰会

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 亚马逊云科技 | Summit - 中国峰会 亚马逊云科技提供全球覆盖广泛、服务深入的云平台,全球数据中心提供超过 200 项功能齐全的服务连续 11 年被 Gartner 评…

【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

目录 0.环境 1.适用场景 2.pandas.merge()函数详细介绍 3.名词解释“数据对齐”(来自chatGPT3.5) 4.本文将给出两种数据对齐的例子 1)dataframe类型数据和dataframe类型数据对齐(对齐NAME列); 数据对…

[游戏开发]Unity颜色矫正无障碍方案

[目录] 0. 前言1. 颜色矫正2. 线性变换Shader2. 颜色纠正参数3. 摄像机后处理4. 效果5. 结束咯 0. 前言 之前有在关注色盲视觉纠正问题,最近在调整游戏的时候就打算把这个用上。 色弱色盲,这其实算是一种误称吧,只是人类中的少数派&#xf…

保护您的数据与ManageEngine Log360

在当今数字时代,网络安全成为了企业和组织不可忽视的重要议题。随着信息技术的发展和互联网的普及,企业面临着越来越多的网络威胁和数据泄露的风险。为了保护重要的数据资产和防止潜在的攻击,日志管理和事件关联成为了至关重要的一环。 Mana…

IIS安装ARR(Application Request Router)负载均衡扩展

IIS7.5安装ARR(Application Request Router)负载均衡扩展 本文主要记录我在IIS中安装ARR的全流程,本文参考了网上一些教程,但可能时间关系,与一些早期文章所述有所出入。 花了我半天的时间才最终安装成功,因此这里做一个记录。本…

立体解析Fiddler Filters:让你快速捕获和过滤网络请求

如果要对当前Fiddler的抓包进行过滤(如过滤掉与测试项目无关的抓包请求),那功能强大的 Filters 过滤器能帮到你。 如果你想学习Fiddler抓包工具,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的Fiddler抓包…

动态规划算法(多状态dp1)

动态规划算法专辑之多状态dp问题(1) 一、什么是多状态 多状态dp问题,指一个规模问题下存在多种状态,我们需要联合关注多种状态间的相互转移,才可以求解目的问题。 多状态问题可以理解为有限状态机,在有限…

节省时间、提升效率——Jetpack关爱你的摸鱼时间

JetPack Jetpack 是一个由 Google 提供的 Android 应用开发库集合。它旨在简化 Android 应用程序开发过程,提供一系列的库和工具,帮助开发者快速构建高质量、健壮、可扩展的 Android 应用。 Jetpack 包含多个组件,每个组件都专注于不同的功…

Nginx 的reload,升级以及关闭流程

一、reload流程 1 向master进程发送HUP信号(reload命令) 2 master进程校验配置语法是否正确; 3 master打开可能引入的新的监听端口; 4 master用新的配置文件启动新的worker子进程; 5 启动新的worker子进程之后&#x…

小马赠书【第8期】清华社 618 IT BOOK 多得活动(送书5本)

本期 敬 之 共精心挑选了 15 本 IT 相关书籍,包含 前端、后端、数据分析、人工智能、python 等各个领域。关于如何参与等具体活动信息请看活动详情页,以下是 15 本 IT 书籍介绍: 活动详情页:小马赠书【第8期】 1. 《Linux设备驱动…

怎么入手性能测试,重点以及各项流程

之前在性能测试学习路线里,提到过《软件性能测试、分析与调优实践之路》这本书。 昨天看到之前自己记的读书笔记,整理一下发出来,希望对读者有所帮助。 网上关于性能测试的文章大多数时间比较久远,或者知识点比较散,…

南大一作!科学家发现全新量子态 | Nature速递

光子盒研究院 马萨诸塞大学助理教授Tigran Sedrakyan在内的一个物理学家团队最近在《自然》杂志上宣布,他们已经发现了一种新的物质阶段——“手性玻色液态(chiral Bose-liquid state)”,这一突破为理解物理世界本质的古老努力开辟了一条全新道路。 团队…

【目标跟踪】MOT数据集GroundTruth可视化

MOT数据集格式简介 MOT15数据集下载&#xff1a;https://pan.baidu.com/s/1foGrBXvsanW8BI4eybqfWg?pwd8888 以下为一行gt示例&#xff1a; 1,1,1367,393,73,225,1,-1,-1,-1 各列数据对应含义如下 <frame>,<id>,<bb_left>,<bb_top>,<bb_width&g…

autocut

在讲 OpenAI Whisper 前先做了一个剪视频小工具【论文精读44】_哔哩哔哩_bilibili更多论文&#xff1a;https://github.com/mli/paper-reading, 视频播放量 58633、弹幕量 233、点赞数 2732、投硬币枚数 1630、收藏人数 1465、转发人数 604, 视频作者 跟李沐学AI, 作者简介 &am…