Best books to learn the following languages: VHDL, MATLAB

McCartney

Senior member
Mar 8, 2007
388
0
76
Hi guys,

So I'm a computing science student who loves Math, a lot. A lot of people told me I should become an engineer because of how excited I am to take Numerical Methods I and II in my fall/winter semesters of 09/10 (Yes, I"m that excited, it's integrals in FREAKING CODE :eek:) and my apparently-unstable mental state since I took Calculus 3 this past year when only 1 and 2 were required for the degree. :/ I just love math! So in order to prepare myself for Fall, and the lack of demands for getting a job (I'm taking differentials in Spring/Summer, more math ^_^), I decided I want to learn both MATLAB and VHDL over these 2 light semesters.

As such, I'm wondering what literature (online, paid/free doesn't matter) you guys would recommend to become a master of MATLAB and VHDL? I am planning to go into a low-level programming job when I'm done my degree, as in I want to be designing compilers for ARM devices or designing low-level programming language algorithms for applications in the everyday world. I know this is more of a job that's focused on VHDL-related programming, but the Numerical Methods is to make sure I have the choice of doing the prior or working for some sort of sports statistical company (Yes, I love sports and I love stats >_>).

Any recommendations on the 2 would be appreciated. And to boot, if you guys could recommend a good source to learn up on machine architecture programming that would be sweet as well.

Thanks guys.
Macca
 

squatchman

Member
Apr 1, 2009
50
0
0
yea... VHDL, I'd be really careful treading down a path like that. I won't say that it's a dead end street with a bomb at the end, but your life would probably be a lot more interesting doing almost anything else. Not to mention finding a job with a lower rate of suicide would be easier.

As for learning machine architecture, starting out with the Intel manuals could be one way. Free PDF downloads!
http://www.intel.com/products/...ssor/manuals/index.htm

 

McCartney

Senior member
Mar 8, 2007
388
0
76
But I like circuit-logic and gate logic... I'm very good at that sort of stuff,

Please? :(
 

degibson

Golden Member
Mar 21, 2008
1,389
0
0
Originally posted by: McCartney
But I like circuit-logic and gate logic... I'm very good at that sort of stuff,

Please? :(

Then save your sanity and learn Verilog instead. But its better to just learn about circuits, rather than how to describe them in Verilog or VHDL.

Edit: My response earlier was abrupt about VHDL because its primarily used for modeling digital circuits for engineering applications. It doesn't have much to do with 'low level programming' at all.
 

esun

Platinum Member
Nov 12, 2001
2,214
0
0
Learning Verilog or VHDL is akin to learning a programming language. Doing so gives very little insight into how to actually program (or design logic). It just teaches you how to express your program (or logic) once you understand how to actually design the program (or logic).

I can't recommend anything related to VHDL since I only know Verilog, but Verilog is rather straightforward to learn without a book. A good website to reference is:

http://www.asic-world.com/verilog/index.html

You'll need a Verilog compiler or simulator in order to mess around with it. I've personally used Verilator:

http://www.veripool.org/wiki/verilator

There are others, though, and a little Googling should turn them up.

BTW, as others have said, embedded system programming and compiler programming have basically nothing to do with Verilog/VHDL. These are _hardware description languages_, not programming languages, and are fundamentally different. They are for designing ASICs or for use with FPGAs.
 

McCartney

Senior member
Mar 8, 2007
388
0
76
I see,
will this stuff (Verilog) help me get accustomed to program to machine architectures? I want to build my toolset for helping design microcode for intel processors.
 

imported_Dhaval00

Senior member
Jul 23, 2004
573
0
0
My info might be somewhat out of date. I took a couple of FPGA courses when I was doing my undergrad. We basically used Xilinx FPGA boards to create Finite State Machines (FSMs), program RAM/ROM modules (data structures), simulation (your basic elevator-type FSMs), etc. We used a book called FPGA Prototyping (not sure if it's still in print) which was pretty good. At the same time, we had a kickass teacher, so I guess my experience wasn't too bad. I don't know the state of things now, but from what I hear from a couple of buddies of mine is that Verilog kicks major VHDL ass. I am pretty sure Xilinx has boards and development kits for Verilog, too.
 

esun

Platinum Member
Nov 12, 2001
2,214
0
0
Originally posted by: McCartney
I see,
will this stuff (Verilog) help me get accustomed to program to machine architectures? I want to build my toolset for helping design microcode for intel processors.

You're still mixing up programming with Verilog. They are completely independent. When you write code in a programming language (whether it be C, assembly, or hand-written binary), it is interpreted by a microprocessor. Verilog is translated directly into hardware, i.e., gates. They are fundamentally different. Unless you plan to be designing chips, you won't need Verilog. Having said that it may be fun to learn anyway.
 

CycloWizard

Lifer
Sep 10, 2001
12,348
1
81
I would think that, as a computer scientist, MATLAB should be a piece of cake for you to pick up. The syntax is very similar to VB, and all of the functions are listed explicitly in the help files, which are very thorough and almost always include an example. I have no formal programming training and have used MATLAB extensively without ever picking up a book. I would recommend trying it out on some of your math homework to get the hang of it.
 

degibson

Golden Member
Mar 21, 2008
1,389
0
0
Originally posted by: McCartney
I see, will this stuff (Verilog) help me get accustomed to program to machine architectures?

Can you explain to us what you mean by program to machine architectures?
 

tatteredpotato

Diamond Member
Jul 23, 2006
3,934
0
76
Originally posted by: McCartney
I see,
will this stuff (Verilog) help me get accustomed to program to machine architectures? I want to build my toolset for helping design microcode for intel processors.

VHDL - Very-High-Speed-Integrated-Circuits Hardware Descriptor Language. You won't write compilers with it, you would write the processor.

If you really want to get into it, I'd suggest getting something like an Altera DE1 or DE2 board that ($125 and $270 respectively) that let you program you own logic circuits and control some devices. Download Altera Quartus II Web Edition and you can try it out without the hardware too (I just find it more fun to actually run things on your board).

Xilinx has similar products too, however my school teaches Altera so that's what I know.
 

michaelklachko

Junior Member
Aug 27, 2008
2
0
0
Geez. How can someone who chose CS major to be so dumb, and so confused about computers? Are you 9 years old? Ever heard of the site called "google"? How about you try searching for such keywords as "mathlab" and "vhdl"? What, wikipedia articles are too difficult for ya?
 

imported_Dhaval00

Senior member
Jul 23, 2004
573
0
0
Originally posted by: michaelklachko
Geez. How can someone who chose CS major to be so dumb, and so confused about computers? Are you 9 years old? Ever heard of the site called "google"? How about you try searching for such keywords as "mathlab" and "vhdl"? What, wikipedia articles are too difficult for ya?

Can we like ban this guy, Mark? Talk about sanity...
 

tatteredpotato

Diamond Member
Jul 23, 2006
3,934
0
76
Originally posted by: michaelklachko
Geez. How can someone who chose CS major to be so dumb, and so confused about computers? Are you 9 years old? Ever heard of the site called "google"? How about you try searching for such keywords as "mathlab" and "vhdl"? What, wikipedia articles are too difficult for ya?

Condescending much?
 

degibson

Golden Member
Mar 21, 2008
1,389
0
0
Originally posted by: Dhaval00
Originally posted by: michaelklachko
Geez. How can someone who chose CS major to be so dumb, and so confused about computers? Are you 9 years old? Ever heard of the site called "google"? How about you try searching for such keywords as "mathlab" and "vhdl"? What, wikipedia articles are too difficult for ya?

Can we like ban this guy, Mark? Talk about sanity...

Can we mock him instead of banning him?
 

Net

Golden Member
Aug 30, 2003
1,592
2
81
if you want to do low level programming then you should definately go into computer engineering.

vhdl and matlab is what you use as a computer engineer or electrical engineer.

classes to look into:

Digital System Design (programing in VHDL on an FPGA board, we made a game)

Signals and Systems (you'll use matlab to filter sound, pictures and different signals)

Embedded Systems (here they make "space invaders" on an FPGA)

Real-time Operating Systems

Introduction to Digital VLSI Circuits

-----

do you have linear algebra done too? then you'll just need differential equations.

Electrical Engineering and Computer Engineering are just few classes different. You can do Electrical Engineering and still cover the computer engineering classes.

But I like circuit-logic and gate logic... I'm very good at that sort of stuff,

why are you in computer science? they abstract all that away.
If you like digital logic then you need to do engineering.
 

Sayian

Member
May 30, 2005
123
0
76
I would highly recommend doing some EE classes, EE major so i'm bias , but I do so many logic designs and such using xilinx. DE, fun class, good luck. When i took the class, you use a-lot of proofing from previous courses( think CAL 3, CAL 2, linear algebra, )
 

tatteredpotato

Diamond Member
Jul 23, 2006
3,934
0
76
Originally posted by: engineereeyore
Here's an excellent VHDL book. It's a little pricey, but well worth it. A professor had me check it out back when I was in grad school and it was the best one I'd ever seen.

http://www.amazon.com/Fundamen...ineering/dp/0072499389

Thats actually the book we use in my Digital Systems class, I don't have any experience with other books really, but I agree this one is pretty good.