問題:時使用何種類型的
有沒有(關於我的情況)更appropiate 「超」 到
signed
和unsigned
比std_logic_vector
?將輸入定義爲(整數的子類型)還是將它定義爲位向量更好? (整數方法是否存在問題)
什麼時候應該使用已解決或未解決的輸入/輸出邏輯來關閉實體?
- 已解決總線驅動程序(因爲「高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
比較爲好,爲此符號性的問題,並能有signed
和unsigned
投入。 因爲我更容易將寬度定義爲我這樣做的整數。
我不太清楚問題的第三部分的問題,讓我們假設我想實現漏洞開放,你告訴我這在大多數技術中是不可能的嗎?如果我無法實現總線,如何實現總線?如果我可以,我需要解決的邏輯是否正確? – ted 2013-04-09 07:26:47
如果你想要開漏,那麼它將在頂層的IO端口上,並且使用已解析的類型是相當好的,並且在那裏也是可以的。 – 2013-04-09 11:05:41