FPGA的可编程逻辑单元(LUT和寄存器)

这篇具有很好参考价值的文章主要介绍了FPGA的可编程逻辑单元(LUT和寄存器)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结

前言

1.根据PLD器件单片集成度的高低,可将PLD分为低密度可编程逻辑器件和高密度可编程逻辑器件。

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

2.按器件结构类型划分

        目前常用的可编程逻辑器件都是从“与-或阵列”和“门阵列”两类基本结构发展起来的,所以可编程逻辑器件从结构上可分为两大类:

        (1)乘积项结构器件。其基本结构为“与-或阵列”的器件。简单PLD、EPLD和CPLD都属于此类器件。

        (2)查找表结构器件。其基本结构类类似于“门阵列”的器件,它由简单的查找表组成可编程逻辑门,再构成阵列形式。大多数FPGA属于此类器件

3.掉电后

(1)CPLD。掉电后重新上电还能保持编程信息的器件。

(2)FPGA。掉电后不能保持编程信息的器件。

FPGA的基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的。

一、存储器和寄存器的区别?

存储器和寄存器的区别是:

1、存储器功能:存放指令和数据,并能由中央处理器(CPU)直接随机存取。

2、寄存器功能:可将寄存器内的数据执行算术及逻辑运算;存于寄存器内的地址可用来指向内存的某个位置,即寻址;可以用来读写数据到电脑的周边设备。

3、寄存器的速度比主存储器的速度要快很多,由于寄存器的容量有限,所以将不需要操作的数据存放在主存储器中,主存储器中的数据必须放入寄存器材能够进行操作。

4、简单地说:寄存器是操作数据的地方,存储器是存放数据的地方。

5、寄存器一般是指由基本的RS触发器结构衍生出来的D触发,就是一些与非门构成的结构,一般整合在CPU内,其读写速度跟CPU的运行速度基本匹配,但因为性能优越,所以造价昂贵,一般好的CPU也就只有几MB的级缓存,级缓存更小。

 二、移位寄存器

        移位寄存器是一种时序逻辑电路,能够存储和传输数据。它们由触发器组成,这些触发器的连接方式使得一个触发器的输出可以作为另一个触发器的输入,具体取决于所创建的移位寄存器的类型。移位寄存器基本上是一种能够传输(“移位”)数据的寄存器。寄存器通常是存储设备,它们是通过将特定数量的触发器串联在一起而创建的,并且寄存器可以存储的数据量(位数)始终与触发器的数量成正比,因为每个触发器一次只能存储一个bit。当寄存器中的触发器以这样的方式连接时,一个触发器的输出成为另一个触发器的输入,就会创建一个移位寄存器

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 触发器是具有类似于闩锁操作的设备,被称为双稳态电路,有两个稳定的状态,即0或1,并且能够以bit为单位存储数据。每当D触发器的时钟发生变化时(上升沿或下降沿,取决于触发器的规格)。输出“Q”处的数据与输入“D”处的数据相同。触发器的输出“Q”将保持在该值,直到下一个时钟周期,然后它将再次更改为输入处的值(1或0)。

1.串行输入—串行输出移位寄存器

串行输入 – 串行输出移位寄存器,它以串行方式(每个时钟周期一位)流式传入数据,并以相同的方式逐个流出数据。

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 

一个简单的4位串行输入 – 串行输出移位寄存器如上所示,寄存器由4个触发器组成,其工作原理如下所述;

启动时,首先复位移位寄存器,所有触发器的输出为零,然后将输入数据串行施加到输入端,一次一位。

下图显示了数据1101如何从串行输入—并行输出

第一个周期

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 第二个周期

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 第三个周期

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 第四个周期

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 

2.串行输入—并行输出移位寄存器

这类移位寄存器用于将数据从串行转换为并行。每个时钟周期的数据一个接一个地输入,这意味着当数据被读入时,每个读入位在其各自的输出线上同时输出(Q0 – Q3,对于如下所示的4位移位寄存器)。4位串行输入—并行输出移位寄存器如下图所示。

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 

4 人赞同了该文章

什么是移位寄存器:

移位寄存器是一种时序逻辑电路,能够存储和传输数据。它们由触发器组成,这些触发器的连接方式使得一个触发器的输出可以作为另一个触发器的输入,具体取决于所创建的移位寄存器的类型。移位寄存器基本上是一种能够传输(“移位”)数据的寄存器。寄存器通常是存储设备,它们是通过将特定数量的触发器串联在一起而创建的,并且寄存器可以存储的数据量(位数)始终与触发器的数量成正比,因为每个触发器一次只能存储一个bit。当寄存器中的触发器以这样的方式连接时,一个触发器的输出成为另一个触发器的输入,就会创建一个移位寄存器。

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

移位寄存器

触发器是具有类似于闩锁操作的设备,被称为双稳态电路,有两个稳定的状态,即0或1,并且能够以bit为单位存储数据。每当D触发器的时钟发生变化时(上升沿或下降沿,取决于触发器的规格)。输出“Q”处的数据与输入“D”处的数据相同。触发器的输出“Q”将保持在该值,直到下一个时钟周期,然后它将再次更改为输入处的值(1或0)。

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

D触发器

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

D触发器功能

数字电路中的寄存器类型

移位寄存器主要根据其工作模式(串行或并行)分为几类。下面列出了几种基本移位寄存器,尽管其中一些可以根据数据流的方向进一步划分,右移或者左移。

1. 串口输入—串口移位寄存器 (SISO)2. 串行输入—并行输出移位寄存器 (SIPO)3. 并联输入—并联输出移位寄存器 (PIPO)4. 并联输入—串行移位寄存器 (PISO)5. 双向移位寄存器

1. 串行输入—串行输出移位寄存器

串行输入 – 串行输出移位寄存器,它以串行方式(每个时钟周期一位)流式传入数据,并以相同的方式逐个流出数据。

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

移位寄存器

一个简单的4位串行输入 – 串行输出移位寄存器如上所示,寄存器由4个触发器组成,其工作原理如下所述;

启动时,首先复位移位寄存器,所有触发器的输出为零,然后将输入数据串行施加到输入端,一次一位。

下图显示了数据1101如何从串行输入—并行输出

第一个周期

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

第二个周期

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

第三个周期

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

第四个周期

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

2. 串行输入—并行输出移位寄存器

这类移位寄存器用于将数据从串行转换为并行。每个时钟周期的数据一个接一个地输入,这意味着当数据被读入时,每个读入位在其各自的输出线上同时输出(Q0 – Q3,对于如下所示的4位移位寄存器)。4位串行输入—并行输出移位寄存器如下图所示。

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

下图显示了数据1001如何从串行输入-并行输出

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 

3. 并行输入—串行输出移位寄存器

在并行输入—串行输出移位寄存器中,数据是并行输入的,例如如下所示的4位寄存器。该寄存器可用于存储和移位4bit数据,WS控制控制移位寄存器的工作模式(写入/移位)。当WS控制线为低电平(写入模式)时,数据可以通过D0到D3写入寄存器。为了连续地将数据移出,WS控制线被置于HIGH(移位模式),然后寄存器在时钟输入时将数据移出。

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 4. 并行输入—并行输出移位寄存器

对于并联输入– 并联输出移位寄存器,并行输出端的输出数据在输入数据输入时同时出现。当器件计时时,从D0到D3的每个输入引脚的输入数据同时输入,同时,从每个输入的数据在相应的输出(从Q0到Q3)处输出。

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 三、查找表LUT

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

 

为了解决传统逻辑电路的的问题,在FPGA中,使用LUT来实现组合逻辑电路的功能。 LUT 本质上是一个SRAM,里面存储的数据类似于真值表,它将上例中的逻辑与门和或门分别使用两张类似于真值表的东西代替,LUT中保存着输入变量和经过逻辑门后输出变量的所有结果。在实现上,它将输入数据作为SRAM的地址,然后通过该地址找到对应的值,将该值作为结果输出。比如上例中的与门,在该与门对应的LUT中,地址为0、0的存储单元中保存着0,地址为0、1的存储单元中保存着0,地址为1、0的存储单元中保存着0,地址为1、1的存储单元中保存着1;当输入变量为0、1时,就会直接将LUT中地址为0、1的存储单元中的0输出。 上例中查找表构成的电路:

该组合逻辑的真值表:

lut只能左移是怎么实现的呢,python,开发语言,fpga开发

如果使用传统的数字电路的方法,则要实现该组合逻辑电路,需要经过下面几个过程: 
通过真值表得到输入和输出之间的逻辑关系;通过化简卡诺图得到描述输入输出变量关系的逻辑表达式;通过逻辑电路实现逻辑表达式。 
众所周知,在设计时序电路时,时序电路的工作性能极为重要。然而,采用传统逻辑门电路实现逻辑关系的方法存在一些严重的缺点: 
输入变量从通过逻辑电路到输出变量,存在一定的延迟,该延迟的大小和逻辑电路的复杂程度密切相关。逻辑电路越复杂,延迟越大,因此,延迟是不确定的;延时的倒数是频率,频率和时序电路的工作速率密切相关。因为延迟不确定,所以频率也不确定,这将严重影响整个电路的工作性能;逻辑电路的复杂程度和输入逻辑变量的个数、逻辑门的个数有关。因此输入逻辑变量越多,逻辑电路就越复杂。
为了解决传统逻辑电路的的问题,在FPGA中,使用LUT来实现组合逻辑电路的功能。

LUT 本质上是一个SRAM,里面存储的数据类似于真值表,它将上例中的逻辑与门和或门分别使用两张类似于真值表的东西代替,LUT中保存着输入变量和经过逻辑门后输出变量的所有结果。在实现上,它将输入数据作为SRAM的地址,然后通过该地址找到对应的值,将该值作为结果输出。比如上例中的与门,在该与门对应的LUT中,地址为0、0的存储单元中保存着0,地址为0、1的存储单元中保存着0,地址为1、0的存储单元中保存着0,地址为1、1的存储单元中保存着1;当输入变量为0、1时,就会直接将LUT中地址为0、1的存储单元中的0输出。
上例中查找表构成的电路: 

lut只能左移是怎么实现的呢,python,开发语言,fpga开发


 

 

总结

使用LUT代替传统的逻辑门实现组合逻辑的优点:文章来源地址https://www.toymoban.com/news/detail-827386.html

  1. 通过LUT代替组合逻辑,而LUT中的值只和输入有关,因此组合逻辑的功能由输入决定,不在和复杂度有关;
  2. LUT实现的组合逻辑的延迟是固定的。

到了这里,关于FPGA的可编程逻辑单元(LUT和寄存器)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 可编程逻辑阵列PLA

    一、集成电路的发展和现状        随着电子技术的发展,人类社会已进入数字时代,数字系统广泛应用于计算机、数据处理、通信与测量等领域,在我们日常生活中起着越来越重要的作用。由于数字系统比模拟系统有更高的精确度和可靠性,以前用模拟系统完成的许多任务

    2023年04月08日
    浏览(37)
  • 可编程逻辑器件之数码管显示实验

    一、实验目标 能够熟练的进行可编程逻辑器件开发,能够通过具体工程需求进行需求分析、模块划分、代码编写、功能仿真、综合分析、板级验证,能够独立正确的进行实验操作,培养学生的工程实践研究能力和动手实践能力,具备借助可编程逻辑器件开发平台和仿真工具科

    2024年02月02日
    浏览(121)
  • 什么是 FPGA(现场可编程门阵列)?

    现场编程门阵列是一种由半导体材料制成的集成电路,用户购买后可以重新编程或配置,而不是单独由原始设备制造商(OEM)进行。 现场可编程门阵列 (FPGA) 是一种半导体器件,由与可编程互连相结合的可配置逻辑块 (CLB) 网格构成。制造完成后,FPGA 可以重新编程以满足特定

    2024年02月19日
    浏览(49)
  • 钡铼技术集IO数据采集可编程逻辑控制PLC无线4G环保物联网关

    背景        数据采集传输对于环保企业进行分析和决策是十分重要的,而实时数据采集更能提升环保生产的执行力度,从而采取到更加及时高效的措施。因此实时数据采集RTU成为环保企业的必备产品之一。 产品介绍 在推进环保行业物联网升级过程中,环保RTU在环保方面发

    2024年02月03日
    浏览(45)
  • Verilog实现FPGA可编程电路中的RAM存储器

    Verilog实现FPGA可编程电路中的RAM存储器 在FPGA可编程电路的设计中,RAM存储器通常被广泛使用。而手写RAM存储器则可以提供更加灵活、高效的设计方案。本文将介绍如何使用Verilog语言来手写FPGA中的RAM存储器。 首先,我们需要确定RAM存储器的大小和宽度。假设我们需要实现一个

    2024年02月04日
    浏览(53)
  • XILINX XC7A200T-2FBG676C PLC可编程逻辑控制器

    FPGA, Artix-7, MMCM, PLL, 400 I/O, 628 MHz, 215360单元, 950 mV至1.05 V, FCBGA-676 XILINX Artix®-7 FPGA系列是一款高性价比FPGA,提供高性能/功耗比, 高收发器线路速率, DSP处理,集成AMS。该系列具有MicroBlaze™软处理器, 支持1066Mb/s DDR3,是成本和功耗敏感应用的最佳选择,例如软件定义无线电

    2024年02月07日
    浏览(46)
  • 【ARM微控制器】STM32L486VGT6【FPGA】XC3S700A-4FTG256I现场可编程门阵列基本介绍

    STM32L486VGT6是超低功耗微控制器,基于高性能的 ARM®Cortex®-M4 32 位 RISC 内核,工作频率高达 80MHz。Cortex-M4 内核具有单浮点单元(SFPU)精度,支持所有 ARM 单精度数据处理指令与数据类型。同时执行全套 DSP 指令和存储保护单元(MPU),增强应用安全性。 核心处理器:ARM® Cort

    2023年04月09日
    浏览(43)
  • ZedBoard+AD9361_FPGA的PL端纯逻辑(verilog)配置控制9361(一)_初始化寄存器脚本文件生成

    由于9361的寄存器较多,首先利用AD936X Evaluation Software 软件,根据我们的项目需求,配置相应的功能参数,生成寄存器参数配置文件。 我建议大家选择安装AD936X Evaluation Software 2.1.3版本,下载安装软件,一路点击下一步即可完成安装。软件安装包:百度网盘  提取码:mww7 安装

    2024年02月13日
    浏览(41)
  • DPU — 完全可编程网络

    类比的,完全可编程平台就像 “智能手机” 一样,手机(硬件)是一个平台,上面的 APP(业务)完全由用户自己决定。 完全可编程的原则: 软件定义一切,硬件加速一切。 业务逻辑可实现。 抽象硬件,编程接口统一。 但实际上,目前的 DPU 产品仍处于 “功能机” 的阶段

    2023年04月08日
    浏览(47)
  • 【嵌入式】MKV31F512VLL12 微控制器 (MCU) 、Cyclone® IV E EP4CE10E22I8LN,FPGA-现场可编程门阵列芯片

    1、MKV31F512VLL12  微控制器 (MCU) 是适用于BLDC、PMSM和ACIM电机控制应用的高性能解决方案。这些MCU采用运行频率为100MHz/120MHz、带数字信号处理 (DSP) 和浮点单元 (FPU) 的ARM® Cortex®-M4内核。KV3x MCU配备两个采样率高达1.2MS/s的16位ADC、多个控制定时器以及512KB闪存。  特性: 120MHz Cor

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包