06-09-2012 12:22 AM
i'm setting a flag F1 after a work W1 is done in an always block B1 of
Now i'm referring that flag F1 in another always block B2 to start
work W2 when set. This block B2 is in the same module M1.
now when I do this I get an error saying I have multi-sourced the variable F1
please help how to overcome this.
06-09-2012 03:14 AM
In your entire design, only one process (an always block) or assign statement may change or assign the value of variable F1.
-- Bob Elkind
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
06-09-2012 01:07 PM
Perhaps you should post the code. There have been other threads on multi-source
where it became obvious that XST has a bug in reporting the actual signal that is
multi-sourced. "Referring to" signal F1 in any number of blocks is OK. Assigning
a value to F1 can only happen in a single block. Now suppose that in another block
you have assigned the value of F1 to another signal G1. Then further suppose that
G1 is also assigned in another block or continuous assignment. Then although
the problem is with G1, XST may report that F1 has multiple drivers because it
has already merged the two nets.