My title page contents

32位无符号除法器的设计Verilog代码ISE仿真

名称:32位无符号除法器的设计Verilog代码ISE仿真

 

软件:Xilinx ISE

 

语言:Verilog

 

代码功能:实现32位无符号整数除法运算,支持被除数和除数均为32位无符号数,输出32位商和32位余数。该除法器采用状态机控制,通过左移和减法操作实现除法运算,并包含忙信号指示当前运算状态。

 

演示视频:

设计文档:

设计文档1.doc


代码实现思路:

该32位除法器采用经典的移位减法算法实现。主要设计思路如下:

 

1. 状态机设计:使用6个状态控制除法流程

   - 空闲状态(state_idle):等待开始信号

   - 加载状态(state_load):加载被除数到寄存器

   - 左移状态(state_leftshift):将被除数左移一位

   - 判断状态(state_judge):判断高位是否大于等于除数

   - 减法状态(state_sub):执行减法操作并设置商位

   - 结束状态(state_end):输出最终结果

 

2. 算法原理:

   - 将被除数扩展为64位(2*N位)

   - 通过32次循环(N=32)完成除法运算

   - 每次循环:左移被除数,判断高位是否大于等于除数

   - 如果大于等于:执行减法,商位设为1

   - 如果小于:商位设为0,继续下一轮循环

 

3. 关键参数:

   - N=32:数据位宽

   - M=5:2^M=N,用于控制循环次数

 

代码结构:

该除法器采用模块化设计,主要包含以下部分:

 

1. 输入输出接口:

   - 时钟信号(clock)和复位信号(reset)

   - 开始信号(start)控制运算启动

   - 32位被除数(dividend)和除数(divisor)输入

   - 32位商(q)和余数(r)输出

   - 忙信号(busy)指示运算状态

 

2. 内部寄存器:

   - state:3位状态寄存器,控制运算流程

   - data:64位数据寄存器,存储中间结果

   - shift_cnt:5位移位计数器,记录循环次数

   - shang_reg和yushu_reg:分别存储商和余数

 

3. 状态机逻辑:

   - 复位时进入空闲状态

   - 收到开始信号后进入加载状态

   - 通过左移、判断、减法状态循环32次

   - 运算完成后进入结束状态输出结果

 

4. 忙信号生成:

   - 在空闲和结束状态时busy为0

   - 在其他运算状态时busy为1

 

1、工程文件

 

2、程序文件

 

 

 

3、仿真图


部分代码展示:

`timescale 1ns / 1ps
module test;
// Inputs
reg clock;
reg reset;
reg start;
reg [31:0] dividend;
reg [31:0] divisor;
// Outputs
wire [31:0] q;
wire [31:0] r;
wire busy;
// Instantiate the Unit Under Test (UUT)
Divider_32bit uut (
.clock(clock), 
.reset(reset),
.start(start), 
.dividend(dividend), 
.divisor(divisor), 
.q(q), 
.r(r), 
.busy(busy)
);
initial begin
reset=1;
start=0;
dividend=0;//被除数 ,dividend/divisor
divisor=0;//除数
#100;
reset=0;
dividend=32'h00000000;//被除数 ,dividend/divisor
divisor=32'hffffffff;//除数
start=1;
#50;
start=0;
#4000;
dividend=32'hffffffff;//被除数 ,dividend/divisor
divisor=32'haaaaaaaa;//除数
start=1;
#50;
start=0;
#4000;
dividend=32'd256;//被除数 ,dividend/divisor
divisor=32'h5;//除数
start=1;
#50;
start=0;
#4000;

代码文件(付费下载):






1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 32位无符号除法器的设计Verilog代码ISE仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员