码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • FPGA的斐波那契数列Fibonacci设计verilog,代码和视频


    名称:斐波那契数列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正确。

    状态控制模块

    数列产生模块

  • 相关阅读:
    模板进阶 | 非类型模板参数 | 类模板的特化 | 模板的分离编译 | 模板的优缺点
    Linux基础(四)
    MATLAB初步进行机器学习
    使用 Google Breakpad 来助力解决程序崩溃
    初探富文本之基于虚拟滚动的大型文档性能优化方案
    DoIP通信中的TLS加密
    swagger 依赖及应用
    小程序里面循环使用ref的话获取不到
    .。。。。。。。。。。
    SpringBoot + openFeign实现远程接口调用
  • 原文地址:https://blog.csdn.net/diaojiangxue/article/details/133979346
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号