版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三講加法器設計定點加法器設計進位鏈結構串行進位并行進位浮點加法器設計規(guī)格化浮點數運算的基本原理浮點加法器設計實現(xiàn)3.1定點加法器設計算術邏輯部件的核心單元是加法器。加法器是影響算術邏輯部件整體性能的關鍵部分。定點多位加法器是指能夠實現(xiàn)多位二進制數相加運算的電路。A:1101B:1011111被加數加數低位進位00011和S進位C
0+3.1定點加法器設計---不考慮低位進位的一位加法器一位半加器半加器被加數A加數B和S進位C---考慮低位進位的一位加法器一位全加器:被加數加數和進位全加器低位進位3.1.1進位鏈結構
按形成進位的方式可以將多位加法器分為兩類:串行進位加法器串行進位方式是將多個全加器的進位輸出依次級聯(lián)。并行進位加法器并行進位加法器設有專門的并行進位產生邏輯,運算速度較快。3.1.1進位鏈結構串行進位加法器每步操作只實現(xiàn)一位求和。采用一位加法器設計n位全加器,則需將n位二進制求和運算分解為n步操作實現(xiàn),每位的進位作為下一步求和操作的進位輸入。串行加法器所用元件很少,但速度太慢。3.1.1進位鏈結構并行進位加法器使用n個全加器一步實現(xiàn)n位相加,即n位數據同時求和。計算機的運算器基本上都采用并行加法器,所用全加器的個數與操作位數相同。并行加法器的運算速度不僅與全加器的速度有關,更取決于進位傳遞的速度。3.1.1進位鏈結構從本質上來講,進位的產生是從低位開始,逐級向高位傳遞的。假定Cin為低位進位信號,則本位(第i位)產生的進位信號Cout為:3.1.1進位鏈結構Cout=Gi+PiCin是構成各種進位鏈結構的基本邏輯式。Gi=AiBi稱為第i位的進位產生函數,或稱為本位進位或絕對進位。若本位的兩輸入量均為1,必產生進位。這是不受進位傳遞影響的分量。
3.1.1進位鏈結構Pi稱為進位傳遞函數,而PiCin則稱為傳送進位或條件進位。Pi的邏輯含義是:若本位的兩個輸入至少一個為1時,則當低位有進位傳來時,本位將產生進位。3.1.2串行進位串行進位方式是指:逐級地形成各位進位,每一級進位直接依賴于上一級進位。設n位并行進位加法器的序號是第一位為最低位,第n位為最高位,則各進位信號的邏輯式如下:C1=G1+P1C0=A1B1+(A1B1)C0C2=G2+P2C2=A2B2+(A2B2)C1...Cn=Gn+PnCn=AnBn+(AnBn)Cn-13.1.2串行進位兩個多位數相加時,只要將低位全加器的進位輸出端接到高位全加器的進位輸入端,就可以構成串行進位加法器。任一位的加法運算必須在低一位的加法運算完成之后才能進行。在各級全加器之間,進位信號采用串聯(lián)結構,所用元件最少,邏輯電路比較簡單,但運算時間比較長。3.1.2串行進位
串行進位加法器3.1.2串行進位可以通過使用1位全加器的串聯(lián)行成多位串行進位加法器。要實現(xiàn)8位串行進位加法器,只需要首先1位全加器模塊,然后在頂層模塊中對該1位全加器實例化,通過串聯(lián)的方式產生8位全加器的各位輸出。3.1.2串行進位首先實現(xiàn)一個加法器模塊3.1.2串行進位 實現(xiàn)8位全加器時,只要在頂層模塊進行相應位的映射即可實現(xiàn)。3.1.3并行進位并行加法器又稱為超前進位加法器。每位的進位只有加數和被加數決定,而與低位的進位無關,即在加法運算過程中各級進位信號同時送到各個全加器的進位輸入端。3.1.3并行進位根據進位產生函數Gi=AiBi及進位傳遞函數,可得到如下邏輯式:C1=G1+P1C0C2=G2+P2G1+P2P1P0C3=G3+P3G2+P3P2G1+P3P2P1C0...Cn=Gn+PnGn-1+…+(Pn…P1)C03.1.3并行進位在并行進位結構中,各進位結構是獨自形成的,并不直接依賴于前級。當加法器運算的有關輸入(AiBiC0)穩(wěn)定后,各級同時產生自己的Gi和Pi,也同時形成自己的進位信號Ci。3.1.3并行進位4位并行進位加法器的設計采用數據流方式進行描述。其中,P表示進位傳遞信號,如果P為0,就否決前一級的進位輸入,G表示絕對進位信號,如果g為1,表示一定會向后一級產生進位輸出。pp信號和gg信號用于多個超前進位模塊之間的連接,例如利用4個4位超前進位加法器模塊構成16位超前進位加法器。3.1.3并行進位3.2浮點加法器浮點數比定點數的表示范圍寬,有效精度高,更適合于科學與工程計算的需要。浮點數由階碼E和尾數M組成,其數值為:(-1)Ms×M×BE3.2.1規(guī)格化浮點數加減運算
基本原理浮點數X=Mx·2Ex±
Y=My·2Ey(1)對階(2)尾數進行加(減)運算(3)規(guī)格化(4)舍入處理對階的原則:小階對大階。當調整階碼時,尾數應同步地移位,以保證浮點數的值不變。如果階碼以2為低,則每當階碼增1時,尾數應右移一位。
3.2.1規(guī)格化浮點數加減運算
基本原理規(guī)格化1)左規(guī)運算結果為11.1XXX或00.0XXX,尾數左移1位,階碼減1。2)右規(guī)運算結果為10.XXX或01.XXX,尾數右移1位,階碼加1。最多右移1次。3.2.1規(guī)格化浮點數加減運算
基本原理3.2.2浮點加法器的設計數據格式數據共32位,S(1b)為符號位,表示浮點數的正負,Exponent(8b)為階碼,Mantissa(23b)為尾數。階碼采用移碼表示
[E]階=E+128
尾數采用2的補碼表示形式
[M]補=2+M,S(1b)Exponent(8b)Mantissa(23b)
符號位在最前面(S),最后的23位均為數值部分。本節(jié)設計的浮點加法器尾數采用補碼表示,可以簡化設計,而不必判斷兩數的絕對值大小關系。3.2.2浮點加法器的設計輸入輸出端口定義3.2.2浮點加法器的設計浮點加法器的工作流程3.2.2浮點加法器的設計
浮點加法器的工作流程可以用狀態(tài)描述。設計7個狀態(tài)(讀者也可自行根據流程圖定義狀態(tài)機,狀態(tài)數可以多余或少于7個),分別表示運算過程的各個步驟,各狀態(tài)的含義如表所示。3.2.2浮點加法器的設計狀態(tài)編碼 執(zhí)行的操作S0:4’0000 初始化S1:4’0001 檢測操作數是否是零S2:4’0010 比較階碼并計算階碼的差值S3:4’0011 階碼小的尾數右移并修改階碼S4:4’0100 尾數求和S5:4’0101 判斷結果是否溢出以及是否需要 規(guī)格化S6:4’0110對結果進行規(guī)格化3.2.2浮點加法器的設計浮點加法器的狀態(tài)轉換圖3.2.2浮點加法器的設計第四講乘除法器設計常用的機器編碼格式定點乘法器的原理及實現(xiàn)原碼一位乘法設計補碼一位乘法設計陣列乘法器設計定點除法器原理及實現(xiàn)原碼除法器設計補碼除法器設計陣列除法器設計4.1常用機器數的編碼格式
原碼表示法反碼表示法補碼表示法4.1常用機器數的編碼格式4.1.1原碼表示法原碼表示法是一種最簡單的機器數表示法,其最高位為符號位,符號位為0時表示該數為正,符號位為1時表示該數為負,數值部分與真值相同。原碼形式為XS.X1X2…Xn,其中XS表示符號位。純小數原碼的定義為:
[X]原=純整數原碼的定義為:
[X]原=
X0≤X<11-X=1+∣X∣-1<X≤0
X,0≤X<2n2n-X=2n+∣X∣,-2n<X≤04.1常用機器數的編碼格式原碼的優(yōu)點是直觀易懂,機器數和真值間的轉換很容易,用原碼實現(xiàn)乘、除運算的規(guī)則簡單。缺點是加、減運算規(guī)則較復雜。4.1常用機器數的編碼格式4.1.2反碼表示法反碼是對一個數的各位求反。正數的反碼和原碼的形式相同;負數的反碼是符號位為1,數值部分等于其各位的絕對值求反。4.1常用機器數的編碼格式4.1.3補碼表示法補碼的符號位表示方法與原碼相同(即正數為0,負數為1),其數值部分的表示與數的正負有關:正數:數值部分與真值形式相同;負數:將真值的數值部分按位取反,且在最低位加1。4.1常用機器數的編碼格式補碼形式為XS.X1X2…Xn,其中XS表示符號位。純小數補碼的定義為:
[X]補=純整數補碼的定義為:
[X]補=
在補碼表示中,真值0的表示形式是唯一的:
X,0≤X<12+X=2-∣X∣,-1<X≤0X,0≤X<2n2n+1+X=2n+1-∣X∣,-2n<X≤0[+0]補=[-0]補=000004.2定點乘法器的原理及實現(xiàn)乘法運算是計算機中一種重要的基本運算,實現(xiàn)方法包括以下幾種。(1)用軟件實現(xiàn)乘法運算。(2)在加法器基礎上增加一些硬件實現(xiàn)乘法運算。(3)設置專用硬件乘法器實現(xiàn)乘法運算。使用該方法會使計算機結構復雜,成本增加,但能使運算速度大大提高。4.2定點乘法器的原理及實現(xiàn)乘法運算是計算機中一種重要的基本運算,實現(xiàn)方法包括以下幾種。(1)用軟件實現(xiàn)乘法運算。(2)在加法器基礎上增加一些硬件實現(xiàn)乘法運算。(3)設置專用硬件乘法器實現(xiàn)乘法運算。使用該方法會使計算機結構復雜,成本增加,但能使運算速度大大提高。4.2定點乘法器的原理及實現(xiàn)原碼一位乘法設計原碼二位乘法設計補碼一位乘法設計陣列乘法器設計設計方法模塊功能與原理分析模塊結構與電路模型VHDL語言設計實現(xiàn)FPGA驗證4.2.1原碼一位乘法原理及實現(xiàn)原碼一位乘法的法則是:①乘積的符號為被乘數的符號位與乘數的符號位相異或;②乘積的絕對值為被乘數的絕對值與乘數的絕對值之積。即
[X]原×[Y]原=(X0⊕Y0)(|X|×|Y|)
4.2.1原碼一位乘法原理及實現(xiàn)手工乘法運算例:若[X]原=0.1101,[Y]原=1.1011,求兩者之積。解:乘積的符號為0⊕1=1手算過程如下:
1101
×1011110111010000
1101.100011114.2.1原碼一位乘法原理及實現(xiàn)A,B,C,D都是寄存器二選一選擇器一位全加器移位寄存器計數器4.2.1原碼一位乘法原理及實現(xiàn)原碼一位乘法器框圖原碼一位乘法器功能模塊(1)控制器設計控制器功能:控制移位寄存器和16位寄存器。端口定義:PORT(CLK,START:INSTD_LOGIC;CLKOUT,RSTALL,DONE:OUTSTD_LOGIC);(1)控制器設計輸入端口CLK:乘法時鐘信號START:乘法器啟動信號。信號的上跳沿及其高電平有兩個功能,即16位寄存器清零和被乘數A[7..0]向移位寄存器加載;低電平則作為乘法使能信號。輸出端口CLKOUT:時鐘控制端RSTALL:清零端口DONE:乘法完成標志位(1)控制器設計計數器端口輸出控制信號(2)16位鎖存器設計16位鎖存器功能:存儲部分積及部分積移位端口定義
PORT(CLK:INSTD_LOGIC;CLR:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(8DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(15DOWNTO0));(2)16位鎖存器設計移位及鎖存功能(3)移位寄存器移位寄存器功能是右移一位操作。端口定義
PORT( CLK:INSTD_LOGIC; LOAD:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);QB:OUTSTD_LOGIC);(3)移位寄存器設計移位功能(4)1位乘法器設計1位乘法器功能:當前數據位與另外一個操作數進行與運算。1位乘法運算(5)加法器設計8位并行加法器設計(6)仿真結果4.2.2原碼二位乘法器設計原碼二位乘法
Yi+1YiC操作
000001010011100101110111
+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0
-|X|,右移2次,C=1
-|X|,右移2次,C=1+0,右移2次,C=1原碼二位乘法的法則表4.2.2原碼二位乘法器設計例:設X=+0.100111,
Y=-0.100111,利用原碼求積。
4.2.2原碼二位乘法器設計
Yi+1YiC操作
000001010011100101110111
+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0
-|X|,右移2次,C=1
-|X|,右移2次,C=1+0,右移2次,C=1Yi+1=Yi=C4.2.2原碼二位乘法器設計
Yi+1YiC操作
000001010011100101110111
+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0
-|X|,右移2次,C=1
-|X|,右移2次,C=1+0,右移2次,C=1Yi+1=0&&Yi⊕C=14.2.2原碼二位乘法器設計
Yi+1YiC操作
000001010011100101110111
+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0
-|X|,右移2次,C=1
-|X|,右移2次,C=1+0,右移2次,C=1Yi+1⊕Yi=1&&Yi=C4.2.2原碼二位乘法器設計
Yi+1YiC操作
000001010011100101110111
+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0
-|X|,右移2次,C=1
-|X|,右移2次,C=1+0,右移2次,C=1Yi+1=1&&Yi⊕C=14.2.2原碼二位乘法器設計4.2.3補碼一位乘法運算布斯(Booth)法
假定被乘數X和乘數Y均為用補碼表示的純小數,其中X0、Y0是它們的符號位:[X]補=X0.X-1X-2…X-(n-1)
[Y]補=Y0.Y-1Y-2…Y-(n-1)布斯法補碼一位乘法的算法公式為:[X·Y]補=[X]補[(Y-1-Y0)20+(Y-2-Y-1)2-1+(Y-3-Y-2)2-2+……+(Y-(n-1)-Y-(n-2))2-(n-2)+(0-Y-(n-1))2-(n-1)]4.2.3布斯補碼一位乘法運算
YiYi-1
Yi-1-Yi操作
00
0+0,右移一次
01
1+[X]補,右移一次
10-1+[-X]補,右移一次
11
0+0,右移一次乘數的相鄰兩位的操作規(guī)律
4.2.3布斯補碼一位乘法運算例:已知X=0.1010,Y=-0.1101。利用布斯法補碼一位乘法求積。解:首先將兩數用補碼表示:[X]補=00.1010,[Y]補=11.0011,而[-X]補=11.0110。4.2.3布斯補碼一位乘法運算4.2.3布斯補碼一位乘法運算A,B,C,D都是寄存器四選一選擇器加法器移位寄存器計數器符號位參與運算4.2.3布斯補碼一位乘法運算4.2.4陣列乘法器設計設X=X3X2X1X0,Y=Y3Y2Y1Y0,計算X·Y=?
(1)基本乘加單元二輸入與門一位全加器(2)定點無符號數陣列乘法器Y0Y0Y2Y3Y1Y2Y1Y3X3X2X1X00000Z6Z7Z5Z4Z2Z3Z0Z1(2)定點無符號數陣列乘法器TOP_ROWMID_ROWLOW_ROW(3)TOP_ROW功能實現(xiàn)(4)MID_ROW功能實現(xiàn)(5)LOW_ROW功能實現(xiàn)(6)陣列乘法器結構描述實現(xiàn)4.3定點數除法運算定點數除法分為原碼除法和補碼除法兩類。除法實現(xiàn)方法①雙操作數加法器將除法分為若干次“加減與移位”的循環(huán),由時序控制部分實現(xiàn);②采用迭代除法,將除法轉換為乘法處理,可以利用快速乘法器實現(xiàn)除法器;③陣列除法器,一次求得商與余數,實現(xiàn)快速除法的基本途徑。4.3.1原碼除法運算原碼除法的法則應包括:①除數≠0;定點純小數時,|被除數|<|除數|;定點純整數時,|被除數|>|除數|。②與原碼乘法類似的是原碼除法商的符號和商的值也是分別處理的,商的符號等于被除數的符號與除數的符號相異或。③商的值等于被除數的絕對值除以除數的絕對值。④將商的符號與商的值拼接在一起就得到原碼除法的商。4.3.2定點除法器的原理及實現(xiàn)恢復余數法:先減后判,如果減后發(fā)現(xiàn)不夠減,則上商0,并加上除數,即恢復到減操作之前的余數(第一步的余數即被除數)。其缺點是即增加了一些不必要的操作,又使操作步數隨著不夠減情況發(fā)生的次數而變。4.3.2定點除法器的原理及實現(xiàn)不恢復余數除法(加減交替除法)先減后判,如果發(fā)現(xiàn)不夠減,則上商0,并將下一步的減除數操作改為加除數操作。這樣可使操作步數固定,只與所需商的位數有關,而與是否夠減無關,因此能減少運算時間。4.3.3原碼加減交替除法器原碼加減交替除法器的運算法則:1.除法運算前,應滿足條件:X*<Y*,且Y*≠0,否則,按溢出或非法除數處理;2.符號位不參與運算,單獨處理:qf=xfyf;3.部分余數采用單符號位或雙符號位;4.每步部分余數運算規(guī)則:
①若余數R≥0,則商上1,左移一次,減除數;②若余數R<0,則商上0,左移一次,加除數。4.3.3原碼加減交替除法器例:若X=-0.10001011,Y=0.1110試利用原碼加減交替除法器求商及余數。解:寫出[X]原=1.10001011,[Y]原=0.1110。商符=1⊕0=1;4.3.3原碼加減交替除法器左移4.3.4補碼除法運算①符號判斷。被除數和除數同號,被除數減除數;若異號則加除數。②余數與除數同號,上商為1,余數左移1位,下次用余數減除數操作求商。若異號,上商為0,余數左移1位,下次用余數加除數操作求商。③重復②直至除盡或達到精度要求。④商修正。在除不盡時,最低位恒置1修正。4.3.4補碼除法運算YNNY4.3.4補碼除法運算例:若X=-0.10001011,Y=0.1110試利用補碼除法求商及余數。解:寫出[X]補=1.01110101,[Y]補=0.1110。[-Y]補=1.0010
〔商〕補﹦1.01101;余數為:〔余數〕補﹦1.0011×2-44.3.4補碼除法運算補碼除法器框圖
4.3.4補碼除法設計端口定義port( oper_a,oper_b: instd_logic_vector(7downto0);--被除數,除數,最高位為符號位
done:outstd_logic;--完成除法操作標志
clk,rst:instd_logic;--時鐘信號/復位信號 Q,R: outstd_logic_vector(7downto0)--商Q最高位為符號位,余數R );4.3.4補碼除法設計復位賦初值判斷余數與除數符號是否相同運算結束4.3.5陣列除法器00y1
x1y2
x2y3
x3
r3r4r5r6x4x5x6q110q2q3CASCASCASCAS異或門全加器PxiCiyiCi+1可控加減法器CASSi4.3.5陣列除法器(1)可控加/減法單元(CAS—ControllableAdderSubtracter)
當P=0時,做加法;當P=1時,做減法,變+Y*為+[-Y*]補。異或門全加器PxiCiyiCi+1Si4.3.5陣列除法器(2)陣列除法算法流程
設被除數X=0.x1x2x3x4x5x6
除數
Y=0.y1y2y3
則
商
Q=0.q1q2q3
余數
R=0.00r3r4r5r64.3.6陣列除法過程第一步:試減,即P=1,實現(xiàn)X
+[-Y]補。因為X*<Y*,所以一定不夠減,則最高位進位Ci+1=0,可利用此進位輸出產生商和下一步的P。第二步:P=0,做X
+Y
。當最高位進位Ci+1
=1時,表示夠減,則q1=1,P=1;當最高位進位Ci+1
=0時,表示不夠減,則q1=0,P=0。第三步和第四步:P=0時,做X
+Y;P=1時,做X
+[-Y]補。上商和P值產生的規(guī)則與第二步相同。4.3.7陣列除法器設計根據原理說明采用VHDL進行功能設計。參考陣列乘法器設計方法進行設計。第五講存儲器設計5.1隨機存取存儲器(RAM)設計5.2只讀存儲器(ROM)設計5.3雙端口RAM設計5.4先進先出(FIFO)設計5.5CRC校驗電路設計存儲器分類雙端口存儲器先進先出(FIFO)存儲器鐵電存儲器半導體存儲器RAMROM其他存儲器雙極型金屬氧化物(MOS)靜態(tài):SRAM動態(tài):DRAM掩模工藝ROM可一次編程ROM:PROM可擦寫的PROMEPROM
E2PROME2PROMFlashSDRAMDDRSDRAMDDR2SDRAMDDR3SDRAM存儲器分類雙端口存儲器先進先出(FIFO)存儲器鐵電存儲器半導體存儲器RAMROM其他存儲器雙極型金屬氧化物(MOS)靜態(tài):SRAM動態(tài):DRAM掩模工藝ROM可一次編程ROM:PROM可擦寫的PROMEPROM
E2PROME2PROMFlash設計方法模塊功能與原理分析模塊結構與電路模型VHDL語言設計實現(xiàn)FPGA驗證5.1靜態(tài)隨機存儲器SRAM設計數據存儲功能地址控制功能寫入與讀出功能數據總線地址總線控制信號5.1.1RAM地址譯碼方式一維譯碼二維譯碼RAM芯片有n條地址線,表示2n個存儲單元。
104存儲容量8K×8bitA12~A0D0~D7CS1、CS2OEWE5.1.2SRAM6264芯片決定存儲單元的容量,一般1K~256M→地址總線數:10~28決定存儲單元的寬度(位數,bit)片選→地址譯碼輸出允許(讀)寫允許105(1)SRAM讀出時序加載地址信號加載片選信號OE低電平有效,WE為高電平106(2)SRAM寫入時序加載地址信號數據加載到總線,WE為低電平片選信號有效(3)SRAM的VHDL程序實現(xiàn)端口定義
PORT(address:INSTD_LOGIC_VECTOR(3DOWNTO0); cs,oe,we:INSTD_LOGIC; data:INOUTSTD_LOGIC_VECTOR(7DOWNTO0));(4)SRAM的VHDL程序實現(xiàn)寫入數據讀出數據總線三態(tài)5.1.3RAM容量擴展存儲器與CPU連接——位擴展法
5.1.4隨機讀寫存儲器RAM存儲器與CPU連接——字擴展法
5.2只讀存儲器ROM的設計只讀存儲器(ROM)的內容是初始設計電路時就寫入到內部的,通常用于存儲固件。ROM主要用于計算機基本輸入輸出系統(tǒng)(BIOS)的存儲和用作嵌入式系統(tǒng)中的程序存儲器。ROM只需設置數據輸出端口和地址輸入端口。
5.2.1只讀存儲器ROM的電路結構存儲矩陣地址譯碼器輸出緩沖器5.2.2簡單ROM的設計設計思想:采用二進制譯碼器的設計方式,將每個輸入組態(tài)對應的輸出與一組存儲數據對應起來。
5.2.3通用ROM的VHDL設計設計一個容量為256*8bit的ROM8位地址線Addr[7..0]8位數據輸出線Dout[7…0]使能信號線OE5.2.3通用ROM的VHDL設計VHDL數據對象--文件類型應用端口定義5.2.4通用ROM的VHDL設計結構體實現(xiàn)5.2.5通用ROM驗證5.3雙端口RAM雙端口RAM是在1個SRAM存儲器上具有兩套完全獨立的數據線、地址線和讀寫控制線,并允許兩個獨立的系統(tǒng)同時對其進行隨機性訪問的存儲器(共享式多端口存儲器)。雙口RAM最大的特點是存儲數據共享,并且必須具有訪問仲裁控制。5.3雙端口RAM通用集成電路組成的雙端口若兩個CPU在同一時間段訪問RAM發(fā)生競爭,則由仲裁電路迫使后訪問的CPU處于等待狀態(tài)。特點:成本低、簡單且存儲容量大。缺點:發(fā)生競爭,一個CPU必須等待,降低了訪問效率。5.3雙端口RAM專用雙端口RAM芯片,如IDT7132/7142、DS1609、CY7C08D53、CY7C024等。芯片有兩套完全獨立的數據線、地址線和讀寫控制線,可使兩個CPU分時獨立訪問其內部RAM資源。優(yōu)點是通訊速度快,實時性強,接口比較簡單,兩邊CPU都可主動進行數據傳輸。缺點是成本高,需要克服競爭現(xiàn)象。5.3雙端口RAM雙端口RAM內有一個總線搶占優(yōu)先級比較器5.3.1兩種方案應用場合在要求存儲量較大時,一般采用通用集成電路組成的雙端口RAM;在通信實時性要求較高的而通信數據量不大時,一般采用專用雙端口RAM芯片。
5.3.2雙端口RAM設計端口定義5.3.2雙端口RAM設計結構體設計RAM數據類型定義端口A對RAM操作端口B對RAM操作5.4先進先出(FIFO)設計要求:存入數據按順序排放,存儲器全滿時給出信號并拒絕繼續(xù)存入,全空時也給出信號并拒絕讀出;讀出時按先進先出原則;存儲數據一旦讀出就從存儲器中消失。
5.4先進先出(FIFO)設計先進先出(FirstInFirstOut,F(xiàn)IFO)與普通存儲器的區(qū)別是沒有外部讀寫地址線,其數據地址由內部讀寫指針自動加減1完成。FIFO通常利用雙口RAM和讀寫地址產生模塊來實現(xiàn)其功能。
5.4先進先出(FIFO)設計先進先出(FirstInFirstOut,F(xiàn)IFO)與普通存儲器的區(qū)別是沒有外部讀寫地址線,其數據地址由內部讀寫指針自動加減1完成。FIFO通常利用雙口RAM和讀寫地址產生模塊來實現(xiàn)其功能。
滿標志空標志
5.4.1FIFO類型同步控制的FIFO
FIFO的讀寫時鐘相同。異步控制的FIFO用于跨時鐘域的數據交換;FIFO的讀寫時鐘不同;讀寫時鐘之間不一定存在相位、周期方面的約束關系。同步FIFO設計5.4.2同步FIFO設計FIFO為空,不可從FIFO讀數據,但可寫;FIFO為滿,不可向FIFO寫數據,但可讀;非空非滿時,F(xiàn)IFO可讀、可寫。FIFO的讀寫受同一時鐘控制;FIFO的大小為N。5.4.2同步FIFO設計問題:如何判斷FIFO為空、滿?FIFO的讀寫操作的位置如何判定?5.4.2同步FIFO設計5.4.2同步FIFO設計當wr_ptr=rd_ptr時,F(xiàn)IFO數據為空;當wr_ptr-rd_ptr=M-l或rd_ptr-wr_ptr=l時,F(xiàn)IFO數據為滿;當wr_ptr>=rd_ptr時,wr_ptr-rd_ptr為FIFO內數據個數;當wr_ptr<=rd_ptr時,M-(rd_ptr-wr_ptr)為FIFO內數據個數。5.4.3同步FIFO的VHDL實現(xiàn)(1)雙端口RAM端口定義5.4.3同步FIFO的VHDL實現(xiàn)(1)雙端口RAM結構體實現(xiàn)5.4.3同步FIFO的VHDL實現(xiàn)(2)寫地址計數器5.4.3同步FIFO的VHDL實現(xiàn)5.4.3同步FIFO的VHDL實現(xiàn)(4)空滿狀態(tài)產生器端口定義5.4.3同步FIFO的VHDL實現(xiàn)(4)空滿狀態(tài)產生器結構體實現(xiàn)5.4.4異步FIFO設計讀寫時鐘信號不相同通過地址編碼方式解決讀寫地址變化不同步而引起的空滿標志錯誤的問題。5.4.6存儲器設計總結存儲單元數據結構整數數組TYPEmemoryISARRAY(INTEGERRANEG<>)OFINTEGER;位矢量SUBTYPEwordISSTD_LOGIC_VECTOR(k-1DOWNTO0);TYPEmemoryISARRAY(0TO2**w-1)OFword;5.4.6存儲器設計總結存儲單元初始化(外部文件讀取)自定義數據格式文件.COE文件
(1)自定義數據格式文件VHDL文本輸入輸出包集合(TEXTIO)VHDL語言對文件格式不作任何限制。TEXTIO按行進行處理,一行為一個字符串,以回車、換行符作為行結束符。(2).COE文件MEMORY_INITIALIZATION_RADIX=2;MEMORY_INITIALIZATION_VECTOR=
01110100,
00100000,
11110101,
10000000,
01111000,
00100010,
00000001,
00010100,
數據格式,當前設定為2進制,還可以為8,10,16進制(3)XilinxFPGA內部IP核設計FPGA具有內嵌的BLOCKRAM(BRAM)來擴展其應用范圍和系統(tǒng)集成能力(SOC)。BRAM可用于配置為單端口RAM、雙端口RAM、內容地址存儲器(CAM)以及FIFO等常用存儲結構。BRAM內部每個單位即單片塊RAM大小為18Kbit(即位寬為18bit深度為1024,Spartan-3EFPGA)。(4)FPGA內部IP核設計(4)FPGA內部IP核設計5.5CRC校驗電路設計CRC原理分析CRC電路設計數據通信差錯檢測在數字通信系統(tǒng)中可靠與快速往往是矛盾的。如何合理地解決可靠與速度這一對矛盾呢?
可靠性快速性可靠性快速性數據檢測技術奇偶校驗和校驗循環(huán)冗余碼校驗CRC奇偶校驗只需要1位校驗碼,對消息位進行異或運算。和校驗把消息當成若干個8位(或16、32位)的整數序列,相加得到校驗碼。5.5.1CRC原理將待發(fā)送的位串看成系數為0或1的多項式;收發(fā)雙方約定一個生成多項式G(x)(其最高階和最低階系數必須為1)。發(fā)送方用位串及G(x)進行某種運算得到校驗和,并在幀的末尾加上校驗和,使帶校驗和的幀的多項式能被G(x)整除。接收方收到后,用G(x)除多項式,若有余數,則傳輸有錯。(1)CRC校驗和計算方法1.若生成多項式G(x)為r階(即r+1位位串),原幀為m位,其多項式為M(x),則
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 檔案借調委托書范文
- 冀少版八年級生物上冊第四單元第一節(jié)動物行為的特點課件
- 第一冊 英語聽說課教案
- 常見的天氣系統(tǒng)教學設計,教案,教學實踐
- 臨時停車場護理
- 私營企業(yè)勞資管理實施辦法
- 主題酒店保安招聘合同細則
- 志愿服務合作合同
- 外資企業(yè)圖書室管理辦法
- 水資源保護用地預審管理辦法
- 新入職護士培訓輪轉手冊填寫制度
- 佛山嶺南新天地商業(yè)調研分解
- GB/T 2910.1-2009紡織品定量化學分析第1部分:試驗通則
- GB/T 27021.3-2021合格評定管理體系審核認證機構要求第3部分:質量管理體系審核與認證能力要求
- 無線通信-移動通信基本概念
- 中小學銜接的思考
- 公司組織結構圖Word模板
- 云上智農APP推廣使用課件-參考
- 安全標志及其使用導則2008
- 北京實體書店扶持資金管理辦法試行
- 醫(yī)療質量管理與持續(xù)改進記錄表
評論
0/150
提交評論