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

news2024/11/27 18:51:52

名称:斐波那契数列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.coloradmin.cn/o/1122089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Node学习笔记之包管理工具

一、概念介绍 1.1 包是什么 『包』英文单词是package &#xff0c;代表了一组特定功能的源码集合 1.2 包管理工具 管理『包』的应用软件&#xff0c;可以对「包」进行 下载安装 &#xff0c; 更新 &#xff0c; 删除 &#xff0c; 上传 等操作 借助包管理工具&#xff0c;可…

windows系统如何查看Linux文件系统中的图片缩略图

背景 使用autoDL云算力资源&#xff0c;没有GUI界面&#xff0c;实验结果都是图片为主&#xff0c;为了可视化查看图片&#xff0c;所以萌生了是否有软件可以查看Linux文件系统中的图片缩略图。 目前网上有几种方法可以支持在windows系统上查看Linux文件系统中的图片缩略图&a…

逻辑漏洞详解

原理&#xff1a; 没有固定的概念&#xff0c;一般都是不符合常识的情况。比如任意用户注册&#xff0c;短信炸弹&#xff0c;占用资源&#xff0c;交易支付、密码修改、密码找回、越权修改、越权查询、突破限制。 根据实际业务逻辑进行比对&#xff0c;购物的可以根据数量&a…

【Spring Boot 源码学习】HttpEncodingAutoConfiguration 详解

Spring Boot 源码学习系列 HttpEncodingAutoConfiguration 详解 引言往期内容主要内容1. CharacterEncodingFilter2. HttpEncodingAutoConfiguration2.1 加载自动配置组件2.2 过滤自动配置组件2.2.1 涉及注解2.2.2 characterEncodingFilter 方法2.2.3 localeCharsetMappingsCus…

商品规格项数据的遍历以及添加

简介 今天在处理规格项的数据时遇到了一些问题&#xff0c;接下来就给大家分享一下 规格项数据设计 "specifications": [{"goodsSpecificationId": 6,"goodsSpecificationName": "网络类型","goodsTypeId": 24,"goods…

【Acwing166】数独(dfs+剪枝+位运算)

本题思路来源于acwing算法提高课 题目描述 看本文需要准备的知识 1.dfs算法基本思想 2.位运算基础 3.对剪枝这个名词的大概了解 剪枝优化位运算优化 常见四种剪枝策略 首先考虑这道题的搜索顺序&#xff0c;很明显&#xff0c;可以随意选择一个空格子&#xff0c;分支为这…

《广西开放大学电大搜题微信公众号——探索学习的新途径》

随着社会的发展&#xff0c;教育无疑成为了人们的基本需求之一。然而&#xff0c;对于许多忙碌的职场人士来说&#xff0c;时间和地点的限制使得他们无法像传统学生那样参加常规的大学教育。好在有着广西开放大学这样的学府&#xff0c;为那些繁忙而渴望知识更新的人们提供了学…

好消息,终于可以获取到支付宝【支付交易投诉】的信息了。。。

大家好&#xff0c;我是小悟 若我拿出这个系统&#xff0c;阁下又该如何应对。 1、问题背景 之前以为从账单详情页中点击【投诉】 > 【举报中心】的投诉信息获取不到&#xff0c;经过不断尝试&#xff0c;终于能获取到了。 【支付宝支付交易投诉】&#xff0c;投诉入口是…

​​​​​​​2022年上半年 软件设计师 上午试卷(1-32)

以下关于冯诺依曼计算机的叙述中&#xff0c;不正确的是 &#xff08;1&#xff09; 。 &#xff08;1&#xff09; A. 程序指令和数据都采用二进制表示 B. 程序指令总是存储在主存中&#xff0c;而数据则存储在高速缓存中 C. 程序的功能都由中央处理器&#xff08;CPU&…

深入解析docker内核网桥

今天做虚拟桌面&#xff0c;朋友问我&#xff0c;为什么vnc 连接另一个docker 容器一直超时&#xff0c;原因是在docker 启动的时候没有组网&#xff0c;那么接下来我就要解析下docker的内核网络。 我们思考几个问题&#xff0c;带你了解linux 中docker 网络实现的基本原理。 文…

家庭燃气表微信抄表识别系统

1.背景需求 目前家里燃气度数的读数上报&#xff0c;每个月在社区微信群里面将手机拍摄的燃气表读数截图&#xff08;加住址信息水印&#xff09;&#xff0c;发到群里给抄表员。 2.总体设计 设计目标 功能一&#xff1a;手机上随时可以远程采集读数图片&#xff08;自动加住…

Jenkins环境部署与任务构建

一、CI/CD 1、CI/CD 概念&#xff1a; CI/CD 是一种软件开发和交付方法&#xff0c;旨在加速应用程序的开发、测试和部署过程&#xff0c;以提高软件交付的质量和效率。 (1) 持续集成 (CI Continuous Integration): 持续集成是开发团队频繁集成其代码更改的过程。开发者将其…

2023Jenkins连接k8s

首先配置k8s config文件 1.方式获取k8s密钥 cat .kube/config 2.导出方式或者密钥 kubectl config view --raw > k8s-config-admin pipeline {agent {kubernetes {yaml apiVersion: v1kind: Podmetadata:labels:some-label: devopsspec:containers:- name: dockerimage: d…

SpringBoot 第一个接口编写

RestController //表示该类为请求处理类public class HttpDeal {RequestMapping("/login")//这个方法处理哪一个地址过来的请求public String hello(){return "返回给浏览器";}}

【网络协议】聊聊网关 NAT机制

再宿舍的时候&#xff0c;其实只能通过局域网进行处理&#xff0c;但是如果接入互联网&#xff0c;一般是配置路由器当然还有网关。 MAC头和IP头的细节 一旦配置了IP地址和网关&#xff0c;就可以制定目标地址进行访问。 MAC头主要信息目标和源MAC地址&#xff0c;以及协议类…

二、BurpSuite Intruder暴力破解

一、介绍 解释&#xff1a; Burp Suite Intruder是一款功能强大的网络安全测试工具&#xff0c;它用于执行暴力破解攻击。它是Burp Suite套件的一部分&#xff0c;具有高度可定制的功能&#xff0c;能够自动化和批量化执行各种攻击&#xff0c;如密码破解、参数枚举和身份验证…

031-第三代软件开发-屏幕保护

第三代软件开发-屏幕保护 文章目录 第三代软件开发-屏幕保护项目介绍屏幕保护 关键字&#xff1a; Qt、 Qml、 MediaPlayer、 VideoOutput、 function 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language&#…

SIEMENS S7-1200 汽车转弯灯程序 编程与分析

公告 项目地址:https://github.com/MartinxMax/SIEMENS-1200-car_turn_signal 分析 题目: 画IO分配表 输入输出m3.0左转弯开关q0.0左闪灯m3.1右转弯开关q0.1右闪灯m3.2停止开关 博图V16配置 设置PLC的IP地址 允许远程通信访问 将HMI设备拖入 注意,我们这边选择的是HMI连接…

Leetcode——二维数组及滚动数组练习

118. 杨辉三角 class Solution { public:vector<vector<int>> generate(int numRows) {// 定义二维数组vector<vector<int>> num(numRows);for(int i0;i<numRows;i){//这里是给内层vector定义大小。默认是0,这里n是个数&#xff0c;不是值num[i].re…

【Java基础面试四十二】、 static修饰的类能不能被继承?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a; static修饰的类能不能被…