EDA技術(shù)及應(yīng)用課件:3_3 (1)_第1頁
EDA技術(shù)及應(yīng)用課件:3_3 (1)_第2頁
EDA技術(shù)及應(yīng)用課件:3_3 (1)_第3頁
EDA技術(shù)及應(yīng)用課件:3_3 (1)_第4頁
EDA技術(shù)及應(yīng)用課件:3_3 (1)_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1FPGA 設(shè)計(jì)的幾個(gè)概念 建立時(shí)間和保持時(shí)間建立時(shí)間和保持時(shí)間 競爭和冒險(xiǎn)競爭和冒險(xiǎn) 時(shí)鐘信號時(shí)鐘信號 2建立時(shí)間和保持時(shí)間建立時(shí)間和保持時(shí)間建立時(shí)間(setup time)是指在觸發(fā)器的時(shí)鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時(shí)間 保持時(shí)間(hold time)是指在觸發(fā)器的時(shí)鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時(shí)間 3 如果建立時(shí)間不夠,數(shù)據(jù)將不能在這個(gè)時(shí)鐘上升沿被打入觸發(fā)器 。 如果保持時(shí)間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。 數(shù)據(jù)穩(wěn)定傳輸必須滿足建立和保持時(shí)間的要求,當(dāng)然在一些情況下,建立時(shí)間和保持時(shí)間的值可以為零。 PLD/FPGA開發(fā)軟件可以自動(dòng)計(jì)算兩個(gè)相關(guān)輸入的建立和保持時(shí)間。 4競

2、爭和冒險(xiǎn)競爭和冒險(xiǎn) 幾乎所有數(shù)字電路,都會遇到競爭和冒險(xiǎn)問題 信號在FPGA器件內(nèi)部通過連線和邏輯單元時(shí)都有一定的延時(shí)。延時(shí)的大小與連線的長短和邏輯單元的數(shù)目有關(guān),同時(shí)還受器件的制造工藝、工作電壓、溫度等條件的影響,信號的高低電平轉(zhuǎn)換也需要一定的過渡時(shí)間。由于存在這兩方面因素,多路信號的電平值發(fā)生變化時(shí),在信號變化的瞬間,組合邏輯的輸出有先后順序,并不是同時(shí)變化,往往會出現(xiàn)一些不正確的尖峰信號,這些尖峰信號稱為“毛刺”。如果一個(gè)組合邏輯電路中有毛刺出現(xiàn),就說明該電路存在“冒險(xiǎn)”。 5PLD內(nèi)部毛刺產(chǎn)生的原因內(nèi)部毛刺產(chǎn)生的原因 使用分立元件設(shè)計(jì)數(shù)字系統(tǒng)時(shí),由于PCB走線時(shí),存在分布電感和電容,所

3、以幾納秒的毛刺將被自然濾除 PLD內(nèi)部決無分布電感和電容,所以在PLD/FPGA設(shè)計(jì)中,競爭和冒險(xiǎn)問題將變的較為突出 6存在邏輯冒險(xiǎn)的電路示例 7如何處理毛刺如何處理毛刺 可以通過改變設(shè)計(jì),破壞毛刺產(chǎn)生的條件,來減少毛刺的發(fā)生 。在數(shù)字電路設(shè)計(jì)中,常常采用格雷碼計(jì)數(shù)器取代普通的二進(jìn)制計(jì)數(shù)器,這是因?yàn)楦窭状a計(jì)數(shù)器的輸出每次只有一位跳變 毛刺并不是對所有的輸入都有危害,例如D觸發(fā)器的D輸入端 。根據(jù)這個(gè)特性,我們應(yīng)當(dāng)在系統(tǒng)中盡可能采用同步電路 8時(shí)鐘信號時(shí)鐘信號 無論是用離散邏輯、可編程邏輯,還是用全定制硅器件實(shí)現(xiàn)的任何數(shù)字設(shè)計(jì),為了成功地操作,可靠的時(shí)鐘是非常關(guān)鍵的 設(shè)計(jì)不良的時(shí)鐘將導(dǎo)致錯(cuò)誤的行

4、為,并且調(diào)試?yán)щy、花銷很大 時(shí)鐘可分為如下四種類型:全局時(shí)鐘、門控時(shí)鐘、多級邏輯時(shí)鐘和波動(dòng)式時(shí)鐘 9全局時(shí)鐘全局時(shí)鐘 對于一個(gè)設(shè)計(jì)項(xiàng)目來說,全局時(shí)鐘(或同步時(shí)鐘)是最簡單和最可預(yù)測的時(shí)鐘。 在PLD/FPGA設(shè)計(jì)中最好的時(shí)鐘方案是:由專用的全局時(shí)鐘輸入引腳驅(qū)動(dòng)的單個(gè)主時(shí)鐘去鐘控設(shè)計(jì)項(xiàng)目中的每一個(gè)觸發(fā)器。只要可能就應(yīng)盡量在設(shè)計(jì)項(xiàng)目中采用全局時(shí)鐘。 PLD/FPGA都具有專門的全局時(shí)鐘引腳,它直接連到器件中的每一個(gè)寄存器。這種全局時(shí)鐘提供器件中最短的時(shí)鐘到輸出的延時(shí)。 10全局時(shí)鐘的實(shí)例 11門控時(shí)鐘門控時(shí)鐘 在許多應(yīng)用中,整個(gè)設(shè)計(jì)項(xiàng)目都采用外部的全局時(shí)鐘是不可能或不實(shí)際的。 PLD具有乘積項(xiàng)邏輯

5、陣列時(shí)鐘(即時(shí)鐘是由邏輯產(chǎn)生的),允許任意函數(shù)單獨(dú)地鐘控各個(gè)觸發(fā)器 。 當(dāng)你用陣列時(shí)鐘時(shí),應(yīng)仔細(xì)地分析時(shí)鐘函數(shù),以避免毛刺 。 12用一個(gè)用一個(gè)“與與”門產(chǎn)生門控時(shí)鐘門產(chǎn)生門控時(shí)鐘133位同步加法計(jì)數(shù)器的RCO輸出用來鐘控觸發(fā)器 14改進(jìn)方法15多級邏輯時(shí)鐘多級邏輯時(shí)鐘 當(dāng)產(chǎn)生門控時(shí)鐘的組合邏輯超過一級(即超過單個(gè)的“與”門或“或”門)時(shí),設(shè)計(jì)項(xiàng)目的可靠性變得很困難。 通常,我們不應(yīng)該用多級組合邏輯去鐘控PLD設(shè)計(jì)中的觸發(fā)器。 16行波時(shí)鐘行波時(shí)鐘 一個(gè)觸發(fā)器的輸出用作另一個(gè)觸發(fā)器的時(shí)鐘輸入 如果仔細(xì)地設(shè)計(jì),行波時(shí)鐘可以象全局時(shí)鐘一樣地可靠工作。然而,行波時(shí)鐘使得與電路有關(guān)的定時(shí)計(jì)算變得很復(fù)雜

6、。行波時(shí)鐘在行波鏈上各觸發(fā)器的時(shí)鐘之間產(chǎn)生較大的時(shí)間偏移,并且會超出最壞情況下的建立時(shí)間、保持時(shí)間和電路中時(shí)鐘到輸出的延時(shí),使系統(tǒng)的實(shí)際速度下降。 17基本邏輯電路: 組合邏輯電路、 時(shí)序邏輯電路一 組合邏輯電路設(shè)計(jì) 簡單門電路、編碼器、譯碼器、 加法器、多路選擇器、三態(tài)門等。3.9 基本邏輯電路設(shè)計(jì)181、基本門電路192、編碼器 設(shè)計(jì)一個(gè) 8 輸入優(yōu)先級編碼器,y0 級別最低,y7 級別最高;輸出為3位編碼。Y7=1Vec=111Y6=1Vec=110Y5=1Vec=101Y4=1Vec=100Y3=1Vec=011Y2=1Vec=010Y1=1Vec=001Y0=1Vec=00020方法

7、方法1 1:利用 if 多選擇語句自頂向下的優(yōu)先特性21方法方法2 2:進(jìn)程內(nèi)為順序語句,最先描述優(yōu)先級最低, 最后描述優(yōu)先級最高,可實(shí)現(xiàn)優(yōu)先級編碼。22方法方法3 3:利用條件賦值語句:利用條件賦值語句 architecture behavior of priority is begin vec = “111” when y7 = 1 else “110” when y6 = 1 else “101” when y5 = 1 else “100” when y4 = 1 else “011” when y3 = 1 else “010” when y2 = 1 else “001” when

8、 y1 = 1 else “000” when y0 = 1 else “XXX”; end behavior;233、譯碼器 譯碼器是編碼器的逆過程。如 3-8 譯碼器:sel=000Y=00000001sel =001Y=00000010sel =010Y=00000100sel =011Y=00001000sel =100Y=00010000sel =101Y=00100000sel =110Y=01000000sel =111Y=1000000024方法方法1 1:使用邏輯左移運(yùn)算符:使用邏輯左移運(yùn)算符 library ieee; use ieee.std_logic_1164.all

9、; use ieee.std_logic_unsigned.all; entity decoder is port(inp : in std_logic_vector(2 downto 0); outp : out std_logic_vector(7 downto 0); end decoder; architecture rtl of decoder is begin outp=“00000001” sll(conv_integer(inp); end rtl;25方法方法2 2:使用:使用processprocess語句語句 library ieee; use ieee.std_logi

10、c_1164.all; use ieee.std_logic_unsigned.all; entity decoder is port(inp : in std_logic_vector(2 downto 0); outp : out std_logic_vector(7 downto 0); end decoder; architecture rtl of decoder is begin process(inp) begin outp0); outp(conv_integer(inp)=1; end process; end rtl;26方法方法3 3:使用:使用 case case 語句

11、實(shí)現(xiàn)。語句實(shí)現(xiàn)。27譯碼輸出低有效28方法方法4 4:使用條件賦值語句:使用條件賦值語句293-8譯碼器仿真結(jié)果:譯碼輸出低有效304、加法器 帶進(jìn)位的 4位加法器符號如下:Sum(i) = a(i) b(i) cinC(i+1) = a(i) b(i) +(a(i) + b(i) ) c(i) 31方法1:用for loop語句實(shí)現(xiàn) 32方法2:直接使用加法“+”函數(shù):33加法器仿真結(jié)果:345、多路選擇器 前面用 if 語句、case 語句、條件賦值語句、選擇賦值語句分別描述過4選1選擇器。6、三態(tài)門及總線緩沖器 VHDL語言通過指定大寫的Z值表示高阻狀態(tài) a : std_logic; a

12、_bus:std_logic_vector(7 downto 0); 指定高阻狀態(tài)如下: a = Z ; a_bus = “ZZZZZZZZ” ;351)三態(tài)門電路描述36三態(tài)門仿真結(jié)果:372)單向總線緩沖器383)雙向總線緩沖器39二 時(shí)序邏輯電路設(shè)計(jì) 觸發(fā)器、寄存器、計(jì)數(shù)器、分頻器、信號發(fā)生器等。一)時(shí)序電路特殊信號的描述 時(shí)鐘信號和復(fù)位信號 1、時(shí)鐘信號描述 常用的描述方式: 1)進(jìn)程的敏感信號是時(shí)鐘信號,在進(jìn)程內(nèi) 部用if 語句描述時(shí)鐘的邊沿條件。40如: process (clock_signal) begin if (clock_edge_condition) then sign

13、al_out = signal_in ; 其它時(shí)序語句 end if ; end process ; 412)在進(jìn)程中用wait until語句描述時(shí)鐘信號,此 時(shí)進(jìn)程將沒有敏感信號。 如: process begin wait until (clock_edge_condition); signal_out = signal_in ; 其它時(shí)序語句 end process ; 42 注意: a.在對時(shí)鐘邊沿說明時(shí),一定要注明是上升沿 還是下降沿。 b.一個(gè)進(jìn)程中只能描述一個(gè)時(shí)鐘信號。 c.wait until 語句只能放在進(jìn)程的最前面或 最后面。3)時(shí)鐘邊沿的描述 時(shí)鐘上升沿: (clock

14、event and clock = 1clockevent and clock = 1) 時(shí)鐘下降沿: (clockevent and clock = 0clockevent and clock = 0) 432、觸發(fā)器的復(fù)位信號描述 1)同步復(fù)位:在只有以時(shí)鐘為敏感信號的進(jìn)程 中定義。 如: process (clock_signal) begin if (clock_edge_condition) then if (reset_condition) then signal_out = reset_value; else signal_out = signal_in ; end if ; e

15、nd if ; end process ; 44 2)異步復(fù)位:進(jìn)程的敏感信號表中除時(shí)鐘信 號外,還有復(fù)位信號。 如:process (reset_signal, clock_signal) begin if (reset_condition) then signal_out = reset_value; elsif (clock_edge_condition) then signal_out = signal_in ; end if ; end process ; 45二) 常用時(shí)序電路設(shè)計(jì) 1、觸發(fā)器(Flip_Flop) 1)D觸發(fā)器46異步置位/復(fù)位D觸發(fā)器47同步復(fù)位D觸發(fā)器48比較

16、:異步置位的鎖存器(Latch)49 library ieee; use ieee.std_logic_1164.all; entity t_ff is port(t, clk : in std_logic; q : buffer std_logic); end t_ff; architecture rtl of t_ff is begin process(clk) begin if clkevent and clk=1 then if t=1 then q=not q; else q=q; end if; end process; end rtl;TClkQQ2)T觸發(fā)器50 library

17、 ieee; use ieee.std_logic_1164.all; entity rs_ff is port(r, s, clk : in std_logic; q, qn : buffer std_logic); end rs_ff; architecture rtl of rs_ff is begin process(r, s, clk) begin if clkevent and clk=1 then if s = 1 and r = 0 then q=0; qn=1; elsif s=0 and r=1 then q=1; qn=0; elsif s=0 and r=0 then

18、q=q; qn=q n; else null; end if; end if; end process; end rtl;SClkQQRSRQQn00QQn01101001113)RS觸發(fā)器512、寄存器 8位串行輸入、串行輸出移位寄存器:z0z1z2z3z4z5z6z7z8528位移位寄存器描述(結(jié)構(gòu)描述)538位移位寄存器直接用信號連接描述54移位寄存器仿真結(jié)果:553、計(jì)數(shù)器 計(jì)數(shù)器分為:同步計(jì)數(shù)器 異步計(jì)數(shù)器(1)同步計(jì)數(shù)器 同步計(jì)數(shù)器指在時(shí)鐘脈沖(計(jì)數(shù)脈沖)的控 制下,構(gòu)成計(jì)數(shù)器的各觸發(fā)器狀態(tài)同時(shí)發(fā)生變化 的計(jì)數(shù)器。56帶允許端的十二進(jìn)制計(jì)數(shù)器57可逆計(jì)數(shù)器(加減計(jì)數(shù)器)58可逆計(jì)數(shù)器仿真結(jié)果:59例:六十進(jìn)制(分、秒)計(jì)數(shù)器606160進(jìn)制計(jì)數(shù)器仿真結(jié)果:62(2)異步計(jì)數(shù)器 異步計(jì)數(shù)器又稱為行波計(jì)數(shù)器,它的低位計(jì)數(shù)器的輸出作為高位計(jì)數(shù)器的時(shí)鐘信號。 異步計(jì)數(shù)器采用行波計(jì)數(shù),使計(jì)數(shù)延遲增加,計(jì)數(shù)器工作頻率較低。 描述異步計(jì)數(shù)器與同步計(jì)數(shù)器的不同主要體現(xiàn)在對各級時(shí)鐘脈沖的描述上。63例:由8個(gè)觸發(fā)器構(gòu)成的行波計(jì)數(shù)器:64 基本元件 dffr 的描述:65采用元件例化描述8位行波計(jì)數(shù)器:668 位行波計(jì)數(shù)器仿真結(jié)果:674、序列信號發(fā)生器、檢測器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論