How to start (newbie)

E

e7

Hi,

Complete newbie to VHDL.
I am electronics engineer and want to
start learning and doing VHDL.

I can learn from googling but to cut out
the noise, just wondered if anyone can
give me some clues.

I'm on the GNU/Linux platform.
Cheapest way to buy a chip and
program it with something like
the free 6502 CPU. Then edit the
VHDL and program it again and again
to see how VHDL works.
 
M

Mike Treseler

e7 said:
I'm on the GNU/Linux platform.
Cheapest way to buy a chip and
program it with something like
the free 6502 CPU. Then edit the
VHDL and program it again and again
to see how VHDL works.

Unless you just want to just run the canned demos
and flash some LEDs, consider deferring the hardware
purchase until you learn some vhdl language for synthesis
and simulation.

Once you have a synthesis design that sims,
doing the place and route and loading an FPGA
image on a board is pretty cut and dry.

Work with the free sonata linux download
to design some synth code
and a working simulation testbench.

-- Mike Treseler
 
E

e7

Mike said:
Unless you just want to just run the canned demos
and flash some LEDs, consider deferring the hardware
purchase until you learn some vhdl language for synthesis
and simulation.

Mike, my experience of VHDL is nil.
So even canned demos are going to sound great.
Even just to buy a chip, and flash an LED on/off
will be a great start for a newbie like me.
But I haven't the foggiest which makers are best
place to start. I googled for all the major vendors,
but I am a loss with the bewildering array of information.

I just want a cheap skate DIP chip something commonly used
that I can solder up some sockets pretty quick, and
some way of programming it,
and then Linux based software that can convert
VHDL into schematics / vice versa and then program it
so that I can see it working.
I think the free 6502 uses 15,000 cells or something, so I need
something big enough to cope with that.

Once you have a synthesis design that sims,
doing the place and route and loading an FPGA
image on a board is pretty cut and dry.

Work with the free sonata linux download
to design some synth code
and a working simulation testbench.

I will give that a try - thank you.
 
R

Ralf Hildebrandt

e7 wrote:

Mike, my experience of VHDL is nil.
I think the free 6502 uses 15,000 cells or something, so I need
something big enough to cope with that.

Do you think, that such a big project will help you? I personally would
get confused.

I would recommend to start with a book, like HDL chip design
http://www.doone.com/hdl_chip_des.html Turn your computer off and just
read. This books wasn't that heavy, but very helpful.


Ralf
 
E

e7

Ralf said:
e7 wrote:




Do you think, that such a big project will help you? I personally would
get confused.

I do a lot of coding in assembler and C - so learning VHDL is
easy enough having looked at the syntax - but need to link
it with the real world by programming chips and try to
understand the practical side of using VHDL, programming up
the chips and then debugging it when it all goes horrible.

I would recommend to start with a book, like HDL chip design
http://www.doone.com/hdl_chip_des.html Turn your computer off and just
read. This books wasn't that heavy, but very helpful.


Ralf

Thanks - but didn't want to spend money like that.
If there are good on-line books, I'll take it.
 
W

Wing Fong Wong

e7 said:
I do a lot of coding in assembler and C - so learning VHDL is
easy enough having looked at the syntax - but need to link
it with the real world by programming chips and try to
understand the practical side of using VHDL, programming up
the chips and then debugging it when it all goes horrible.

Just one thing to remember with VHDL, the key is the HDL part, thats
H=Hardware D=Descriptor L=Language.

Just FYI the V in VHDL stands for VLSI which stands for very large scale
intergration.

Avoid thinking of VHDL as code but more as a picture of the hardware you
are trying to implement. Otherwise, you'll run into all sorts of timing
problems.

One more thing, you can actually decribe hardware in C. But as with VHDL,
don't think of it as code but a description of the hardware you are trying
to implement. Personally for simple designs, I perfer to use a graphical
layout program, that way the temptations of looking at the problem like
a programmer is reduced.
 
M

Mike Treseler

e7 said:
Mike, my experience of VHDL is nil.
So even canned demos are going to sound great.
Even just to buy a chip, and flash an LED on/off
will be a great start for a newbie like me.

If your objective is to program a circuit board
to do your bidding, consider buying a CPU board
that boots right out of the box.

If you objective is to learn vhdl, start with
just a simulator.
But I haven't the foggiest which makers are best
place to start. I googled for all the major vendors,
but I am a loss with the bewildering array of information.

FPGAs are a medium-to-big bag of gates and flops.
You have to connect the dots, either
with a schematic or an text description.
I just want a cheap skate DIP chip something commonly used
that I can solder up some sockets pretty quick,

DIP components are rare and cheap sockets are intermittent.
and some way of programming it,
and then Linux based software that can convert
VHDL into schematics / vice versa and then program it
so that I can see it working.

Without an hdl design and working simulation testbench,
the odds are you will see it not working.
I think the free 6502 uses 15,000 cells or something, so I need
something big enough to cope with that.

Consider either a real cpu board or a much simpler
hardware objective. Good luck.

-- Mike Treseler
 
R

Ralf Hildebrandt

e7 wrote:

I do a lot of coding in assembler and C - so learning VHDL is
easy enough having looked at the syntax
....

NACK. VHDL is not a programming language. It is a tool for modelling
digital circuits. Do not program you circuits - model them!

Software is a strictly sequential task, while a HDL is more a parallel
task. A HDL is similar to a CAD program with the difference, that it is
text-based and not graphically.


O.k. - VHDL and especially synthesizable VHDL is simple and you can do a
lot with only the modelling template for a flipflop, latch and
combinational logic, but especially this has nothing in common with
software.

Sometimes, when I have to write a program (C or ASM), then I first think
of a HDL-like solution and then have to throw it completely away,
because software is really different.


Ralf
 
W

Wing Fong Wong

Ralf Hildebrandt said:
e7 wrote:



...

NACK. VHDL is not a programming language. It is a tool for modelling
digital circuits. Do not program you circuits - model them!

As I said in an earlier post remember the HDL in VHDL stands for hardware
DESCRIPTOR language, meaning its a language used to describe hardware. As
Ralf implied, if you think of VHDL as code you'll bound to run into problems.
 
E

e7

Wing said:
As I said in an earlier post remember the HDL in VHDL stands for hardware
DESCRIPTOR language, meaning its a language used to describe hardware. As
Ralf implied, if you think of VHDL as code you'll bound to run into
problems.

I have enough understanding to follow VHDL modelling.
What I now want to do is make something with it.
Something readily available off the shelf to start
programming a chip and test things.
 
K

Ken Smith

Ralf Hildebrandt said:
NACK. VHDL is not a programming language. It is a tool for modelling
digital circuits. Do not program you circuits - model them!

No, it is a way of discribing logic. The descibed logic can then be
simulated and/or turned into real hardware.

Software is a strictly sequential task,
The above is only true for software that will run in a sequential machine.
Lots of software these days is run in parallel.
 
K

Kai Harrekilde-Petersen

No, it is a way of discribing logic. The descibed logic can then be
simulated and/or turned into real hardware.


The above is only true for software that will run in a sequential machine.
Lots of software these days is run in parallel.

While you are right in the most rigorous sense, Ralf's points still
stands. HDL's are primarily parallel languages, while (most)
(software) programs are primarily sequential. There is quite a
distance between the two.

I have witnessed several software people being "converted" into ASIC
designers. It usually takes them about 6 months beating their brows
flat on Synopsys Design Compiler, before they give up on their old
thinking and start thinking in hardware when designing. The
"SW-in-HW" code was very well-structured and beautiful to read, but it
couldn't synthesize anywhere near the timing goals (the concept of
having to explicitly insert sequencing of operations hadn't sunk in
yet).

At one point, one the these converted software guys came into my
office complaining about DC taking an disproportionate amount of time
elaborating a block (essentially a CAM block). My office mate and I
looked at him at said in unison: "rewrite your code". He lamented. We
insisted on the rewrite explaining that the code was too complex for
DC to understand. After a restructuring, the block elaborated approx
10x faster.


Regards,

Kai
 
K

Ken Smith

(e-mail address removed) (Ken Smith) writes: [...]
The above is only true for software that will run in a sequential machine.
Lots of software these days is run in parallel.

While you are right in the most rigorous sense, Ralf's points still
stands. HDL's are primarily parallel languages, while (most)
(software) programs are primarily sequential. There is quite a
distance between the two.

I do hardware design, software design, write VHDL and do mechanical
design. I don't see a large difference between any of them really. It is
all about subdividing the bigger problem into small enough chunks to
implement. On a deep level, all engineering is the same in this regard.
I have witnessed several software people being "converted" into ASIC
designers. It usually takes them about 6 months beating their brows
flat on Synopsys Design Compiler, before they give up on their old
thinking and start thinking in hardware when designing. The
"SW-in-HW" code was very well-structured and beautiful to read, but it
couldn't synthesize anywhere near the timing goals (the concept of
having to explicitly insert sequencing of operations hadn't sunk in
yet).

But ask your self:

Where these software folks really good at software or where they just
getting by? A lot of schools teach coding and not programming resulting
in people that can write correct code once someone else breaks the problem
down.

Did these people work in more than one language? If the person only codes
in, lets say C, their perspective is very narrow compared to someone who
also does assembly.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top