下午好,VHDL if語句 - 奇怪值
你認爲你可以對我來說意味着什麼對如果語句的右邊的值解釋一下嗎? 在我不太明白的例子中有兩個聲明的無符號向量。
CONSTANT ZERO : UNSIGNED(3 DOWNTO 0) := (OTHERS=>'0);
SIGNAL count : UNSIGNED(3 DOWNTO 0) := ZERO;
然後如下:
IF clk'EVENT AND clk='1' THEN
if count<(2-1) THEN
output<='1';
etc...
我有什麼問題,是部分
如果計數< (2-1)
那會是2-1的意思嗎?我有幾個想法。從谷歌搜索中,我發現vector_name(n-1 downto 0)是一種常用的聲明向量的方法,其中n =總線的位數或寬度。但是,這個例子似乎沒有任何共同之處。另一個猜測:左邊的值是一個無符號的二進制信號,所以也許2-n表示比較前的n應該變成二進制數?
P.S.這個例子來自一個分頻器。
哪個庫聲明UNSIGNED?我在問,因爲我不知道非標準的東西是否應該提供一個奇怪的子集。使用numeric_std我看不到有什麼好的理由不說'if count <1'。除非這是一種半預先記錄一個錯誤修復方法,以避免意想不到的錯誤問題,例如計數<2,例如,如果比較移動了一個週期以幫助流水線... –
以下是使用的所有庫:庫IEEE; 使用IEEE.STD_LOGIC_1164.ALL; 使用IEEE.NUMERIC_STD.ALL; – petajamaja
對不起,Drummond先生,請你解釋一下哪一個問題的含義? – petajamaja