2014-10-01 112 views
0

我一直在試圖給輸出端口分配一個信號值。當我模擬設計時,我得到了適當的信號輸出秒數,但只要我將信號值分配到輸出端口,它就會給我一個警告。此警告粘貼在下面。我曾嘗試使用信號和outport保持std_logic但仍然得到相同的錯誤。如何將信號值分配給輸出端口?

我相信你會有我的答案。

在此先感謝。

FF/Latch在塊中具有恆定值0。
該FF/Latch將在優化過程中進行修剪。警告:Xst:1896 - 由於其他FF/Latch修剪,FF/Latch在塊中具有恆定值0。
該FF/Latch將在優化過程中進行修剪。警告:Xst:1896 - 由於其他FF/Latch修剪,FF/Latch在塊中具有恆定值0。
該FF/Latch將在優化過程中進行修剪。警告:Xst:1896 - 由於其他FF/Latch修剪,FF/Latch在塊中具有恆定值0。
該FF/Latch將在優化過程中進行修剪。警告:Xst:1896 - 由於其他FF/Latch修剪,FF/Latch在塊中具有恆定值0。
該FF/Latch將在優化過程中進行修剪。警告:Xst:1896 - 由於其他FF/Latch修剪,FF/Latch在塊中具有恆定值0。
該FF/Latch將在優化過程中進行修剪。警告:Xst:1896 - 由於其他FF/Latch修剪,FF/Latch在塊中具有恆定值0。
該FF/Latch將在優化過程中進行修剪。警告:Xst:1896 - 由於其他FF/Latch修剪,FF/Latch在塊中具有恆定值0。
該FF/Latch將在優化過程中進行修剪。

這是我的代碼!

library IEEE; 
    use IEEE.STD_LOGIC_1164.ALL; 
    use IEEE.STD_LOGIC_ARITH.ALL; 
    use IEEE.STD_LOGIC_UNSIGNED.ALL; 

    entity clock is 
     port (CLKin: in std_logic; 
       CLKout: out std_logic); 
    end clock; 

    architecture arch of clock is 

     signal counter: integer:=0; 
     signal temp : std_logic := '1'; 

    begin 

     process(CLKin,counter,temp) 
     begin 
     if(CLKin'event and CLKin='1') then 
      counter <=counter+1; 
      if (counter = 50000000) then 
      temp <= NOT temp; 
      counter<=0; 
      CLKout <= temp; 
      end if; 
     end if; 
     end process; 
    end arch; 
+1

您的問題缺乏足夠的信息。你能發佈你的代碼嗎,至少? – fru1tbat 2014-10-01 17:00:58

+0

警告表示您的任務將在某處(基本上鎖存器正在優化)。 – 2014-10-01 17:21:24

+1

有關具有相同警告的成功問題的示例,請參見[VHDL綜合 - FF/Latch常量值](http://stackoverflow.com/questions/16087307/vhdl-synthesis-ff-latch-constant-value)。注意變量的聲明(在這種情況下),整數不受約束導致所有的修整。VHDL代碼實際上是需要答案的。 – user1155120 2014-10-01 18:19:45

回答

0

我想這是因爲你的是happend:

signal counter: integer:=0; 
signal temp : std_logic := '1'; 

合成

0

我同意Serhii Cookie這也是什麼工具試圖警告你中被忽略的初始值。初始語句不合成2,用於合成的適當版本的代碼必須包含具有此效果的復位信號。 所以,你正在尋找的東西,如:

IF reset='0' THEN 
     -- Reset the counter and assign initial values 
     signal counter <= 0; 
     signal temp <= '1'; 
    ELSIF rising_edge(clk) THEN 
     -- do the actual processing 
    END IF; 

..at你的進程的開始。

²即它僅用於模擬和測試目的,因此被大多數合成工具忽略。