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
它确实有效。我只是有一个含糊的想法,我将输入值分配给寄存器时出现问题,但我无法弄清楚如何解决这个问题。请帮忙!谢谢!
答案 0 :(得分:1)
verilog中的所有4状态变量都初始化为' x'。
initial
块用于在模拟开始之前初始化变量。因此,在第一个版本state = load
中,您刚刚分配了' x'负载的价值'至state
(已经是' x')。
在第二个版本中,您为state
分配了一个数值。这是initial
块的用途。
在模拟中,所有主要操作都发生在模块缺少的always
块中。你需要编写一个测试平台代码,为你的模块输入产生一些刺激,以便看到任何反应。