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
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum Role for FPGA or CPLD with Raspberry Pi
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 143 replies
  • Subscribers 682 subscribers
  • Views 21176 views
  • Users 0 members are here
Related

Role for FPGA or CPLD with Raspberry Pi

michaelkellett
michaelkellett over 13 years ago

Interesting - we obviously move in rather different circles despite being in the same business:

 

Take the current project:

 

One master processor (ARM Cortex M4 with ARM serial debugging port and 4 wire trace, Ethernet, USB and serial for debugging)

One supervisor processor (ARM Cortext M0 with ARM serial debugging port)

FPGA with JTAG port

Up to 6 slave processors (ARM Cortex M4s with ARM serial debugging ports)

All in one little box about 25cm x 160cm x 5cm

 

Now to bring up the Ethernet on the master processor I can use its serial port for "printf" error messages (from the Ethernet/TCP/IP library) and the ARM debugging port to load/run/trace the processor. The ARM trace interace box (Keil Ulink Pro) is a USB interface to the development PC.

The superivisor processor is connected via another Ulink to another PC.

The FPGA JTAG interface is USB to yet another PC.

The fourth PC runs Wiresharc and is connected by Ethernet to see what's coming out.

 

It would be nice if the debug tools had Ethernet rather than USB interfaces but they don't.

I could isolate the serial debug port but since I must have three other non-isolated connections it's not worth the effort.

 

This system is all quite low power - so certainly safe to humans and fairly safe to computers. (The really exposed parts are the debug interfaces and there is nothing to be done about that since they need fast conenctions to the hardware.)

In the last 10 years I've lost one debugger and one PC due to my mistakes and in the same time at least 10 PCs have just died (as they do) so it's a cost effective approach.

 

Of course when these things connect to external systems handling real power different rules apply.

 

(AFIK most Ethernet interfaces are not specifically tested for mains safety - either during qualification or as part of normal regular safety checks (and the flash test requirement for Ethernet magnetics is 1500V AC which is OK for some equipment but not for all)).

 

Michael Kellett

  • Sign in to reply
  • Cancel
Parents
  • johnbeetem
    johnbeetem over 12 years ago

    There's a nice new write-up of Valent F(X) FPGA boards for RasPi and BeagleBone at Linux Gizmos: BeagleBone and Raspberry Pi gain FPGA add-ons.  Boards not yet available commercially, but they're considering a Kickstarter.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 12 years ago in reply to johnbeetem

    Very interesting.  I had a good chuckle at "LOGI-BONE SLIM" and "LOGI-BONE PHAT". :-)

     

    Care to hazard a guess at pricing?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • rew
    rew over 12 years ago in reply to Former Member

    You are writing that in response to what?
    YOU are the one making that point with your XST post.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 12 years ago in reply to rew

    Roger Wolff wrote:

     

    IMHO the "good thing" that would come from an open source FPGA compiler would be that the open source community, together with universities, can work on algorithms and methods to improve the whole process for everybody. i.e. improve the set  of known algorithms and methods for the world as a whole...

     

    So... Although I think it's likely that "it will never happen", I do see advantages to the open source FPGA project. Maybe if I was a professor at a university I'd be able to get such a project going. But as it is I'm not in a position to invest the required amount of time and effort in such a project.

    I don't think it needs an organized project.  Indeed, my experience at trying to get academics to work together on anything is far worse than "herding cats".

     

    But what it does need is FPGA architectures with open documentation so that interested individual researchers can see something actually working instead of just writing papers.  Then people can work on the bits that interest them, and if they release the results under a FaiF license the community will be able to collect the results.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 12 years ago in reply to Former Member

    Frippy Frippy wrote:

     

    this is absolute rubbish,

     

    VHDL is both a simulation and design language the fact that you find it hard to use is not down to the language but down to your lack of understanding over how to use it correctly, if you have difficulty learning a tool the best way to understand it better is to practice using it. there is no demand for an open source FPGA design tool because nobody else has the issues that you state that you have,

     

    Ive been using Xilinx, altera and actel tool sets for donkeys years and Ive seen many attempts to rewrite VHDL into something simpler but they always fail due to the huge complexity of the task. The complexity of writting a VHDL synthesis tool capable of handling all devices from all vendors and covering all the VHDL functionality and verifying that it works correctly is stupendously large.I know for a fact that the latest synthesis tools from Xilinx for example took something in the region of 575 man years to write and verify,  and you get it for free..

    I'll speak to Verilog and Xilinx since that is what I use most.  I don't like to type more than necessary and I have limited space for source code listings.

     

    I'm able to get excellent results from Verilog and Xilinx tools, but it's not easy.  If you want to get the right results from Verilog (and I assume VHDL) you have to write your source code so that XST matches the templates to use the correct FPGA resources.  Since I did my Ph.D. and later industrial and academic research on CAD tools, it's easy for me to visualize how XST works and help it get the right results.  I think I'll call this Human-Aided Computer-Aided Design.  It's like a primitive C compiler with poor optimization where the programmer needs to know how to write source code that helps the compiler generate decent machine language.

     

    My point upstream is that this is a lot to dump onto a new FPGA designer.  Sure, an experienced Verilog or VHDL designer has learned how to write code to conform to the eccentricities of the tools, but newbies are going to have a lot of trouble -- something that gets worse as new tool releases add more complexity and steepen the learning curve.  Duane Benson gave an excellent talk called "FPGAs: I know nothing... yet" at the 2013 DesignWest conference.  Duane is an accomplished microcontroller designer and wanted to give his perspective on the challenges of coming up the FPGA learning curve.  The reality from Duane's point of view is that it's really hard to get started.  As I said upstream, the FPGA vendors seem to think that everything is fine and dandy in Toolsville, an opinion you seem to share.

     

    Regarding the complexity of the VHDL tools: yes, I suppose if I were using VHDL as the starting point the problem would be intractable for an individual or a small group.  I also wonder what the late John McCarthy would say if he saw Xilinx's code? image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • rew
    rew over 12 years ago in reply to johnbeetem

    John, one of the differences between VHDL and Verilog is that VHDL is more verbose. Thinking it was more or less an arbitrary choice I went for VHDL first time. The verbosity gets annoying after a while. I had to integrate some Verilog one day and decided to switch.

     

    In C I stick to the rule that I prototype my functions. VHDL requires the prototypes. But whereas a C-prototype will usually be about a line, a VHDL prototype will be about a page.... So that's one of the VHDL things people are complaining about.

     

    Anyway, getting open source FPGA "bootstrapped" means one language -> hardware trajectory implemented. Then adding input modules and output modules should be easy to help things along.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • rew
    rew over 12 years ago in reply to johnbeetem

    [I wrote most of this yesterday and then forgot to hit send. It "belongs" a few posts up.... Sorry about that.]

     

     

    I do think that having the right "project setup" is important.

     

    For example, the way cadence and quartus are setup means they are a set-of-programs that allow manipulations on the state of a "database" of your project. This is good. This is also the way the panorama stitcher "hugin" should work. Now a gui-and-does-some-operations is available that mixes operations on the state and the GUI. Thus it is sometimes necessary to delve into the gui to fix something algorithmic.


    Having the right "design" will make things easier for people to contribute. But having the wrong design doesn't mean that nobody will. But I think the critical mass will be more, so that I'm afraid it will be even harder to achieve.

     

    On the other hand, some of the (IMHO) badly designed open source projects are still succesful. But in this case I'm afraid this design-issue might be more important for the project to gain enough traction.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 12 years ago in reply to rew

    Roger Wolff wrote:

     

    Now a gui-and-does-some-operations is available that mixes operations on the state and the GUI. Thus it is sometimes necessary to delve into the gui to fix something algorithmic.

     

    That's a very good point.  It's one of the biggest downsides of software projects today (both open source and proprietary ones) that the concept of separation of GUI and business logic just hasn't emerged.  You'd have thought that through the development principle of "separation of concerns" there would be a standalone user-configurable graphic UI application available, uncommitted to any particular application, to which application designers could interface their application logic without needing to hack any graphics code.  Alas, that's unheard of, AFAIAA.

     

    It's a big pity.  I've been involved in projects requiring a complex GUI (for example virtual world clients), and the complexities of protocol and 3D object management are dwarfed by the complexities of developing the GUI, which is an unnecessary overhead and a distraction.  Even worse, GUI appreciation is extremely subjective and as a result the developer's choices are never appreciated by more than a handful of its users, so the end result is always somewhat unsatisfactory.  If GUIs were entirely separate from application logic then users could employ their favourite GUI configured to look however they desire as a graphic interface to many different applications.

     

    It's been on my mind as a worthwhile project for a long time.  There is no shortage of very well respected and portable graphics programming and GUI libraries, so it's always amazed me that nobody's bothered to program an uncommitted and fully user-configurable standalone GUI program yet.  Application developers are forever chained to the pit face of dedicated GUI development as well, and it's a waste of time for everyone concerned.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • rew
    rew over 12 years ago in reply to morgaine

    Yes, I've been thinking about a "uncommitted GUI" program as well. The thing is, to make it a "gui", the user needs to be shown the "state of the project" and there are likely going to be interactions with that "state" by the user clicking and so forth. That's the hard part.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 12 years ago in reply to rew

    Not too hard.  What we traditionally consider objects within a view (for example a SOIC package or a D-latch or a falling edge on an LA trace) are really no different to GUI objects like buttons or menus or selectable letters in a panel.  We've just been mentally programmed to think of them as different.

     

    A user-configurable GUI program would provide an API to every element it contains without exception.  As long as an external application has a flexible (network) API through which to reach those elements, the application developers can stick to their business while the GUI developers can stick to theirs, and neither of them has any business telling the end user how the application should look graphically because that's each user's business.  (Although the application developers would naturally provide the initial example through which they've been driving their application code.)

     

    On a small scale, web browsers offer a tiny amount of configurability of their GUI.  In Firefox for example you can select from a smorgasboard of a couple of dozen different elements and place them where you like on any of the toolbars.  However, there is no ability to associate commands or protocols or APIs with any of them, it's all entirely fixed by the browser having the single and preprogrammed purpose of interfacing to the web.  And even worse, the application view in the main browser window is not determinable by the end-user at all, but wholly by the remote end.  That's the opposite of the goal of separation of concerns that I'd like to see happen.

     

    Themable widget sets are also a small step in the right direction, but they tend to focus more on eye candy  than on functionality.  Most importantly though, nobody has used such a widget set to create a standalone GUI program which application developers can then deploy without having to hack graphics code.

     

    Among the many awesome features of such separation would be that application developers could develop their code in whatever language they wish, totally unconcerned by the language in which the GUI application happens to be written.  Not only are network interfaces totally language-agnostic, but they are also license barriers, so that an application developer wouldn't need to be concerned with the licensing of the GUI, nor vice versa.  In today's lawyer-infested technical environment, that would be a major win for everybody (except lawyers).

     

    For completeness, I'll just mention that there is one type of graphics program that is entirely standalone and uncommitted to any given application.  It's the window manager, and there are hundreds of them.  Unfortunately nobody has yet used that awesome concept as an archtectural model for separation of concerns in applications development.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 12 years ago in reply to guzunty

    Derek Campbell wrote:

     

    > The two devices aren't even remotely the same in capability nor price.

     

    Totally agree. However, the Guzunty is my baby and I am very sensitive to devices that might be perceived by some to be better. :-)

    I just saw in a comment at Geek Times that Guzunty Pi is now available in the USA and Canada at cost from Amazon (US$16.51 plus ship) and Ebay ($21.50 incl ship).  In fun, easy-to-assemble kit form with socketed CPLD.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • guzunty
    guzunty over 12 years ago in reply to johnbeetem

    Yes indeed. :-)

     

    Thank you to Mark MacMillan for acting as a distributor in North America.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • guzunty
    guzunty over 12 years ago in reply to johnbeetem

    Yes indeed. :-)

     

    Thank you to Mark MacMillan for acting as a distributor in North America.

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