Я написал код Verilog, чтобы найти остаток, когда мы делим два числа. Но я столкнулся с одной проблемой. У меня есть q
(дивиденд) и m
(делитель), rem
- остаток. Мой алгоритм:Verilog код для поиска остатка
if(q>m)
q=q-m
otherwise
rem=q
Я написал эту Verilog код, но if
-statement бежит за один раз. В следующем такте цикл принимает значение p=q
, чего я не хочу. Я хочу, чтобы моя стоимость в p
появилась как p=p-m
.
Мой код:
module div(q,clk,rem,p,count);
parameter m=13'd840;
input [12:0] q;
input clk;
output reg [12:0] rem;
output reg [3:0] count;
output reg [12:0] p;
initial
begin
count=4'b0;
//+ rem=9'b0;
//p=13'b0;
end
[email protected](posedge clk)
begin
p=q;
if (p>m)
begin
p=p-m;
count=count+1;
rem=p;
end else
rem=9'b0;
end
endmodule
Пожалуйста, покажите ваш испытательный стенд. Мне кажется, что вы должны получить 'X'-вывод с кодом, написанным так, как вы это сделали. – Qiu