我在写一个顺序计数器,它由一系列使用D触发器组件的单计数器组件组成。在单个计数器中,我需要从的初始值q
开始,但我在初始化时遇到问题。VHDL初始化std_logic
q
是STD_LOGIC
信号,我试图按如下初始化:
signal q : STD_LOGIC := '0';
然而,当我运行使用的ModelSim程序它显示的U
一个值,好象它是未分配的。如果我在ModelSim中运行时强制冻结'0'
到q
的信号,那么它就起作用。
是否只有这样才能在行为描述开始时检查值并将其设置为'0'
(如果未指定)?
如果我使用BIT
而不是STD_LOGIC
,则一切正常。
我会发布我的代码,但我不想冒学术诚信违规,因为这是一个学校项目。
别的什么东西开车Q?请注意,如果初始值为'0'并且有驱动器驱动'U',则这两个值将解析为'U'。 (如果你不明白,请阅读有关解析功能)。 –
那么,我将一个D触发器组件的输出'q'映射到问题中指定的'q'。你是这个意思吗? –
是的,那是你的问题。您需要清除触发器中的'U',可以通过重置或'0'或'1'计时。 –