VIDEO SERIES
C2000™ configurable logic block (CLB)
The configurable logic block, or CLB, is a peripheral that can implement custom logic into the device using a microcontroller unit (MCU). This video series covers the basics of what the CLB is and how it can be used. This content includes the CLB architecture, the CLB programming tool, and how to integrate custom logic with the CLB programming tool.
C2000™ Configurable Logic Block (CLB) introduction
Presenter(s)
Resources
[MUSIC PLAYING]
Does your industrial control system include customized logic? Do you have FPGA, CPLD, or external logic components supplementing in your embedded controller, and wonder, why can't this all be done in one device? Are you using this additional logic, because your NCU peripherals don't give you all the capability you need? We're here to tell you about our new configurable logic block peripherals that enable you to design your own custom logic or augment the on-ship peripheral capability of our devices.
If you aren't familiar with C2000, just a quick overview. Our C2000 real-time controllers, our portfolio of high performance microcontrollers with 32-bit CPU, different math accelerators, flash memory, PWMs, communication ports, and specialized analog. And these are purpose built to control power electronics and provide advanced digital signal processing in industrial and automotive applications.
With the CLB peripheral, you're able to implement custom logic and augment existing C2000 peripherals, like our PWMs, captures, quadrature encoder, and GPIOs. This can enable you to integrate critical functions into a single 2000 MCU, and either reduce in size or completely eliminate your FPGA, CPLD, or external logic components.
Each of the CLB tiles on the device consists of lookup tables, finite state machines, counters, output lookup tables, and a high level controller. There are up to eight of these CLB tiles on a given device. And the tiles can be used independently, or they can be combined together for more complex functions.
There are countless ways that the configurable logic block can be used. Here on the screen are just some of the examples of the features that can be implemented. For example, advanced PWM protection schemes, complex or custom PWM generation. Some of things you could do that would be blanking or the thinning of pulses.
You can do signal capture and detection, intelligent filtering, and signal conditioning. You can create pulse train outputs. And you can even do absolute encoder interfaces like the Tamagawa T-format, EnDat or BiSS. And this is really just scratching the surface. The beauty of the CLB is the flexibility to implement things that we at TI haven't even thought of.
Some of the advantages of using the CLB versus an external component, obviously, you're able to integrate this functionality onto a single device, and not have to use a second external component. Also, because the CLB tile, itself, is residing inside our microcontroller, the CLB then has direct access to everything inside, including all the key, CPU, and peripheral signals.
These internal signals that it has access to can then be used to supplement or modify the logic inside even the existing control peripherals, or combined with external kind of glue logic. Inside the CLB, the simple programmable processor is going to facilitate the data transfers between the CLB peripheral and the CPU memory. And there's up to four stored programs that can be triggered by a transition of any of these selected CLB signals.
Now, the key thing here is that in the timing of the CLB signals inside, it's already designed by us to work at the specified CPU frequency. So any logic that you create using the CLB is already guaranteed to meet any timing requirements. You don't have to go do anything special, like you might have to do on an FPGA.
And then this is fully software configurable. So that this can be changed even in system, even in deployed systems. You could go, essentially, make a software patch that changes the configuration of the CLB and the logic that it's providing.
An example of where the CLB could be used is in a servo drive. So servo drive has many functions. And the CLB can actually be used in many of them to augment the capability of the device. So the CLB could be used in PWM generation to create something very customized for your inverter.
It could be used in the protection mechanisms to protect the inverter, based off of the analog comparators that are on the chip. That logic can then be done inside the device, basically, in a hardware-software versus using external components. It can be used for position sensor management. So implementing some of the absolute encoder standards that are very popular in rotor position sensors for servo drives.
And it can even be used for a communications capability in creating things like pulse train outputs, which can be then used to talk to things like the programmable logic controller. So, you can see that the CLB function has a lot of flexibility. And it can be used to enhance different aspects of a full complete control system.
Hopefully, you're excited about this. And to get started, you can go to ti.com/c2000clb, to kind of enter into all the links. To actually use the product, as you'll see, you'll download C2000 ware. There is a CLB tool user's guide. And there's also a couple of really good app notes, How to Design With a CLB, which talks about using the tool.
And then, for those of you who are familiar with FPGA or CPLD development, there is an application out that really speaks that language, and shows you exactly how to take the same design steps that you would use in FPGA/CPLD and apply those into our CLB. So, best of luck on your next product development. And we are excited if you will share what you're working with with us on our E2E forum, and want to see all the unique things that you're able to do with the CLB.