我有个小问题,不敢开贴问,怕说水贴 。我遇见一个警告: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 ;”还是无法消除这个警告
|