ECE385 with ECE391
Relevant Course Reviews
Who should take them?
CompE majors are required to take both courses, while EEs only need to take ECE385 but can take ECE391 for their hardware lab requirement. Both courses do not have much overlap in terms of content, as ECE385 focuses more on hardware design whereas ECE391 focuses on low-level software design. There are some shared topics about device interfacing which are covered from different perspectives in each class, however the courses cover mostly topics that are at best tangentially related. Taking these courses together builds a great understanding of the hardware-software interface; ECE391 and can help with ECE385 in that by understanding how the software uses the hardware will make it easier to design easy to program software-hardware interfaces (e.g. for the ECE385 final project). Having said this, both courses work very well when taken independently, and it is fairly common to take ECE385 before ECE391.
Workload
Both courses are very time-intensive. ECE391 has 3 MPs throughout the semester, but they are all fairly large projects - even the fastest students often spend a minimum of 20 hours per week on these MPs. ECE385, on the other hand, is typically around 10 hours of work per week, since each week you have to design and build/implement the circuit for the next lab and finish your lab report for the previous week's lab; both these classes can take significantly more time if you are not good at debugging your MPs & digital circuits. The main thing to know, though, is that you'll be spending at least half your time on labs & MPs if you take these classes concurrently.
Additionally, both courses have final projects with varying levels of open-endedness. If you want to put extra effort and time into these, you'll probably have to choose whether to focus your effort on ECE385's final project (which can be whatever digital circuit you want, subject to TA approval) and ECE391's MP3, which is a group MP in which students get to design their own UNIX-like operating system.
Recommendation
The combination of these two courses is very difficult mostly because of the time commitment each course involves. Students who can handle the workload of this combination do well, but taking any other time-consuming classes at the same time is strongly discouraged. The final projects in each class can be really cool, so if you would like to go all-out on both, you probably want to take these classes in different semesters. However, if you did very well in ECE120 and ECE220, you may be up to the challenge; if you love hands-on projects, the high time commitment from these classes may even be somewhat enjoyable. If you do decide to take on the challenge, be sure to find a good lab partner for ECE385 and a good group of 4 people for ECE391's MP3; without these, both courses will be significantly more time consuming.
If you are still thinking twice about taking these courses together, a good alternative would be to take ECE391 and a technical elective (there are a lot of CompE tech electives you can take after ECE120, ECE220, and CS225 which aren't huge time sinks). Why not take ECE385 first, you might ask? Well, there are many classes that depend on ECE391, whereas almost none require ECE385.
If you are really interested in digital hardware, ECE411 is really the must-take course - which, strictly speaking, doesn't have ECE385 as a prerequisite. However, the knowledge of SystemVerilog from ECE385 is very helpful and nearly mandatory compared to the content from ECE391 used in the course, which can generally be self studied.