我正在编写代码以在显示器上关闭所有七个seg,直到按下与每个七段相对应的按钮,然后它应该保持打开状态。它只显示0-15,我有16设置为1111111关闭阴极。其余代码工作正常,根据按钮按下更改,如果我在调用函数之前专门指定seven0 = 16(测试函数),它将正确关闭阴极。
问题在于,在启动时,4-7段显示“0000”而不是4空白(未点亮),无论启动时输入开关如何都会显示。在我看来,它唯一可能是70-3值在启动时将自己设置为0,而不是初始块中指示的16。我为什么他们做错了让他们回到0?我把它设置在这里的两个地方,因为我已经单独尝试了两个并且都没有保持初始值16。
时序模拟表明,对于seven0-3而言从0变为0,从未变为16,甚至变为16到5'b10000。我是行为verilog的新手,想知道我是否应该做一些不同的初始化?
reg [4:0] seven0 =16;
reg [4:0] seven1 =16;
reg [4:0] seven2 =16;
reg [4:0] seven3 =16;
initial
begin
seven0 = 16;
seven1 = 16;
seven2 = 16;
seven3 = 16;
end