takao21203
- Joined Apr 28, 2012
- 3,702
It's kinda like of this korean ying-yang.I think you mean to write PLD, a PLA is a very specific technology, where a PLD can be implemented using many types of technologies.
A MCU has a specific architecture, not-programmable(you cannot exchange the 8-bit ALU with a 16-bit ALU), though it can be done in a PLD. The programming of the microcontroller is simply writing RTL opcodes in a certain location in memory in order to produce a desired output within an existing architecture.
So, yes, it does implement a PLD functionality because it has only one implementation, which cannot be changed. Ever.
At the risk of fanning the fire, you cannot program a PLD. You describe it in a HDL(Verilog, VHDL, etc.), and burn the configuration to the PLD(technology specific). No program runs on the PLD, it has a specific configuration which is created in the translation from HDL to implementation.
A PLD does not run a program if you take it literally. However, the way it iterates through it's state machine logic, it is certainly possible to work on a large data tables.
The content...well it could be a primitive opcode language with only 2 or 3 different opcodes. So after that, you actually have a program.
Such a state machine with only a very few opcodes really existed- the Amiga "Copper".
Everything that processes a set of data in a delta-time manner is "programable"- if you can change this data set.
The problem with giving literal explanations about these technologies is these explanations might suggest some kind of education or instruction, in the end it is more a ballast than a helping. And it might be wrong. If you disregard execution speed, and take granted unlimited memory, you can really implement nearly anything using any kind of electric devices. The technologies are interchangeable, they can be mixed, they can emulate each other.
At first you really need to know what you want to do, build or program. Then you need to understand existing technology.
Without creativity, working in the field of programming and digital logic only will result in some trivial kind of solution or re-use of something that already exists.
Not that this would be totally wrong. But it is actually most helpful if you take let say a handful of PALs, or small microcontrollers, and really think about it- what could be built with these? What if I connect 3 of these controllers? How can they work and communicate in a way it makes sense? Is there more than one solution?