问题遇到的现象和发生背景 大四狗做毕设,需要用quartus来仿真,但是跑程序出现了warning
问题相关代码,请勿粘贴截图
module bishe(inputs,code,set,close,lock,back,check,num1,num2,num3,num4,clk,store,wrong);//密码锁控制模块
input [9:0] inputs;
input back,check,set,close,clk;
input [15:0] code;//寄存器中的密码
output lock;//密码锁状态信号--lock==0表示锁关着,lock==1表示锁开了.
output[3:0] num1,num2,num3,num4;//输出的16位二进制密码,用4位二进制代替一位密码
reg[3:0] num1,num2,num3,num4,temp;
output store;
output wrong;//密码输入错误的信号
reg wrong;
reg store;
reg lock;
always@(posedge clk)
begin
if(inputs!=10'b0000000000)
begin
case(inputs)//10个按键分别代表0-9
10'b0000000001:temp=4'd0;
10'b0000000010:temp=4'd1;
10'b0000000100:temp=4'd2;
10'b0000001000:temp=4'd3;
10'b0000010000:temp=4'd4;
10'b0000100000:temp=4'd5;
10'b0001000000:temp=4'd6;
10'b0010000000:temp=4'd7;
10'b0100000000:temp=4'd8;
10'b1000000000:temp=4'd9;
endcase
num4<=num3; //开始左移
num3<=num2;
num2<=num1;
num1<=temp;
end
else if(back)//密码锁删除控制
begin //开始右移
num1<=num2;
num2<=num3;
num3<=num4;
num4<=1'd0;
end
end
always@(negedge clk)
begin
if(lock==0&&check)//在关锁的情况下验证
begin
if(code=={num4,num3,num2,num1})//与寄存器中的内容比较,如果相等则开锁
lock<=1;//
else if({num4,num3,num2,num1}==16'b0000000000000111)
lock<=1;
else
wrong<=1;
end
else if(lock==1'b1&&close)
lock<=1'b0;//上锁
else if((lock==1'b1)&&(set==1'b1))//将给锁存器发送锁存信号,将密码送入锁存器中
store<=1'b1;
else
begin
wrong<=0;
store<=0;
end
end
endmodule
运行结果及报错内容
我的解答思路和尝试过的方法
我试过百度,看B站,也用论坛里的方法试了下重装软件,重新编译都么解决
我想要达到的结果
让我知道具体哪里出了问题,怎么解决,今天搞了一天没解决,人都麻了