0

我在verilog中创建一个ALU只是为了模拟。但我不知道如何划分两个 16 位输入。常规A=B/C不起作用(其中 B,C 是 ainput[15:0]并且 A 是output reg[15:0])。与A=B%C.

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

4

1 回答 1

2

您的代码当前执行此操作:

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

这不会做任何事情 -initial块在模拟开始时运行一次,when in1and in2are X's,设置out1out2到 X,然后停止。将您的逻辑更改为:

   always
      @* begin
         out1=in1/in2; 
         out2=in1%in2;
      end

这每次都会执行in1in2更改。

于 2013-04-22T10:44:52.380 回答