element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Personal Blogs
  • Community Hub
  • More
Personal Blogs
Legacy Personal Blogs FPGA and Verilog: Beginner's View
  • Blog
  • Documents
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: mraureliusr
  • Date Created: 17 Dec 2013 9:40 PM Date Created
  • Views 785 views
  • Likes 1 like
  • Comments 1 comment
Related
Recommended

FPGA and Verilog: Beginner's View

mraureliusr
mraureliusr
17 Dec 2013

I ended up getting a Spartan 3E development board. It came with all sorts of cool peripherals... now I just have to start learning more Verilog! I really need to get a book or something, the online resources are fairly good but I need simple designs that you can actually put on an FPGA. For example, basic logic gates, and things like that... or simple signal processing, ie put a pulse in by pressing a button and get three pulses out on another pin. Stuff like that.

 

I picked up a copy of "FPGA Prototyping by VHDL Examples" however, as the title states, it's all in VHDL. I've got nothing against it, I've just been told by many that Verilog is a better starting point. I flipped through the book a little bit, and I do know they make a copy with the identical format but with Verilog instead. The great part is the particular copy my library has is the "Xilinx Spartan-3E Edition" which is the exact chip family I have. However the book retails for around $100 a pop.

 

I'm going to Toronto next year to go to Humber College's Electronics Engineering program, and I'm fairly sure they have FPGA classes, so I guess I'll learn more there. But I really want to get going with this board! I've really been searching hard for books, and trying to find good web resources but I've ended up having to cobble many sources together to learn a single point. I am understanding the basic structure of a Verilog program quite well -- all the modules, and ports, and wires, etc. but I need simple design examples to start understanding it a bit better.

 

In the meantime I'm developing a new tutorial video for my YouTube channel, Frozen Electronics. It's going to be aimed at relatively new beginners to AVRs. I'm aiming it at people who are in the same place I was quite a while back: just grasping the basics of C, and wanting to delve into all the features the chip has to offer. I take the audience through designing a simple SPI EEPROM programming routine, to creating feedback through UART. Essentially, the program uses interrupts to wait for a button to be pressed: it echoes the address it's going to read from to the terminal, executes the read, then spits the data out to the terminal as well. Every time the user presses the button the address is incremented.

I will probably add in write capability in a Part 2 video. I'm trying to keep the steps simple enough that someone with less experience in C can follow. Once the time comes, and I'm comfortable with Verilog, I will most certainly do a multi-part video on spinning FPGAs for beginners. Well, relative beginners. I don't think there are many electronics beginners who could wrap their heads around an FPGA easily.

 

Thanks for the comments on the last post! I'll keep writing if people keep reading. Hopefully, more interesting things than these two posts.

  • Sign in to reply
Parents
  • michaelkellett
    michaelkellett over 11 years ago

    Whoever told you that Verilog is a better starting point than VHDL is just SO wrong. I started with VHDL and have been forced ( by demands of some bought in IP) to use Verilog quite recently.  I'll try to be objective:

     

    VHDL is very strongly typed - this means that it tends to choke on most mistakes very early in the process since they won't compile or simulate

    Verilog is weakly typed  and while it's behaviour when you make a little error is well defined it may be far from obvious.

    VHDL comes in many versions but the latest important one (2008) is supported by most tools.

    Verilog comes as Verilog and System Verilog, System Verilog is quite nice but support is patchy. System Verilog provides several ways of doing basic things which can be very confusing.

     

    Many have started with Verilog and many with VHDL  - either is useable.

     

    For what it's worth I think that VHDL's connection with the hardware is MUCH easier to visualise and this helps a lot in getting you to design logic rather than attempting to write C for hardware (which doesn't work very well in VHDL or Verilog).

    I know you have the Spartan board but I wouldn't start there - take a look at Lattice's ultra cheap boards too.(ICE40-HX1k-ICESTICK or LCMXO2280C-B-EVN) both boards under £20 from Farnell and supported by free tools. (I'm always banging the drum for Lattice because I use their parts which are so often ignored because people just look at A and X first - but neither A nor X are putting any resource into supporting low cost simple parts while Lattice and MicroSemi are.)

     

    If you have any specific problems re. VHDL or FPGA I'll be happy to help if I can.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • michaelkellett
    michaelkellett over 11 years ago

    Whoever told you that Verilog is a better starting point than VHDL is just SO wrong. I started with VHDL and have been forced ( by demands of some bought in IP) to use Verilog quite recently.  I'll try to be objective:

     

    VHDL is very strongly typed - this means that it tends to choke on most mistakes very early in the process since they won't compile or simulate

    Verilog is weakly typed  and while it's behaviour when you make a little error is well defined it may be far from obvious.

    VHDL comes in many versions but the latest important one (2008) is supported by most tools.

    Verilog comes as Verilog and System Verilog, System Verilog is quite nice but support is patchy. System Verilog provides several ways of doing basic things which can be very confusing.

     

    Many have started with Verilog and many with VHDL  - either is useable.

     

    For what it's worth I think that VHDL's connection with the hardware is MUCH easier to visualise and this helps a lot in getting you to design logic rather than attempting to write C for hardware (which doesn't work very well in VHDL or Verilog).

    I know you have the Spartan board but I wouldn't start there - take a look at Lattice's ultra cheap boards too.(ICE40-HX1k-ICESTICK or LCMXO2280C-B-EVN) both boards under £20 from Farnell and supported by free tools. (I'm always banging the drum for Lattice because I use their parts which are so often ignored because people just look at A and X first - but neither A nor X are putting any resource into supporting low cost simple parts while Lattice and MicroSemi are.)

     

    If you have any specific problems re. VHDL or FPGA I'll be happy to help if I can.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube