Go to Post The programmers will kill you if you want that done on the robot!!! - cbeavers6790 [more]
Home
Go Back   Chief Delphi > FIRST > General Forum
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rating: Thread Rating: 2 votes, 5.00 average. Display Modes
  #1   Spotlight this post!  
Unread 07-12-2012, 23:20
ferret_guy ferret_guy is offline
Registered User
AKA: Mark Omo
FRC #1703 (RATS)
Team Role: Leadership
 
Join Date: Mar 2012
Rookie Year: 2008
Location: Henderson
Posts: 97
ferret_guy is on a distinguished road
Using the cRio FPGA

can you use the FPGA on the crio to do things? or is it used by some other part of the progam?
Reply With Quote
  #2   Spotlight this post!  
Unread 07-12-2012, 23:52
EricH's Avatar
EricH EricH is offline
New year, new team
FRC #1197 (Torbots)
Team Role: Engineer
 
Join Date: Jan 2005
Rookie Year: 2003
Location: SoCal
Posts: 19,814
EricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond reputeEricH has a reputation beyond repute
Re: Using the cRio FPGA

If I recall correctly, the FPGA has been off-limits for some time. I don't remember if that restriction was eased for 2012 or not. I know it's used by something for doing something, but I'm not a programmer, so I'm not sure what.
__________________
Past teams:
2003-2007: FRC0330 BeachBots
2008: FRC1135 Shmoebotics
2012: FRC4046 Schroedinger's Dragons

"Rockets are tricky..."--Elon Musk

Reply With Quote
  #3   Spotlight this post!  
Unread 08-12-2012, 00:25
Kevin Selavko's Avatar
Kevin Selavko Kevin Selavko is offline
Registered User
AKA: Voltonless
FRC #3260 (SHARP)
Team Role: Electrical
 
Join Date: Jan 2012
Rookie Year: 2008
Location: Beaver PA USA
Posts: 155
Kevin Selavko is on a distinguished road
Re: Using the cRio FPGA

What were you planning on using it for?
__________________
Team SHARP
Pittsburgh Regional Champions 2014
Vex Pittsburgh Excellence Award 2014
Vex Pittsburgh Champions 2014
Vex Maryland Champions 2014
Pittsburgh Regional Finalists 2013
Buckeye Regional Finalists 2013
Reply With Quote
  #4   Spotlight this post!  
Unread 08-12-2012, 01:02
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: Using the cRio FPGA

The FPGA is responsible for all the analog and digital I/O from the cRIO. It implements the safety features that shut down the robot actuators when the robot is disabled. I wouldn't expect that it'll ever be opened up for team modifications.
Reply With Quote
  #5   Spotlight this post!  
Unread 08-12-2012, 10:35
apalrd's Avatar
apalrd apalrd is offline
More Torque!
AKA: Andrew Palardy (Most people call me Palardy)
VRC #3333
Team Role: College Student
 
Join Date: Mar 2009
Rookie Year: 2009
Location: Auburn Hills, MI
Posts: 1,347
apalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond repute
Re: Using the cRio FPGA

The FPGA does all of the following:

-Creates PWM pulses
-Signals digital outputs, including relays, the RSL, the disable circuit, and the solenoids.
-Reads all inputs raw, including analog, digital, etc.
-Handles I2C and SPI on the digital sidecar
-Handles 4 quadrature encoders
-Handles 8 counters - These do things like 1x or 2x decoded quadrature encoders, single wire encoders, PWM inputs, and gear tooth sensors.
-Manages interrupt timers for digital inputs if required


An FPGA is a very very powerful piece of hardware. It allows you to do a lot of straightforward math very very fast, as everything happens in parallel. For example, I know a guy who programmed an FPGA to generate Mandelbrots, and his FPGA was able to generate 72-bit precision Mandelbrots in approximately three orders of magnitude fewer clock cycles than his 2ghz Pentium M processor (which was running at 32-bit precision). I guess you'd say that, while modern computers are increasing the clock speed to perform more tasks in a fixed amount of time with a single operation processor, FPGA's are increasing the number of operations they do at one time with a comparatively slow clock speed.

If it were available to teams, there are many concerns relating to safety with the disable circuit. While I would personally like to be able to use the FPGA, many people don't think there would be enough use to justify the work of opening it up, including supporting everyone who attempts to use it even if it's out of their expertise.
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor

"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
Reply With Quote
  #6   Spotlight this post!  
Unread 08-12-2012, 10:40
Greg McKaskle Greg McKaskle is offline
Registered User
FRC #2468 (Team NI & Appreciate)
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Austin, TX
Posts: 4,752
Greg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond repute
Re: Using the cRio FPGA

Adding in ...

The executing FPGA is a circuit constructed using a special form of a LabVIEW diagram. The diagram is compiled into VHDL, and then compiled into a bit mask image.

The FPGA sits between the PPC and the modular backplane. All I/O requests on the backplane go through it or originate from it. The FPGA synthesizes as many registers as specified, and the registers hold setpoints and outputs that can be peeked and poked by the C or LV code running on the PPC.

The FPGA can be imaged in a few seconds, and in fact is imaged several times during boot up. The first one reads in all of the calibration values stored in the modules and stores them in RAM. The second no longer needs the circuitry to access those values, and therefore has room for more functionality.

So, what does the second FPGA image do? For analog, it clocks the module values into registers or into a DMA buffer. It can average, oversample, and level trigger based on the value. It implements a scan list to allow for different scan rates on different channels in the module.

For digital, it determines whether a given line should be an in or out. For ins, it can store them in registers, DMA, it can trigger, count, and quad decode them. For outs, it produces PWMs and pulses of various forms.

The FPGA has a crossbar that gates all outputs and that is controlled by a watchdog counter that must be fed in order to keep the gate open. It can also raise interrupts on the PPC.

The FPGA does could do floating point math, but it would take lots of gates, so it uses integers or fixed point numbers everywhere instead. The PPC then scales then scales inputs and outputs to get them to floats. The PPC runs at 40MHz, and the coolest part is that it is a circuit controlled by an oscillator. It is very, very deterministic. Combine this with the one hundred or so different type of modules available, and that is why the RIO products that include cRIO can be used for so many tasks in industry and research.

The FPGA has changed a bit year-to-year, but only for bug fixes and to support the 4-slot chassis. At this point FIRST could change it to support new measurements or control, but it isn't possible for teams to change it and still ensure that the safety features are present and working. Imagine that inspection checklist! There are features underway which allow for templating and partial reconfiguration which may allow it to be opened in future years. If a team has an offseason project, I'm pretty sure you could acquire the tools to do FPGA programming.

Greg McKaskle
Reply With Quote
  #7   Spotlight this post!  
Unread 08-12-2012, 18:20
Michael Hill's Avatar
Michael Hill Michael Hill is offline
Registered User
FRC #3138 (Innovators Robotics)
Team Role: Mentor
 
Join Date: Jul 2004
Rookie Year: 2003
Location: Dayton, OH
Posts: 1,578
Michael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond repute
Re: Using the cRio FPGA

There's nothing that's stopping you from using your own FPGA on a separate circuit board. Since you can connect to the digital sidecar or cRIO with SPI or I2C, it should be possible.
Reply With Quote
  #8   Spotlight this post!  
Unread 08-12-2012, 19:00
F22Rapture's Avatar
F22Rapture F22Rapture is offline
College Student, Mentor
AKA: Daniel A
FRC #3737 (4H Rotoraptors)
Team Role: Mentor
 
Join Date: Jan 2012
Rookie Year: 2012
Location: Goldsboro, NC
Posts: 476
F22Rapture has a brilliant futureF22Rapture has a brilliant futureF22Rapture has a brilliant futureF22Rapture has a brilliant futureF22Rapture has a brilliant futureF22Rapture has a brilliant futureF22Rapture has a brilliant futureF22Rapture has a brilliant futureF22Rapture has a brilliant futureF22Rapture has a brilliant futureF22Rapture has a brilliant future
Re: Using the cRio FPGA

Quote:
Originally Posted by Michael Hill View Post
There's nothing that's stopping you from using your own FPGA on a separate circuit board. Since you can connect to the digital sidecar or cRIO with SPI or I2C, it should be possible.
You can during off-season, but for the competition:

R52
Quote:
Robots must be controlled via one programmable National Instruments cRIO (Part # cRIO-FRC or cRIO-FRCII) with image version FRC_2012_v43. Other controllers shall not be used
__________________
Research is what I’m doing when I don’t know what I’m doing.
- Wernher von Braun
Attending: Raleigh NC Regional
Reply With Quote
  #9   Spotlight this post!  
Unread 08-12-2012, 19:04
BigJ BigJ is online now
Registered User
AKA: Josh P.
FRC #1675 (Ultimate Protection Squad)
Team Role: Engineer
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Milwaukee, WI
Posts: 947
BigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond repute
Re: Using the cRio FPGA

Quote:
Originally Posted by F22Rapture View Post
You can during off-season, but for the competition:

R52
I think he was referring to using your own FPGA as a custom circuit, I might be wrong though.
Reply With Quote
  #10   Spotlight this post!  
Unread 08-12-2012, 21:15
Michael Hill's Avatar
Michael Hill Michael Hill is offline
Registered User
FRC #3138 (Innovators Robotics)
Team Role: Mentor
 
Join Date: Jul 2004
Rookie Year: 2003
Location: Dayton, OH
Posts: 1,578
Michael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond reputeMichael Hill has a reputation beyond repute
Re: Using the cRio FPGA

Quote:
Originally Posted by F22Rapture View Post
You can during off-season, but for the competition:

R52
You can make the argument that an FPGA isn't a controller, but at any rate, you don't necessarily have to use it for control. It could be used in other ways.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 09:37.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi