m0_74260251 2022-11-16 00:40 采纳率: 0%
浏览 22
已结题

用hdl文件写两个16位2进制数字的除法

哪位精英人士可以写啊?
只能使用hdl文件
写出两个216位进制数字的除法
就只能用基本的逻辑门
And or not mux
Add subtract

  • 写回答

4条回答 默认 最新

  • 程序员Forlan 2022-11-16 08:13
    关注
    获得3.15元问题酬金

    试下下面这个

    
    module divisionV1  
    (  
    input[31:0] a,   
    input[31:0] b,  
    input enable,
    output reg [31:0] yshang,  
    output reg [31:0] yyushu,
    output reg done 
    );  
      
    reg[31:0] tempa;  
    reg[31:0] tempb;  
    reg[63:0] temp_a;  
    reg[63:0] temp_b;  
      
    integer i;  
      
    always @(a or b)  
    begin  
        tempa <= a;  
        tempb <= b;  
    end  
      
    always @(tempa or tempb)  
    begin  
    if(enable)
      begin
        temp_a = {32'h00000000,tempa};  
        temp_b = {tempb,32'h00000000};  
        done = 0; 
        for(i = 0;i < 32;i = i + 1)  
            begin  
                temp_a = {temp_a[62:0],1'b0};  
                if(temp_a[63:32] >= tempb)  
                    temp_a = temp_a - temp_b + 1'b1;  
                else  
                    temp_a = temp_a;  
            end  
      
        yshang = temp_a[31:0];  
        yyushu = temp_a[63:32]; 
        done = 1; 
      end
    end  
      
    endmodule
    
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月24日
  • 修改了问题 11月16日
  • 创建了问题 11月16日