The problem with most arguments against software patents specifically that that they are made by people who cannot supply a rigorous definition hardware and software.
I can start with the same RTL source and produce the following systems:
1a. RTL loaded into a simulator and run against a canned data file.
1b. RTL loaded into a simulator and run with a breakout box for real asynchronous i/o
2. RTL compiled to a native binary, run with a) canned data file and b) i/o breakout box
3. RTL synthesized to a gate level netlist and a) run in an STA with canned data
4. RTL synthesized to a device level netlist and run in a circuit simulator
5. RTL compile to FPGA programming and loaded into a hardware emulator with real i/o
6. RTL synthesized, placed, routed, fabricated, and packaged; and run in a system with real i/o.
Which of these implementations are patentable? All? None? Is the original RTL patentable? If it is not but some of the implementations are, at what point does it become patentable?
Even here, that average poster has no experience with creating hardware and thus never thinks very hard about what it is. What is the difference between hardware and software? If you cannot say, then you cannot reject just software patents.