top | item 47054544

(no title)

sifar | 12 days ago

>> Stuff runs in parallel. You occasionally have to know about really hardware things like timing and metastability. But the venn diagram of hardware/software design skills is pretty much two identical circles.

I don't know your background, but this feels like from someone who hasn't worked on both the aspects for a non-trivial industry project. The thing is software spans a huge range - web FE/BE, GUI, Database, networking, os, compiler, hpc, embedded etc. Not all of them have the same background to be a good HW designer. Sure you can design HW as if you are writing software, but it won't be production worthy - not when you are pushing the boundaries.

My work straddles both HW architecture and SW. I design processors, custom ISA optimized for SW application algorithms, and ensuring optimized micro-architecture implementation on the HW side to meet the PPA. I sit at the intersection of HW, SW and verification. People like me are rare, not just in my company but in the industry. Things fall through the gap, if you don't have someone to bridge it and then you have a sub-optimal design.

I don't deny that SW people cannot learn HW design, there is nothing magical after all; just hardwork and practice. But to say that the venn diagram is two identical circle is plain wrong. The cognitive load to shuttle up and down the two HW/SW stacks is a lot more than either of them.

discuss

order

IshKebab|11 days ago

> someone who hasn't worked on both the aspects for a non-trivial industry project

I have.

When I say software I mean e.g. proficient C++/Rust developers. There's absolutely no reason any of them would struggle with silicon design. Yet silicon designers treat it as if it's some fundamentally different skill, like the difference between playing a piano and a trombone, rather than something more like the difference between programming GPUs and CPUs.

sifar|11 days ago

>> rather than something more like the difference between programming GPUs and CPUs.

Again, I get your point, but you are really trivializing HW design here and I don't want anyone starting or migrating from SW to get a wrong impression that you can just pick it up. Sure, with enough thought, patience, skill and hard work anyone can do it - but that applies to anything. But don't expect that just because you know Scala or are a good parallel programmer, you can design good HW that is PPA competitive. You have a better shot than others, but that's it.