Editing your FPGA source

[Dave] noted that in a recent poll of FPGA developers, emacs was far and away the most popular VHDL and Verilog editor. There are a few reasons for this – namely, emacs comes with packages for editing your HDL of choice. For those of us not wanting to install (and learn) the emacs operating system, [Dave] got Notepad++ to work with these packages.

Notepad++ already has VHDL and Verilog highlighting along with other advanced text editor features, but [Dave] wanted templates, automated declarations and beautification. To do this, he used the FingerText to store code as snippets and call them up at the wave of a finger.

As [Dave] writes his code, the component declarations constantly need to be updated, and with the help of a Perl script [Dave] can update them with the click of a hotkey. Beautification is a harder nut to crack, as Notepad++ doesn’t even have a VHDL or Verilog beautifier plugin. This was accomplished by installing emacs and running the beautification process as a batch script. Nobody can have it all, but we’re thinking [Dave]’s method of getting away from emacs is pretty neat.

18 thoughts on “Editing your FPGA source

    1. I thought the same thing. I had used them in college but couldn’t find them cheap enough for hobby use. Then I looked at ebay and found something like the following:
      ~$15 dev board

      http://www.ebay.com/itm/EPM240-Altera-MAX-II-CPLD-Development-Board-Free-Shipping-/261065502841?pt=Home_Automation_Modules&hash=item3cc8b77079

      ~$10 Programmer

      http://www.ebay.com/itm/NEW-USB-BLASTER-CABLE-CPLD-FPGA-JTAG-Altera-Programmer-/110892686499?pt=LH_DefaultDomain_0&hash=item19d1b81ca3#ht_2122wt_952

      They’re definitely not top of the line but they worked for me to help get me back into the field.

      1. Beware though, MAXII has only about 100 reprogramming cycles. It’s maybe okay when you know what you’re doing but learning definitely would require much more.

    2. Another good one is Terasic’s DE0-Nano. It’s $60 for academic ($80 for non) but includes a more powerful FPGA than most of the Spartan-3s. It doesn’t include much in the way of peripherals but it’s small and that has its own merits.

      1. Indeed, the DE0 nano board is pretty nice to learn with, but the Terasic shipping costs are outrageous. Almost the price of the board for delivery in Europe.

  1. what kind of money are you talking about? there are entry level fpga boards a plenty for like $50. that’s not free but it’s not really prohibitive.

  2. Editing the “code” has never been a problem for me, it’s the synthesizers and bitstream generators and programmers and all that crap… AFAIK, each manufacturer has their own toolchain, and there are no friendly/open source/generic toolchains out there.

  3. I’m not going to start another editor-of-choice gunfight, but I couldn’t let this pass without comment:

    This was accomplished by installing emacs and running the beautification process as a batch script.

    That’s so ugly it’s practically Zen — I almost fell into my own navel just thinking about it.

    1. I think its somewhat of a nice way of using the right tool for the job. if one is not fond of using emacs interactively, using it automated just for the task(s) is solves for you, seems to me, a good approach – even if it is in effect just to use one plugin that is not available otherwise.

      1. “I don’t mind using the functionality of an eighteen-wheeler, I just want it hidden behind the UI of a Hot Wheels toy.”

  4. I can’t believe it! A webpage mentioning Emacs without someone promoting *** in the comments. *** isn’t even mentioned. Is the greatest ever flame-war dieing down? ;)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s