2013-04-08 42 views
0

問題:時使用何種類型的

  1. 有沒有(關於我的情況)更appropiate 「超」 到signedunsignedstd_logic_vector

  2. 將輸入定義爲(整數的子類型)還是將它定義爲位向量更好? (整數方法是否存在問題)

  3. 什麼時候應該使用已解決或未解決的輸入/輸出邏輯來關閉實體?

    • 已解決總線驅動程序(因爲「高Z驅動程序」),否則未解決?
    • 始終解決,以便總線可以驅動/用作輸入(這似乎是錯誤的,因爲我的時候會使用未解決的呢?)

實際案例:

我聲明一個實體,我想知道輸入和輸出的正確類型。我們假設我正在構造一個動態寬度相等的數組。它比較兩個輸入的前n個比特是否相等。

實體的定義是:

entity comparisonDynWidth is 
    generic(
     width  : positive; 
     min_width : positive; 
      -- when the tools suport vhdl2008 enough 
      -- reason for both signed/unsigned => std_logic inputs 
     --function compareFunc (x: in std_logic_vector; y: in std_logic_vector) return std_logic 
    ); 
    port (
     left, right : in std_logic_vector(width-1 downto 0); 
     widthControl: in natural range 0 to width-min_width; 
     result  : out std_logic/std_ulogic ?? 
    ); 

我選擇std_logic_vector作爲輸入,因爲我希望它看起來端口像普通less than比較爲好,爲此符號性的問題,並能有signedunsigned投入。 因爲我更容易將寬度定義爲我這樣做的整數。

回答

1

有沒有更appropiate 「超」 到簽署,比 std_logic_vector未簽名的(關於我的情況)?

不確定你的意思,但你別無選擇 - signedunsigned在標準中定義。

是否確定定義爲輸入(亞型)整數或者是它更好地 把它定義爲位向量?(整數 方法是否存在問題)

如果超出範圍,整數將標記錯誤。載體(signedunsigned)將環繞。哪一個是「正確的」取決於你想要什麼以及如果你想用整數來編碼顯式環繞,你感覺如何。

什麼時候應該使用已解決或未解決的邏輯來處理實體的輸入/輸出 ?

如果你堅持:

  • 只使用頂級IO端口解決的類型(即該設備的實際銷)
  • 使用未解決的類型內部

你將能夠捕捉包含多個驅動器的錯誤信號,並在詳細的錯誤消息處理過程中進行處理。這可能更適合在仿真時追蹤波形中的X

現在大多數技術都沒有內部三態總線,因此您不能擁有多個驅動程序,因此無需在設備內部解析信號。 IO引腳(幾乎?)總是有三態驅動器,所以使用解析類型是合適的,並且驅動'Z'可以用來推斷這種行爲。

+0

我不太清楚問題的第三部分的問題,讓我們假設我想實現漏洞開放,你告訴我這在大多數技術中是不可能的嗎?如果我無法實現總線,如何實現總線?如果我可以,我需要解決的邏輯是否正確? – ted 2013-04-09 07:26:47

+0

如果你想要開漏,那麼它將在頂層的IO端口上,並且使用已解析的類型是相當好的,並且在那裏也是可以的。 – 2013-04-09 11:05:41

1
  1. std_logic_vector你的情況是不錯的選擇(在大多數情況下,在一個實體,因爲它代表的硬件情況最好的......例如在使用「U」和「Z」等)

  2. 只要實體不是頂層實體,在實體中使用整數就可以。在頂層實體中,推薦使用std_logic(_vector)。

  3. 無論如何,大多數工具都報告多驅動器情況......因此,使用已解決的類型是可以的。

+0

1.'U'代表什麼硬件?和3.大多數模擬器不報告多個驅動程序,他們只是模擬你寫的東西。合成器確實報告了它(在一百萬條其他消息中),但我通常花費的時間比合成模擬要多得多,所以到時候已經晚了一點:) – 2013-04-09 11:08:16

+0

'U'未定義,意味着信號不被驅動...不幸的是,並不是所有的硬件都被定義爲'0'或'1';-) – baldyHDL 2013-04-09 12:11:19

+0

我基本上同意你在(3)上。然而,無論如何,甚至在你的模擬過程中不時地運行綜合,都是推薦的。以儘早擺脫數以百萬計的警告;-) – baldyHDL 2013-04-09 12:22:28