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
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • 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
FPGA
  • Technologies
  • More
FPGA
Forum Choices of Design and Build one FPGA Project on Digilent Arty-S7
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 15 replies
  • Subscribers 558 subscribers
  • Views 3804 views
  • Users 0 members are here
Related

Choices of Design and Build one FPGA Project on Digilent Arty-S7

fyaocn
fyaocn over 3 years ago

Migration from the Spartan-6 to the Spartan-7 FPGAs brings about improvements, but it would be interesting to find out which roadmap is preferable by developers. Here is the choices,

  • Design Baremetal with simple Flip-Flops in  Block Design in VIvado

image

  • Design Baremetal with IP integrator in Vivado

image

  • Design Baremetal with Verilog , System Verilog or VHDL in Vivado

image

  • Designing with MicroBlaze only in Vivado

image

  • Desiging with C++ code in Vitis 

image

Refer the the blog Build a project with the Arty S7-The Blinky Project - Blog - FPGA - element14 Community  for several proposed choices for details. 

  • Sign in to reply
  • Cancel

Top Replies

  • Jan Cumps
    Jan Cumps over 3 years ago +8
    I have an opinion : When learning FPGA, I'd advise not to go the MicroBlaze and C++ way. Because then you're back in the microcontroller world and the usual programming languages. You don't learn the…
  • michaelkellett
    michaelkellett over 3 years ago in reply to saadtiwana_int +7
    Cost, power, complexity ! (The comment was made in a thread based on Spartan6/7 which are being pushed as "entry level" FPGAs) The ARM cores in the Zynq are application processors not micro controllers…
  • beacon_dave
    beacon_dave over 3 years ago in reply to michaelkellett +5
    What I had envisioned here was a learning path that takes someone with microcontroller experience on say an Arduino Uno and give then an alternative route into FPGA by building on what they already know…
  • beacon_dave
    beacon_dave over 3 years ago in reply to michaelkellett

    What I had envisioned here was a learning path that takes someone with microcontroller experience on say an Arduino Uno and give then an alternative route into FPGA by building on what they already know, whilst at the same time demonstrating some of the advantages of FPGA right from an early stage.

    Using the MicroBlaze soft processor on the likes of the Arty S7 being discussed here could perhaps achieve that, assuming it was done well by encouraging the leaner to build upon their existing knowledge before diving into hardcore HDL design.

    Using the likes of the Arty S7, then I envisioned the first steps being to be to turn it into an Arduino Uno like board using the basic MicroBlaze microcontroller preset and the block design mode to wire up some Arduino shield header pins. Then write some code to drop onto the MicroBlaze instance to do the blinky thing and output 'Hello world' to the console.

    This should help keep them close to the comfort zone whilst getting to grips with a new IDE and leave them with a foundation that they can continue to do familiar stuff with and explore further.

    However it hasn't really demonstrated any significant advantages over their existing platform. For that you need to be able to do something a bit new like changing the memory size, selecting and deselecting the peripherals to change the footprint or by adding additional peripherals like timers, UARTs, PWMs from the IP catalogue. Add a second MicroBlaze instance and target different programs to each. Play around with the different MicroBlaze presets. Something a bit different from what can be done on the likes of the Arduino Uno platform, demonstrating some of the flexibility and why they may want to continue exploring FPGA.

    Once comfortable, then time to explore HDL and start adding custom logic blocks into the design.

    All this would be running on the same dev board so at this stage no issues with interfacing between a microcontroller and separate FPGA or multiple instances of different vendors software. That aspect can be left for another day. Analogue inputs could be done through an Arduino shield or through PMOD modules.

    I noticed the other day that Whitney Knitter ( knitronics  ) has created a fairly new 5-part video series but using the Arty Z7:
    https://www.youtube.com/watch?v=or3yYwGyGpA&list=PLSTiCUiN_BoIM4anuvWS_bM7PTbECZ3PE

    Rather than MicroBlaze soft processor, she walks through getting up and running on the embedded Arm processor then moving to embedded C and then finally onto some HDL. Well worth a watch for those wanting to get started on an Arty Z7 or similar.

    • Cancel
    • Vote Up +5 Vote Down
    • Sign in to reply
    • Cancel
  • Metaforest
    Metaforest over 3 years ago in reply to beacon_dave

    My two pence.

    This might be a bridge too far.  MicroBlaze doesn't support the Arduino execution environment out of the box.  So right away there is a big bump in setting up a default processor environment and connecting I/O to the Arduino compatible hat interface. There is no library support.   When they say bare metal they mean bare metal.   Most Arduino savvy makers don't really understand that the Arduino platform is a runtime environment and a suite of specialized libraries that run in that environment.  I think it would be better to approach the Arty as a new platform with a more simplistic development environment.  There are rudimentary libraries for the I/O devices in the IP catalog, but the learner is going to need instruction in the basics of a bare metal C/C++ environment to get any useful learning done.

    First steps are getting a Microblaze system to say Hello World over a serial link.  This is what the Digilent tutorials offer.  But if the student doesn't have a grasp of what the object layout editor is doing they are not going to understand the problems that can occur as they try to customize the basic MicroBlaze design to meet their own goals.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to Metaforest

    I too think that starting with MicroBlaze is a distraction from what you're trying to learn: FPGA development.

    A great module to work with, but if you start with that, you spend brain cells on a (for beginners or for those that want to learn cross-platform) side track in the training, that doesn't bring the goal closer. You need to make the elbows and hands dirty to begin with FPGA. By designing FPGA designs , doing FPGA exercises. Not loading a predefined block and hopping over to GCC.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • javagoza
    javagoza over 3 years ago in reply to Jan Cumps

    I agree with Jan. Looking at it from the perspective of a JAVA programmer, which is what I do in my professional life. If someone asks me how to learn to program, I recommend that they start by learning to implement the basic sorting, search, graph, and string algorithms on their own, and then delve into the main design patterns. Let him do it by implementing them from scratch without the help of libraries. Later, when they have mastered the basics, I tell them the opposite, do not do anything from scratch, use the libraries and the well-known patterns that have thousands of hours of very intelligent people smarter than me behind them.

    I am new to FPGAs but have a strong formal background in old digital electronics. Currently my interest in FPGAs is not digital design but curiosity about the complete embedded system design cycle. And for this reason I have designed a learning plan from a perspective away from logic gates or trying to master a certain HDL language. My interest is to know in a generic way a wide range of aspects about the design and flow of the current development of embedded systems using FPGAs.

    Who knows, maybe I'll get hooked on the world of FPGAs and soon I'll go back on my words.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to javagoza

    Learning a HDL language followed a strange curve in my case.
    I have studied Boolean logic / digital circuit at school. But no hardware definition, or anything related to CPLD, FPGA.

    I bought a Spartan-6 kit to learn HDL.

    Understanding the language, and understanding designs, went  steady up. After a year I was able to understand someone's design. Often also why they did it a certain way.

    Being able to design something myself was a sudden click. It took 7 years. My first VHDL design where I came up with an approach myself (not lifting someone's work and adapt it with trial and error), spontaneous, was last year. When I tried to make a quad pulse generator for shabaz's SDR.
    It went fast from then on. From not being able to design a real thing, to coming up with several options, in a few days.
    For me it was like learning to ride a bicycle. Lots of learning without result, without satisfaction. Then suddenly you manage to do it and there's no looking back. 

    With programming languages, the ability to design things came very early, after I mastered just a few commands. That's closer to how my brain's thinking process works.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
<
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