input [6:0] load,
input up,
input down,
output reg [6:0] currentvalue
);
reg [6:0] state, nextup, nextdown;
initial
begin
state = load;
end
大家好!我正在尝试创建一个模块,我收到一个7位输入(加载)并将输入值分配给7位寄存器(状态)。当我通过ISE模拟器运行此代码时,我得到XXXXXXXX作为寄存器值'state'。除此之外,该模块似乎工作正常,并没有错误。我尝试了以下代替原始代码,看看它是否可行。
initial
begin
state = 7'd35;
end
它确实有效。我只是有一个含糊的想法,我将输入值分配给寄存器时出现问题,但我无法弄清楚如何解决这个问题。请帮忙!谢谢!
verilog中的所有4状态变量都初始化为“x”。
initial
块用于在模拟开始之前初始化变量。因此,在第一个版本state = load
中,您只需将'load'的'x'值赋给state
(已经是'x')。
在第二个变体中,您为state
指定了一个数值。这是initial
块的用途。
在模拟中,所有主要操作都发生在您的模块缺少的always
块中。你需要编写一个测试台代码来为你的模块输入生成一些刺激,以查看任何反应。