|
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
|