microcreat 发表于 2009-7-15 17:12:09

清大家帮帮看看,怎么样jiejeu这个警告!

entity CLKDIV is
------------------------------------------
port (
                CLK_IN :   instd_logic;
      CLK_RST:   instd_logic;       
      CLK_CS :   instd_logic;
      CLK_NUM:   instd_logic_vector ( 8 downto 0 );               
                CLK_OUT:   out std_logic
                );
------------------------------------------
end CLKDIV;

architecture Behavioral of CLKDIV is
------------------------------------------
signal CLK_CLK:    std_logic;
signal CLK_CNT:    std_logic_vector ( 8 downto 0 );       
------------------------------------------
begin
------------------------------------------
div:process ( CLK_RST,CLK_IN,CLK_CS )
      begin
                if ( CLK_RST = '0' ) then
                   CLK_CLK <= '1';
                        CLK_CNT <= "000000000";               
      elsif ( CLK_IN' event and CLK_IN = '1' and CLK_CS = '0' ) then
          CLK_CNT <= CLK_CNT + 1;
                       if ( CLK_CNT = CLK_NUM )        then
             CLK_CLK <= not CLK_CLK;
             CLK_CNT <= "000000000";                               
         end if;                                  
      end if;
      end process div;
       
CLK_OUT <= CLK_CLK;       
------------------------------------------
end Behavioral;


entity IIC_CLK is
------------------------------------------
port (
   IIC_CLKIN:          instd_logic;
          IIC_RST:            instd_logic;
          IIC_CS:             instd_logic;
          IIC_CLKOUT0:         out std_logic;
          IIC_CLKOUT1:         out std_logic
   );
------------------------------------------
end IIC_CLK;

architecture Behavioral of IIC_CLK is
------------------------------------------
component CLKDIV
    port (
                   CLK_IN :      instd_logic;
         CLK_RST:      instd_logic;
         CLK_CS :      instd_logic;
         CLK_NUM:      instd_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 );
------------------------------------------
begin

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
                );

end Behavioral;

microcreat 发表于 2009-7-15 17:14:32

我的开发环境是 ise10.1
编译出现下面的警告!不知道怎么解决!
WARNING:Xst:1989 - Unit <IIC_CLK>: instances <I2C_SampClk>, <IIC_Clk> of unit <CLKDIV> are equivalent, second instance is removed
WARNING:NgdBuild:452 - logical net 'I2C_SampClk/CLK_NUM<0>' has no driver
WARNING:NgdBuild:452 - logical net 'I2C_SampClk/CLK_NUM<1>' has no driver
WARNING:NgdBuild:452 - logical net 'I2C_SampClk/CLK_NUM<2>' has no driver
WARNING:NgdBuild:452 - logical net 'I2C_SampClk/CLK_NUM<3>' has no driver
WARNING:NgdBuild:452 - logical net 'I2C_SampClk/CLK_NUM<4>' has no driver
WARNING:NgdBuild:452 - logical net 'I2C_SampClk/CLK_NUM<5>' has no driver
WARNING:NgdBuild:452 - logical net 'I2C_SampClk/CLK_NUM<6>' has no driver
WARNING:NgdBuild:452 - logical net 'I2C_SampClk/CLK_NUM<7>' has no driver
WARNING:NgdBuild:452 - logical net 'I2C_SampClk/CLK_NUM<8>' has no driver

microcreat 发表于 2009-7-15 17:15:28

I2C_SampClk: CLKDIV
    port map (
                  CLK_IN=> IIC_CLKIN,
                                 CLK_RST => IIC_RST,
                                 CLK_CS=> IIC_CS,
                                 CLK_NUM => IICDivNum0,
                                 CLK_OUT => IICaaaaSampClk
                  );
如果就只有这个的话,这个警告又没有,现在不知道什么原因!

microcreat 发表于 2009-7-15 23:04:08

自己顶下!

microcreat 发表于 2009-7-16 09:09:11

现在自己清楚了警告,但是有点不明白!
signal IICDivNum0: std_logic_vector ( 8 downto 0 );
signal IICDivNum1: std_logic_vector ( 8 downto 0 );
I2C_SampClk: CLKDIV
    port map (
            CLK_IN=> IIC_CLKIN,
            CLK_RST => IIC_RST,
            CLK_CS=> IIC_CS,
            CLK_NUM => IICDivNum0,   --- 这里是内部的信号!
            CLK_OUT => IICaaaaSampClk
             )
以上是元件例化>
------------------------------------------
port (
      CLK_IN :   instd_logic;
      CLK_RST:   instd_logic;         
      CLK_CS :   instd_logic;
      CLK_NUM:   instd_logic_vector ( 8 downto 0 );               
      CLK_OUT:   out std_logic
   );
------------------------------------------
这个是端口,
如果例化语句改为下面的就没有警告了.


I2C_SampClk: CLKDIV
    port map (
          CLK_IN=> IIC_CLKIN,
          CLK_RST => IIC_RST,
          CLK_CS=> IIC_CS,
          CLK_NUM => IIC_NUM ( 8 downto 0 ),-- 这里改为端口
          CLK_OUT => IIC_CLKOUT0
          );
为什么会这样呢?希望遇到过的朋友能帮忙解释下?谢谢!

microcreat 发表于 2009-7-16 09:10:00

还有,为什么只例化一个的话,可以用内部的信号呢?
页: [1]
查看完整版本: 清大家帮帮看看,怎么样jiejeu这个警告!