名称:二进制除法器设计Verilog代码Quartus? DE2-115开发板
软件:Quartus
语言:Verilog
代码功能:
数字运算系统
设计要求:用 ALTERA公司的 Quartus II[软件和DE2115开发板进行设计。
主要内容:
要求实现两个无符号二进制除法运算,并在七段数码管上进行显示。显示顺序依次是:(1)最高两个数码管显示被除数;(2)次高两个数码管显示除数;(3)次低两个数码管显示商;(4)最低两个数码管显示余数。要求使用移位和相减的方法实现。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1.?工程文件
2.?程序文件
3.?程序编译
4.?RTL图
5.?管脚分配
6.?Testbench
7.?仿真图
部分代码展示:
//除法模块 module?Divider_8bit( input?clk,//时钟 input?div_en,//开始计算信号,为低电平开始 input?[7:0]?Divisor,//被除数?,Divisor/dividend input?[7:0]?dividend,//除数 output?[7:0]?shang,//商 output?[7:0]?yushu//余数 ); wire?[15:0]?Divisor_extend;//扩展为16位 assign?Divisor_extend={8'b00000000,Divisor}; parameter?state_idle?=3'd0;//空闲状态 parameter?state_load?=?3'd1;//加载被除数 parameter?state_leftshift?=?3'd2;//左移 parameter?state_judge?=?3'd3;//判断高位是否大于除数 parameter?state_sub?=?3'd4;//减去 parameter?state_end?=?3'd5;//结束 reg?[2:0]?state=3'd0; reg?[15:0]?data=16'd0; reg?[2:0]?shift_cnt=3'd0;//移位次数累计 reg?[7:0]?shang_reg=8'd0;//商 reg?[7:0]?yushu_reg=8'd0;//余数 always@(posedge?clk) case(state) state_idle:begin shift_cnt<=3'd0; if(div_en==0)//加载被除数 state<=state_load; else state<=state_idle; end state_load:begin data<=Divisor_extend;//加载被除数 state<=state_leftshift; shift_cnt<=3'd0; end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1186
阅读全文