【TI C2000TM CLB简介】

@TI C2000系列 可配置逻辑模块CLB总结笔记

1前言

你好! 欢迎浏览我的新专题 TI C2000可配置逻辑块CLB

C2000系列中的CLB 模块本质是将FPGA 的一些功能集成到了DSP 当中,其最大的好处是能够对EPWM、ECAP、EQEP 及外部输入部分信号进行逻辑处理,将输出的信号给到EPWM、XBAR 以及别的模块当中。这使得工程师们再利用单片DSP 的情况下,有更大的自由度去实现一些复杂的逻辑,减少外围的逻辑门。
TI C2000系列CLB(Configurable Logic Block)模块是一种基于硬件的可编程逻辑单元,用于快速实现复杂的数字逻辑功能。CLB模块具有高度灵活性和可编程性,可以应用于多种数字信号处理应用场景,例如:
通信系统:用于协议转换、多路复用、解调、调制等数字信号处理功能。
工业自动化:用于实现控制算法、逻辑控制、状态机等自动化控制功能。
医疗设备:用于实现信号处理、数据采集、控制等功能,如医疗成像设备、医疗监护仪等。
汽车电子:用于实现多种车载电子控制功能,例如发动机控制、变速器控制、车身控制等。
飞行控制:用于实现飞行控制算法、传感器数据采集和处理等功能,例如无人机、机载电子设备等。
总之,CLB模块具有广泛的应用场景,可以应用于各种数字信号处理应用,以提高系统的性能、可靠性和灵活性。
可配置逻辑块

1.1应用前景

通常工业控制系统需要定制控制逻辑时,由于单个MCU 的外设不能够满足控制需求,通常需要配备FPGA、CPLD 或外部逻辑组件来完成。使用可配置逻辑块( Confinable Logic Block,CLB),可以实现自定义逻辑,甚至可以增强现有的 C2000外设,如 PWM、ECAP、正交编码器和 GPIO。可以将关键功能集成到单个 C2000单片机中,并减小或完全取代 FPGA、 CPLD 或外部逻辑组件。
C2000系列MCU结构
C2000实时控制器,是高性能微控制器系列32CPU,不同的数学加速器,闪存,PWM,通信端口,和专门模拟接口。这些都是为控制电力电子设备专门设计的,并为工业和汽车应用提供先进的数字信号处理。
CLB外设结构使用CLB外设,可以实现自定义逻辑并增强现有的C2000外设,如我们的pwm、捕获器、正交编码器和gpio。这可以使您能够将关键功能集成到一个2000 MCU中,并减少或完全消除FPGA, CPLD或外部逻辑组件。

2 可配置逻辑块结构

CLB内部结构
设备上的每个CLB tile都由查找表、有限状态机、计数器、输出查找表和高级控制器组成。给定设备上最多有8个这样的CLB tile。这些tile可以独立使用,也可以组合在一起用于更复杂的功能。

2.1 CLB的系统结构

CLB系统结构
如图所示,根据您选择的设备,最多包含有八个CLB模块,而且芯片内有很好的CLB互连。例如,如果您想要获取某些GPIO和外部输入,您可以获取这些输入并通过CLB输入的XBAR加载它们,或者您也可以从各种外围设备(如受控外围设备ePWM、eQEP、eCAP或某些其他外围设备)中选择输入,然后通过CLB传递它们。
CLB可以使用自定义的逻辑处理这些信号,并生成各种输出。反过来,这些输出可以被路由回它们各自所属的外围设备,如ePWM和eCAP,或者您也可以选择使用XBAR将它们从芯片中发送出去。可选地,您还可以将一个CLB的输出作为输入发送到另一个CLC,并使用多个CLB类型创建级联逻辑和更复杂的实现。
因此,CLB可以与自己的输入和输出独立使用,或者它可以通过从外设获取信号并在现有特征集上和周围添加附加功能来增强现有外围设备的功能。使用CLB设计的最大的好处是,您不再需要担心定时关闭。与FPGA或CPLD不同,当您实现逻辑时,您必须检查它是否满足时序要求。但是CLB的设计方式是,CLB下的任何逻辑都可以保证在100MHz下工作。

2.2 CLB内部组成结构

CLB内部组成结构
CLB由三个32位计数器、三个FSM(FSM代表有限状态机)、三个四输入LUT(LUT是查找表)和八个三输入LUT组成。除此之外,还有一个高级控制器。因此,它有HLC,在每种类型中它都像一个小型处理器
我将在后面的幻灯片中详细介绍这些块中的每一个,但为什么我们在这里将其称为可配置逻辑块,对吗?这些块中的每一个,这些子块中的每个,如有限状态机、LUT、HLC等,所有这些块的功能都是可配置的。不仅如此,这些块之间的互连也是完全可配置的。类似地,我可以将FSM的输出发送回计数器,或者将计数器的输出发送到LUT,将LUT输出发送到OUTLUT,或者它可以基于子块的任何输出在HLC中触发事件。这就是它非常可配置的原因。
每个Tile都有八个输入。正如我在上一张幻灯片中所展示的,您可以从设备内部的各个位置获取信号,并将它们作为输入发送到CLB,然后它还会生成八个相应的输出。除了可配置的功能外,您还可以对输入执行某些功能,如过滤输入、上升沿检测、下降沿检测或同步。
CLB与CPU数据交换
CLB还能够与CPU交换数据。CLB可以将数据推送到某个缓冲区,CPU可以读取数据,CPU可以推送数据,CLB可以读取数据。所有这些都是通过HLC接口实现的。此外,CLB还具有使用HLC生成感兴趣事件的能力。

2.3 LUT4

LUT4四输入查找表现在,我们将详细介绍这些子块中的每一个。让我们先看看四输入LUT块。LUT块有四个输入和一个输出,任何四个输入一个输出都可行的组合函数都可以使用LUT来实现。您可以以方程式的形式输入。任何你感兴趣的方程式,你都可以写。稍后您将看到如何使用该工具编写这些方程。基本上,这些是关于位运算的任何有效的C语法公式。任何事情都可以使用LUT实现。
LUT的所有输入——I0、I1、I2、I3同样可以来自CLB输入或来自CLB内其他子块的输出。类似地,LUT的输出可以被馈送到任何地方。CLB的输出是CLB内其他子块的输入。在三输入LUT中,上一张幻灯片中所示的L3也非常相似。只是它有三个输入和一个输出。

2.4 FSM

FSM
在**FSM(有限状态机)**上——像LUT一样,FSM可以用于实现顺序函数。正如您所看到的,FSM中有两个内存元素——S0、S1、触发器。这就是状态位。因此,使用S0和S1,您可以实现多达四种状态的[ADIO OUT]机器,如00、01、10和11。同样,每个状态的状态转换和输出都是完全可配置的。用户可以使用输入和当前状态提供方程,以生成下一状态输出。
FSM具有E0和E1输入,可用作事件触发器。例如,当E0变高时,我可以将状态从00更改为01,或者当E1变高时,将状态从10更改为11。这样,您可以为每个状态转换定义方程式,也可以在每个状态中定义唯一的输出。这将是它们的三个输出——S0、S1和输出的状态。
同样,所有这些输入都可以来自 CLP 中的任何地方,其他子块的输出就是 CLB 的输入。输出可以反过来路由到任何其他位置。您还可以看到有 XE0和 XE1输入。如果您不想在您的应用程序中使用 FSM,但是您需要多一个 LUT,那么在您不使用有限状态机函数的情况下,这也可以作为一个四输入的 LUT。

2.5 Counter

Counter
计数块Counter。如前所述,每个 CLB Tile上有三个32位计数器,这个32位计数器有四个输入——REST、MODE_0、MODE_1和EVENT——以及三个输出——即MATCH1、MATCH2和ZERO。所以重置输入和模式0,模式1,所有这些都可以来自任何地方——同样,像任何其他块一样。它可以来自 CLB 输入或 CLB 内部其他子块的任何输出。
顾名思义,重置就像清除计数器。无论何时断言重置输入,计数器都是低的。模式0和模式1:模式0,作为计数器的启动器,模式1定义计数的方向,无论是向上还是向下计数。
您可以选择设置两个32位匹配参考值。例如,如果我将匹配引用设置为10,并且当计数器的值达到10时,我将得到匹配一输出。类似地,匹配2也可以用作另一个匹配参数。这是一个简单的计数器功能,但计数器有几个附加功能。如果我不想将它用作简单的计数器,我可以选择将它用作加法器、减法器或右移和左移操作。为此,使用事件输入,并将负载值与事件输入结合使用。
例如,如果我想向计数器添加某个偏移量,则会发生一个事件。因此,当事件发生时,事件输入变高。加载值将附加到现有的当前计数器值。所以它是一个非常灵活的模块,超越了简单的计数器功能。

2.6 HLC

HLC
HLC,是高级控制器。正如我前面提到的,它是事件处理块。它就像嵌入在每个Title里的一个小型 CPU,它有四个输入—0,1,2,3。这四个输入有四个相应的程序。所以事件0—当事件0发生时,程序0被执行,当事件1发生时,程序1被执行,依此类推。

而且有一些指示是有限制的。提供了大约八个部分。这个块的主要目的是增强 CLB 可配置资源的能力,在任何突发事件发生时,我们可以使用一个小程序将数据移动到 CPU 或添加操作的使用,等等。这些事件输入(事件0、1、2和3)可以来自 CLB 中的任何输入,也可以来自 CLB 中任何其他子块的输出。

一旦事件发生,相应的程序就会被执行。这些程序可以用来移动数据进出 CPU 或移动到计数器块,并读取计数器值,等等。您还可以选择性地生成一个中断,该中断与相应的标记相对应,并且中断被排序到 CPU。因此,HLC 反过来又为仍然可重新配置的资源增加了一定程度的复杂性,使我们能够实现更复杂的功能。

3 CLB可实现的功能

可配置逻辑块有无数种使用方式。以上只是一些可以实现的功能示例。例如,高级PWM保护方案,复杂或自定义PWM生成。可以通过设计使脉冲消失或变薄。可以进行信号捕获和检测、智能滤波和信号调理。可以创建脉冲序列输出。甚至可以做绝对的编码器接口,如Tamagawa t-格式,EnDat或bis。这还只是皮毛。CLB的美妙之处在于它灵活地实现了我们设想的东西。

3.1 CLB 的优势

TI C2000系列CLB模块和CPLD(Complex Programmable Logic Device)是两种不同的可编程逻辑单元,它们有不同的优势和适用场景。
相对于CPLD,TI C2000系列CLB模块有以下优势:

  1. 更高的性能 :CLB模块使用了高速的内部交叉连接和优化的逻辑单元,可以实现更高的时钟速度和更快的逻辑响应;
  2. 更灵活的编程方式 :CLB模块支持多种编程方式,包括硬件描述语言(如Verilog、VHDL)、C语言和图形化编程工具,可以根据具体应用需求选择最适合的编程方式;
  3. 更高的可扩展性 :CLB模块支持多个模块级联,可以灵活地扩展逻辑功能和输入输出接口;
  4. 更低的功耗 :CLB模块使用先进的功耗管理技术和低功耗设计,可以在高性能的同时降低功耗;

与外部组件相比,使用CLB的一些优点是,很明显,您可以将此功能集成到单个设备上,而不必使用第二个外部组件。此外,因为CLB tile本身位于我们的微控制器内部,因此CLB可以直接访问内部的所有内容,包括所有的键、CPU和外围信号。
它可以访问的这些内部信号可以用来补充或修改内部的逻辑,甚至是现有的控制外围设备,或者与外部的逻辑紧密结合。在CLB内部,简单的可编程处理器将促进CLB外设和CPU内存之间的数据传输。有四个存储的程序可以被任意一个选定的CLB信号的转换触发。
现在,这里的关键是在CLB信号的计时,它已经被我们设计成在指定的CPU频率下工作。因此,使用CLB创建的任何逻辑都已经保证满足任何时序要求。你不需要做任何特殊的事情,就像你可能需要在FPGA上做的那样。
这完全是软件可配置的。这样即使在系统中,即使在已部署的系统中也可以改变。本质上,你可以做一个软件补丁来改变CLB的配置和它所提供的逻辑。

总之,相对于CPLD,TI C2000系列CLB模块具有更高的性能、更灵活的编程方式、更高的可扩展性和更低的功耗,适用于需要高性能、低功耗和灵活编程的应用场景。

4.应用示例

CLB应用
这是CLB用于伺服驱动器的一个例子。有图可看出伺服驱动器具备很多功能。因此,CLB可以用于PWM产生,为您的逆变器创建非常定制的东西。CLB实际上可以用在很多地方来增强设备的能力。
基于芯片上的模拟比较器,它可以用于保护逆变器的保护机制。这个逻辑可以在设备内部完成,基本上,在硬件-软件中,而不是使用外部组件。它可用于位置传感器的管理。所以实现一些绝对编码器标准在伺服驱动器的转子位置传感器中非常流行。
它甚至可以用于创建脉冲串输出等通信功能,然后可以用于与可编程逻辑控制器等通信。因此,您可以看到CLB函数具有很大的灵活性。它可以用于增强完整控制系统的不同方面。

5 总结

TI C2000系列CLB模块和FPGA、CPLD是不同的可编程逻辑单元,它们各有优劣,不能完全取代对方。在控制系统中,选择合适的可编程逻辑单元应根据具体应用需求和技术特点来选择。
在某些应用场景下,TI C2000系列CLB模块可以取代FPGA或CPLD,例如需要高性能、低功耗、灵活编程的数字信号处理应用,如通信系统、医疗设备、飞行控制等。CLB模块具有高度灵活性和可编程性,可以快速实现复杂的数字逻辑功能,且具有更高的时钟速度和更低的功耗,适合于这些应用场景。
但在某些应用场景下,FPGA或CPLD仍然是更合适的选择。例如需要实现大规模、高速的数据处理和控制功能,如图像处理、视频处理、高速通信、高速采集等应用场景,FPGA的可编程逻辑资源和IO资源更为丰富,可以满足更复杂的应用需求。
因此,应根据具体应用需求和技术特点来选择最适合的可编程逻辑单元,CLB模块、FPGA和CPLD均为可选的方案。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值