• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Digital Implementation
  3. Syntax V93 VHDL

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 91
  • Views 12937
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Syntax V93 VHDL

tonio
tonio over 11 years ago

 Hi there,

 

I am building an ip, i tested it on Xilinx FPGA is seems works 

 

now i m testing it on virtuoso cadence and give me this 2 errors, someone can help please 

1) -------------------------------------

E,MLTDRV (./test.vhdl,17|0): Signal/register 'M_ADDR' has multiple drivers.
------
The specified signal/register has multiple drivers which can
be active simultaneously. This may lead to signal/register
having undefined/unexpected value and can also result in
difference in simulation and synthesis behavior.

The following parameter present in the default rules file can be used to modify the behavior of this check:
params MLTDRV {ignore_z_drivers="yes|no"}

The default value of this parameter is 'yes'. In this case, if a signal has two drivers with
one of the drivers being 'Z', the tool will allow the signal to have a 'Z' driver and a
violation will not be reported. Alternatively, when this parameter is set to 'no', the 'Z' driver
will be considered invalid and a violation will be reported.

The following example illustrates the occurrence of MLTDRV:
assign sig_a = var_a;
assign sig_a = var_b;

In the above example, 'sig_a' is multiply driven.

Line 17---  M_ADDR :   OUT std_logic_vector(31 DOWNTO 0);

Line 378---M_ADDR <= std_logic_vector(to_unsigned(1, 32))+ u2fpi; 

 

2)-------------------------------------------------------

*E,MLTDRV (./test.vhdl,19|0): Signal/register 'M_RD' has multiple drivers.
------
The specified signal/register has multiple drivers which can
be active simultaneously. This may lead to signal/register
having undefined/unexpected value and can also result in
difference in simulation and synthesis behavior.

The following parameter present in the default rules file can be used to modify the behavior of this check:
params MLTDRV {ignore_z_drivers="yes|no"}

The default value of this parameter is 'yes'. In this case, if a signal has two drivers with
one of the drivers being 'Z', the tool will allow the signal to have a 'Z' driver and a
violation will not be reported. Alternatively, when this parameter is set to 'no', the 'Z' driver
will be considered invalid and a violation will be reported.

The following example illustrates the occurrence of MLTDRV:
assign sig_a = var_a;
assign sig_a = var_b;

In the above example, 'sig_a' is multiply driven.

 

line 19 ----- M_RD  : INOUT std_logic;

line 493 --- M_ADDR <= std_logic_vector(to_unsigned(0,32))+u3fpi;

 

Thank  you so much for your help regards 

 

 

 

 

 

  • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information