• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

連續(xù)減算法的8位除法器設(shè)計Verilog代碼Quartus仿真

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-240111111112N3.doc

共1個文件

名稱:連續(xù)減算法的8位除法器設(shè)計Verilog代碼Quartus仿真

軟件:Quartus

語言:Verilog

代碼功能:

連續(xù)減算法的8位除法器設(shè)計

要求:

1、使用連續(xù)減算法設(shè)計一個8位除法器,語言Verilog;

2、輸入為被除數(shù)、除數(shù);

3、輸出為商、余數(shù)。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

演示視頻:

設(shè)計文檔:

1.算法介紹

連續(xù)減算法

2.工程文件

3.程序文件

4.程序編譯

5.Testbench

6.RTL圖

7.資源消耗圖

8.仿真圖

上圖17除以4等于4余數(shù)1,結(jié)果正確

上圖255除以12等于21 余數(shù)3 ,結(jié)果正確

上圖95除以31等于3余數(shù)2,結(jié)果正確

上圖167除以23等于7余數(shù)6,結(jié)果正確

需要周期與商有關(guān),商越大,需要時鐘周期越多

部分代碼展示:

module?Divider_8bit(
input?clk,//時鐘
input?div_en,//開始計算信號,為高電平開始
input?[7:0]?Divisor,//被除數(shù)?,Divisor/dividend
input?[7:0]?dividend,//除數(shù)
output?[7:0]?shang,//商
output?[7:0]?yushu//余數(shù)
);
wire?[15:0]?Divisor_extend;//擴(kuò)展為16位
assign?Divisor_extend=Divisor;
parameter?state_idle?=3'd0;//空閑狀態(tài)
parameter?state_load?=?3'd1;//加載被除數(shù)
parameter?state_sub?=?3'd2;//循環(huán)減
parameter?state_judge?=?3'd3;//判斷是否大于除數(shù)
parameter?state_end?=?3'd5;//結(jié)束
reg?[2:0]?state=3'd0;
reg?[15:0]?data=16'd0;
reg?[7:0]?sub_cnt=8'd0;//減次數(shù)累計
reg?[7:0]?shang_reg=8'd0;//商
reg?[7:0]?yushu_reg=8'd0;//余數(shù)
always@(posedge?clk)
case(state)
state_idle:begin
sub_cnt<=8'd0;
if(div_en==1)//加載被除數(shù)
state<=state_load;
else
state<=state_idle;
end
state_load:begin
data<=Divisor_extend;//加載被除數(shù)
state<=state_sub;
sub_cnt<=8'd0;
end
state_sub:begin
sub_cnt<=sub_cnt+8'd1;//減次數(shù)累計
data<=data-dividend;//減
state<=state_judge;
end

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=536

  • 2-240111111112N3.doc
    下載

相關(guān)推薦