Karl
5/27/2012 11:12:18 AM User Rank Guru

Re: What are the microprocessors processing?
Hi, Max. No argument here.
I was going to suggest to Duane that there is a pretty good analogy between FPGAstructure and OOP classes in the programming world. The HDLs have modular structure and "instantiate" capability. The SW IDEs have tremendous support to tie things together and to define new classes to create objects to do anything.
I am thinking that to model an FPGA only two classes are needed, one for register and one for memory. The LUTs come for free because they do combinational logic. To be more specific they do Boolean Algebra expression evaluation. In a program they become logical/arithmetic expressions.
Now, the FPGA appears to be a network of memory blocks (This is not news, rather fact) The "FPGA" monicker is totally wrong because the designer does not have access to even one logic gate.
DSP functions are different, but I think even the multipliers are implemented in memory. I just don;t know how.
Hardware Object Oriented Personalizable Logic Array?
I have a C# program under way that models this structure and it is easy to step through a design and debug.

Karl
5/27/2012 10:28:12 AM User Rank Guru

Re: What are the microprocessors processing?
Hello again, David
"I'm not puzzled....logic can, for example, "AND" two numbers in one clock cycle, whereas a CPU would take several to do it. "
You hit right on one of my projects. You can download and executable model and the demo test case I used for debug from my website.
First, here is what it is about: I realized that the "curly brac" languages, especially C could be parsed to get the conditional expressions that control the flow and associate them with the assignment expressions. Yes, compilers do the same thing, but when they generate the cpu instruction stream that is where the many cycles are introduced.
The FPGA design of the "CEngine" basically takes one cycle per operator in the expressions, a cycle to jump to the assignment and a cycle to write the result.
It eats like a cpu, gets the same result, but it is an FPGA.
http://mysite.verizon.net/vzeosqt4/embeddedcengine/
The cycle log text shows the source text along side the cycle by cycle activity.
You should be able to edit the demo text to try variations, but it is not fully debugged and easy to crash.
The current design uses 6 embedded memory blocks and a couple of Verilog modules, one for ALU the other for control. The size of the memory blocks depends on the number of statements and variables. All register functions are done by the memory regs and it takes about a hundred or so LUTs for the logic.

Re: What are the microprocessors processing?
@Karl: I agree that "chip" can mean any IC. In the case of an Application-Specific Integrated Circuit (ASIC), if you are a digital guy you immediately think of a digital chip, but ASIC can also refer to an analog chip. ASICs can have on-chip memory (they can also use off-chip memory of course). To my mind, the difference between an ASIC and a System-on-Chip (SoC) is that the SoC contains one or more processor cores.
An ASIC is typically a chip that is created by one company for a specific project. By comparison, an Application Specific Standard Product (ASSP) is intended to be used as an "off-the-shelf" chip by a lot of people. On this basis, I would say that a chip like an Intel processor used in a PC is a full-custom ASSP ... but maybe we should consider processors at thsi level to form their own category...
Re: What are the microprocessors processing?
@David: Safety first :-)
Re: What are the microprocessors processing?
@Karl: I agree with you 100% -- I will be discussing all of this in future "Ask Max" columns
Re: What are the microprocessors processing?
Good grief....the gear you need for this costs more than the FPGAs do ;-)
Karl
5/26/2012 2:50:08 PM User Rank Guru
Re: What are the microprocessors processing?
Hi, Max. My knee jerk is that chip can mean any IC and that ASIC chips usually have off chip memory That requires SoCs to mean system on chips, rather than systems on chips. Whatever plural grammer requires.
A new name does not immediately come to mind and this business is so full of buzz words, hype, loose terminoly and assorted BS that I am not sure it matters,
Anyway, I shall try.
Karl
5/26/2012 2:34:58 PM User Rank Guru

Re: What are the microprocessors processing?
Hi, Max. Yes cpus can do decision processing. They have to use so many instructions to get the data ehere it can be processed that FPGAs can blow them away there, too.
Consider that a curly brace language such as C can define a loop with a condition expression and a couple of curlys then the compiler generates an intermediate language that does the same function. The very next step is to explode into many cpu instructions that do a lot of data movement to position the operands for the ALU to manipulate. Then the processor is pipelined with the associated latency.
An FPGA can just do it Then think about a processor that has one aALU and address controls that have to do every instruction compared to an FPGA that can have hundreds of alus counters, and comparas. A processor is not as efficient as a well designed FPGA.
Real time functions have critical response times so latency becomes very important.
I once spent months trying to convince some managers that although a micro could do a serdes/uart function one bit at a time logically, but that it would faill miserably because it would be consumed and do nothing else. Please, let's not go down a similar path.

Karl
5/26/2012 2:06:18 PM User Rank Guru

Re: What are the microprocessors processing?
Hi, David. I am not puzzled, but threw that comment in because many are. Some time ago there was a MS research project "Where's the beef?" that concluded that it is because cpu's spend so much time fetching instructions.
Another thing is that FPGAs do what is analogous to parallel programming although at a very low level.
A few years ago when I found that FPGAs had embedded memory blocks that got my attention. Like you, I expected that design would have advanced from data flow and control logic. The biggest change was HDL where a string of IF's can be used to perform an "and".
The difference I see is FPGAs use LUTs to do Boolean and and arithmetic functions and that synthesis can map that into the bit stream that personalizes the FPGA.
The tool chain was inherited from ASIC as well as the simulators. Granted they have been tweaked a little.
Static timing analysis is used, but the simulators still generate waveforms with timing of transitions down to pico seconds.
HDLs are based on modules but the tools seem to do nothing to help tie them together. Module instantiation is not an answer.
Thanks, Karl

Re: What are the microprocessors processing?
@David: "Right, I've greased my head bearings and put on some Kevlar socks. Bring it on..."
Did I mention that you would be well-advised to be wearing an athletic protector? (grin)
|
 |
This week's live online chat takes place on Thursday, May 23, 2013, at 1:00 p.m. ET.
Duane has decided that the time is ripe to get his ZedBoard bolted onto his robot with a Linux distribution up and running. That was the ultimate plan anyway, so why wait?
Would you class these as adages, aphorisms, axioms, dictums, epigrams, maxims, precepts, saws, truisms, or... well, what?
Here we discover how to use the XADC (Xilinx Analog-to-Digital Convertor) in the Zynq All Programmable SoC to read the chip's internal temperature and voltage parameters and output them over an RS-232 link.
When extreme thermal cycling causes circuit boards and chip packages and the silicon die in the packages to expand and contract at different rates, problems may ensue.
|