A
alb
Guest
Hi everyone (geez has been a long time since my last post...),
I'm looking at a piece of code that I would feel embarrassed to post
here and when I synthesize it I get a warning about 'Feedback mux
created for signal...'. Any insight on the type of warning?
I am also puzzled about the style used in the code which goes along
these lines:
process (clr, rst, foo, bar, foobar)
begin
if rst = '1' then
-- a bunch of assignments
elsif foo = '1' then
-- another bunch of assignments
elsif bar = '1' then
-- another bloody bunch of assignments
elsif (bar = '0') and (foo = '1') and (foobar = '1') then
-- another insane bunch of assignments
elsif rising_edge(clk) then
case mysterious_signal is
when '1' =>
foobar <= '0';
mysterious_signal <= '0';
-- gibberish
when '0' =>
-- some more gibberish
end case;
end if;
end process; -- thanks GOD!!!
Except for the readability issues, there's something deeper I'd like to
understand; when there's an asynchronous set and reset I would
definitely need to have both signals in the sensitivity list otherwise
the pre-synthesis simulation would never trigger the process
assignments. But why synthesis does not need them?
Moreover the 'foobar' signal in the above snippet is truly not needed in
the sensitivity list since an event should be scheduled for it to change
at next delta cycle. Am I wrong?
There's a possibility that my questions are badly formulated!! But I'm
trying to figure out what the heck stroke the designer's mind when he
wrote this...
Al
--
A: Because it fouls the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
I'm looking at a piece of code that I would feel embarrassed to post
here and when I synthesize it I get a warning about 'Feedback mux
created for signal...'. Any insight on the type of warning?
I am also puzzled about the style used in the code which goes along
these lines:
process (clr, rst, foo, bar, foobar)
begin
if rst = '1' then
-- a bunch of assignments
elsif foo = '1' then
-- another bunch of assignments
elsif bar = '1' then
-- another bloody bunch of assignments
elsif (bar = '0') and (foo = '1') and (foobar = '1') then
-- another insane bunch of assignments
elsif rising_edge(clk) then
case mysterious_signal is
when '1' =>
foobar <= '0';
mysterious_signal <= '0';
-- gibberish
when '0' =>
-- some more gibberish
end case;
end if;
end process; -- thanks GOD!!!
Except for the readability issues, there's something deeper I'd like to
understand; when there's an asynchronous set and reset I would
definitely need to have both signals in the sensitivity list otherwise
the pre-synthesis simulation would never trigger the process
assignments. But why synthesis does not need them?
Moreover the 'foobar' signal in the above snippet is truly not needed in
the sensitivity list since an event should be scheduled for it to change
at next delta cycle. Am I wrong?
There's a possibility that my questions are badly formulated!! But I'm
trying to figure out what the heck stroke the designer's mind when he
wrote this...
Al
--
A: Because it fouls the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?