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

斐波那契數(shù)列Fibonacci設(shè)計verilog代碼

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

1-231022221Q0244.doc

共1個文件

名稱:斐波那契數(shù)列Fibonacci設(shè)計verilog(代碼在文末付費(fèi)下載)

軟件:Quartus

語言:Verilog

代碼功能:

設(shè)計一個產(chǎn)生斐波那契數(shù)列(也叫黃金分割數(shù)列)的硬件電路:

斐波那契數(shù)列中每個數(shù)為其相鄰前兩個數(shù)的和:即FN=FN1+FN2,(數(shù)列的前兩個數(shù)F和F均為1)

(1)基本要求

根據(jù)不同輸入N(>=3),產(chǎn)生FN最大為32位,在新的F產(chǎn)生出來前,N將維持不變;F應(yīng)保持不變直到N又發(fā)生變化

2畫出設(shè)計結(jié)構(gòu)圖:數(shù)據(jù)通路和控制通路、控制策略

3寫出該設(shè)計的 Verilog描述

(2)擴(kuò)展功能

隨機(jī)生成指定范圍內(nèi)的N整數(shù),并計算斐波那契數(shù)列F產(chǎn)生次數(shù)。

本代碼支持使用modelsim仿真和quartus仿真

modelsim仿真演示視頻:

quartus仿真演示視頻:

FPGA代碼Verilog/VHDL代碼資源下載網(wǎng):www.hdlcode.com

部分代碼展示

//斐波那契數(shù)列
//斐波那契數(shù)列指的是這樣一個數(shù)列:1、1、2、3、5、8、13、21、34
//?這個數(shù)列從第3項開始,每一項都等于前兩項之和
module?Fibonacci(
input?clk,//時鐘
input?rst_p,//復(fù)位
input?N_en,//輸入N有效指示信號
input?[31:0]?N,//輸入N
output?[31:0]?FN//輸出Fn
);
wire?[2:0]?current_state;//輸出狀態(tài)值
//狀態(tài)機(jī)控制模塊
state_ctrl?i_state_ctrl(
.?clk(clk),//時鐘
.?rst_p(rst_p),//復(fù)位
.?N_en(N_en),//輸入N有效指示信號
.?N(N),//輸入N
.?current_state(current_state)//輸出狀態(tài)值
);
//序列產(chǎn)生模塊
sequence_gen?i_sequence_gen(
.?clk(clk),//時鐘
.?rst_p(rst_p),//復(fù)位
.?current_state(current_state),//輸出狀態(tài)值
.?FN(FN)//輸出Fn
);
endmodule
//序列產(chǎn)生模塊
module?sequence_gen(
input?clk,//時鐘
input?rst_p,//復(fù)位
input?[2:0]?current_state,//輸出狀態(tài)值
output?reg?[31:0]?FN//輸出Fn
);
parameter?s_idle=3'd0;
parameter?s_start=3'd1;
parameter?s_sum=3'd2;
parameter?s_end=3'd3;
//數(shù)列計算
reg?[31:0]?Fib_sequence=32'd1;
reg?[31:0]?Fib_sequence_delay=32'd1;
always@(posedge?clk)
if(rst_p)
Fib_sequence<=32'd1;
else
if(current_state==s_sum)//累加狀態(tài)下
begin
Fib_sequence_delay<=Fib_sequence;//緩存前一個數(shù)到Fib_sequence_delay
Fib_sequence<=Fib_sequence+Fib_sequence_delay;//前兩項之和
end
else?if(current_state==s_end)begin//結(jié)束
Fib_sequence<=32'd1;
Fib_sequence_delay<=32'd1;
end

設(shè)計文檔:

1. 數(shù)列

2. 工程文件

3. 程序文件

4. 程序編譯

5. RTL圖

狀態(tài)機(jī)視圖

6. Testbench

7. 仿真圖

整體仿真圖

數(shù)列第0個為1,第1個為1,第2個為2.。。。。第10個為89,第20個為10946。。。

可以看到仿真圖第10個為89,第20個為10946正確。

狀態(tài)機(jī)控制模塊

數(shù)列產(chǎn)生模塊

quarttusII自帶仿真

整體仿真

數(shù)列第0個為1,第1個為1,第2個為2.。。。。第5個為8,第20個為10946。。。

可以看到仿真圖第5個為8,第20個為10946正確。

狀態(tài)控制模塊

數(shù)列產(chǎn)生模塊

  • 1-231022221Q0244.doc
    下載

相關(guān)推薦