❶ verilog實現斐波納契數列求值
斐波那契數列:1,1,2,3,5,8,13,21……
如果設F(n)為該數列的第n項(n∈N+)。那麼這句話可以寫成如下形式:
F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3)
顯然這是一個線性遞推數列。
通項公式的推導方法一:利用特徵方程
線性遞推數列的特徵方程為:
X^2=X+1
解得
X1=(1+√5)/2, X2=(1-√5)/2.
則F(n)=C1*X1^n + C2*X2^n
∵F(1)=F(2)=1
∴C1*X1 + C2*X2
C1*X1^2 + C2*X2^2
解得C1=1/√5,C2=-1/√5
∴F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根號5】
通項公式的推導方法二:普通方法
設常數r,s
使得F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
則橋嫌r+s=1, -rs=1
n≥敏悉手3時,有
F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
F(n-1)-r*F(n-2)=s*[F(n-2)-r*F(n-3)]
F(n-2)-r*F(n-3)=s*[F(n-3)-r*F(n-4)]
……
F(3)-r*F(2)=s*[F(2)-r*F(1)]
將以上n-2個式子相乘,得:
F(n)-r*F(n-1)=[s^(n-2)]*[F(2)-r*F(1)]
∵s=1-r,F(1)=F(2)=1
上式可化簡得:
F(n)=s^(n-1)+r*F(n-1)
那麼:
F(n)=s^(n-1)+r*F(n-1)
= s^(n-1) + r*s^(n-2) + r^2*F(n-2)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) + r^3*F(n-3)
……
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)*F(1)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)
(這是一個以s^(n-1)為首項、以r^(n-1)為末項、r/s為公差的等比數列的各項的和)
=[s^(n-1)-r^(n-1)*r/s]/(1-r/s)
=(s^n - r^n)/(s-r)
r+s=1, -rs=1的一解為 s=(1+√5)/2, r=(1-√5)/2
則F(n)=(1/√陸做5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
❷ 怎麼用simulink做代數方程運算
參加數學建模已經很多年了,算來其中所學多源於網路上各位前輩的無私奉獻。飲水當思源,承志以後繼。故而添加此分類,用於交流我這些年的心得。心得分為軟體和演算法兩類,軟體可能會包括matlab/simulink,maple,mathematica,spss(被收購成了pasw),ansys,ansoft/maxwell,comsol,pscad,tc,演算法可能有GA,NNs。當然,受到專業研究所限,很多時候無法得心應手,獻丑於此,只為提醒自己要做到更好。
恰巧,我在自己學校的bbs上申請了相關版面的版主職位,也希望自己能整理出些基礎教學,以備後生晚輩們入門。暫時的想法是,先說些simulink的相關褲消團知識,因為工科學生最常用的就是這個模擬環境,而其他軟體又恰好對他保留了介面,可以說這個軟體成為了演算法的中心。以後將陸續說些simulink不能完成的任務,並推薦能完成這些任務的工具。開始吧——
simulink可以視作matlab下的工具庫,matlab版本不斷更新,simulink也不斷更新,當前版本為matlab2011b。
首先要明確,simulink的作用為求解常微分方程(組)!且這是他唯一的作用!也就是說偏微分方程在simulink中是無法求解的,需要其他工具或軟體作為介面,或者你夠牛的,就直接寫個有限元的程序。當然,常微分方程是不夠的,為適應數字控制電路等離散系統,simulink可以求解離散的常微分方程,也就是差分方程,略微麻煩,不做重點介紹。
然後來看看simulink求解常微分方程(組)的方法,首先要把方程寫成如下形式:
y1'=f1(y1,y2,...yn,t)
y2'=f2(y1,y2...yn,t)
...
yn'=fn(y1,y2...yn,t)
至於如何寫成這種形式,就是降階了,線性代數里說的很多了,比如y1=y;y2=y1'=y';y3=y2'=y''...需要注意的是,等號右側不能有導數項,如果等號右邊出現了導數項,則說明這個方程需要積分一次。等號右側可以有積分項,但不推薦出現,可以將出現的積分項作為新的變數,添加一個方程。
有了方程後,就可以連接成如圖的形式:
其中的1/s表示積分環節,其輸入為等號的左側,輸出為等號左側的積分,subsystem表示等號右側的搭建,此處只畫出一個以示意。因此整個方程求解過程的主要工作在於subsystem的搭建,其中可能用到的運算符號在simulink的第一個庫中都能找到,常用的如:加減乘除,矩陣乘法、轉置、求逆,三角函數,分段函數,邏輯判斷。以後會介紹這些函數的具體用法。
最後一步就是設置模擬的誤差和演算法了,ctrl+e,或者菜單欄上可以找到sim下con par,其中的ode等等表示演算法,如ode45是龍哥庫塔四階(好像是吧,記不清)。還可以設置變步長和定步長,誤差容限等等,雖然數學上認為這些演算法的計算精度會差很多(一階和四階的胡橘橋緩差距就是步長的立方啊),但實際中,感覺並不大,小步長的歐拉演算法似乎也很可靠。
❸ T觸發器(電平觸發)和JK觸發器(電平觸發)如何用Verilog HDL實現,注意:是電平觸發不是邊沿觸發
將JK觸發器轉換成T觸發器 先看JK觸發器和攔皮T觸發器的狀態方程
JK觸發器的狀態方程:Q*=JQ'+K'Q
T觸發器的狀態方程:Q*=TQ'+T'Q
所以只要將JK兩個端連在一起用一根線接出去就練成T觸發器亮敗了
運用上敬衡顫 想不起來了
以上
❹ 求大神指點verilog中矩陣的運算應該如何寫,包括求逆,乘法等
input[63:0] A0, //A0表示A矩陣的第一行 其中A0[63:48] A0 [47:32] A0[31:16] A0 [15:0]分好灶別表示第一行中的四個元脊鬧素(每個元素16位表示),下同
input[63:0] A1,
input[63:0] A2,
input[63:0] A3,
input[63:0] B0,
input[63:0] B1,
input[63:0] B2,
input[63:0] B3,
output[63:0] C0,
output[63:0] C1,
output[63:0] C2,
output[63:0] C3,
//假設要求C = AB;
C0[63:48] = A0[63:48]*B0[63:48] + A0 [47:32]*B1[63:48] + A0[31:16]*B2[63:48] + A0 [15:0]*B3[63:48];//根據公式相應的求出 C0[47:32] C0[31:16] C0[15:0].........
//同理求 C1 C2 C3
//這個只是個人理解,僅供參考,有更好的方法我們共同交流學習。
如果要求矩陣的逆,首先你要判斷該矩陣是否為退化矩陣
一般用伴隨矩陣法和初等變換法
個人認為FPGA更適合用初等變換法求逆矩陣。
但是求逆矩陣會涉及到除法,FPGA定點運算,做除法會友野扮有精度丟失。
❺ 如何快速入門verilog與FPGA
1.觀念認識:從事FPGA開發,不是寫代碼,是電路設計,數字電路設計,只不過不像你在protel里畫原理圖,做layout,它需要你用語言把你的電路描述出來,然後根據根據你的描述生成相應的電路,這里描述的方式就體現你的技術水平了,請明白,verilog或者VHDL都是hardware description laugahge。
2.理論儲備:請把你的數字電路書拿出來,理解寄存器,狀態機,時序方程。
3.請熟讀xilinx或者altera的一款FPGA的手冊,了解他的介面,固件組成(PLL,BlockRAM,DCM,SERDES等),資源分布,建議用xilinx的FPGA Eidter軟體打開一個芯亂襲片的版圖,你就會發現FPGA本質就是一系列資源的堆疊,你要做的事情就是怎麼利用這么硬體資源做出你要的東西。
4.請理解組合邏輯和亂銷時序邏輯,針對2種邏輯信號延遲的組成,計算,也就是時序分許問題。
5.動手能力,寫代碼,多寫代碼,多調試,你遇到的問題多了,解決的多了,所有的問題都不是問題了。要善嘩陪游於總結。
6.對流行的介面,技術的原理要理解,比如SPI,I2C,USB,DDR1/2/3,PCIE,流行的高速介面LVDS,LVPECL,SSTL等。
7.FPGA工程師很多時候扮演這系統工程師的角色,請多從系統的角度思考問題。
8.良好的文檔習慣,這個非常重要!
❻ (數學)解方程。
相關概念
編輯播報
1.含有未知數的等式叫方程,也可以說是含有未知數的等式是方程。
2.使等式成立的未知數的值,稱為方程的解,或方程的根。
3.解方程就是求出方程中所有未知數的值的過程。
4.方程一定是等式,等式不一定是方程。不含未知數的等罩慎式不是方程。
5.驗證:一般解方程之後,需要進行驗證。驗證就是將解得的未知數的值代入原方程,看看方程兩邊是否相等。如果相等,那麼所求得的值就是方程的解。
6.注意事項:寫「解」字,等號對齊,檢驗。
7.方程依靠等式各部分的關系,和加野悶鎮減乘除各部分的關系(加數+加數=和,和-其中一個加數=另一個加數,差+減數=被減數,被減數-減數=差,被減數-差=減數,因數×因數=積,積÷一個因數=另一個因數,被除數÷除數=商,被除數÷商=除數,商×除數=被除數)[1]
⒈估演算法:剛學解方程時的入門方法。直接估計方程的解,然後代入原方程驗證。
⒉應用等式的性質進行解方程。
⒊合並同類項:使方程變形為單項式
⒋移項:將含未知數的項移到左邊,常數項移到右邊
⒌去括弧:運用去括弧法則,將方程中的括弧去掉。
6.公式法:有一些方程,已經研究出解的一般形式,成為固定的公式,可以直接利用公式。可解的多元高次的方程一般都有公式可循。
7.函數圖像法:利用方程的解為兩個以上關聯函數圖像的交點的幾何意義求解。
方程是正向思維。
步驟
⑴有分母先去分母
⑵有括弧就去括弧
⑶需要移項就進行移項
⑷合並同類項
⑸系數化為1求得未知數的值
⑹ 開頭要寫「解」
一元二次方程
就是關於平方的方程
解一元二次方程的基本思想方法是通過「降次」將它化為兩個一元一次方程。一元二次方程有四種解法:1、直接開平方法;2、配方法;3、公式法;4、分解因式法。
⒈直接開平方法:直接開平方法就是用直接開平方求解一元二次方程的方法。
用直接開平方法解形如(x-m)^2=n (n≥0)的 方程,其解為x=±√n+m .
例1.解方程⑴(x-2)^2 =9⑵9x^2-24x+16=11
分析:⑴此方程顯然用直接開平方法好做,⑵方程左邊是完全平方式(3x-4)^2,右邊=11>0,所以此方程也可用直接開平方法解。
⑴解:(x-2)^2=9 ∴x-2=±√9 ∴x-2=±3 ∴x1=3+2 x2=-3+2 ∴x1=5 x2= -1
⑵解:9x^2;-24x+16=11 ∴(3x-4)^2=11 ∴3x-4=±√11 ∴x=﹙ 4±√11﹚/3 ∴原方程的解為x1=﹙4﹢√11﹚/3,x2= ﹙4﹣√11﹚/3
2.頌粗配方法:用配方法解方程ax^2+bx+c=0 (a≠0)
先將常數c移到方程右邊:ax^2+bx=-c
將二次項系數化為1:x^2+(b/a)x = - c/a
方程兩邊分別加上一次項系數的一半的平方:x^2+b/ax+(b/2a)^2= - c/a+(b/2a)^2
方程左邊成為一個完全平方式:(x+b/2a)^2 = -c/a﹢﹙b/2a)^2;
當b^2-4ac≥0時,x+b/2a =±√﹙﹣c/a﹚﹢﹙b/2a﹚^2;
∴x=﹛﹣b±[√﹙b^2;﹣4ac﹚]﹜/2a(這就是求根公式)
例2.用配方法解方程 3x^2-4x-2=0
解:將常數項移到方程右邊 3x^2-4x=2
將二次項系數化為1:x^2-﹙4/3﹚x=2/3
方程兩邊都加上一次項系數一半的平方:x^2-﹙4/3﹚x+(4/6)^2=(2/3)+(4/6)^2
配方:(x-4/6)^2= (2/3)+(4/6)^2
直接開平方得:x-4/6=± √[(2/3)+(4/6)^2 ]
∴x= 4/6± √[(2/3)+(4/6)^2 ]
∴原方程的解為x?=4/6﹢√﹙10/9﹚,x?=4/6﹣√﹙10/9﹚ .
3.公式法:把一元二次方程化成一般形式,然後計算判別式△=b^2-4ac的值,當b^2-4ac≥0時,把各項系數a,b,c的值代入求根公式x=[-b±√(b^2-4ac)]/(2a),(b^2-4ac≥0)就可得到方程的根。
例3.用公式法解方程 2x^2-8x=-5
解:將方程化為一般形式:2x^2-8x+5=0 ∴a=2,b=-8,c=5 b^2-4ac=(-8)^2-4×2×5=64-40=24>0 ∴x=[(-b±√(b^2-4ac)]/(2a) ∴原方程的解為x?=,x?= .
4.因式分解法:把方程變形為一邊是零,把另一邊的二次三項式分解成兩個一次因式的積的形式,讓兩個一次因式分別等於零,得到兩個一元一次方程,解這兩個一元一次方程所得到的根,就是原方程的兩個根。這種解一元二次方程的方法叫做因式分解法。
例4.用因式分解法解下列方程:
⑴ (x+3)(x-6)=-8 ⑵ 2x^2+3x=0 ⑶ 6x^2+5x-50=0 (選學) ⑷x2-2(+)x+4=0 (選學)
⑴解:(x+3)(x-6)=-8 化簡整理得 x^2-3x-10=0 (方程左邊為二次三項式,右邊為零) (x-5)(x+2)=0 (方程左邊分解因式) ∴x-5=0或x+2=0 (轉化成兩個一元一次方程) ∴x^1=5,x^2=-2是原方程的解。
⑵解:2x^2+3x=0 x(2x+3)=0 (用提公因式法將方程左邊分解因式) ∴x=0或2x+3=0 (轉化成兩個一元一次方程) ∴x1=0,x2=-是原方程的解。注意:有些同學做這種題目時容易丟掉x=0這個解,應記住一元二次方程有兩個解。
⑶解:6x^2+5x-50=0 (2x-5)(3x+10)=0 (十字相乘分解因式時要特別注意符號不要出錯) ∴2x-5=0或3x+10=0 ∴x1=,x2=- 是原方程的解。
⑷解:x2-2(+)x+4 =0 (∵4 可分解為2 ·2 ,∴此題可用因式分解法) (x-2)(x-2)=0 ∴x1=2,x2=2是原方程的解。
小結:一般解一元二次方程,最常用的方法還是因式分解法,在應用因式分解法時,一般要先將方程寫成一般形式,同時應使二次項系數化為正數。
直接開平方法是最基本的方法。
公式法和配方法是最重要的方法。公式法適用於任何一元二次方程(有人稱之為萬能法),在使用公式法時,一定要把原方程化成一般形式,以便確定系數,而且在用公式前應先計算判別式的值,以便判斷方程是否有解。
配方法是推導公式的工具,掌握公式法後就可以直接用公式法解一元二次方程了,所以一般不用配方法解一元二次方程。
但是,配方法在學習其他數學知識時有廣泛的應用,是初中要求掌握的三種重要的數學方法之一,一定要掌握好。(三種重要的數學方法:元法,配方法,待定系數法)。
一元三次方程
就是關於立方的方程
一元三次方程的求根公式用通常的演繹思維是作不出來的,用類似解一元二次方程的求根公式的配方法只能將型如ax^3+bx^2+cx+d=0的標准型一元三次方程形式化為x^3+px+q=0的特殊型。
一元三次方程的求解公式的解法只能用歸納思維得到,即根據一元一次方程、一元二次方程及特殊的高次方程的求根公式的形式歸納出一元三次方程的求根公式的形式。歸納出來的形如 x^3+px+q=0的一元三次方程的求根公式的形式應該為x=A^(1/3)+B^(1/3)型,即為兩個開立方之和。歸納出了一元三次方程求根公式的形式,下一步的工作就是求出開立方裡面的內容,也就是用p和q表示A和B。方法如下:
⑴將x=A^(1/3)+B^(1/3)兩邊同時立方可以得到
⑵x^3=(A+B)+3(AB)^(1/3)(A^(1/3)+B^(1/3))
⑶由於x=A^(1/3)+B^(1/3),所以⑵可化為
x^3=(A+B)+3(AB)^(1/3)x,移項可得
⑷x^3-3(AB)^(1/3)x-(A+B)=0,和一元三次方程和特殊型x^3+px+q=0作比較,可知
⑸-3(AB)^(1/3)=p,-(A+B)=q,化簡得
⑹A+B=-q,AB=-(p/3)^3
⑺這樣其實就將一元三次方程的求根公式化為了一元二次方程的求根公式問題,因為A和B可以看作是一元二次方程的兩個根,而⑹則是關於形如ay^2+by+c=0的一元二次方程兩個根的韋達定理,即
⑻y1+y2=-(b/a),y1*y2=c/a
⑼對比⑹和⑻,可令A=y1,B=y2,q=b/a,-(p/3)^3=c/a
⑽由於型為ay^2+by+c=0的一元二次方程求根公式為
y1=-(b+(b^2-4ac)^(1/2))/(2a)
y2=-(b-(b^2-4ac)^(1/2))/(2a)
可化為
⑾y1=-(b/2a)-((b/2a)^2-(c/a))^(1/2)
y2=-(b/2a)+((b/2a)^2-(c/a))^(1/2)
將⑼中的A=y1,B=y2,q=b/a,-(p/3)^3=c/a代入⑾可得
⑿A=-(q/2)-((q/2)^2+(p/3)^3)^(1/2)
B=-(q/2)+((q/2)^2+(p/3)^3)^(1/2)
⒀將A,B代入x=A^(1/3)+B^(1/3)得
⒁x=(-(q/2)-((q/2)^2+(p/3)^3)^(1/2))^(1/3)+(-(q/2)+((q/2)^2+(p/3)^3)^(1/2))^(1/3)
式 ⒁只是一元三方程的一個實根解,按韋達定理一元三次方程應該有三個根,不過按韋達定理一元三次方程只要求出了其中一個根,另兩個根就容易求出了。
x^y就是x的y次方好復雜的說塔塔利亞發現的一元三次方程的解法一元三次方程的一般形式是
x3+sx2+tx+u=0
如果作一個橫坐標平移y=x+s/3,那麼我們就可以把方程的二次項消去。所以我們只要考慮形如 x3=px+q 的三次方程。
假設方程的解x可以寫成x=a-b的形式,這里a和b是待定的參數。
代入方程,我們就有
a3-3a2b+3ab2-b3=p(a-b)+q
整理得到
a3-b3 =(a-b)(p+3ab)+q
由二次方程理論可知,一定可以適當選取a和b,使得在x=a-b的同時,
3ab+p=0。這樣上式就成為
a3-b3=q
兩邊各乘以27a3,就得到
27a6-27a3b3=27qa3
由p=-3ab可知
27a6 + p3 = 27qa3
這是一個關於a3的二次方程,所以可以解得a。進而可解出b和根x。
一元四次方程
費拉里發現的一元四次方程的解法和三次方程中的做法一樣,可以用一個坐標平移來消去四次方程
一般形式中的三次項。所以只要考慮下面形式的一元四次方程:
x4=px2+qx+r
關鍵在於要利用參數把等式的兩邊配成完全平方形式。考慮一個參數
a,我們有
(x2+a)2 = (p+2a)x2+qx+r+a2
等式右邊是完全平方式當且僅當它的判別式為0,即
q2 = 4(p+2a)(r+a2)
這是一個關於a的三次方程,利用上面一元三次方程的解法,我們可以
解出參數a。這樣原方程兩邊都是完全平方式,開方後就是一個關於x
的一元二次方程,於是就可以解出原方程的根x。
最後,對於5次及以上的一元高次方程沒有通用的代數解法(即通過各項系數經過有限次四則運算和乘方和開方運算),這稱為阿貝耳定理。
應用范圍
編輯播報
⒈根據問題變未知數
⒉圍繞未知數,尋找問題中的等量關系
⒊利用等量關系列方程
⒋解方程,並作答
❼ 關於 Verilog的lpm_ram_dq方程大家誰了解
memory需要在Quartus裡面的春唯神tools裡面建立扒虧 不是用方程就可以建立的 方程是系山談統內部為你構造出來的
❽ 如何用verilog編寫常微分方程組
這個。。。樓賀型咐主你還是先把常微分方程組轉換成可實現的電路結構再說吧。首先常微分就是非數字化的一種方程,這種東西用數字租爛電路很難實現的,首先要禪純數字化之後再說。
❾ 請問verilog里大括弧{}在四則運算中的用法
大括弧是常見的標點符號,在枯睜數做歷學里表示某些運算要優先進行,如果一個算式里既有小括弧、中括弧,又有大括弧,我們得先算小括弧裡面的,再算中括弧裡面的,最後算大括弧裡面沒胡歲的。
希望我能幫助你解疑釋惑。
❿ 用Verilog HDL語言求解線性方程組
x1算出來是-1.5。。是個浮點數,verilog好像很難實現啊