FPGA的斐波那契数列Fibonacci设计verilog,代码和视频

news/2024/12/21 23:00:36/

名称:斐波那契数列Fibonacci设计verilog

软件:Quartus

语言:Verilog

代码功能:

设计一个产生斐波那契数列(也叫黄金分割数列)的硬件电路:

斐波那契数列中每个数为其相邻前两个数的和:即FN=FN1+FN2,(数列的前两个数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?m=home&c=View&a=index&aid=211

quartus仿真演示视频:



http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=211

FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode.com

代码下载:

斐波那契数列Fibonacci设计verilog(代码在文末付费下载)软件:Quartus语言:Verilog代码功能:设计一个产生斐波那契数列(也叫黄金分割数列)的硬件电路:斐波那契数列中每个数为其相邻前两个数的和:即FN=FN1+FN2,(数列的前两个数F和F均为1) (1)基本要求 根据不同输入N(>=3),产生FN最大为32位,在新的F产生出来前,N将维持不变;F应保持不变直到名称:斐波那契数列Fibonacci设计verilog(代码在文末付费下载)软件:Quartus语言:Verilog代码功能:设计一个产生斐波那契数列(也叫黄金分割数列)的硬件电路:斐波那契数列中每个数为其相邻前两个数的和:即FN=FN1+FN2,(数列的前两个数F和F均为1) (1)基本要求 根据不同输入N(>=3),产生FN最大为32位,在新的F产生出来前,N将维持不变;F应保持不变直到icon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=211

部分代码展示

//斐波那契数列
//斐波那契数列指的是这样一个数列: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_idle=3'd0;
parameter s_start=3'd1;
parameter s_sum=3'd2;
parameter s_end=3'd3;
//数列计算
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)//累加状态下
begin
Fib_sequence_delay<=Fib_sequence;//缓存前一个数到Fib_sequence_delay
Fib_sequence<=Fib_sequence+Fib_sequence_delay;//前两项之和
end
else if(current_state==s_end)begin//结束
Fib_sequence<=32'd1;
Fib_sequence_delay<=32'd1;
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正确。

状态控制模块

数列产生模块


http://www.ppmy.cn/news/1170259.html

相关文章

【LeetCode力扣】86. 分隔链表

目录 1、题目介绍 2、解题思路 2.1、双链表双指针 2.2、代码描述 1、题目介绍 原题链接&#xff1a;86. 分隔链表 - 力扣&#xff08;LeetCode&#xff09; 示例 1&#xff1a; 输入&#xff1a;head [1,4,3,2,5,2], x 3 输出&#xff1a;[1,2,2,4,3,5] 示例 2&#xff…

将用友U8的数据可视化需要哪些工具?

将金蝶U8的数据可视化需要一个奥威BI数据可视化工具&#xff0c;以及一套专为用友U8打造的标准化BI数据分析方案。 奥威BI SaaS平台&#xff1a;一键链接用友U8&#xff0c;立得报表 别的BI软件围绕用友U8的数据做可视化&#xff1a;1、准备配置环境&#xff1b;2、下载安装配…

2023年陕西省安全员B证证考试题库及陕西省安全员B证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年陕西省安全员B证证考试题库及陕西省安全员B证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大…

MSQL系列(六) Mysql实战-SQL语句优化

Mysql实战-SQL语句优化 前面我们讲解了索引的存储结构&#xff0c;BTree的索引结构&#xff0c;以及索引最左侧匹配原则&#xff0c;Explain的用法&#xff0c;可以看到是否使用了索引&#xff0c;今天我们讲解一下SQL语句的优化及如何优化 文章目录 Mysql实战-SQL语句优化1.…

spring.profiles生效顺序

服务在不同环境启动&#xff0c;需要的运行参数可能会有差异&#xff0c;不同启动环境也可能公用同一份运行参&#xff0c;为了方便对这些不同环境相同和差异参数进行管理&#xff0c;springboot提供了文件配置化形式对这些参数进行管理&#xff0c;对于不同环境的差异化参数使…

从手动操作到自动化管理,如何实现企业身份业务全面自动化?

在数字化时代&#xff0c;身份管理已经成为了企业和组织不可或缺的一部分&#xff0c;企业对于管理员工、客户和合作伙伴的身份信息和访问权限的需求变得愈发复杂。身份管理不仅仅是一项必要的任务&#xff0c;更是确保业务流畅运营和数据安全的关键因素。然而&#xff0c;传统…

JUC并发编程笔记2

省流&#xff1a; 自己笔记&#xff0c;划走~~~~ 缓存更新策略

磁盘清理 | 已经卸载的软件还出现在应用和功能里怎么办?

一句话总结解决方法&#xff1a; 安装Geek Uninstaller,删除卸载残留。 问题描述&#xff1a; 最近磁盘满了&#xff0c;需要删除一些平时不常用的软件&#xff0c;但是发现一个问题。就是已经删除的软件&#xff0c;仍然会出现在“应用与功能”中。并且显示卸载图标为灰色&am…