弄网站赚钱吗,专业做甜点的网站,公共法律服务网站建设总结,义乌做网站的公司哪家好名称#xff1a;斐波那契数列Fibonacci设计verilog
软件#xff1a;Quartus
语言#xff1a;Verilog
代码功能#xff1a;
设计一个产生斐波那契数列#xff08;也叫黄金分割数列#xff09;的硬件电路:
斐波那契数列中每个数为其相邻前两个数的和:即FNFN1FN2,(数列…名称斐波那契数列Fibonacci设计verilog
软件Quartus
语言Verilog
代码功能
设计一个产生斐波那契数列也叫黄金分割数列的硬件电路:
斐波那契数列中每个数为其相邻前两个数的和:即FNFN1FN2,(数列的前两个数F和F均为1)
(1)基本要求
根据不同输入N(3),产生FN最大为32位,在新的F产生出来前,N将维持不变;F应保持不变直到N又发生变化
2画出设计结构图:数据通路和控制通路、控制策略
3写出该设计的 Verilog描述
(2)扩展功能
随机生成指定范围内的N整数,并计算斐波那契数列F产生次数。 本代码支持使用modelsim仿真和quartus仿真
modelsim仿真演示视频http://www.hdlcode.com/index.php?mhomecViewaindexaid211 quartus仿真演示视频 http://www.hdlcode.com/index.php?mhomecViewaindexaid211 FPGA代码Verilog/VHDL代码资源下载网www.hdlcode.com
代码下载
斐波那契数列Fibonacci设计verilog代码在文末付费下载软件Quartus语言Verilog代码功能设计一个产生斐波那契数列也叫黄金分割数列的硬件电路:斐波那契数列中每个数为其相邻前两个数的和:即FNFN1FN2,(数列的前两个数F和F均为1) (1)基本要求 根据不同输入N(3),产生FN最大为32位,在新的F产生出来前,N将维持不变;F应保持不变直到名称斐波那契数列Fibonacci设计verilog代码在文末付费下载软件Quartus语言Verilog代码功能设计一个产生斐波那契数列也叫黄金分割数列的硬件电路:斐波那契数列中每个数为其相邻前两个数的和:即FNFN1FN2,(数列的前两个数F和F均为1) (1)基本要求 根据不同输入N(3),产生FN最大为32位,在新的F产生出来前,N将维持不变;F应保持不变直到http://www.hdlcode.com/index.php?mhomecViewaindexaid211
部分代码展示
//斐波那契数列
//斐波那契数列指的是这样一个数列1、1、2、3、5、8、13、21、34
// 这个数列从第3项开始每一项都等于前两项之和
module Fibonacci(
input clk,//时钟
input rst_p,//复位
input N_en,//输入N有效指示信号
input [31:0] N,//输入N
output [31:0] FN//输出Fn
);
wire [2:0] current_state;//输出状态值
//状态机控制模块
state_ctrl i_state_ctrl(
. clk(clk),//时钟
. rst_p(rst_p),//复位
. N_en(N_en),//输入N有效指示信号
. N(N),//输入N
. current_state(current_state)//输出状态值
);
//序列产生模块
sequence_gen i_sequence_gen(
. clk(clk),//时钟
. rst_p(rst_p),//复位
. current_state(current_state),//输出状态值
. FN(FN)//输出Fn
);
endmodule
//序列产生模块
module sequence_gen(
input clk,//时钟
input rst_p,//复位
input [2:0] current_state,//输出状态值
output reg [31:0] FN//输出Fn
);
parameter s_idle3d0;
parameter s_start3d1;
parameter s_sum3d2;
parameter s_end3d3;
//数列计算
reg [31:0] Fib_sequence32d1;
reg [31:0] Fib_sequence_delay32d1;
always(posedge clk)
if(rst_p)
Fib_sequence32d1;
else
if(current_states_sum)//累加状态下
begin
Fib_sequence_delayFib_sequence;//缓存前一个数到Fib_sequence_delay
Fib_sequenceFib_sequenceFib_sequence_delay;//前两项之和
end
else if(current_states_end)begin//结束
Fib_sequence32d1;
Fib_sequence_delay32d1;
end设计文档
设计文档.doc
1. 数列 2. 工程文件 3. 程序文件 4. 程序编译 5. RTL图 状态机视图 6. Testbench 7. 仿真图
整体仿真图 数列第0个为1第1个为1第2个为2.。。。。第10个为89第20个为10946。。。
可以看到仿真图第10个为89第20个为10946正确。
状态机控制模块 数列产生模块 quarttusII自带仿真
整体仿真 数列第0个为1第1个为1第2个为2.。。。。第5个为8第20个为10946。。。
可以看到仿真图第5个为8第20个为10946正确。 状态控制模块 数列产生模块