微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Verilog程序16位除法器QUARTUS2调试出来波形总是不对

Verilog程序16位除法器QUARTUS2调试出来波形总是不对

时间:10-02 整理:3721RD 点击:
刚学习FPGA一个礼拜,从树上抄了一段小程序,16位除法器,QUARTUS2调试出来波形总是不对(偶尔有几段是对的),还望大神指教,本人菜鸟。
程序:

  1.     module div16(input CLK,        input [15:0] A,B, output reg [15:0] QU,RE);
  2.             reg[15:0] AT,BT,P,Q;
  3.             integer i;
  4.             always @(posedge CLK)
  5.             begin
  6.                     AT=A;        BT=B;        P=16'h0000;        Q=16'h0000;
  7.                     for(i=15;i>=0;i=i-1)
  8.                     begin  
  9.                             P={P[14:0], AT[15]};
  10.                             AT={AT[14:0], 1'b0};
  11.                             P=P-BT;
  12.                             if(P[15]==1)
  13.                             begin
  14.                                     Q=0;                              
  15.                                     P=P+BT;                       
  16.                                     end                        
  17.                                     else    Q=1;               
  18.                                     end                              
  19.                                     QU=Q;         
  20.                                     RE=P;      
  21.                              end      
  22. endmodule

复制代码


为什么QU(商),RE(余数)老是不对,而且第一个时钟都是对的。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top