( ESNUG 269 Item 6 ) -------------------------------------------- [10/24/97]

From: jonathan@ikos.com (Jonathan Liu)
Subject: DC 97.01 & 97.08 Are Inconsistant With Bussed VHDL Ports

John, When I first installed 1997.08, I did experience an inconsistency 
(which I reported to Synopsys) in versus 1997.01 with respect to how the VHDL 
writer handles bussed ports (with certain combinations of switch settings).

When I read into 1997.08 a source VHDL file containing a vector port in
which the LSB  was non-zero, and then wrote out the same design as VHDL
output file, it changed  the range of the vector such that the LSB was zero.

My VHDL input file ports, which should & does remain unchanged w/97.01:

    entity vector_test is
        Port (a: in std_logic_vector(7 downto 1);
              b: out std_logic_vector(4 to 7));
    end vector_test;
     
    architecture structural of vector_test is
     
        component sub_test
            Port (c: in std_logic_vector(7 downto 1);
                  d: out std_logic_vector(4 to 7));
        end component;

Original .synopsys_dc.setup settings:

    vhdlout_preserve_hierarchical_types = "VECTOR";  
    vhdlout_follow_vector_direction = "TRUE";

Original dc_shell script:

    analyze -f vhdl vector_test.vhd
    elaborate vector_test
    report_port
    write -f vhdl -o vector_test_out.vhd
    quit

Output file in 1997.08 (incorrect, note bus ranges):

    entity vector_test is
       port( a : in std_logic_vector (6 downto 0);
             b : out std_logic_vector (0 to 3));
    end vector_test;
     
    architecture SYN_structural of vector_test is
       component sub_test
          port( c : in std_logic_vector (6 downto 0);
                d : out std_logic_vector (0 to 3));
       end component;

I originally worked around the problem by reverting to 1997.01 for steps
which needed to write VHDL output files.  However, fortunately, our Synopsys
A.C. helped me find a superior solution, which was to change some switch
settings  in my .synopsys_dc.setup to be as follows:

    vhdlout_preserve_hierarchical_types = "USER";
    vhdlout_follow_vector_direction = "FALSE";

(Originally those two settings had been "VECTOR" and "TRUE" respectively.)

With the new settings, I was able to obtain the desired result in 1997.08,
So it wasn't a serious problem.  Nonetheless, people might want to be warned
of this inconsistency in behavior between the two versions.

  - Jonathan Liu
    Ikos Systems, Inc.



 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)