Re: FPGA using Python language

From: admin_at_wavestarinteractive.com admin_at_wavestarinteractive.com <admin_at_wavestarinteractive.com>
Date: Thu, 25 Feb 2021 19:54:47 +0000 (GMT)
Message-ID: <821557284.87970.1614282893900_at_privateemail.com>
With older FPGAs, there isn't even a CPU in the FPGA. It's not even a microprocessor or anything else. It's more like a "unprogrammed" PLA that hasn't even been programmed. It just has the fixed hardware needed in the FPGA to allow it to be programmed in the field. It's that there is certain IC logic configured so if the circuit board is laid out a certain way, it will hold certain pins in (either high or low) that will set the circuitry to a mode where it basically copies the bitstream from a chip medium like ROM or Flash and get loaded. It's not a CPU. You don't have any logic to give it instructions as a software programmer to tell it do something like "If variable X = 10 then do _Subroutine_2_:increment variable X + 1" ("pseudo"-code). You can't do stuff like that in that state. It's more akin to a chip select pin flag which draws the bitstream from a hardwired (via PCB) source. Once that "core" from that source into the FPGA then it maybe reprogrammed to allow it to use another 
 source. Newer FPGAs may have more stuff that is hard wired or embedded because it has an internal flash memory storage to in fact have a core stored which you could either pre-program with a USB or JTAG device so when the computer starts up, it already has a core ready to start up instead of using an external memory but older FPGAs like the ACEX line, I don't recall to even had that memory internal so you have to engineer that in the PCB in which the FPGA would be installed on and pre-programmed the ROM (or Flash memory or whatever non-volatile memory of choice that is compatible). These newer FPGAs would even have a default "core" by the factory. Now, Intel (which acquired Altera not very long ago) has lines of FPGAs they refer to as "SOC FPGA".... which has an ARM Cortex hardened in silicon. Some Cyclone V models for example have an integrated ARM processor. When you go back to say the Cyclone IV and earlier FPGAs, you don't have integrated processors. They are like a CPLD but fie
 ld-programmable and CPLDs are more or less more complex versions of the technology behind the PLA chip in the Commodore 64 and 128. 

Sure, anything with an actual microprocessor integrated and on-board would be technically turing complete because even a processor as simple as an Intel 4004 met that definition. Sure, even some programmable logic devices in the mid to late 80s had enough logic to formulate a turning complete computer but until you "program" it with a core, it is not going to have an operating functional state to do any kind of operation. 

If you took the flash memory chip with the "core" off of board with an ACEX 1k30 on it, you aren't going to be doing squat with that FPGA. It's just not going to be doing anything. There's no instruction set or anything. Not even a simpleton processing core of an intel 4004 or similarly simple processors. Sure, you cobble enough LSI logic to make a Turing complete computer but the individual components wouldn't make a computer. If it isn't "wired" into a computer, they are just discrete logic that hasn't been "wired". In a way, with FPGAs, the most simplest elements is a singular logic cells. Until they are programmed, they are effectively "non-wired". You have to set the logic up to have a functioning logic circuit that would formulate even a very basic computer of minimal logic. That's why we do all the programming in order for it to function. 

In a way, it is like a C64 with all the circuit connections on the PCB or the traces inside ICs disconnected from each adjacent transistor. Once the traces are 'connected' their corresponding transistors on the silicon wafer.... it's basically like a boat load of logic chips and wires but none of it connected together.  


> On 02/24/2021 2:58 PM smf <smf_at_null.net> wrote:
> 
>  
> Well that is kinda like a cpu before it's got a program loaded into
> flash/ram/etc (yes I understand the conceptual differences between the
> two, but it does not affect it's turing completeness). An fpga is a
> thing before a bitstream is loaded, it's just not performing the logic
> calculations. There is no chip fab or 3d printer inside an fpga ready to
> lay out gates.
> 
> FPGA's aren't new stuff, commodore used them for emulating the 8250
> replacements for the CD32. I think Motorola used them for the 68040 (the
> 68000 was breadboarded like the Amiga, would have been great to get
> those together...).
> 
> But back on topic, you don't create bitstreams by setting bits you use a
> higher level language and over that is guaranteed to evolve to become
> easier.
> 
> On 24/02/2021 00:11, admin_at_wavestarinteractive.com
> admin_at_wavestarinteractive.com wrote:
> > Maybe we are talking the same thing but due to the word choices are causing confusion. Yes, there are logic gates / cells or elements but they have to be configured by the bitstream file (little binary file) before it is functional to do anything other whatever maybe a "brick-proofing" measure where there is an explicit default core built into a piece of non-volatile memory on the FPGA chip as a failsafe mode.
Received on 2021-02-25 21:00:02

Archive generated by hypermail 2.3.0.