为了得到满足括号内条件的count数值,在我利用计数器实现以下操作的时候,得到的count数值比正确的数值大1(代码中count的正确值应为27,得到的却是28),但是如果将代码中的a,b,c,p数值做更改,有时候,却能得到正确的count值。不明白为什么,希望有懂的能指点迷津。
``c
module yan_zheng(
input clk,
input rst,
output reg[7:0] led
);
wire signed[7:0] a;
wire signed[7:0] b;
wire signed[7:0] c;
wire signed[7:0] p;
reg[7:0] count;
assign a = 8'd19;
assign b = 8'd28;
assign c = 8'd20;
assign p = 8'd29;
always @(posedge clk or negedge rst)
if(!rst)
count <= 8'b0;
else if((a*count)%p == c)
led <= count;
else
count <= count + 1'b1;
endmodule