Can a Computer Science Student Be Taught to Design Hardware?
101–110 of 122 posts
Re: Can a Computer Science Student Be Taught to Design Hardware?
#102Hilarious to see Cadence and Synopsys in this article. They are arguably the cause. The complete lack of open source tooling and their agressive tooling price is the exact reason this ecosystem continues to be an absolute dumpster fire. I used Vivado (from Xilinx) a bit during my undergrad in computer engineering and was constantly surprised at how much of a complete disaster the tooling chain was. Crashes that would…
Re: Can a Computer Science Student Be Taught to Design Hardware?
#103Earlier quoted context omitted.
>> 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, net…
> 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 bet…
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.
Re: Can a Computer Science Student Be Taught to Design Hardware?
#104Earlier quoted context omitted.
If there is a shortage, and engineers are trainable, are there apprenticeships available? I’d gladly move to this field.
In the UK, yes there are apprenticeships available (generally at the bigger companies like Arm) but not a huge number of them. The new UK Semiconductor Centre has recently been asking (among many other questions) why the industry hasn't taken up the govt apprenticeship schemes more given the lack of engineers. The answers as to why are ultimately "it's complicated". Your view on the salary during an apprenticeship wi…
Re: Can a Computer Science Student Be Taught to Design Hardware?
#105* The fact that there are comments misunderstanding the article, that are talking about PCB Design rather than (Silicon) Chip Design, speaks to the problem facing the chip industry. Total lack of wider awareness and many misunderstandings. * Chip design pays better than software in many cases and many places (US and UK included; but excluding comparisons to Finance/FinTech software, unless you happen to be in hardwar…
> * Chip design pays better than software in many cases You are comparing the narrowest niche of hardware engineering to the broad software profession overall? > (US and UK included; but excluding comparisons to Finance/FinTech software, unless you happen to be in hardware for those two sectors) How many hardware jobs are in the finance/fintech sector? I've never anyone working on hardware in finance nor have I seen…
Following the lead of everyone else... But if you like I could compare chip design to a selected narrow niche of software that helps me make my point? It doesn't matter. The point is that "hardware doesn't pay" isn't universally true, in the same way "software pays well" is also an untrue universal statement. See my other comments for more nuance or dive into salary guides. One of my comments listed some starting points.
> How many hardware jobs are in the finance/fintech sector?
Quite a few in absolute terms. Not many in relative terms. Pick the view that matches what you wanted to hear.
High Frequency Trading uses FPGAs and custom-ASICs extensively. They're even building their own fully custom data centres (from the soil testing to the chips to the software - in some cases, all done in-house). It's a secretive industry though, by nature, so you'd have to go digging to find out what Jump Trading, XTX Markets, Optiver, etc. are up to -- in London, Bristol, Cambridge, Amsterdam - to name but a few cities with these jobs. I know because I have friends doing them :-).
> Or [...] advise students
Yeah I would love that! But it hasn't really been working as a mechanism for a long time now. Most such people I come across have no awareness of semiconductors. At UK universities, we don't have department-specific expert career advice services, so they're useless. Parents are rarely familiar with the field (as per the general population). Professionals have minimal to no contact with students, especially anyone under 18. Professors/advisors are the best bet but that's really only going to capture students that were _already_ showing an interest.
To be honest, I think having a few more popular US/UK/EU YouTube channels doing any kind of FPGA-based or silicon-based hardware design (i.e. not just RPi or PCB stuff) would help hugely. I've not worked out how a content strategy in this space that I think will work - yet!
Re: Can a Computer Science Student Be Taught to Design Hardware?
#106Of my graduating class, very few are designing hardware. Most are writing code in one form or another. There were very few jobs available in EE that didn't underpay and lock you into an antiquated skillset, whether in renewables/MRI/nuclear/control etc.
We had enough exposure to emerging growth areas (computer vision, reinforcement learning, GPUs) to learn useful skills, and those all had free and open source systems to study after graduation, unlike chip design.
The company sponsoring this article is a contributor to that status quo. The complete lack of grassroots support for custom chips in North America, including a dearth of open source design tools or a community around them, has made it a complete non-starter for upskilling. Nobody graduates from an EE undergrad with real capability in the chip design field, so unless you did graduate studies, you probably just ended up learning more and more software skills.
But the relentless off-shoring of hardware manufacturing is likely the ultimate cause. These days, most interesting EE roles I see require fluency in Mandarin.
Re: Can a Computer Science Student Be Taught to Design Hardware?
#107Earlier quoted context omitted.
How does one pivot? It seems to me the job market demand is probably even more concentrated than the software market?
From Software into Hardware? Your fastest route in is to learn Python and find one of the many startups hiring for CocoTB-based verification roles. Depends a bit on what country you're in - I'm happy to give recommendations for the UK! If you're feeling like learning SystemVerilog, then learn Universal Verification Methodology (UVM), to get into the verification end. If you want to stay in software but be involved in…
I understand that learning FPGA programming (Verilog/VHDL/etc.) is a first-step in that journey. Would you agree? Have you looked at books like FPGAs for Software Programmers? - https://link.springer.com/book/10.1007/978-3-319-26408-0
For each of the domains you have listed, would you mind sharing books/tools/sites etc.?
For example, While researching the above long ago, i had come across the following;
C++ Modelling of SoC Systems Part 1: Processor Elements - https://www.linkedin.com/pulse/c-modelling-soc-systems-part-...
C++ Modelling of SoC Systems Part 2 : Infrastructure - https://www.linkedin.com/pulse/c-modelling-soc-systems-part-...
gem5 Simulator - https://www.gem5.org/
Verilator Simulator - https://www.veripool.org/verilator/
Maybe you can provide a step-by-step roadmap on how a software guy (C/C++, systems programming) can move on to hardware chip design?
Re: Can a Computer Science Student Be Taught to Design Hardware?
#108Earlier quoted context omitted.
I'm talking about chip design: Verilog, VHDL, et al. Very specifications-driven and easily tested. Very easy to outsource if you have a domestic engineer write the spec and test suite. Mind you, I am not talking about IP-sensitive chip design or anything novel. I am talking about iterative improvements to well-known and solved problems e.g., a next generation ADC with slightly less output ripple.
> easily tested. Definitely not. You do normally have pretty good specifications, but the level of testing required is much higher than software. > Very easy to outsource The previous company I was in tried to outsource some directed C tests. It did not go well. It's easy to outsource but it's even easier to get worthless tests back.
No dispute there. I suppose I meant "simply" instead of "easily".
Outside of aeronautics software (specifically, aviation and spaceships/NASA), the topology of the software solution space can change dramatically during development.
Stated differently: the cyclomatic complexity of a codebase is absurdly volatile, especially during the exploratory development stage, but even later on... things can very abruptly change.
AFAICT, this is not really the case with chip design. That is, the sheer amount of testing you have to do is high, but the very nature of *what you're testing* isn't changing under your feet all the time.
This means that the construction of a test suite can largely be front-loaded which I think of as "simple", I suppose...
Re: Can a Computer Science Student Be Taught to Design Hardware?
#109Why would they? Pay is just much lower, despite the fact that there's way more responsability. I personally know more people who switch from hardware to software than viceversa.
I'd do anything short of murder to get out of software. If I could find a career that paid enough to live somewhere nice and didn't have the horrible working conditions that software does (stack rank, fake agile, unrealistic deadlines, stack rank, etc.) I'd do it in a heartbeat.
Re: Can a Computer Science Student Be Taught to Design Hardware?
#110(But I am not saying either task is easy.)