Back in the late 70s and 80s, many computers and other digital systems were actually designed using basic blocks similar to this. Since chip layout is by far the biggest expense (especially back then) it made sense to design just one customizable chip, and then produce it with different metal layers to configure it into various arrangements, so it is relatively easily "programmed" just before manufacturing. DEC's ill-fated VAX 9000 was done in this way, probably the last great pre-CMOS processor design, with hundreds of ECL gate array chips all based on a couple die patterns. Unfortunately the benefits of sheer density from CMOS were undeniable. When they crammed the VAX into a $1000 CMOS microprocessor, it outperformed the $1 million VAX 9000 four years later. These days it's relatively uncommon as a technique except for rapid prototyping. With standard cell ASIC designs, a gate array cell able to perform any function is still an option, but modern design tools make it much easier to use more optimized logic.
If I'm remembering correctly, Jeri Ellsworth said in an interview that the CastAR glasses were fabbed on a gate array. I thought it was super cool how they were able to prototype a device on FPGA and get chips fabbed as a consumer electronics startup. It probably makes less and less sense nowadays, with how cheap and capable MCUs have gotten.
I think you might be confusing CastAR with the C64 toy stuff she did early on. That was initially FPGA and then converted to custom gate array. If I recall there was an issue in that the FPGA initialzed it's memory and the custom silicon didn't which lead to some heart pounding moments when it failed initial bring up.
I don't think CastAR/Tilt5 isn't doing enough units to justify custom silicon.
I believe they settled on the Intel Movidius VPU for the bulk of the glasses "brains".
I think a "field programmable" device is distinct from a "mask programmable" device. The latter is potentially much simpler (no RAM, potentially a "sea of muxes" (or nands) while the former needs RAM, shift register logic, additional I/O and so on.
If you took the right half of his CLB from his second entry[1], and connected each input bit to one of it's neighbors, that's enough to have a computing fabric.
Latching them in 2 phase adds delay, but removes the need for worry about timing, as it becomes known.
If you put 4 of them in parallel, so each neighbor gets it's own output, it's a BitGrid[2,3], which I've been tinkering with since the 1980s.
He referenced an earlier effort 2012 in his video[4,5] that goes down the same detour towards computing fabrics. The HDL for that fabric, might prove useful for programming a bitgrid.[6]
I see the appeal of routing fabric and saving silicon, and especially wanting to keep the latency to bare minimum, but the trade-offs aren't worth it in my opinion. Routing becomes a nightmare, as does getting the timing of things right, and watching out for race conditions.
If you give up and embrace latency, and the wasting of gates to route signal, you end up with a homogenous, isolinear core. (The same in any linear direction) You can rather easily shift a part in any direction, rotate it, and flip it. You can route around defective cells (assuming the shift register chain doesn't break, of course). Latency goes to hell, but because every single operation is pipelined, your throughput can go through the roof, none of the data lines ever has to make it all the way across the chip, except the clock signals. The shift registers, and only have to load things before the computing starts, so they don't have to be fast at all.
Completely tangential, but I recently realized how annoying 7400 series is.
First annoyance is that manufacturers generally put the logic tech family in the middle, so you got 74HCxxx or 74LVCxxx. This makes searching information very annoying because you can't just do a simple prefix/suffix match. And of course those logic family names have no rhyme or reason, nor are they consistent across vendors.
Some parts are also available as 5400 series logic, which makes things even more confusing.
Some manufacturers like to throw some letters like SN in front of the 74... part number, making even more difficult to search, or visually scan them. Others don't put any letters in the front
At some point some people thought to integrate all of 4000 series logic into 7400 series, so you got some parts that are seemingly logically equivalent but have different part numbers because they come originally from 4000 series instead of 7400 series.
The logic family names can also contain digits, so figuring out where the family name ends is not that easy.
Like almost all parts, manufacturers love throwing some extra characters in the end to indicate stuff like packaging.
The part specs can vary quite a lot between manufacturers, even on nominally same logic family like the popular "74HC" series
basically we have gone from 7404 to something like SN74AUP1T04DCKR
all this adds up to finding parts being very annoying when building stuff
The series started by 1 manufacturer with the prefix SN54/SN64/SN74 for military/industrial/commercial grade ships. Other manufacturers made compatible clones with other starting characters than SN, and 74 proved much more popular than 54 and 64. So the whole ecosystem became known as the 74 chips.
Technological advances made the 74 series obsolete qua speed and power usage, so center characters like HC/HCT made improved variants with functional or full backward compatibility.
I'm not sure but assume the 4000 series to be an equivalent but incompatible family that 'lost', much like vhs vs betamax.
7400 series was from Texas Instruments and was originally all TTL (i.e. bipolar transistors).
4000 series came from RCA later and was originally all CMOS.
4000 was popular with designers because it used much lower power, had wider voltage range, and had higher fanout. But in the early days it was also slow, so not many famous computers were built with 4000 series.
Later CMOS technology got fast and a funny thing happened: TI and other companies started building CMOS equivalents of 7400 series chips (with the letters HC in the middle for "High speed CMOS") and everybody adopted that system because they were drop-in replacements for the TTL parts but used much less power.
As the sibling notes, it started as SN7404… except that's still not the full part number; it's missing a trailing N for PDIP-8 (assuming that's what you meant, as it would be the historical reference)
Now to get from SN7404N to SN74AUP1T04DCKR:
SN74 is still the same
AUP gives you 1.8V logic, this "naming component" goes back to the 70s/80s with 74S
1 gives you a single gate rather than 6 of them. You should be ignoring these if you're looking for the 6-gate variant.
T gives you level-shifting capability. You should be ignoring these if you're looking for a "normal" chip.
04 is from the original 7404 name, for an inverter.
DCK replaces the N, indicating a SC70 2mm × 1.25mm SMD part
R is not part of the part number, it's an ordering specification for a specific reel size. You should be ignoring this while designing, until you need to worry about delivery details.
> all this adds up to finding parts being very annoying when building stuff
idk, I've never had problems due to naming schemes. Parametric searching is IMHO where things become painful.
> idk, I've never had problems due to naming schemes.
Concrete example, lets say I need 74123 in my project. If things were sane, I could just type in "74123" in Digikey search field and see what my options are. But you can't because this middlefix logic family thing. And searching for just "123" is completely useless.
Let's continue and say we go with the most jellybean 74HC family. Digging bit deeper I discover that in addition to the 74HC123 I was looking for, there is also 74HC4538, which has the same parametrics and same description. Yaay.
And just visually eyeballing the part numbers is pain because all the random prefix/middlefix/suffix characters that might or might not be meaningful.
I don't think finding basic jelly-bean logic parts should be this complicated. I can deal with analyzing the parameters etc, that is actually intrinsic complexity. But this part number stuff feels like just unnecessary bullshit getting in the way for discovering alternatives.
I suppose big players will use preferred manufacturers and predefined logic families, so this won't be a problem. And 74 series is not all that relevant these days anyways. But still some standardization would have been nice.
You should know which logic family you need before you even get searching - voltage levels and timing should be known beforehand, which will dictate exactly which families are suitable
> voltage levels and timing should be known beforehand, which will dictate exactly which families are suitable
TI alone has 13+ logic families for 3V3 for example, and all of them are faster than HC family (and thus usable for lot of applications). Nexperia has similar count, some of them are same-ish as TI, some of them are distinct. And other manufacturers have their own stuff. So that doesn't really cut down the options much.
Sure, if you are doing very fancy stuff, then you can boil all this down to some one specific family. But especially with 74 series these days when how often that is actually the case? And how often you just want some jellybean part that is easily available? And with part availability being what it is, I'd want to easily substitute parts from other logic families.