You're thinking about VHDL all wrong, because VHDL is a hardware
description language. Not only doesn't the function you ask for exist
as a standard part of the language, the concept barely maps onto
hardware. You haven't described how the data would get in, or how the
data would get out. In software, those are just parameters. In
hardware you need to construct the physical busses that move that data.
Is the data in an "array" coming in sequentially, one data element per
cycle, or broadside? If sequentially, does the packet have a fixed
length, or just a maximum one? Are you using any standard streaming
interface (AXI, Avalon-ST, etc), or making one up ad-hoc?
Hardware doesn't do software, hardware does hardware. That statement is
only true insofar as it is, but the closest analogue to what you're
talking about would be something like a hardware accelerator for
permutations, where you'd write the array in over PCI Express, and the
FPGA would DMA back all permutations to a memory block previously agreed
upon in the driver, which you'd also have to write. All so that you can
manipulate boring data.
So, don't do that. Certainly not for a camp. Light LEDs. Play sounds
on speakers. Start with the basics:
A) While I push the button, the LED is on.
B) When I push the button, the LED comes on. It stays on for a full
second after I release it.
C) When I push the button, the LED toggles state. (Be sure to
debounce the button).
D) When I push the button the LED spends a second ramping up in
brightness. It stays at full brightness while I hold the button, then
ramps back down in a second when I let go.
--
Rob Gaddi, Highland Technology --
www.highlandtechnology.com
Email address domain is currently out of order. See above to fix.