为什么不只使用布尔值

ni9*_*i9e 3 vhdl

使用std_logicstd_ulogic代替的原因是boolean什么?

std_logic可以有除了'1'和之外的其他值'0',但是在FPGA中,一切都被解析为'1'或者'0'.这不会使模拟更不现实吗?

Kar*_*rik 6

std_logic类型可以取以下值:

• 'U': uninitialized. This signal hasn't been set yet. 
• 'X': unknown. Impossible to determine this value/result. 
• '0': logic 0 
• '1': logic 1 
• 'Z': High Impedance 
• 'W': Weak signal, can't tell if it should be 0 or 1. 
• 'L': Weak signal that should probably go to 0 
• 'H': Weak signal that should probably go to 1 
• '-': Don't care. 
Run Code Online (Sandbox Code Playgroud)

到目前为止bool,不会告诉你信号太弱或者"可能"应该是什么.所以回答你的问题的原因是,当使用信号输入时,你希望得到的信息不仅仅是"0"或"1",如果根据设计不符合要求.

参考std_logic_1164

  • 还要注意,`std_logic`使仿真*更多*真实,而不是更少。现实世界的电路可能具有三态驱动器(“ Z”),上拉电阻(“ H”)等。“布尔”(以及“位”)不允许您建模这些东西。 (2认同)