
On Tue, Jan 19, 2010 at 10:42 PM, Lee Pike
Tom,
Is this a bug? The following program compiles, but the rule is scheduled at period 1 (rather than 0). I wouldn't have thought to have an assignment outside of an atom until another engineer here wrote it. In any event, I would have expected that the rule should have period 3.
Lee
example :: Atom () example = period 3 $ do
a <- word32 "a" 0
a <== 21
The top-most rule is implied with the compile command. This makes it appear as if the assignment doesn't belong to a rule, when if fact it belongs to the implicit top level rule. The top level rule always has a period of 1. Period constraints are only applied to sub-rules, not the current rule. This prevents ambiguous situations, such as: atom "something" $ do period 1 (a <== 1) -- Does 'something' execute every 1 or ... period 2 (b <== 2) -- 2 cycles? So in your example, 'period 3' has no sub rules that it applies to. -Tom