verilog中的除法和模数

时间:2013-04-22 07:35:49

标签: verilog

我正在verilog中创建一个ALU,仅用于模拟。但我无法弄清楚如何划分两个16位输入。常规A=B/C不起作用(其中B,C是input[15:0],A是output reg[15:0])。与A=B%C类似。

我是否必须单独实施除法电路模块?我理解除法是一个非常复杂的操作,这将是实际的方法,但我只是为了模拟而做。是否有更短的方法来划分两个16位输入?

1 个答案:

答案 0 :(得分:1)

您的代码目前正在执行此操作:

initial begin
  out1=in1/in2; out2=in1%in2;
end

这不起作用 - initial块在模拟开始时运行一次,当in1in2X时,设置{{ 1}}和out1到X,然后停止。将您的逻辑更改为:

out2

每次 always @* begin out1=in1/in2; out2=in1%in2; end in1更改时都会执行此操作。