我有个小问题,不敢开贴问,怕说水贴。我遇见一个警告:13012 Latch xxx has unsafe behavior。程序如下`timescale 1ns/ 1ps
//该程序为无条件触发,随时将numb值译码并传出
module BCD_YiMa (
input [7:0] numb, //主程序要转换的十进制数
output [3:0] numbg, //存放个位
output [3:0] numbs //存放十位
);
reg [17:0] shift; //移位寄存器
//*************移位加三算法******************
always [url=home.php?mod=space&uid=72445]@[/url] (*) //无条件触发
begin
shift[7:0] = numb[7:0];//将十进制数存入移位寄存器低八位
repeat (8) //循环8次
begin
[b] if (shift[11:8] > 4'd4) shift[11:8] = shift[11:8] + 4'd3; //大于4则加3
if (shift[15:12] > 4'd4) shift[15:12] = shift[15:12] + 4'd3;[/b]
shift[17:1] = shift[16:0]; //左移一位
//这里需要用阻塞赋值"=",因为若某4位大于4,则需要先加3再移位
end
end
assign numbg = shift[11:8];
assign numbs = shift[15:12];
endmodule
出问题的那俩行我已经加黑,网上找到都是说要把 if/else 或 case 写完,但我也试着在if下面多加了“else ;”还是无法消除这个警告 |