I completely new to this field, although I used to do programming in C++/Python and use Ubuntu/Fedora. I am student of experimental particle physics, more precisely Detector Physics. I have just started learning VHDL, but don't know how to start. I have few question,

I am modifying my question completely...

1 - Editor: The one specifically made for VHDL which can recognize VHDL syntax, beautify, indent and highlight VHDL reserved keywords etc.

2 - Compiler: After writing my code I need to compile/run my code to debug, so I need a compiler for VHDL. I don't know if VHDL needs compiler or not.

3 - Simulator: After successful compilation, I want to see its simulation representing as real world phenomenon.

We physicist do most of our work based on simulations. We jump in real world after doing hundreds of simulations. Sometime we need to simulate hardware for our detector before actually start building it, as people do in industry normally.

I guess its pretty precise now.


closed as too broad by Joe Hass, Matt Young, Kaz, Leon Heller, Chetan Bhargava Apr 27 '14 at 21:21

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 8
    \$\begingroup\$ In general, first step would be to forget everything you knew about programming, because you aren't programming in VHDL. You're describing hardware. So first start by picking a device you can work on, then get the toolkit from the manufacturer of the part you wish to work with and start learning it. In general, it will have all steps you provided. Your operating system choice will affect which hardware you can use, so do some research in that area. \$\endgroup\$ – AndrejaKo Apr 27 '14 at 10:47
  • 1
    \$\begingroup\$ One of the community ads here is for the following that may be useful: hamsterworks.co.nz/mediawiki/index.php/FPGA_course and the Xilinx tools mentioned can be downloaded for free and include everything above. \$\endgroup\$ – PeterJ Apr 27 '14 at 11:07
  • 1
    \$\begingroup\$ @Adeel I see that you added "from Programming point of view" to your question. You don't program in VHDL. It's not a programming language. It may, at first look, seem similar to programming languages, but if you decide to treat it as a programming language and attempt to learn it from programming point of view, then you're sure to have problems with it, due to misconceptions coming from programming background. \$\endgroup\$ – AndrejaKo Apr 27 '14 at 11:22

Your best bet, may be to start with Xilinx's free web pack located here. It has tools to synthesize your VHDL into logic and also provides a simulator (limited) to visualize your timing and logic.

The editor really doesn't matter, just work with what you're comfortable with so long as it has syntax highlighting for VHDL. Refer to this question on this stackexchange: Free IDE for VHDL and Verilog

I highly recommend you also learn to write "testbench" code for your VHDL you're are writing. If you're familiar with "unit testing" in software development, writing testbench code is a similar process. A testbench is basically a separate VHDL file written to test the logic of your VHDL module under design. You use the testbench "code" to apply various logical inputs to your design. This is normally used in your simulator where you watch the logic flow in and out of your design. Normally when you write a design, you know what expected inputs and outputs should be, so that is what testbench code is used to accomplish.

  • \$\begingroup\$ Thank you, My first question was about editor which recognize VHDL syntax. We can write code even in notepad as well. But editor made for a specific purpose gives additional benefits and there are less human errors. I almost got my answer except testbench, if you shed some more light it would be nice. \$\endgroup\$ – Adeel Apr 28 '14 at 20:32
  • \$\begingroup\$ updated with more info \$\endgroup\$ – Jay Atkinson Apr 28 '14 at 23:16

Not the answer you're looking for? Browse other questions tagged or ask your own question.