I was going to walk away from this stupidity, but I just can't seem to let it drop. You claim that there is no "fundamental difference" between hardware and software. How far down are you going in order to make this claim? Yes, they are both called "engineering" and both require some common skills, but they diverge rapidly above that level. Are you talking about the activities, or the education?
As for the activity, here are a few design examples from my career, roughly ordered from all hardware to all software (not in time sequence):
- Hearing aid design (audio amplifier, filter, compressor), all analog circuitry
- "Wireless microphone" style radio transmitters and receivers
- EMI design and mitigation
- Switching power system noise analysis and cure in a timeslotted multiplexer
- Acoustic test equipment (some analog, some digital, no software)
- DS1 and DS3 framing, synchronization and switching ASICs (are you calling Verilog "software"?)
- 6800 processor board hardware
- Bootcode (68HC11) for system linecards
- Analysis of digital clock generation methods and time/spectral performance
Sure, some of those things could be done better digitally now, using software, but that's not an argument that there is no difference.
And I agree that a useful engineer should probably get experience in hardware and software, and avoid early specialization (I managed to avoid it my entire career).
Overall all you have done is mentioned a few spot examples; you have failed to supply a test that can be used to distinguish between hardware and software. Without such a test the differences are small
I am sad that you don't seem to grasp the essence of our disagreement. "Failed to supply a test"?? Who says I need to? I gave you examples and if you can't admit that some are examples of hardware design, some of software design, and some a mix, then I have to assume that you are deliberately arguing in bad faith (I won't suggest DK, even though you did.)
Apart from that, you have made many wrong and strange statements...
I've never thought of an electromagnetic field as "hardware"; it is physics! Even then, software is used to mitigate radio EMC problems and some EMI problems.
The EM field isn't hardware, but the circuitry that generates and receives them is. And so what if software can be used in the analysis? It may be useful, but it isn't fundamental. If your criterion is: "If software can be used in the process then it's a software design." I'm afraid that we can probably stop here. But I continue...
As someone that wears a hearing aid and expects to be eligible for a cochlear implant in one ear, I a, familiar how much you don't know about hearing aids. My first hearing aids had very limited "programmability"; my current has stunning capabilities partially implemented in "software". Cochlear implant controllers are even more sophisticated.
You have no idea about how much I know about hearing aids. Bear in mind that my work on them was back in the 1980's, but even then we were working with cochlear implant researchers. And again, so what if modern hearing aids now use software? Before I quit that job we were starting to look at DSP signal processing in HAs (but the tech wasn't quite ready for practical consumer application.) The fact remains that those designs were fully analog. No software in that hardware.
Is a neural net with all its internal weighting factors hardware or software? Consider Igor Aleksander's WISARD and Tesla's car controllers - especially the "prototype <cough> full self-driving" system.
Irrelevant. We can both produce many examples of hardware/software hybrids. I never claimed otherwise
I'm not familiar with the details of verilog, but VHDL certainly is software by most people's definitions. As wackypedia puts it "The VHSIC Hardware Description Language (VHDL) is a hardware description language (HDL) that can model the behavior and structure of digital systems at multiple levels of abstraction, ranging from the system level down to that of logic gates, for design entry, documentation, and verification purposes. ... The key advantage of VHDL, when used for systems design, is that it allows the behavior of the required system to be described (modeled) and verified (simulated) before synthesis tools translate the design into real hardware (gates and wires). ... VHDL is a dataflow language". To aid that, VHDL has many attributes not associated with hardware, e.g. constructs to create/read/write files in an operating system.
Again. irrelevant. Some might call Verilog or VHDL software, but the resulting design implementation is hardware. This hardware may run software, but so what? Anyway, I put the Verilog example closer to the "software" end of the continuum.
As for 6800s, why not consder the contemporary AMD2900 family where microcode is a key implementation concept. Is the microcode hardware or software?
For a more modern example, consider Intel x86 processors from the P6 onwards. How do you think Intel changes the operation of its processors in installed systems? Is Intel Microcode hardware or software? https://en.wikipedia.org/wiki/Intel_Microcode
If you think x86 processors are hardware, how do they, when powered down, detect and respond to "wake on LAN" packets to apply power to themselves to start operating again.
Microcode? Irrelevant. It's more firmware than software but I don't care what you call it. By the way, I did the 6800 design in 1976. Why is a contemporary design significant to your argument? And why do you keep bring up microprocessors? It's a fact that micro design is a combination of hardware and software (sort of), and that has never been in dispute.
"Wake on LAN"?? So that section isn't actually powered down. Do you even understand what is going on? And of course they're hardware, running some sort of program. Do you think that software runs on unpowered nothingness?
Analysis of clocks and time/spectral performance is no more hardware than systems modelling.
That was kind of my point, and it should have been obvious (remember, I said "ordered list, from hardware to software"?) The resulting designs went into ASICs, implemented as registers and gates, no software involved. And software (some I wrote, others I bought and used) was used to analyze and develop the designs.
Analysis is part of the design process, and sometimes it involves software. Other times it's pencil and paper, and perhaps a calculator. But the resulting design is often hardware, not software.
If you are merely saying that engineers often use software in the design process then just say that and I will agree. But that's not what you are saying and apparently not what you believe.
The more I think about it I fear that you have in bad faith lured me into a stupid argument. Unless you can bring forth a semi-cogent response I'm going to let it drop for now.
[edit: fixed one missing quote tag]