0
Q
使用在VHDL
A
回答
0
在if
語句中的條件表達式應該返回一個布爾值。
函數調用的形式爲:
function_call ::=
 function_name [ ( actual_parameter_part ) ]  actual_parameter_part ::= parameter_association_list
通知所需的開閉括號包圍的參數(參數)。
association_list ::=
association_element { , association_element }
association_element ::=
[ formal_part => ] actual_part
的包std_logic_1164包聲明中包含的聲明:
FUNCTION rising_edge (SIGNAL s : std_ulogic) RETURN BOOLEAN;
FUNCTION falling_edge (SIGNAL s : std_ulogic) RETURN BOOLEAN;
我們看到的這些都是單一的參數是信號的兩種功能。
擴展Baccus-Naur形式(EBNF,VHDL的定義,不是ISO標準)在IEEE標準正文和附錄中的語法摘要中發現時是規範性的。那些打開和關閉括號需要包含函數調用中傳遞的任何參數。
而更微妙的是Brian或Fru1tbat暗示,在分析過程中可以找到函數調用語法問題。
在另一方面,如果你的問題已經是錯誤的,你本來還打算在這兩個函數封裝體中包含的區別:
-------------------------------------------------------------------
-- edge detection
-------------------------------------------------------------------
FUNCTION rising_edge (SIGNAL s : std_ulogic) RETURN BOOLEAN IS
BEGIN
RETURN (s'EVENT AND (To_X01(s) = '1') AND
(To_X01(s'LAST_VALUE) = '0'));
END;
FUNCTION falling_edge (SIGNAL s : std_ulogic) RETURN BOOLEAN IS
BEGIN
RETURN (s'EVENT AND (To_X01(s) = '0') AND
(To_X01(s'LAST_VALUE) = '1'));
END;
我們在那裏看到,他們對事件(邊緣或者既敏感轉換),並且rising_edge檢測到正轉換,而falling_edge轉換爲負轉換。
的To_X01函數調用有效地擁抱「H」到「L」和「L」到「H」躍遷,其是有效的std_ulogic值可映射到二進制值。
相關問題
- 1. XOR使用4:VHDL
- 2. 在VHDL
- 3. 在VHDL
- 4. 在vhdl
- 5. 使用Vhdl ...生成碼型?
- 6. 使用ModelSim模擬VHDL FSM
- 7. 使用VHDL中的向量
- 8. VHDL-變量的使用
- 9. 在VHDL中使用fpga處理中斷
- 10. VHDL在生成中使用庫函數
- 11. 在VHDL中重新使用舊組件
- 12. 在VHDL中使用固定點
- 13. 避免在VHDL中使用inout
- 14. 在case語句中使用變量,VHDL
- 15. 避免在VHDL
- 16. 條目在VHDL
- 17. 設計在VHDL
- 18. 將在VHDL
- 19. 在VHDL/ModelSim的
- 20. 陣列在VHDL
- 21. VHDL - 在簽名
- 22. vhdl
- 23. vhdl
- 24. vhdl
- 25. 使用C編程調用VHDL實現
- 26. VHDL方法調用
- 27. 16位2在VHDL
- 28. LU分解在VHDL
- 29. if語句在VHDL
- 30. VHDL非法使用的信號declaraction
簡單地說:第一個是等待發生的編譯錯誤。 –
只是稍微簡單一點:如果您正在更改語法,但功能語法不那麼關鍵。 – fru1tbat