Change of product direction, good and bad news!

Announcements by the development team or forum staff.
Locked
BruceMcF
Posts: 1336
Joined: Fri Jul 03, 2020 4:27 am

Change of product direction, good and bad news!

Post by BruceMcF »



On 10/12/2021 at 9:20 AM, Oldrooster said:




A FPGA is a computer itself, it has computing hardware, runs a program, takes input gives output same as any computer.



After all, "takes input, gives output" is certainly not restricted to a computer ... "takes input, gives output" is what a 74x09 does, where the inputs are up to four pairs of signals and the outputs are the ANDs of each pair.

Now, suppose that instead of four ANDs, it had four circuits which could either be an AND or a NAND, based on four bits in a serial shift register. It has two more pins, which are used to shift the four setting bits in.

Is that a computer?

It has a "program" ... the four bits that determine which gates are ANDs and which are NANDs. It takes input. It gives output.

I would say, no, it certainly is not a computer, because it does not RUN the program. The "program" is just a set of switches that either turn on or turn off the inverter that follows the NAND inside the quad AND chip.

It's the same with an FPGA.

It's "program" is the specification of the interconnections between its logic and latch resources ... including those connected to pins ... and built in specialized components (I/O, DSP units, block RAM, SPRAM,). Once the "program" is loaded, it does not RUN, in sequence, it is contained in latches that determine the connections between NAND and NOR gates and other components built into the FPGA.

Some FPGAs HAVE a CPU as a component, and a sufficiently complex FPGA can be wired up as a computer, but an FPGA simply is not "a computer itself" precisely because it does not run a program. The FPGA itself is not given a sequence of instructions to execute. Instead, it is given the set of interconnections to make between its various components.

 

Scott Robison
Posts: 952
Joined: Fri Mar 19, 2021 9:06 pm

Change of product direction, good and bad news!

Post by Scott Robison »



On 10/12/2021 at 8:35 AM, BruceMcF said:




Some FPGAs HAVE a CPU as a component, and a sufficiently complex FPGA can be wired up as a computer, but an FPGA simply is not "a computer itself" precisely because it does not run a program. The FPGA itself is not given a sequence of instructions to execute. Instead, it is given the set of interconnections to make between its various components.



Exactly. Really, a CPU is not a computer either. It is but one component of a computer. A C=64 with a pristine 6510 but without a VIC II is a paperweight. Or a pair of 6526. Or the right number of RAM chips. I mean, they are fancy paperweights that do various forms of blinky lights or sounds or whatever depending on what is missing, but the computer is a complete collection of parts and interconnections between a number of components.

I agree with the philosophy that it is nice to have a discrete component based system for a certain set of reasons. In like fashion, the MOnSter 6502 is a nice recreation of a MOS 6502 made from all "discrete" components. It would also be cool to see a 6502 made from all vacuum tubes. But some of these are impractical, even if they are cool and have other positive attributes.

The beauty of an FPGA system is that, for a sufficiently large FPGA, it is possible to recreate all the individual components that go into a computer in a single chip. There is still more to do of course. You have to get input from the outside world into the FPGA through IO pins, and get output to the outside world through other IO pins. That has certain benefits and certain detriments, just like the other things listed above.

And that is the entire world of engineering: Understanding what is possible and weighing the pros and the cons and coming up with the right solution for a given problem. If one wants to create a video system out of all discrete components because it "simply requires optimization" then I say, go create it! I was reading just yesterday about the C74 project which has as a goal to create an entire C64 out of 7400 series logic chips. Someone is "working" on the VIC II portion of that. I hope they succeed, it will be a sight to behold I'm sure. But it isn't "practical" for an intended mass produced system in this day and age. And that's okay, not everything has to be practical. But if you are hoping to build a computer that can be used by people, practical is a really good thing to strive for.

TomXP411
Posts: 1783
Joined: Tue May 19, 2020 8:49 pm

Change of product direction, good and bad news!

Post by TomXP411 »



On 10/12/2021 at 7:35 AM, BruceMcF said:




After all, "takes input, gives output" is certainly not restricted to a computer ... "takes input, gives output" is what a 74x09 does, where the inputs are up to four pairs of signals and the outputs are the ANDs of each pair



 


On 10/12/2021 at 6:20 AM, Oldrooster said:




A FPGA is a computer itself, it has computing hardware, runs a program, takes input gives output same as any computer.



See, this is not quite correct...an FPGA can do none of these things by itself. If you simply feed power to an FPGA, it will sit there. It requires programming and peripherals to perform even a simple operation. 

It's most appropriate to say that an FPGA is part of a computer, just like the Broadcom BCM2837B0 is part of a computer. Context and programming matter, and we don't think of cash registers, arcade games, or air conditioning thermostats as computers - even though they may contain a microprocessor and perform fairly complex tasks.

Clearly a smart thermostat has all of the requisite properties, but we're never going to confuse a Nest thermostat with a desktop PC. 

Context matters, and while a complex FPGA can be one component of a computer, it's not "a computer" any more than the Broadcom SOC. It's just one piece of a system that may or may not itself be a general purpose computer.

 

BruceMcF
Posts: 1336
Joined: Fri Jul 03, 2020 4:27 am

Change of product direction, good and bad news!

Post by BruceMcF »



On 10/12/2021 at 2:04 PM, TomXP411 said:




It's most appropriate to say that an FPGA is part of a computer, just like the Broadcom BCM2837B0 is part of a computer. Context and programming matter, and we don't think of cash registers, arcade games, or air conditioning thermostats as computers - even though they may contain a microprocessor and perform fairly complex tasks.



And, further, since the FPGA doesn't necessarily contain a microprocessor, unlike devices controlled by a microcontroller, it will in many cases be incapable of executing a program in the sense that most people mean when they use the term.

So, while the Gameduino had a J1 microprocessor core, and the X8 has a 6502 core, Vera has no processor core at all, and is entirely incapable of executing a "program" in the sense that most people mean. And the Gameduino did not "emulate" the J1, nor does the X8 "emulate" the 6502 ... in both cases, interconnections between hardware components are used to implement the processor functions.

The early FPGAs were sometimes programmed by explicitly designing their circuits, until they gained so many components and connections options to sort out that this was replaced by function specification languages and tools that converted the resulting generic netlist into an optimized interconnection list for the FPGA ... similar to the way that hand laid out circuit boards have been replaced by optimized circuit layout tools.

BruceMcF
Posts: 1336
Joined: Fri Jul 03, 2020 4:27 am

Change of product direction, good and bad news!

Post by BruceMcF »



On 10/12/2021 at 10:53 AM, Scott Robison said:




Really, a CPU is not a computer either.



Quite ... hence the "central" in Central Processing Unit. The CPU processes instructions, by accessing instructions stored somewhere, to operate on data stored elsewhere (in memory or I/O devices) , and store the results elsewhere (in memory or I/O devices) ...

... and in the "programming" phase of "programming" an FPGA, there is no storage of a sequence of instructions to be executed ... the reason the same verb is used for both types of actions is that, back in my day, the original hardware "programming" was burning a "Programmable" ROM to contain the program to be executed by a CPU. But even back in my day, a ROM "programmer" did not have to be used to store a computer program ... eg, it could be used with a latch and glue logic as part of a state machine.

Scott Robison
Posts: 952
Joined: Fri Mar 19, 2021 9:06 pm

Change of product direction, good and bad news!

Post by Scott Robison »



On 10/12/2021 at 1:54 PM, BruceMcF said:




Quite ... hence the "central" in Central Processing Unit. The CPU processes instructions, by accessing instructions stored somewhere, to operate on data stored elsewhere (in memory or I/O devices) , and store the results elsewhere (in memory or I/O devices) ...



... and in the "programming" phase of "programming" an FPGA, there is no storage of a sequence of instructions to be executed ... the reason the same verb is used for both types of actions is that, back in my day, the original hardware "programming" was burning a "Programmable" ROM to contain the program to be executed by a CPU. But even back in my day, a ROM "programmer" did not have to be used to store a computer program ... eg, it could be used with a latch and glue logic as part of a state machine.



From my time in radio, "programmer" or "programming" has very different meanings in that context. Those of us with software experience think of it as meaning one thing when it actually has broader implications. Deciding upon the sequence of songs to be played is programming. Configuring a VCR to record shows at a given time is programming. And writing HDL descriptions is programming in that the HDL has rules and syntax of a sequence of keywords, which is subsequently transformed into a bitstream that has its own sequential format that is loaded into the FPGA, just as the programming of a ROM determines a set of values returned in a sequential manner based on address pins.

Which is to say, you are correct. It is not programming in the limited sense many people think of programming, but it is surely a form of programming just as other examples are as well.

In fact, one can (if one wants) consider Word or Excel or {insert example program here} an interpreter that allows one to write programs in a domain specific language using a rigid IDE. An expert with those (or comparable) tools can do incredible things. And old timer machine language programmers (those who coded in hex, not in assembly) can look down their noses at those of us that only know high level or assembly language because we're not doing it the right way either.

Oldrooster

Change of product direction, good and bad news!

Post by Oldrooster »



On 10/13/2021 at 1:35 AM, BruceMcF said:




Is that a computer?



Totally is.

Of course, there is no defined set limit as to what is a computer, so people interpret it according to their own desires, same way the USA declared space to be a lot closer to the reach of their weak and slow rockets after the USSR launched mankind into orbit on Vostok 1.

A computer does not need to be electronic, I would say that is a universally accepted point, and a computer can and often is a person. Some people, trained at the art or not are fabulous computers. Mentat, rain man, what have you. A logic gate is a perfect example of a computer as it encapsulates the very idea of computation. Nicola's invention defines computing in it's most elemental form, you just can't get it any simpler than that. Well, I'm sure a salesperson like gates will get a stick and spruke it as the best computer ever invented, but that's liars sales for you.

Now to define FPGA as computing I can't see that as any kind of controversy, it's pretty apt, and where you draw your lines will depend a lot on where in time you are, not so much because of moores law, but AI and quantum computing and so on. If the impossible were to happen and development were to suddenly go on a steady increase over time, then yeah, we'd look back and say lol, a pentium is not a computer, what can it do, that's absurd.

In the X16 it adds too much of an abstraction so that people can't see the hardware at all, because it doesn't exist. Software can be anything, an operating system, intuition on the amiga, the executable file, a script, so on.

 


On 10/13/2021 at 1:35 AM, BruceMcF said:




I would say, no, it certainly is not a computer, because it does not RUN the program. The "program" is just a set of switches that either turn on or turn off the inverter that follows the NAND inside the quad AND chip.



I don't get you there, you are defining computer and then saying its not a computer. Wouldn't you stop to agree that a computer may have many component parts such as hardware, software, program and data ? Missing some or all of them is not relevant to the essentialist viewpoint any more than you can say a three legged goat is no longer a goat because all goats have four legs everyone knows they do. Is a new computer with a blank memory and blank bios not a computer ? People will soon spend a lot of time building the project I'm helping with and it has nothing on it at first.

The X16 FPGA is a computer in it's own right, and I can make that clear with the proposition that change the program running on the FPGA computer and you no longer have your X16, you have something else.

The FPGA is the computer, the 'configuration' you load onto it is the program, and the X16 you run on top of that is the data. Then for the X16, the you move it all up a level data becomes hardware or software becomes data or however you want to play the musical chairs for that game. Doesn't matter, people understand intuitively that the objective of a dream computer, in their own heart has been compromised.


On 10/13/2021 at 1:35 AM, BruceMcF said:




It's the same with an FPGA.



It's "program" is the specification of the interconnections between its logic and latch resources ... including those connected to pins ... and built in specialized components (I/O, DSP units, block RAM, SPRAM,). Once the "program" is loaded, it does not RUN, in sequence, it is contained in latches that determine the connections between NAND and NOR gates and other components built into the FPGA.



Hold on a minute, it depends on the viewpoint entirely. The program is the planet X robots from the 'programmers' point of view if they are writing that program, and the operating system is the part which, let me quote you, "Once the "program" is loaded, it does not RUN," because the operating system from the gamer programmers point of view is not the program, it's the computer you've ported your game to, A 'windows computer' or a 'linux computer' or an 'apple computer' according to their point of view they refer to the operating system itself as the computer in their vernacular. Talk to the FPGA programmer and you'll get a different language and a different viewpoint of which part is which, and having a CPU in a FPGA is simply a macro, a common subroutine written in silicon so you don't need to write it out in full whereas any other part of the FPGA can be used for essentially the same purpose. Large enough FPGA means just cut and paste the code for a CPU core. Give a soldering iron and 8,000+ transistors to a determined person and they have a Z80 compatible CPU right there (could be twice that many depending on how you whittle the parts down).

So to sum up, when our dear friend Ju+Te enquires about a FPGA, and considering he invents and builds his own hardware, then yeah, a FPGA is a computer which runs a program. The program is not called 'robots go mad' it's called 'X16' and you could change the software to 'my personal ZX-81 clone' and so on, at which point it's not really so much of an X-16, sortof, you just use the same hardware for three different kinds of computers, did I say 8? they're just popping up here, wait, no, they're not, because nobody likes FPGA, they're boring at parties and everyone wants to hang out with the Z80 or over at the 6502's house... (whisper)FPGA's lack personality and require a personality injection to get them started at parties.

 

Oldrooster

Change of product direction, good and bad news!

Post by Oldrooster »


Well I've explained my X16 FPGA answer and viewpoint thoroughly, and would only like to add that I think the best programming language is solder.

 

It is a variation on Bob Pease who say's it's his favorite. I'd like to point out in the sh* world we live in that solder can't be hacked. Also, I'd like to point out that if I ever say anything idiotic, banal or offensive then it was not me using my account.

actually the text I refer to in the link is halfway down the linked page "The horrifying Identify and Disrupt bill which allows Australian police to hack people’s devices, collect, delete and alter their information and log onto their social media was passed through Parliament at jaw-dropping speed last month. "

Apparently the 5 eyes countries can just funnel your internet through Aus and therefore edit anyone's text.

Scott Robison
Posts: 952
Joined: Fri Mar 19, 2021 9:06 pm

Change of product direction, good and bad news!

Post by Scott Robison »


I think this thread has jumped the shark. Perhaps it needs to be locked, too.

Calculon
Posts: 33
Joined: Thu Aug 26, 2021 4:44 am

Change of product direction, good and bad news!

Post by Calculon »



On 10/12/2021 at 8:58 PM, Scott Robison said:




I think this thread has jumped the shark. Perhaps it needs to be locked, too.



When the conversation about the final release plans of a modern retro computer has turned to what technically constitutes a “computer” and a “program”, the plot has truly been lost. Something tells me that Murray and company learned all they needed quite some time ago.

Locked