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 21439 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
  • guzunty
    guzunty over 12 years ago

    I very much agree with most of what has been said in this thread. I too am impressed with the potential of programmable logic in combination with the Raspberry Pi.

     

    I have been experimenting with the XC9572XL-10TQ100CXC9572XL-10TQ100C for a very long time and have found the toolchain to be:

     

    - a royal pain to install

    - finnicky about operating system setup

    - not 100% reliable

     

    I think some or all of these could put a lot of people off.

     

    So I decided to do something about it. I believe the key to getting significant interest is to remove the barrier of downloading, setting up and learning the tools. I therefore created an open source resource with ready made, already working cores which cover the basic functionality that most newcomers will need.

     

    Newcomers can get started without having to download the tool chains, but are free to do so later if they want to. The source for the cores is all there for them to learn from.

     

    Check it out at: https://github.com/Guzunty/Pi/wiki

     

    Let me know what you think. :-)

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

    Derek Campbell wrote:

     

    I have been experimenting with the XC9572XL-10TQ100CXC9572XL-10TQ100C for a very long time and have found the toolchain to be:

     

    - a royal pain to install

    - finnicky about operating system setup

    - not 100% reliable

     

    Let me know what you think. :-)

    I really like your board.  I think the XC9572XL-10TQ100CXC9572XL-10TQ100C is a great part and I've used it for a lot of designs in the past.  And as your gadget demonstrates, it's practically the only programmable part you can still get in a PLCC so you can socket it.  I used that trick in the late 1990s to build a wire-wrap board using two XC9572XLs.

     

    Regarding the toolchain: I have found that with Xilinx, you're best off using the tools that were the latest thing when the part in question was released.  That way you're getting tools that have been thoroughly tested for the particular part instead of new tools with several generations of regression.  I think Xilinx realizes this and makes old versions of the tools available at its web site.  I have found WebPack 5.2 (from 2003) to be completely reliable for the XC9572XL-10TQ100CXC9572XL-10TQ100C.  You can get it at Free ISE WebPACK - Earlier Software Releases.  Not only is 5.2 more reliable, it's much smaller and faster than the latest Xilinx software.  Unfortunately, it only runs on Windows but it may run under Wine on an x86 machine.  You'll probably need a newer version of the tool that actually programs the device, or write your own so that it can run on RasPi.

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

    Derek Campbell wrote:

     

    I have been experimenting with the XC9572XL-10TQ100CXC9572XL-10TQ100C for a very long time and have found the toolchain to be:

     

    - a royal pain to install

    - finnicky about operating system setup

    - not 100% reliable

     

    Let me know what you think. :-)

    I really like your board.  I think the XC9572XL-10TQ100CXC9572XL-10TQ100C is a great part and I've used it for a lot of designs in the past.  And as your gadget demonstrates, it's practically the only programmable part you can still get in a PLCC so you can socket it.  I used that trick in the late 1990s to build a wire-wrap board using two XC9572XLs.

     

    Regarding the toolchain: I have found that with Xilinx, you're best off using the tools that were the latest thing when the part in question was released.  That way you're getting tools that have been thoroughly tested for the particular part instead of new tools with several generations of regression.  I think Xilinx realizes this and makes old versions of the tools available at its web site.  I have found WebPack 5.2 (from 2003) to be completely reliable for the XC9572XL-10TQ100CXC9572XL-10TQ100C.  You can get it at Free ISE WebPACK - Earlier Software Releases.  Not only is 5.2 more reliable, it's much smaller and faster than the latest Xilinx software.  Unfortunately, it only runs on Windows but it may run under Wine on an x86 machine.  You'll probably need a newer version of the tool that actually programs the device, or write your own so that it can run on RasPi.

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

    Glad you like the board and thank you very much for the advice regarding the toolchain. Makes perfect sense.

     

    To create the downloadable cores I have been running ISE 14.3 which is the latest. All but one of the defects I've encountered are (on the face of it) not part specific, and I have learned to work around them all now. I'll take your advice nevertheless, and download the older versions to see if they are a little easier to wrangle.

     

    However, even if the tool chain installed itself like a dream and worked perfectly, there is the learning curve for the HDL to consider.

     

    So what did you think of the idea of providing ready made cores to initially make it easier for people to get into using programmable logic?

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

    Derek Campbell wrote:

     

    However, even if the tool chain installed itself like a dream and worked perfectly, there is the learning curve for the HDL to consider.

     

    So what did you think of the idea of providing ready made cores to initially make it easier for people to get into using programmable logic?

    First, let me warn you that I've been into logic design since approximately age 11.  My first logic circuits were RTL using discrete transistors and resistors, so being able to buy pre-packaged logic functions in 74XX TTL packages was awesome.  Then the idea of reprogrammable PLDs was beyond awesome.  Then the idea of designing an IC with zero NRE using an FPGA was ran-out-of-adverbs awesome.  So my perspective -- or lack thereof -- may be unusual.

     

    I think your ready-made cores are a nice idea, since it allows you to make a single board that can be used for many different purposes and thus drives the cost down for people who want a programmable board.  But I would think most users of ready-made cores would simply use your boards as useful interface gadgets and the fact that they're based on a CPLD would be irrelevant.  It's like people who use a game console as a game console and really don't care that internally it's a supercomputer.  So I don't see a lot of people using ready-made cores as a springboard to designing their own programmable logic.  OTOH, all it takes is having an application for which one of your cores is 90% of the way there, so learning enough logic design for the last 10% could create some logicians.

     

    I'm not worried about the HDL learning curve.  In principle, you don't have to use HDLs to design logic (though it's often more convenient than logic diagrams and tables), and in principle you don't have to choose Verilog or VHDL.  You do kinda sorta have to choose Verilog or VHDL for Xilinxing, but that's just for now.  Besides, for the kind of logic you can fit into an XC9572XL-10TQ100CXC9572XL-10TQ100C, you don't need a lot of Verilog.  For example, you probably won't need hierarchical design and you won't have to play silly games to get the synthesizer to make the logic you need.  At least with CPLDs you can find out what the synthesizer actually did.

     

    I've proposed here and at raspberrypi.org the idea of having a nice, clean logic design front end running on RasPi, with a networked x86 PC to run Xilinx tools as a back-end server.  I believe you can run the synthesis and fitting (for CPLDs) or map/place/route (for FPGAs) from the command line, so it would be reasonably easy to set them up as a server.  The server would then return the .jed/.bit/.bin file to RasPi which would then configure an attached CPLD or FPGA board.  Not as nice as being able to run everything on RasPi, but until a CPLD or FPGA manufacturer wakes up to the advantages of FLOSS it's an interim approach.

    • Cancel
    • Vote Up 0 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