[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-user: icarus, fork, and recursive tasks



I'm trying to simulate an MCU's bus processor, which has a couple of
timing parameters all keyed off the start of a transaction.

Naively, I did this:

      fork
	 mcu_cson (address);
	 mcu_wron (address);
	 mcu_wdon (address);
	 mcu_cswwait (address);
      join

Each mcu_* task would wait the right number of cycles, toggle its
line, and return.  However, they all called one task (twait()) that
did "wait the right number of cycles".

Not to usefully, they all shared the one task (or variable), and thus
all exited at exactly the same time.

How do I do a local instantiation of a task?

I'm running iverilog-0.9.20091230


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user