回覆列表
  • 1 # 使用者7878186475180

    其實,分解一下乘法的原理,就清楚了。

    以兩個8bit的乘法為例,就是8個累加,如下:

    {8"b0, areg[0]*breg[7:0], } + //i=1,

    {7"b0, areg[1]*breg[7:0], 1"b0} + //i=2,

    {6"b0, areg[2]*breg[7:0], 2"b0} + //i=3,

    {5"b0, areg[3]*breg[7:0], 3"b0} + //i=4,

    {4"b0, areg[4]*breg[7:0], 4"b0} + //i=5,

    {3"b0, areg[5]*breg[7:0], 5"b0} + //i=6,

    {2"b0, areg[6]*breg[7:0], 6"b0} + //i=7,

    {1"b0, areg[7]*breg[7:0], 7"b0} //i=8,

    回到本程式碼,

    areg[14:0]這15bit的每一個bit,單獨來看的話,首先乘以16‘b1000_0000_0000_0000,

    然後“加上”被乘數,再依次除以2。

    由於以上動作重複15次,因此最低位bit0被除15次,bit1被除14次,依次,bit13被除1次。

    以上動作,就完成如上列出的加法。

  • 中秋節和大豐收的關聯?
  • 世界上有沒有可以一刀切或者更古不變的真理?