General > General Technical Chat
And boom-ding-outch, it's all software now!
<< < (3/3)
indeterminatus:
As a mainly software guy (just recently started out with hardware tinkering), I find all the simulations and software-support very good -- it helps me build on stuff I already know, and quickly test my understanding of electronics. Once I'm somewhat comfortable with the simulation, I can proceed to prototype with hardware (which has a much higher setup cost for me). Most likely the simulation was not good enough, I inhale fumes, and try to figure out what I did wrong.

I think the "so many things can be done in software"-approach greatly lowers the entry barrier to the field. Until now, no software package was able to take the thinking part away. All it did was shorten the feedback loop, and I greatly appreciate that.

I grew up when "the internet" was still on the verge of being "a thing", and do remember the trips to the library of the next university to get my hands on "something to learn", which was about 35 minutes of train ride and walking, and then I didn't really know if the books I borrowed would actually help me. I like the approach I can take nowadays; much less time wasted.
AaronD:
I think today's simulators are still incomplete, in the sense that they only work exactly as-drawn or as-modeled.  That's good for teaching basic theory, and for an experienced designer to try out some of their more hare-brained ideas without risking an expensive prototype, but I want to test my design with all of the real-world parasitics, noise sources, and other non-idealities before I spend a bunch of time and/or money as a hobbyist to build it, without explicitly adding those things any more than I would on a workbench.

* I want to use real-world parts in my schematic (OCR'ed from a datasheet if nothing else), randomize the parameters according to their tolerances, and get a probability distribution of the resulting behavior, all with one button to start the process.
* I want to do the same thing with my PCB design, possibly with an arbitrary 3D-modeled case and other PCB's close by, running their simulations too, also including parasitic effects within the board and between each board and everything else, and manufacturing tolerances.  (WiFi in a metal box, for example, or with another board next to it that has a naively-managed 2.4GHz clock for who-knows what...)  Thermal simulation would be good too, for sizing heatsinks and fans, and to design a case that can pass enough air to do the job but keep fingers away from an electrically-hot heatsink, without hurting the RF performance too much.
* I want all of this to be free, like LTspice, KiCAD, FreeCAD, and Blender.  Preferably all of those and more, integrated together.(yeah, that's a pipe dream...if you limit yourself to only today's tools)

---

Essentially, the idea is to do all of the prototyping that would have been physical (and I do mean ALL, across every engineering discipline), in a fully-integrated simulator instead, and have it be real-world accurate no matter what mess I come up with.  Then click a button that says, "Make that!"  It would then give me options to generate:

* Physical manufacturing files, like gerbers, 3D models, or perhaps even g-code for a known machine
* An optimized executable that behaves indistinguishably from the simulated system, including its "flaws" which might actually be used as features, for a selectable platform like a desktop PC, Raspberry Pi, DSP chip, microcontroller, FPGA, etc.  (a custom digital guitar pedal using physical-electronic design concepts or even electro-mechanical effects (spring reverb, tape machine, etc.), for just one example)All for free except for the cost of real matter and the energy to manipulate said matter.  (not counting the energy to run the simulation, as I often leave that machine on unattended anyway)

That's still a long way off, partly because the tools that I mentioned in the previous section are all separate things at the moment that barely talk to each other at all, let alone integrate like this; and partly because of the processing power required to essentially brute-force or automatically optimize a finite-element analysis on an arbitrary design by someone who knows nothing about FEA.

---

Every once in a while, I run across an ad for a paid simulator that claims all of what I just described*, and costs a whole 'nother engineering salary per seat per year, but I think it'd be wonderful if the open-source community would make a version of that too!  (including the integration between disciplines)

*At least as far as the marketeers are concerned.  I'm sure the actual use is different, at the very least because the FEA must be optimized manually by someone who has at least a working knowledge of how that works and why it can't simulate the entire universe in quantum detail for all time, over lunch!
RoGeorge:

--- Quote from: jmelson on August 16, 2021, 03:56:17 pm ---Well, it isn't ALL software.  But, for development, software is just a tool, like an oscilloscope or a soldering iron.
Years ago I bult some fairly large systems with wirewrap.  See  http://pico-systems.com/stories/1982.html  for some pics.  But now, I can write that as VHDL and simulate it, and be (pretty) sure it works as intended.  If I want to make changes, I don't have to rip out a bunch or WW wire, and if the change doesn't work out, I can go back with just one command.

Jon

--- End quote ---

It isn't ALL software yet, but it slowly turns ALL into software.
That example with wiring AMD2900 bitslices vs writing VHDL is exactly the point.

It happens that I did a similar project with a lot of wire wrap during the 80's (thought mine was a Z80 based computer, and the wire wrap was soldered instead of wrapping it, because wire wrap sockets were quite rare and expensive https://hackaday.io/project/1411-xor-hobby-a-vintage-z80-computer-prototype):







Might look tedious and complicated, but in fact it was not that complicated yet it was very, very rewarding.  Can not say the same about "code wiring".  And wire wrapping TTL chips is certainly less complex than writing HDL for FPGA.

To make a board back then, all that was needed was a handful of TTL ICs and a few paper handbooks with the datasheets.  To implement the same functionality nowadays in an FPGA, you'll need a very complex toolchain setup in order to simulate and to compile the VHDL code, and all that toolchain (with editors, simulators, compilers, libraries, programmers, terminals, etc.) sitting on a very complex OS, with all kind of licenses schemes (many of them time limited), software and drivers compatibility issues, etc.

Then, the practically infinite numbers of FPGA related PDF docs for each FPGA family (most of them in the range of hundreds to thousands of pages  :o ), and all the quirks/details varying from one FPGA manufacturer to the other and from one model to the other, then the HDL literature, and so on.

The entry bar to design something is now much, much higher, and the complexity of the software tools grown A LOT.   :-\

Many times, setting up the software environment alone will be a challenge in itself.  To see what I mean, just try to reuse a board older than a few years, say with Windows XP and proprietary compilers.  Usually old tools are left in an abandonware state, with no quick start lessons, sometimes not even the compiler's installers are hard to find (having here in mind some DSP board from Texas Instruments - the compiler were still available for download, thank you TI for that, but it took me a week of reading about various software in order to prepare a working virtual machine for that DSP board).




--- Quote from: CatalinaWOW on August 16, 2021, 05:27:10 pm ---Perhaps putting this in other terms would clarify the problem (if there is one).

First it was pure metal smithing.  Find a meteorite or copper nugget and pound it into shape.

Then some bright guy figured out how to get metals out of rocks and you didn't have to roam the hills looking for materials, just tan enough hides to trade for ingots.

But then some other bright guys figure out how to make tools to shape the metals.  Drills and files and all sorts of stuff.  And you didn't have to have huge biceps and great skill to make the metal the shape you wanted.

Then it really went downhill.  You could buy pre-shaped pieces and parts.  Pierced elbow iron.  Screws.  Nuts.  You could just bolt stuff together.  Never have to make anything bend or stretch.

Where is the imagination or creativity in any of that?

--- End quote ---

Exactly that, maybe without the imagination/creativity remark, there's plenty of room for that, though it's true that there is a tendency to replace the ingenuity/elegance of a good design with heavy number crunching.  Almost all of the analog electronic, even the RF, turned into just ADC+DSP.   >:(

FOr example, having in mind an analog radio vs an SDR, I find there is some lost beauty there, from when we were putting the Universe to compute for us using the law of physics (in analog electronics) vs. using an MCU to compute for us using some DSP algorithms (in digital electronic). 




--- Quote from: CatalinaWOW on August 16, 2021, 05:27:10 pm ---In electronics the digital/software age has simplified all of the basic stuff so much that we can tackle problems that people wouldn't even dream of doing years ago.  Can you even imagine doing the Lady Heather GPS disciplined oscillator in discrete components?  Or even much simpler things like whole house control?

--- End quote ---

Indeed, going digital comes with some advantages, that's why it won.  What I don't like is the digital tools have become so complex that the tools themselves need as much work as the final object.  ::)

Oh, and I don't like bugs.  Software has bugs with wildly unpredictable effects, while analog electronic has "bugs" that usually manifest in a predictable way by restricting the performance range.




--- Quote from: indeterminatus on August 16, 2021, 08:09:30 pm ---I find all the simulations and software-support very good -- it helps me build on stuff I already know, and quickly test my understanding of electronics. Once I'm somewhat comfortable with the simulation, I can proceed to prototype with hardware (which has a much higher setup cost for me).
--- End quote ---

I like that, too, being able to quick test an idea in a simulation, or to use simulation and/or programming as a helping tool for learning.  That's a huge advantage, but could easily turn into a very time consuming approach.



--- Quote from: AaronD on August 16, 2021, 08:47:26 pm ---I think today's simulators are still incomplete, in the sense that they only work exactly as-drawn or as-modeled.  That's good for teaching basic theory, and for an experienced designer to try out some of their more hare-brained ideas without risking an expensive prototype, but I want to test my design with all of the real-world parasitics, noise sources, and other non-idealities before I spend a bunch of time and/or money as a hobbyist to build it, without explicitly adding those things any more than I would on a workbench.
--- End quote ---

There's still a difference between the real hardware and the simulated one, indeed.  Simulation is nice, and easy, and fun, but only an experiment will give the final verdict.
Bassman59:

--- Quote from: RoGeorge on August 17, 2021, 09:51:06 am ---Might look tedious and complicated, but in fact it was not that complicated yet it was very, very rewarding.  Can not say the same about "code wiring".  And wire wrapping TTL chips is certainly less complex than writing HDL for FPGA.
--- End quote ---

All due respect, but ... I've done both and for designs of the same complexity HDL wins. By a wide margin. It's not even a fair competition.


--- Quote ---To make a board back then, all that was needed was a handful of TTL ICs and a few paper handbooks with the datasheets.  To implement the same functionality nowadays in an FPGA, you'll need a very complex toolchain setup in order to simulate and to compile the VHDL code, and all that toolchain (with editors, simulators, compilers, libraries, programmers, terminals, etc.) sitting on a very complex OS, with all kind of licenses schemes (many of them time limited), software and drivers compatibility issues, etc.
--- End quote ---

"Handful of TTL ICs." Because your projects were small. I remember my last wire wrap project. It plugged into a PC's ISA card slot and had a couple of big FIFO chips and some PALs and an interface to an HP A-400 (I think) computer. This was 1994, I think, and the main problem with it was just signal integrity. If I had to do the design today in an FPGA it would take a day of coding, a day of verification and 5 minutes of synthesis and place and route. I'd probably spend more time entering the pinout constraints that the tool would take to run.

As for "complex toolchain setup," 1, it's really not all that complex, and 2, you set it up once and then you do as many projects as you are assigned.


--- Quote ---Then, the practically infinite numbers of FPGA related PDF docs for each FPGA family (most of them in the range of hundreds to thousands of pages  :o ), and all the quirks/details varying from one FPGA manufacturer to the other and from one model to the other, then the HDL literature, and so on.

The entry bar to design something is now much, much higher, and the complexity of the software tools grown A LOT.   :-\
--- End quote ---

But you forget that the complexity of the design tasks has grown along with the tools. We do things now that fit in an envelope the size of a credit card that would have taken boards full of MSI TTL chips 25 years ago. And we can do functional verification, timing analysis AND make those changes they keep giving us at the last minute.

Look, if it was easy, everyone would be doing it, right?

Omega Glory:
Sometimes I share the sentiment of the OP (though I'm young so probably don't have a similar prospective), yet at the same time there have been some fantastic developments recently which have made many hardware projects significantly more accessible. For example, I'm very happy to be living in a time where lightweight, free, open source FPGA tools are being rolled out (Yosys, nextpnr, etc.). Those tools have allowed me to rapidly experiment with designing different CPUs and creating simple SoCs. Yes, this sort of stuff could have been done before with vendor tools, (or one could make a CPU from TTL parts, which is also cool), but these new tools have really streamlined the process for rapid lightweight development, and I am thankful for that.
Navigation
Message Index
Previous page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod