斐波那契数列的当前数值等于前两个数值相加之和,即Xn=Xn-1+Xn-2;
数据为0,1,1,2,3,5,8,13,21,34…
module fibonacci_number(
input clk,
input rst_n,
input [15:0] number_eth, //要求出的斐波那契数的排号
output number_valid, //生成完成
output [15:0] number //生成的数字
);
reg [15:0] previous_value; //前一个值
reg [15:0] current_value; //后一个值
reg number_valid_r; //数值有效信号
reg [15:0] cnt; //计数器
assign number=current_value;
assign number_valid=number_valid_r;
always@(posedge clk or negedge rst_n)
if(!rst_n)
begin
previous_value<=16'd0;
current_value<=16'd1;
cnt<=16'd0;
number_valid_r<=1'b0;
end
else
begin
if(cnt==number_eth-16'd2)