国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

斐波那契數(shù)列verilog實(shí)現(xiàn)

這篇具有很好參考價值的文章主要介紹了斐波那契數(shù)列verilog實(shí)現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?前言:

????????該題為睿思芯科筆試題,筆試時長20分鐘。

題目描述

????????用代碼實(shí)現(xiàn)斐波那契數(shù)列,代碼需要對對enable敏感,當(dāng)enable為高幾周期,sum在enble為高的下一周期輸出第幾個斐波那契數(shù),斐波那契數(shù)列的生成是后一個數(shù)字是前兩個數(shù)字之和,如下序列:0、1、1、2、3、5、8、13、21、34...,當(dāng)enable為0時,輸出端口sum的值為0

? ? ? ? 另外,當(dāng)enable拉高第一周期時,在下一拍輸出0,拉高第n個周期,在下一拍輸出第n個斐波那契值。

tips:斐波那契數(shù)列F(0)=1,這里的F(0)=0是因?yàn)楣P試題就是這樣出的,筆者僅是復(fù)述題目并實(shí)現(xiàn),重點(diǎn)在于實(shí)現(xiàn)思路。


解題思路

? ? ? ? 解題的方法就是利用斐波那契數(shù)列的特性,用兩個寄存器存儲斐波那契數(shù)列的值,然后在下一周期通過非阻塞賦值更新reg1和reg2的值,并且把二者之和輸出給sum。

				reg_sum<= reg1+reg2;
				reg1 <= reg2;
				reg2 <= reg1+reg2;

? ? ? ? 還有一個要點(diǎn),題目要求?enable為0時,sum輸出0,所以由于enble和輸出的sum是錯了一拍的,為了讓他們對齊,需要對enble打一拍得到enable_dl。然后根據(jù)enable_dl是否為1,確定輸出應(yīng)該為斐波那契值還是0.


代碼

module fib_gen(
			input         clk, // positive edge trigger clock
			input         rstn,// active low reset 
			input         enable,
			output  [31:0]  sum
);
	reg [31:0] reg1,reg2,reg_sum;
	reg [31:0] counter;
	reg enable_dl;
	always @(posedge clk)begin
		if(!rstn)begin
			reg1 <= 32'd0;
			reg2 <= 32'd1;
			reg_sum <= 32'd0;
		end
		else if(enable )begin
			if(counter==32'd0)begin
				reg_sum <= 32'd0;
			end
			else if(counter == 32'd1)begin
				reg1 <= 32'd0;
				reg2 <= 32'd1;
				reg_sum <= 32'd1;
			end
			else begin
				reg_sum<= reg1+reg2;
				reg1 <= reg2;
				reg2 <= reg1+reg2;
			end
		end	
	end

	always @(posedge clk)begin
		if(!rstn)
				counter <= 32'd0;
		else if(enable)begin
				counter <= counter + 1'b1;
		end
	end
	always @(posedge clk)begin
		if(!rstn)
			enable_dl<= 1'd0;
		else
			enable_dl <= enable;
	end
	assign sum = enable_dl ? reg_sum:0;

	
endmodule

testbench

module tb();
reg clk, rstn,enable;
wire [31:0 ]sum;
initial begin
    forever #5 clk = ~clk;
end
initial begin
    rstn = 1'b0;
    clk = 1'b1;
    enable = #1 1'b0;
#10
    rstn = #1  1'b1;
#10
    enable = #1 1'b1;
#100
    $finish();
end

fibonacci u_fibonacci(
    .clk        (clk        ),
    .rstn       (rstn       ),
    .enable     (enable     ),
    .sum        (sum        )
);

initial begin
    $fsdbDumpfile("fibonacci.fsdb");
    $fsdbDumpvars(0);
end

endmodule

波形?

斐波那契數(shù)列verilog實(shí)現(xiàn),數(shù)字IC手撕代碼,fpga開發(fā),手撕代碼,IC設(shè)計(jì),數(shù)字IC文章來源地址http://www.zghlxwxcb.cn/news/detail-642198.html

到了這里,關(guān)于斐波那契數(shù)列verilog實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java【動態(tài)規(guī)劃】斐波那契數(shù)列模型, 圖文思路詳解 + 代碼實(shí)現(xiàn)

    Java【動態(tài)規(guī)劃】斐波那契數(shù)列模型, 圖文思路詳解 + 代碼實(shí)現(xiàn)

    本篇總結(jié)動態(tài)規(guī)劃中的 斐波那契數(shù)列模型 的解法和思路 按照以下流程進(jìn)行分析題目和代碼編寫 思路分析步驟 代碼編寫步驟 1, 狀態(tài)表示 1, 構(gòu)造 dp 表 2, 狀態(tài)轉(zhuǎn)移方程 2, 初始化+邊界處理 3, 初始化 3, 填表(抄狀態(tài)轉(zhuǎn)移方程) 4, 填表順序 4, 返回結(jié)果 5, 返回值 / OJ鏈接 題目分析

    2024年02月08日
    瀏覽(22)
  • 用Go plan9匯編實(shí)現(xiàn)斐波那契數(shù)列計(jì)算

    用Go plan9匯編實(shí)現(xiàn)斐波那契數(shù)列計(jì)算

    斐波那契數(shù)列是一個滿足遞推關(guān)系的數(shù)列,如: 1 1 2 3 5 8 ... 其前兩項(xiàng)為1,第3項(xiàng)開始,每一項(xiàng)都是其前兩項(xiàng)之和。 用Go實(shí)現(xiàn)一個簡單的斐波那契計(jì)算邏輯 我們將其改進(jìn)一下,用更簡單的方式描述,同時把變量的定義提到前邊,并將返回的邏輯拿到函數(shù)末尾。 繼續(xù)改進(jìn) 繼續(xù)改

    2024年01月20日
    瀏覽(19)
  • 遞歸以及斐波那契數(shù)列遞歸算法和迭代算法的實(shí)現(xiàn)與分析

    遞歸以及斐波那契數(shù)列遞歸算法和迭代算法的實(shí)現(xiàn)與分析

    程序調(diào)用自身的編程技巧稱為遞歸( recursion) 遞歸有兩個過程,簡單地說一個是 遞的過程 ,一個是 歸的過程 。 遞歸的兩個必要條件 1. 存在限制條件 ,當(dāng)滿足這個限制條件的時候,遞歸便不再繼續(xù)。 2.每次遞歸調(diào)用之后越來越 接近這個限制條件 . 遞歸本質(zhì)就是函數(shù)調(diào)用

    2024年02月12日
    瀏覽(17)
  • 基于C語言用遞歸思想實(shí)現(xiàn)斐波那契數(shù)列的函數(shù)設(shè)計(jì)

    用C語言并利用遞歸思想實(shí)現(xiàn)設(shè)計(jì)一個程序,完成斐波那契數(shù)列的函數(shù)設(shè)計(jì),利用遞歸實(shí)現(xiàn)!

    2024年04月08日
    瀏覽(19)
  • JAVA-斐波那契數(shù)列

    輸入一個整數(shù) n ,求斐波那契數(shù)列的第 n 項(xiàng)。 假定從 0 開始,第 0 項(xiàng)為 0 。 數(shù)據(jù)范圍 0≤n≤39 樣例

    2024年02月10日
    瀏覽(23)
  • 斐波那契數(shù)列應(yīng)用2

    目錄 斐波那契數(shù)列應(yīng)用2 程序設(shè)計(jì) 程序分析? 系列文章 【問題描述】定義如下序列:f(1)=1,f(2)=1;f(n)=(A*f(n-1)+B*f(n-2))mod7? ? ?給定A和B,請你計(jì)算f(n)的值。 【輸

    2023年04月10日
    瀏覽(26)
  • Python斐波那契數(shù)列

    斐波那契數(shù)列是一個經(jīng)典的數(shù)學(xué)問題,在 Python 中可以使用多種方法來實(shí)現(xiàn),下面是幾個常見的實(shí)現(xiàn)方式: 1. 使用遞歸 ```python def fibonacci_recursive(n): ? ? if n = 1: ? ? ? ? return n ? ? else: ? ? ? ? return fibonacci_recursive(n-1) + fibonacci_recursive(n-2) ``` 2. 使用循環(huán) ```python def fibonacci_i

    2024年02月02日
    瀏覽(23)
  • 矩陣快速冪&斐波那契數(shù)列

    矩陣快速冪&斐波那契數(shù)列

    矩陣快速冪: 快速地求出斐波那契數(shù)列中的每一項(xiàng) 可以快速地求出斐波那契數(shù)列的前n項(xiàng)的和 首先我們來看如何快速地求出斐波那契數(shù)列的第n項(xiàng) 設(shè) F n = [ f n , f n + 1 ] F_n = [f_n,f_{n+1}] F n ? = [ f n ? , f n + 1 ? ] ,構(gòu)造這一個行向量,那么對于此,我們思考 F n F_n F n ? 乘一個

    2024年02月06日
    瀏覽(18)
  • c 斐波那契數(shù)列輸出

    在C語言中,我們可以通過遞歸或循環(huán)的方法來實(shí)現(xiàn)斐波那契數(shù)列的輸出。首先,我們需要明白斐波那契數(shù)列的定義:任一項(xiàng)數(shù)字是前兩項(xiàng)的和(最開始兩項(xiàng)均定義為1)。下面是具體的實(shí)現(xiàn)方式。 使用遞歸方法: #include stdio.h int main() { ? ? int m = 0, n = 1, sum; ? ? printf(\\\"請輸入

    2024年02月06日
    瀏覽(22)
  • 【動態(tài)規(guī)劃】斐波那契數(shù)列模型

    【動態(tài)規(guī)劃】斐波那契數(shù)列模型

    凍龜算法系列之斐波那契數(shù)列模型 動態(tài)規(guī)劃(英語:Dynamic programming,簡稱 DP) ,是一種在數(shù)學(xué)、管理科學(xué)、計(jì)算機(jī)科學(xué)、經(jīng)濟(jì)學(xué)和生物信息學(xué)中使用的,通過把原問題分解為相對簡單的子問題的方式求解復(fù)雜問題的方法。動態(tài)規(guī)劃常常適用于有重疊子問題和最優(yōu)子結(jié)構(gòu)性質(zhì)

    2024年02月09日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包