2 Anmerkungen :
a) Es gibt auch in VHDL arrays, sodass man schreiben kann :
ausgangimag[zaehler] <= ausgangimag[zaehler] + resulttim;
Wenn ausgangimag vom Typ std_logic_vector ist oder unsigned ist, dann
ist es vielleicht ein bischen komplizierter, weil man eine zusätzlichen
Type definieren muss, aber es geht.
b) Man kann diese ganzen Zählvariablen unter Umständen schon in eine
Speicherelement des FPGAs legen (bei Altera kenne ich mich nicht aus,
aber bei Xilinx heißt das BlockRAM), aber das hängt von ein paar
Bedingungen ab.
- Das was Du geschrieben hast, ist einen Anzahl von getrennten Zähler.
Jeder Zähler enthält eine Additionseinheit, sodass Du 1000 Zähler, 1000
Adder usw. gleichzeitig im FPGA hast. Jeder Zähler ins unabhängig,
sodass allle im Prinzip gleichzeitig zählen könnten, aber nur 1 Zähler
wird jeweils aktiv.
Damit kann man mit jedem Taktzyklus einen anderen Zähler ein- und
ausschalten.
- Die Speicher-Komponenten sind wie der Name sagt, Speicher. Diese
können nicht einfach so aktualisiert werden, sondern man muss den Wert
zuert aus dem Speicher holen, bearbeiten ( = inkrementieren) und
zurückschreiben. Das geht nicht in einem einzelen Taktzylus.
Als Vorteil hast Du aber nicht mehr 1000 Additionseinheiten, sondern nur
mehr eine.
Schau Dir einmal diese Blockrams (oder wie sie unter Altera heißen) an.