2017-03-14 62 views
0

我寫了一個簡單的RS鎖存與VHDL,並試圖與ISE合成它。合成器增加了一個D觸發器,其中D輸入接地,我的(S)et和(R)eset輸入被視爲預置和清零輸入。我預計只會看到NAND門。爲什麼它增加了一個觸發器,而沒有必要呢?還有爲什麼D輸入端接地?RS鎖存與VHDL

entity rs is 
Port (r : in STD_LOGIC; 
     s : in STD_LOGIC; 
     q : inout STD_LOGIC); 
end rs; 

architecture Behavioral of rs is 
begin 
process(r, s) 
begin 
    if r = '1' then 
     q <= '0'; 
    elsif s = '1' then 
     q <= '1'; 
    else 
     q <= q; 
    end if; 
end process; 
end Behavioral; 

enter image description here

回答

2

你一個觸發器已被用於觀察是不正確的。元素標記爲ldcp,這是一個透明的鎖存器。看看你的代碼,閂鎖就是你所描述的。 D輸入端接地,因爲您的所有進程都會設置或清除鎖存器;您尚未描述「加載」操作,因此鎖存器不使用其輸入D

2

FPGA不包含NAND門。儘管門電路在ISE原理圖中顯示,但它們的組合功能實際上是在LookUp Tables(LUT)中實現的。僅使用LUT的鎖存函數的行爲與您在NAND門中實現鎖存器時的行爲不同。爲了實現鎖存功能,賽靈思FPGA必須利用「存儲元件」(FPGA中的實際可用物理結構)來模擬其行爲。這些元素具有可預測的行爲。存儲元件提供設置和重置輸入。再加上一些邏輯,你可以創建類似閂鎖的行爲。

您可以查看PAR輸出而不是綜合輸出來瞭解它是如何實現的。