Go Back   Velocity Reviews > Newsgroups > VHDL
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

VHDL - translate_off/on tool interoperability

 
Thread Tools Search this Thread
Old 03-10-2008, 10:37 PM   #1
Default translate_off/on tool interoperability



Hi guys,

The translate_off/on pragmas are not standardized (apart from 1076.6 RTL_SYNTHESIS pragmas), but still very widely used across the
industry, to separate code for simulation from code for (RTL) synthesis.
I'm looking into tool interoperability of this pragma, and ran into the following interesting example :


entity test is
(i, clock : in bit ; o : out bit) ;
end entity test ;

architecture dff of test is
wait until ( clock = '1' and clock'event ) ;
o <= i -- synopsys synthesis_off
after 1 ns ;
-- synopsys synthesis_on
end process ;
end architecture dff ;


Note that the semicolon that closes the assignment statement is within the synthesis_off/synthesis_on pragmas.
That results in illegal VHDL (statement not terminated with a semicolon) when we ignore the code between the off/on pragmas.
I understand that 1076.6 also deems this illegal, but it specifies only the RTL_SYNTHESIS pragma, not the much more often
translate_off/on pragma's started by individual companies like Synopsys.

Tools based on Verific VHDL front-end (some 50 EDA tools) currently error out when running this example in synthesis mode (granting
the translate_off/on pragma's).
But I am not so sure about many other tools (including Synopsys DC itself).

So I have a request : Can you please try this example on your favorite synthesis and/or formal verification tool (or other tool that
is sensitive to translate_off/on pragmas) ?
I'd like to get to a point where all tools handle translate_off/on pragma's the same way.

Thanks !

Rob Dekker





Rob Dekker
  Reply With Quote
Old 03-10-2008, 11:55 PM   #2
Dwayne Dilbeck
 
Posts: n/a
Default Re: translate_off/on tool interoperability
Your code has anumber of syntax errors besides the issue you want to test.
Try the following insetad.

entity test is
port (i, clock : in bit ;
o : out bit) ;
end entity test ;

architecture dff of test is
begin
clkedrocess
begin
wait until ( clock = '1' and clock'event ) ;
o <= i -- synopsys translate_off
after 1 ns;
-- synopsys translate_on
end process clked;
end architecture dff ;

-------------------------------------
--IUS 6.2.s003 -- Syntax passes
--Conformal 7.2 -- Syntax error
--Cadence Incisive XE 5.2 -- Syntax error (Emulation synthesis engine)
----------------------------------------

-----------------------------
--Use the following code to pass syntax checks on all programs
------------------------------
entity test is
port (i, clock : in bit ;
o : out bit) ;
end entity test ;

architecture dff of test is
begin
clkedrocess
begin
wait until ( clock = '1' and clock'event ) ;
o <= i -- synopsys translate_off
after 1 ns
-- synopsys translate_on
;
end process clked;
end architecture dff ;



"Rob Dekker" <> wrote in message
news:tKiBj.75$...
>
> Hi guys,
>
> The translate_off/on pragmas are not standardized (apart from 1076.6
> RTL_SYNTHESIS pragmas), but still very widely used across the industry, to
> separate code for simulation from code for (RTL) synthesis.
> I'm looking into tool interoperability of this pragma, and ran into the
> following interesting example :
>
>
> entity test is
> (i, clock : in bit ; o : out bit) ;
> end entity test ;
>
> architecture dff of test is
> wait until ( clock = '1' and clock'event ) ;
> o <= i -- synopsys synthesis_off
> after 1 ns ;
> -- synopsys synthesis_on
> end process ;
> end architecture dff ;
>
>
> Note that the semicolon that closes the assignment statement is within the
> synthesis_off/synthesis_on pragmas.
> That results in illegal VHDL (statement not terminated with a semicolon)
> when we ignore the code between the off/on pragmas.
> I understand that 1076.6 also deems this illegal, but it specifies only
> the RTL_SYNTHESIS pragma, not the much more often translate_off/on
> pragma's started by individual companies like Synopsys.
>
> Tools based on Verific VHDL front-end (some 50 EDA tools) currently error
> out when running this example in synthesis mode (granting the
> translate_off/on pragma's).
> But I am not so sure about many other tools (including Synopsys DC
> itself).
>
> So I have a request : Can you please try this example on your favorite
> synthesis and/or formal verification tool (or other tool that is sensitive
> to translate_off/on pragmas) ?
> I'd like to get to a point where all tools handle translate_off/on
> pragma's the same way.
>
> Thanks !
>
> Rob Dekker
>
>
>





Dwayne Dilbeck
  Reply With Quote
Old 03-11-2008, 12:08 AM   #3
Mike Treseler
 
Posts: n/a
Default Re: translate_off/on tool interoperability
Rob Dekker wrote:

> Tools based on Verific VHDL front-end (some 50 EDA tools) currently
> error out when running this example in synthesis mode


My test below confirms this.

-- Mike Treseler
__________________________________
library ieee;
use ieee.std_logic_1164.all;
entity synopsys_test is
port(i, clock : in std_ulogic; o : out std_ulogic);
end entity synopsys_test;

architecture dff of synopsys_test is
begin
process (clock) is
begin
if rising_edge(clock) then
o <= i
-- synopsys synthesis_off
after 1 ns;
-- synopsys synthesis_on
end if; -- line 16
-- Quartus Error (10500): VHDL syntax error at
-- synopsys_test.vhd(16) near text "end"; expecting ";
end process;
end architecture dff;

-- Adding a space like this
-- s ynopsys synthesis_off
-- eliminates the error and quartus makes a flop just fine.

-- Mike Treseler


Mike Treseler
  Reply With Quote
Old 03-11-2008, 05:07 PM   #4
Rob Dekker
 
Posts: n/a
Default Re: translate_off/on tool interoperability

Thanks Mike, and Dwayne for trying the Altera and Cadence tools respectively. At least there is consistency so far (syntax error).
Can anyone run Design Compiler on this example ?
Or any other synthesis tool (XST, Synplify, Precision etc ) ?

Thanks !

Rob




Rob Dekker
  Reply With Quote
Old 03-11-2008, 06:04 PM   #5
Rob Dekker
 
Posts: n/a
Default Re: translate_off/on tool interoperability

"Rob Dekker" <> wrote in message news:qZyBj.602$. ..
....
> Can anyone run Design Compiler on this example ?
> Or any other synthesis tool (XST, Synplify, Precision etc ) ?
>


Here is the corrected design again (Thanks Dwayne for correcting the posted example) :

entity test is
port (i, clock : in bit ; o : out bit) ;
end entity test ;

architecture dff of test is
begin
clkedrocess
begin
wait until ( clock = '1' and clock'event ) ;
o <= i -- synopsys translate_off
after 1 ns;
-- synopsys translate_on
end process clked;
end architecture dff ;




Rob Dekker
  Reply With Quote
Old 03-11-2008, 07:07 PM   #6
Mike Treseler
 
Posts: n/a
Default Re: translate_off/on tool interoperability
Rob Dekker wrote:
> Can anyone run Design Compiler on this example ?


If such a benevolent, vhdl-using, dc owner exists,
please run basic synthesis on this example also:

http://home.comcast.net/~mike_treseler/uart.vhd

I only need the warnings and errors.
I have had conflicting reports that dc
can/can't handle vhdl procedures.

-- Mike Treseler


Mike Treseler
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off




SEO by vBSEO 3.3.2 ©2009, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46