au sujet de l'avertissement vhdl!

C

chxgzl4862

Guest
salut tout le monde

mon projet

CLKDIV entité est
------------------------------------------
port (
CLK_IN: en std_logic;
CLK_RST: en std_logic;
CLK_CS: en std_logic;
CLK_NUM: en std_logic_vector (8 downto 0);
CLK_OUT: out std_logic
);
------------------------------------------
CLKDIV fin;

Behavioral architecture de CLKDIV est
------------------------------------------
signal CLK_CLK: std_logic;
signal CLK_CNT: std_logic_vector (8 downto 0);
------------------------------------------
commencer
------------------------------------------
div: processus (CLK_RST, CLK_IN, CLK_CS)
commencer
if (CLK_RST ='0 '), puis
CLK_CLK <='1 ';
CLK_CNT <= "000000000";
elsif (CLK_IN 'événement et CLK_IN ='1' et CLK_CS ='0 '), puis
CLK_CNT <= CLK_CNT 1;
if (CLK_CNT = CLK_NUM), puis
CLK_CLK <= pas CLK_CLK;
CLK_CNT <= "000000000";
fin si;
fin si;
fin processus div;

CLK_OUT <= CLK_CLK;
------------------------------------------
Behavioral fin;IIC_CLK entité est
------------------------------------------
port (
IIC_CLKIN: en std_logic;
IIC_RST: en std_logic;
IIC_CS: en std_logic;
IIC_CLKOUT0: out std_logic;
IIC_CLKOUT1: out std_logic
);
------------------------------------------
IIC_CLK fin;

Behavioral architecture de IIC_CLK est
------------------------------------------
composante CLKDIV
port (
CLK_IN: en std_logic;
CLK_RST: en std_logic;
CLK_CS: en std_logic;
CLK_NUM: en std_logic_vector (8 downto 0);
CLK_OUT: out std_logic
);
end component;
------------------------------------------
------------------------------------------
signal IICaaaaSampClk: std_logic;
signal IICaaaaClk: std_logic;
signal IICDivNum0: std_logic_vector (8 downto 0);
signal IICDivNum1: std_logic_vector (8 downto 0);
------------------------------------------
commencer

IICDivNum0 <= "000000000";
IICDivNum1 <= "000000000";
IIC_CLKOUT0 <= IICaaaaSampClk;
IIC_CLKOUT1 <= IICaaaaClk;

I2C_SampClk: CLKDIV
port map (
CLK_IN => IIC_CLKIN,
CLK_RST => IIC_RST,
CLK_CS => IIC_CS,
CLK_NUM => IICDivNum0,
CLK_OUT => IICaaaaSampClk
);

IIC_Clk: CLKDIV
port map (
CLK_IN => IIC_CLKIN,
CLK_RST => IIC_RST,
CLK_CS => IIC_CS,
CLK_NUM => IICDivNum1,
CLK_OUT => IICaaaaClk
);

Behavioral fin;

AVERTISSEMENT: XST: 1989 - Unité <IIC_CLK>: cas <I2C_SampClk>, <IIC_Clk> d'unité <CLKDIV> sont équivalents, de deuxième instance est supprimé
AVERTISSEMENT: NgdBuild: 452 - logique net 'I2C_SampClk/CLK_NUM <0>' a pas de pilote
AVERTISSEMENT: NgdBuild: 452 - logique net 'I2C_SampClk/CLK_NUM <1>' a pas de pilote
AVERTISSEMENT: NgdBuild: 452 - logique net 'I2C_SampClk/CLK_NUM <2>' a pas de pilote
AVERTISSEMENT: NgdBuild: 452 - logique net 'I2C_SampClk/CLK_NUM <3>' a pas de pilote
AVERTISSEMENT: NgdBuild: 452 - logique net 'I2C_SampClk/CLK_NUM <4>' a pas de pilote
AVERTISSEMENT: NgdBuild: 452 - logique net 'I2C_SampClk/CLK_NUM <5>' a pas de pilote
AVERTISSEMENT: NgdBuild: 452 - logique net 'I2C_SampClk/CLK_NUM <6>' a pas de pilote
AVERTISSEMENT: NgdBuild: 452 - logique net 'I2C_SampClk/CLK_NUM <7>' a pas de pilote
AVERTISSEMENT: NgdBuild: 452 - logique net 'I2C_SampClk/CLK_NUM <8>' a pas de pilote

pourquoi?ise 10,1 xinlinx xc95144

 
La seule différence entre les deux instances est CLK_NUM.Mais IICDivNum0 et IICDivNum1, les deux sont affectées de la même valeur de "0".Il
s'agit de la raison.L'outil de synthèse de comprendre cette logique comme redondant.

Une façon d'éviter cela est - de ne pas céder "0" et de faire d'abord comme intrants.

Autre moyen d'éviter est - Attribuer des valeurs différentes.

Troisième voie est d'éviter d'utiliser les contraintes de synthèse - Set "Équivalent Registre de suppression" à "NO".

 

Welcome to EDABoard.com

Sponsor

Back
Top