FPGA第 6 篇,PFGA基础数字电路,PFGA基础知识数字电路, 组合逻辑电路和时序逻辑电路,数字电路与模拟电路

news2024/10/1 15:20:41

前言

FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种高度灵活的硬件器件,可以通过编程配置其内部的逻辑单元和连接,适用于各种数字电路设计和实现。在学习FPGA之前,掌握数字电路的基础知识是非常重要的,这为理解FPGA的工作原理和设计逻辑电路奠定了基础。这里来记录一下,数字电路的基础知识


一. FPGA和数字电路的关系

        数字电路是理解 FPGA 设计的基石。通过数字电路的知识,设计者可以理解逻辑电路的工作原理,并使用HDL代码将这些原理应用于实际的FPGA开发中。因此,学习数字电路不仅是理解FPGA设计的必要前提,也是编写有效HDL代码的基础。随着数字电路知识的积累,我们能够更好地掌握FPGA设计的复杂性,创造出功能强大、性能优越的数字系统。


二. FPGA基础知识数字电路

1. 数字电路的基本概念

       数字电路是利用离散的电压等级来表示和处理信息的电路,它是一种电子电路,是现代电子工程中的一个重要组成部分,它处理的是离散的、数字化的信息。通常,数字电路使用二进制系统,只有两个可能的状态,分别表示为逻辑0和逻辑1,其中01分别代表低电平和高电平。在数字电路中,最基本的逻辑门包括与门(AND)、或门(OR)、非门(NOT)等,它们是构建复杂逻辑电路的基础。


2. ‌数字电路的定义和组成

        数字电路是利用‌电源电压的高电平和低电平分别表示1和0,进而实现信息的表达。它使用‌二进制数字信号完成对数字量的‌算术运算和‌逻辑运算。数字电路由半导体工艺制成的数字集成器件构成,‌逻辑门是数字逻辑电路的基本单元。‌存储器是用来存储二进制数据的数字电路。‌数字电路别名可叫做,数字系统 或者 数字逻辑电路。

        数字电路处理离散的信号(通常是二进制信号),使用“0”和“1”两个电平来表示信息,这与模拟电路处理连续的电压信号不同。在二进制系统中,“0”通常代表低电平(如0V),而“1”代表高电平(如3.3V或5V)。具体的电压值取决于所使用的逻辑电路技术。


三. 数字电路中的布尔代数

        在数字电路中,布尔代数(Boolean Algebra)是一种用于分析和设计数字逻辑电路的数学系统。它是由英国数学家乔治·布尔(George Boole)在19世纪中叶提出的,并且在数字逻辑和计算机科学领域有着广泛的应用。布尔代数的基本元素是二进制变量,即只能取两个值的变量:0(代表低电平或假)和1(代表高电平或真)。

下面是一些布尔代数的基本概念和运算规则:

1. 基本逻辑运算

  1. 与运算(AND): 符号通常用 ⋅⋅ 或省略不写(ABAB),表示为 A∧BA∧B。与运算的结果只有当两个输入都为1时才为1。
  2. 或运算(OR): 符号通常用 ++,表示为 A∨BA∨B。或运算的结果只要有一个输入为1时就为1。
  3. 非运算(NOT): 符号通常用 ¬¬ 或撇号('),表示为 ¬A¬A 或 A′A′。非运算的结果是输入的相反值。

2. 布尔代数的基本定律

  1. 交换律:

    • A⋅B=B⋅AA⋅B=B⋅A
    • A+B=B+AA+B=B+A
  2. 结合律:

    • (A⋅B)⋅C=A⋅(B⋅C)(A⋅B)⋅C=A⋅(B⋅C)
    • (A+B)+C=A+(B+C)(A+B)+C=A+(B+C)
  3. 分配律:

    • A⋅(B+C)=A⋅B+A⋅CA⋅(B+C)=A⋅B+A⋅C
    • A+(B⋅C)=(A+B)⋅(A+C)A+(B⋅C)=(A+B)⋅(A+C)
  4. 互补律:

    • A⋅¬A=0A⋅¬A=0
    • A+¬A=1A+¬A=1
  5. 单位元律:

    • A⋅1=AA⋅1=A
    • A+0=AA+0=A
  6. 零元律:

    • A⋅0=0A⋅0=0
    • A+1=1A+1=1
  7. 德摩根定律(De Morgan's Laws):

    • ¬(A⋅B)=¬A+¬B¬(A⋅B)=¬A+¬B
    • ¬(A+B)=¬A⋅¬B¬(A+B)=¬A⋅¬B

3. 布尔代数的应用

        布尔代数可以用来简化复杂的逻辑表达式,从而减少所需的逻辑门数量,使得数字电路更加高效和经济。通过应用布尔代数的基本定律和定理,我们可以对逻辑函数进行化简,实现更简单的硬件实现。

        例如,考虑一个简单的布尔表达式 A⋅B+A⋅CA⋅B+A⋅C,我们可以通过分配律将其简化为 A⋅(B+C)A⋅(B+C)。这样的简化有助于减少实际电路中的逻辑门数量。


四. 数字电路中的逻辑门

        逻辑门是数字电子学中的基本构建单元,它们执行特定的逻辑操作。与门(AND Gate)、或门(OR Gate)和非门(NOT Gate)是最基本的几种逻辑门。下面是这些逻辑门的定义及它们的功能:

1. 与门(AND Gate)

  • 功能: 与门有两个或更多个输入端口和一个输出端口。当所有输入都为高电平时,输出才是高电平;只要有一个输入为低电平(0),输出就是低电平(0)。
  • 数学表达式: 如果两个输入分别标记为 AA 和 BB,那么输出可以表示为 A⋅BA⋅B 或者 A∧BA∧B。
  • 真值表:
    • A=0,B=0A=0,B=0 → 输出 00
    • A=0,B=1A=0,B=1 → 输出 00
    • A=1,B=0A=1,B=0 → 输出 00
    • A=1,B=1A=1,B=1 → 输出 11

2. 或门(OR Gate)

  • 功能: 或门有两个或更多个输入端口和一个输出端口。只要有至少一个输入是高电平,输出就是高电平。只有当所有输入都是低电平时,输出才是低电平。
  • 数学表达式: 如果两个输入分别标记为 AA 和 BB,那么输出可以表示为 A+BA+B 或者 A∨BA∨B。
  • 真值表:
    • A=0,B=0A=0,B=0 → 输出 00
    • A=0,B=1A=0,B=1 → 输出 11
    • A=1,B=0A=1,B=0 → 输出 11
    • A=1,B=1A=1,B=1 → 输出 11

3. 非门(NOT Gate)

  • 功能: 非门只有一个输入端口和一个输出端口。输出总是输入的相反状态。如果输入是高电平,则输出为低电平;反之亦然。
  • 数学表达式: 如果输入标记为 AA,那么输出可以表示为 ¬A¬A 或者 A′A′。
  • 真值表:
    • A=0A=0 → 输出 11
    • A=1A=1 → 输出 00

        在数字电路中,信号被分为两个明显的状态:高电平(逻辑1)和低电平(逻辑0)。这些状态通常对应于电路中的特定电压范围。这种离散的信号处理方式使得数字电路具有很强的抗干扰能力,并且易于集成和大规模生产,广泛应用于计算机、通信设备、消费电子产品等各种现代技术中。


五. 组合逻辑电路和时序逻辑电路

        组合逻辑电路和时序逻辑电路是数字电路设计中的两大类。它们的主要区别在于是否包含记忆元件以及输出是否直接依赖于输入信号。

1. 组合逻辑电路

  1. 定义:组合逻辑电路是一种数字电路,它的输出仅由当前输入信号决定,而不依赖于之前的输入状态。
  2. 特点
    • 输出与输入之间没有延迟。
    • 不包含存储单元或记忆元件(如触发器)。
    • 输入信号一旦改变,输出就会立即反映这种变化。
  3. 组成元件:由基本的逻辑门组成,如AND门、OR门、NOT门等。
  4. 应用:用于实现各种算术和逻辑操作,如加法器、编码器、译码器等。
  5. 示例
    • 加法器:将两个二进制数相加。
    • 编码器:将多个输入信号转换成一个二进制代码。
    • 译码器:将一个二进制代码转换成多个输出信号。

2. 时序逻辑电路

  1. 定义:时序逻辑电路是一种数字电路,它的输出不仅取决于当前输入信号,还取决于电路的当前状态(即历史信息)。
  2. 特点
    • 包含存储单元或记忆元件(如触发器)。
    • 输出可能会有延迟,因为需要等待一个时钟周期以更新状态。
    • 输入信号的变化不会立即影响输出,而是要等到下一个时钟边沿。
  3. 组成元件:除了基本的逻辑门之外,还包括触发器、寄存器等。
  4. 应用:用于实现数据存储、计数、序列发生等功能。
  5. 示例
    • 触发器:最基本的存储单元,可以存储一位二进制信息。
    • 寄存器:一组触发器组成的电路,可以存储多位二进制信息。
    • 计数器:能够按一定顺序产生一系列输出的电路。
    • 有限状态机:根据输入信号和当前状态产生新的输出和状态。

3. 组合逻辑电路和时序逻辑电路区别

  • 存储能力:组合逻辑电路不具备存储能力,而时序逻辑电路包含存储单元。

  • 输出依赖性:组合逻辑电路的输出只依赖于当前输入,时序逻辑电路的输出既依赖于当前输入也依赖于之前的状态。

  • 时钟同步:组合逻辑电路不需要时钟信号,而时序逻辑电路通常需要时钟信号来同步状态更新。

        在实际应用中,组合逻辑电路和时序逻辑电路经常被结合起来使用,以实现更复杂的功能。例如,在CPU中,组合逻辑电路可以用来实现算术逻辑单元(ALU),而时序逻辑电路则用来实现寄存器文件和指令寄存器等。


六. 数字电路与模拟电路

        数字电路和模拟电路是两种主要类型的电子电路,它们的主要区别在于处理信号的方式以及应用领域。

1. 数字电路(数字电路的定义)

        数字电路处理的是离散的、二进制形式的信息。在数字电路中,信号只有两种状态:高电平(通常表示为1)和低电平(通常表示为0)。上面有提到

1. 数字电路的特点

  1. 抗干扰性强:数字信号不容易受到噪声的影响,可以通过再生来恢复原始信号。
  2. 易于存储和处理:数字信号可以通过计算机和其他数字设备进行存储、处理和传输。
  3. 易于集成:数字电路可以大规模集成,实现复杂的逻辑功能。
  4. 标准化:数字电路遵循标准的信号电平和接口协议,便于不同设备间的互连。

2. 数字电路的应用场景

  1. 计算机系统:CPU、内存、输入输出接口等。
  2. 通信系统:数字信号处理、调制解调器等。
  3. 消费电子:智能手机、平板电脑、电视机顶盒等。
  4. FPGA设计:可编程逻辑器件用于实现各种数字逻辑功能。

3. 其它

  1. 信号类型:数字电路处理的是离散的、数字化的信号,这些信号通常是二进制形式的,即只有两个可能的状态:0 和 1。
  2. 工作原理:数字电路的工作基于布尔代数和逻辑门的概念,如AND门、OR门和NOT门等。
  3. 精度:数字电路具有很高的精度和可靠性,因为它们的输出状态是确定的,不容易受到噪声的影响。
  4. 功耗:数字电路在不活动状态下功耗较低,但在频繁转换状态时可能会消耗较多能量。

2. 模拟电路(模拟电路的定义)

        模拟电路处理的是连续变化的信号,即信号的幅度可以取任意值。模拟信号的变化是平滑的,没有离散的跳变。

1. 模拟电路的特点

  1. 精度高:模拟电路可以非常精确地表示信号的变化。
  2. 适合信号处理:非常适合用于音频、视频等信号的放大、滤波和处理。
  3. 设计复杂:模拟电路的设计通常比数字电路更复杂,需要考虑许多物理效应。
  4. 易受噪声影响:模拟信号容易受到噪声的影响,需要采取措施来抑制噪声。

2. 模拟电路的应用场景

  1. 音频和视频处理:音频放大器、视频信号处理等。
  2. 传感器信号处理:温度、压力、光线等传感器信号的放大和滤波。
  3. 电源管理:稳压器、开关电源等。
  4. 通信系统:射频放大器、混频器等。

3. 其它

  1. 信号类型:模拟电路处理的是连续变化的信号,这些信号可以取任何值,通常表示为电压或电流的变化。
  2. 工作原理:模拟电路利用了线性和非线性元件的特性,如晶体管、电阻、电容等,来放大、滤波、转换信号。
  3. 精度:模拟电路的精度取决于电路设计和元件的质量,容易受到噪声和温度等因素的影响。
  4. 功耗:模拟电路通常需要持续供电才能保持其功能,因此功耗相对较高。

3. 数字电路与模拟电路的区别

  1. 信号处理方式:数字电路处理的是离散的、数字化的信号;而模拟电路处理的是连续变化的信号。

  2. 抗干扰能力:数字电路具有更好的抗干扰能力,而模拟电路更容易受到噪声的影响。

  3. 设计复杂度:数字电路的设计通常更加模块化和标准化,而模拟电路的设计往往更为复杂和依赖于特定的应用需求。

  4. 应用范围:数字电路主要用于数据处理、计算和通信等领域;模拟电路则更多地应用于信号处理和电源管理等方面。

        数字电路和模拟电路各有其特点和应用场景。数字电路以其抗干扰能力强、易于集成和处理的优势,在计算机科学和通信领域占据主导地位。而模拟电路以其高精度和信号处理能力,在信号处理和控制系统中发挥着重要作用。

        在实际应用中,往往需要将两者结合起来使用,以发挥各自的优势。通常会协同工作,例如在微控制器中,数字电路负责逻辑处理,而模拟电路则可能用于信号调理或电源管理等功能。

创作不易,感觉有用,就一键三连,感谢(●'◡'●)

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

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

相关文章

【AI】Ollama+OpenWebUI+llama3本地部署保姆级教程,没有连接互联网一样可以使用AI大模型!!!

1 电脑配置 操作系统CPU内存Windows 10以上12核16GB 2 安装Ollama 2.1 下载Ollama 登录Ollama官网下载Ollama安装包 GitHub:https://github.com/ollama/ollama?tabreadme-ov-file 2.2 安装Ollama Windows下安装Ollama很简单,双击运行安装文件即…

ES6笔记总结(Xmind格式):第三天

Xmind鸟瞰图: 简单文字总结: ES6知识总结: Promise的使用: 1.使用 new Promise() 构造函数来创建一个 promise 对象 2.接受两个函数作为参数:resolve 和 reject ①resolve 函数在异步操作成功完成时调用&#xf…

[000-01-022].第06节:RabbitMQ中的交换机介绍

1.什么是Exchanges(交换机): 1.RabbitMQ 消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。实际上,通常生产者甚至都不知道这些消息传递传递到了哪些队列中2.生产者只能将消息发送到交换机(exchange),交换机工作的内容非常…

Axure版需求文档:原型版PRD模板

行业原型预览链接:(请与班主任联系获取原型文档) 文件类型:.rp 支持版本:Axrure RP 8 文档名称:Axure需求规格说明书-PRD模版 文件大小:3.50 MB 目录内容介绍 文档内容介绍 回复 “211103”…

设计师具备怎样的专业素养,才能走得更远?

设计师具备怎样的专业素养,才能走得更远? 带着这样的思考,我们邀请到莱佛士设计学院知名校友Regina Fang——新加坡独立品牌NEWFOUND纽方品牌创始人,为大家解读设计师在学习技能以及创业的过程,需要具备怎样的专业素养…

九、 系统安全(考点篇)试题

信息安全系统:技术方面有了,管理方面有了,看选项里,A、C、D都是需求跟安全扯不上多大关系。选B 备份和恢复跟安全沾边,迁移是旧系统数据迁到新系统,测试跟安全更远了。选C 选D机密性;选D可控性…

城市轨道交通能耗管理

随着城市轨道交通线网规模的扩大,其能源消耗也日益增加。车站作为城市轨道交通系统的“单元”,能耗管理效应的发挥主要从“车站”人手。同时,为助推国家双碳战略目标实施,文章结合《中国城市轨道交通智慧城轨发展纲要》及应用需求…

fragment生命周期

fragment生命周期 onAttach()始终在任何Lifecycle 状态更改之前调用,所以onAttach()在onCreate()之前调用。 onAttach(): Fragment 被附加到 Activity 时调用。在这个阶段,Fragment 可以获取 Activity 的上下文。 onCreate(): 在 Fragment 创建时调用…

旅游巴士(bus)【CSPJ2023】

题目描述 小Z 打算在国庆假期期间搭乘旅游巴士去一处他向往已久的景点旅游。 旅游景点的地图共有n 处地点,在这些地点之间连有m 条道路。其中1 号地点为景区入口,n 号地点为景区出口。我们把一天当中景区开门营业的时间记为0 时刻,则从0 时刻…

[大模型]Conda在线安装-Langchain-Chatchat-V0.3

文章目录 官方仓库地址历史问题 使用conda在线安装启动项目疑问解答为什么运行命令是chatchat? 移动conda与重命名conda 官方仓库 地址 https://github.com/chatchat-space/Langchain-Chatchat历史问题 问题中可能包含着旧版本(Langchain-Chatchat-V0…

打通Vue3+Flask(python3)+Mysql-实现简单数据交互

一、需要准备的工具 下载python3,Vscode,pycharm(这里用的社区版),phpstudy_pro,Node.js(建议下载长期支持版本,版本不宜过低,比如18,20),Vue.js…

LearnOpenGL——HDR、Bloom学习笔记

LearnOpenGL——HDR、Bloom学习笔记 HDR一、基本概念二、浮点帧缓冲 Floating Point Framebuffer三、色调映射 Tone MappingReinhard色调映射曝光色调映射 Bloom一、提取亮色二、高斯模糊三、将两个纹理进行混合 HDR 一、基本概念 显示器被限制只能显示0.0-1.0的颜色&#xf…

“AI+Security”系列第2期(四):AI/机器学习供应链攻击

近日,由安全极客、Wisemodel 社区和 InForSec 网络安全研究国际学术论坛联合主办的“AISecurity”系列第二期线上活动如期举行。此次活动的主题为“对抗!大模型自身安全的攻防博弈”,旨在深入探讨和分析人工智能和机器学习领域中的安全问题。…

武汉流星汇聚:亚马逊返校季学习用品热销,精准布局助力卖家成功

随着夏日的余温逐渐消散,新学期的钟声悄然临近,家长与学生们纷纷投入到新学期的准备工作中,而亚马逊作为全球领先的电商平台,再次迎来了学习用品销售的火爆季节。数据显示,过去30天内,“back to school”&a…

罗德与施瓦茨(RS)RTP164、RTP134,RTP084,RTP064示波器

罗德示波器系列RTP164租赁RTP134收购RTP084/RTP064/RTP034 概述 数字示波器是数据采集,A/D转换,软件编程等一系列的技术制造出来的高性能示波器,是电子类学科设计、制造和维修产品过程中不可或缺的工具。R&SRTP164示波器可以提供16GHz的…

U盘安装Ubuntu24.04,乌邦图,UltralISO

文章目录 前言通过UltraISO,制作启动U盘下载镜像制作工具UltraISO(软碟通)下载ubuntu镜像文件制作启动U盘 安装ubuntu设置root密码,并登陆root 前言 在Ubuntu作为主流的linux系统,有时候使用VMware安装使用,总归有一定的性能损耗…

深度学习 --- VGG16各层feature map可视化(JupyterNotebook实战)

VGG16模块的可视化 VGG16简介: VGG是继AlexNet之后的后起之秀,相对于AlexNet他有如下特点: 1,更深的层数!相对于仅有8层的AlexNet而言,VGG把层数增加到了16和19层。 2,更小的卷积核!…

大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

C语言与Python的区别

一、言语类型Python是一种基于解说器的言语,解说器会逐行读取代码;首先将Python编译为字节码,然后由大型C程序解说;C是一种编译言语,完好的源代码将直接编译为机器代码,由CPU直接履行。 二、内存办理Python…

寄蜉蝣于天地,渺沧海之一粟

工具 1、Zulip 一个开源的群聊软件,有服务端和各种平台的客户端。 2、win-vind 这个工具为 Windows 系统提供 Vim 风格的快捷键,也可以把它当作 Windows 的快捷键设定器。 3、canvas-confetti 在网页上抛洒五彩纸屑的 JS 库。 4、WR.DO 一个开源的 W…