"Wait on" instead of "Sensitivity List" does not work???

M

Markus Jochim

Hello everybody,

I just tried a code snippet like this:


ARCHITECTURE xyz OF abc IS
BEGIN
PROCESS
BEGIN
<Some sequential statements>
WAIT on i1;
END PROCESS;
END xyz;


....where i1 is an IN-port (std_logic) in the respective entity.

Quartus II 7.0 Web Edition says:
"Wait Statement must contain condition clause with UNITL keyword."

Xilinx ISE 9.1 says:
"Bad condition in wait statement or only one clock per process."

According to my understanding and several tutorials and books the code
should work, since the "WAIT ON" at the end of the process is a valid
alternative to the sensitivity list.

Am I wrong?
Can anyone help?

Best regards
Markus
 
A

Andy

Hello everybody,

I just tried a code snippet like this:

ARCHITECTURE xyz OF abc IS
BEGIN
PROCESS
BEGIN
<Some sequential statements>
WAIT on i1;
END PROCESS;
END xyz;

...where i1 is an IN-port (std_logic) in the respective entity.

Quartus II 7.0 Web Edition says:
"Wait Statement must contain condition clause with UNITL keyword."

Xilinx ISE 9.1 says:
"Bad condition in wait statement or only one clock per process."

According to my understanding and several tutorials and books the code
should work, since the "WAIT ON" at the end of the process is a valid
alternative to the sensitivity list.

Am I wrong?
Can anyone help?

Best regards
Markus

IINM, that wait statement will trigger on any event on i1, including
rising and falling edges. That is not synthesizable AFAIK.

andy
 
J

Jim Lewis

Markus,
If you look at 1076.6-2004 you will find that
this coding style is not supported for VHDL RTL
coding styles.

From a business perspective vendors have to spend
money to add and maintain features.

From a user perspective, I can already do this as
easily with a sensitivity list. I have many other
things that are much more important than this
that I need synthesis vendors to implement (that
they have not yet). If you want a list, start with
any of the coding styles that are in 1076.6-2004.
Also look on my the papers section of my website for
papers on 1076.6. http://www.synthworks.com/papers

Best Regards,
Jim
 
H

HT-Lab

Markus Jochim said:
Hello everybody,

I just tried a code snippet like this:


ARCHITECTURE xyz OF abc IS
BEGIN
PROCESS
BEGIN
<Some sequential statements>
WAIT on i1;
END PROCESS;
END xyz;


...where i1 is an IN-port (std_logic) in the respective entity.

Quartus II 7.0 Web Edition says:
"Wait Statement must contain condition clause with UNITL keyword."

Xilinx ISE 9.1 says:
"Bad condition in wait statement or only one clock per process."

According to my understanding and several tutorials and books the code
should work, since the "WAIT ON" at the end of the process is a valid
alternative to the sensitivity list.

Hi Markus,

Most modern synthesis tools support 2 types of FF coding styles,

process (clk)
begin
if rising_edge(clk) then
..
end if;
end process;

or,

process
begin
wait until clk'event and clk = '0';
..
end process;

They also support dual edge triggering but only for those fpga that have
dual edge FF like the Xilinx Coolrunner,

Hans
www.ht-lab.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,015
Latest member
AmbrosePal

Latest Threads

Top