Crossing the Divide From Software Dev To Hardware Dev
First time accepted submitter szczys writes "Quinn Dunki spent decades developing software before she fabricated her own 6502-based computer. Here she talks about crossing between software and hardware (or the other way around) and why this is easier today than it has been in the past."
tl;dr "Software is a bit like hardware but hardware is less virtual."
Am I missing some point here? Maybe this person has achieved something I don't know about that makes their message more relevant than I can see.
Geez, when I started programming all you had with stdclib. Now I have teams of people who know orders of magnitude more than I do doing my bidding. It's great!
Seriously, though, everything is easier these days. There's a ridiculous amount of stuff out there, if you have enough time to plow through it all.
Run the opposite direction!
Software is made up of worlds created by people hopped up on caffeine and suffering from too little sleep. Hardware follows physical laws, software follows no laws.
Hardware is created, finalized and shipped. Software is a never ending dreary of bug fixes, upgrades and incompatibility.
For your own sanity, stay away.
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
Designing something that runs close to the DC end of the spectrum like a 6502 requires far less engineering know how than pushing into the high speed domain beyond 100MHz. That doesn't invalidate the value of designing with "old" tech when if will suffice but it isn't a viable way to change career paths.
I am becoming gerund, destroyer of verbs.
If you don't know both, you are only using half your brain
What type of transistor?
I was trained in college as a HW guy, did a few boards and ASICs, and now I'm a SW guy. Hardware is increasingly done in ASIC's / programmable gate arrays, and PLD's which are now written in programming languages like Verilog and VHDL. It's much like software, but massively parallel. With machines coming with more and more cores now, the differences are shrinking rapidly. The real difference is that it costs hundreds of $k to compile the final package in silicon. ;-)
Comment removed based on user account deletion
> What type of transistor?
P=NP
Touché. Hardware and software have more in common than I thought.
Without having a good understanding of hardware development you can not be a good Desktop or Embedded level developer.
Why don't you know those things? At least in overview?
Some people are actually curious about technology of all sorts and have an interest in understanding it. As a software developer, I find having a decent knowledge of the hardware to be quite helpful.
Oh quit whining! If you expect me to give a shit about those poor little companies who are only trying to recoup their cost by bilking their uses and hiding their specs? Fuck you, asshole.
knowing most of those things should be a requirement for voting...
dunno why the fuck buy a PI though.
just buy some usb sensors and actuators if that's the thing you want.
world was created 5 seconds before this post as it is.
I am a fan of the people who build their own computers from MSI components.
I discovered microprocessors around 1980, when I was 14 years old, but here in little Belgium I was never able to do something with that knowledge at that time, but my interest got me a bachelors degree in electronics, and a good (better) understanding on how software works. I was always interested in FPGA, but it is only since 2010-2012 that I got finally a possibility to do more than programming. I got my master degree in electronics, and on the way I learned VHDL (one of the reasons that I wanted to go for my master degree), and got an interesting school assignment about on the fly reconfigurable hardware and a thesis involving the Spartan-6 Atlys board.
Also, since 2004 I have been working on and off studying Common Lisp, and processor emulators.
Well, since September 2012 I have been designing a simple microprocessor, for which I first did the implementation of an assembler in Common Lisp, and a simulator, and start of this September I finally got around implementing the simple computer system in VHDL. I was surprised how easy it was, given that I only have about 1 to 2 hours a day in the evening to work on things. It is currently a 16-bit thing which uses 64kB of FPGA block RAM.
Thus, with software knowledge and VHDL, it should become even easier to build custom microprocessors.
And I am not even crossing this line. It has always interested me to go for both hard- and software, but due to circumstances I ended up more on the side of software.
Having the room for doing electronics properly is not that easy. One needs a place committed to it, which can not be used by other people in the family. For that reason, I like the concept of FPGA development boards. It lets me do what I want to, without needing to invest in dedicated space.
The Atlys board gives me all I need for growing in the future. The first part should be to make the system run using the on-board serial controller, so that I can control it through a terminal program, having access to a keyboard and a character terminal.
And I am not done with software, because one of my goals is to write a Lisp system for running on the system, and then start to optimize the ISA for better performance. Other things: go to a 32-bit implementation and start using the on-board 128 MB RAM memory.
I love hardware. Built a 6800 machine on solderless breadboards quite a few years back. Kind of a dumb thing to do durability wise, but it was quick and easy. That brings me to my point. Many new devices these days are only available as surface mount devices. Have you ever tried to solder one of those bad boys into a circuit? The Arduino and its ilk are great but shields and stuff are basically pre-built and component level design is becoming a lost art. Well, I suppose you could say that the advent of ICs turned discrete transistor design into a dying art to an extent. Of course, things that can be done today are magical compared to 20 years ago. Ch-ch-ch-changes.
Does anyone know of an inexpensive and easy way to work with surface mount devices? Prototyping SMT boards are available from Schmartboard and others but they sure aren't inexpensive.
Progress happens despite the excesses of capitalism, not because of them.
Companies would also be more profitable with slaves, but they don't stop producing when slavery is outlawed. It's up to the society that protects these profiteers' property to regulate them as it judges best.
I fail to see the difficulty, or the divide, since hardware is a question of petrifying some software to enhance the operation of certain algorithms.
I remember reading articles several years ago by Chuck Moore about what he was doing to control a silicon foundry to produce chips which would hard wire some algorithms in silicon while leaving the rest as software implementations in Forth.
TILs (Threaded Interpreted Languages) lend themselves very well to this.
The level of interpretation, and the repetition of interpiling, depends on what you define and cache as interpreted code. That is only one step away from petrifying it in silicon.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
Bravo!
I should use this sig to advertise my book ISBN-13 : 978-1501515132.
I've taken the high tech way to designing hardware - FPGAs. So far I've built quite a few bits and bobs - 200MHz GPS referenced frequency counters, a 60 stage Mandelbrot pipeline (12B Ops per second @ 200MHz), SDRAM controllers, my own processors, video adapters, and implemented the DVI-D protocol. I've even worked out how to make a chip with 1Gb/s outputs work at 1.5Gb/s - yay! 1080p! Everything is in a HDL (Hardware Description Language) so can be used by others on their own projects. It isn't that expensive - dev boards start less than $100.
As Quinn points out it takes a very long time to get everything working correctly - you software guys don't know how lucky you have it!
I've put some of my projects on my wiki at http://hamsterworks.co.nz/mediawiki/index.php/FPGA_Projects if anybody wants to take a look.