2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  VLSI課程設(shè)計(jì)</b></p><p>  同步FIFO設(shè)計(jì)與實(shí)現(xiàn)</p><p>  班 級(jí): </p><p>  學(xué) 號(hào): </p><p>  姓 名: </p><

2、p>  指導(dǎo)教師: </p><p>  VLSI課程設(shè)計(jì)報(bào)告——同步FIFO設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  FIFO概述</b></p><p>  FIFO是英文First In First Out的縮寫,意為先入先出存儲(chǔ)器,由于微電子技術(shù)的飛速發(fā)展,新一代FIFO芯片容量越來(lái)越大,體積越來(lái)越小,

3、價(jià)格越來(lái)越便宜。作為一種新型大規(guī)模集成電路,F(xiàn)IFO芯片以其靈活、方便、高效的特性,逐漸在高速數(shù)據(jù)采集、高速數(shù)據(jù)處理、高速數(shù)據(jù)傳輸以及多機(jī)處理系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。</p><p>  它與普通隨機(jī)存儲(chǔ)器的區(qū)別是沒(méi)有外部讀寫地址線,這樣使用起來(lái)非常方便但缺點(diǎn)就是只能順序讀寫數(shù)據(jù),其讀寫數(shù)據(jù)地址依靠?jī)?nèi)部的讀指針和寫指針完成。讀操作與寫操作可以異步進(jìn)行,寫入?yún)^(qū)上寫入的數(shù)據(jù)按照寫入的順序從讀取端的區(qū)中讀出,類似于

4、吸收寫入端與讀出端速度差的一種緩沖器。計(jì)算機(jī)的串口,一般也都具有FIFO緩沖器(不是單一的FIFO存儲(chǔ)器,而是嵌入在設(shè)備內(nèi)部)。</p><p><b>  同步FIFO</b></p><p>  同步FIFO(Synchronous FIFO,下稱SFIFO)的意思是說(shuō)FIFO的讀寫時(shí)鐘是同一個(gè)時(shí)鐘,因此時(shí)鐘頻率是相同的,只是在相位上可能有差別,不同于異步FIFO

5、,異步FIFO的讀寫時(shí)鐘是完全異步的。SFIFO的對(duì)外接口包括時(shí)鐘,清零,讀請(qǐng)求,寫請(qǐng)求,數(shù)據(jù)輸入總線,數(shù)據(jù)輸出總線,空以及滿信號(hào)。查閱資料找到一款成型SFIFO產(chǎn)品的接口描述,如圖1:</p><p>  圖1 一款同步FIFO的接口資料</p><p>  為了更好的理解FIFO的工作方式,我們?cè)O(shè)定SFIFO的深度為8。SFIFO的難點(diǎn)主要是狀態(tài)判斷,如圖2是對(duì)空狀態(tài)和滿狀態(tài)來(lái)進(jìn)行判斷

6、的方式。</p><p>  圖2 FIFO空滿狀態(tài)判斷</p><p>  可以看出,當(dāng)讀指針和寫指針的值一樣的時(shí)候,F(xiàn)IFO的狀態(tài)為空。比較麻煩的是對(duì)FIFO是否已經(jīng)滿的狀態(tài)的判斷,因?yàn)榇嬖趦煞N情況,第一種情況時(shí)寫指針比讀指針大,比如寫指針 = 7而讀指針 = 0,還有一種情況時(shí)寫指針比讀指針小,比如寫指針 = 2而讀指針 = 3。由于讀寫電路在循環(huán)的讀寫RAM,所以在上面的兩種情況下

7、FIFO實(shí)際上都已經(jīng)滿了。</p><p>  第一種情況下,寫指針 – 讀指針 = 7,實(shí)際上就是FIFO深度減一;</p><p>  第二種情況下,(寫指針 + 8) – 讀指針 = 7,也是FIFO深度減一。</p><p>  如此,就可以比較容易的判斷出FIFO的狀態(tài)了。</p><p>  存儲(chǔ)器結(jié)構(gòu)及行為級(jí)描述</p&g

8、t;<p>  知道了SFIFO的接口和狀態(tài)控制邏輯,結(jié)構(gòu)框圖就很顯而易見(jiàn)了。如圖3,本設(shè)計(jì)SFIFO由主RAM陣列,寫控制邏輯,寫指針控制器,狀態(tài)判斷邏輯,讀指針控制器,讀控制邏輯,輸入寄存器,輸出寄存器,復(fù)位及時(shí)鐘邏輯構(gòu)成。</p><p>  圖3 FIFO結(jié)構(gòu)框圖</p><p>  結(jié)構(gòu)框圖為所有的邏輯部件,在行為級(jí)描述中,clk模塊只有簡(jiǎn)單的上升沿判斷,復(fù)位電路、

9、輸入輸出寄存器也非常易于實(shí)現(xiàn),其VHDL代碼見(jiàn)附錄。</p><p><b>  單元電路門級(jí)描述</b></p><p>  根據(jù)上述結(jié)構(gòu)框圖,分別繪制出RAM單元,寫控制邏輯,寫指針控制器,狀態(tài)判斷邏輯,讀指針控制器,讀控制邏輯,輸入寄存器和輸出寄存器。</p><p>  在隨機(jī)存儲(chǔ)器中,存儲(chǔ)單元大多為六管單元,如圖4所示。這種存儲(chǔ)單元的

10、讀寫控制信號(hào)都是通過(guò)同一根字線B傳遞的,數(shù)據(jù)都是由Q和Q讀入或讀出,因此這樣的存儲(chǔ)單元不能同時(shí)進(jìn)行讀和寫的操作。為了使FIFO存儲(chǔ)器能夠進(jìn)行同步讀/寫操作,我們使用八管存儲(chǔ)單元,如圖5所示。讀控制和寫控制分別用兩根字線來(lái)控制,即Rcontrol和Wcontrol,這時(shí)數(shù)據(jù)的讀入通過(guò)inB和inB,而數(shù)據(jù)的讀出通過(guò)outB和outB。與六管單元相比,八管單元增加了兩個(gè)門控管、兩根位線和一根字線。由于FIFO存儲(chǔ)器不用地址線,而是用兩個(gè)地址

11、指針?lè)謩e存放讀地址和寫地址,并且分別有讀地址譯碼器和寫地址譯碼器與之對(duì)應(yīng),這樣存儲(chǔ)器的讀操作和寫操作就可同時(shí)進(jìn)行,實(shí)現(xiàn)讀和寫的同步操作。顯然,這種存儲(chǔ)器也能實(shí)現(xiàn)異步操作。</p><p>  圖4 普通RAM的六管單元 圖5 改進(jìn)的8管單元</p><p>  讀寫控制邏輯比較簡(jiǎn)單,通過(guò)狀態(tài)判斷邏輯發(fā)送出的Full和Empty信號(hào),同時(shí)關(guān)斷讀

12、/寫計(jì)數(shù)器和輸入/輸出鎖存,避免數(shù)據(jù)異常。</p><p>  一種最簡(jiǎn)單的方式,是直接將Full與WR接到一個(gè)與門上,將Empty與RD接到一個(gè)與門上。這樣存儲(chǔ)器在滿狀態(tài)和空狀態(tài)下,WR和RD將分別被屏蔽,讀/寫信號(hào)不再起作用。如圖6,圖7。</p><p><b>  圖6 寫控制邏輯</b></p><p><b>  圖7 讀

13、控制邏輯</b></p><p>  輸入/輸出寄存器的結(jié)構(gòu)非常簡(jiǎn)單,如圖8所示。</p><p>  圖8 輸入/輸出寄存器</p><p>  FIFO是以先進(jìn)先出的方式進(jìn)行數(shù)據(jù)存儲(chǔ),所以它沒(méi)有地址線。對(duì)于8×8的FIFO,是采用兩個(gè)3位的計(jì)數(shù)器作為讀指針和寫指針,分別存放著讀地址代碼和寫地址代碼。讀地址譯碼電路和寫地址譯碼電路分別將讀指針

14、和寫指針中的地址代碼譯成相應(yīng)的控制信號(hào),利用這個(gè)控制信號(hào)從存儲(chǔ)矩陣中把指定的單元選出,并把其中的數(shù)據(jù)送到輸出緩沖器中去。當(dāng)寫信號(hào)W為一個(gè)負(fù)脈沖時(shí),將觸發(fā)移位計(jì)數(shù)器使寫指針加1,同時(shí)一組數(shù)據(jù)(一個(gè)字節(jié))便從數(shù)據(jù)線上被輸入到寫指針?biāo)鶎?duì)應(yīng)的存儲(chǔ)單元中。同樣地,在讀信號(hào)R為一個(gè)負(fù)脈沖時(shí),讀指針加1,一組數(shù)據(jù)(一個(gè)字節(jié))便從讀指針?biāo)鶎?duì)應(yīng)的存儲(chǔ)單元中輸出。</p><p>  讀/寫指針控制器部分晶體管級(jí)電路基本相同,都采用

15、計(jì)數(shù)器+地址譯碼電路+循環(huán)移位器的方式實(shí)現(xiàn),因?yàn)镕IFO的指針不可能無(wú)限移動(dòng),所以需要地址碼循環(huán)移位來(lái)保證兩個(gè)指針都處于有效地址。</p><p>  由于完整控制器電路過(guò)于復(fù)雜,不給出完整電路,圖9為當(dāng)中比較重要的地址碼循環(huán)移位器。</p><p>  圖9 用于讀/寫指針控制器的地址碼循環(huán)移位器</p><p>  狀態(tài)判斷邏輯也是非常重要的一個(gè)邏輯,由圖三可知

16、一個(gè)FIFO狀態(tài)判斷邏輯如果失效基本等于是廢了。在這里狀態(tài)判斷邏輯使用如圖10的電路,F(xiàn)IFO使用比較判斷電路防止在滿狀態(tài)和空狀態(tài)狀況下繼續(xù)進(jìn)行讀/寫操作,它是關(guān)于讀指針和寫指針的一個(gè)比較器。比較判斷電路定義了Full(滿信號(hào))、Empty(空信號(hào))。當(dāng)寫指針(代碼)比讀指針(代碼)小1時(shí),比較器的Full輸出端為低電平,表示此時(shí)存儲(chǔ)器為寫滿狀態(tài);當(dāng)讀指針(代碼)等于寫指針(代碼)時(shí),比較器的Empty輸出端為低電平,表示此時(shí)存儲(chǔ)器為空

17、狀態(tài)。讀指針和寫指針在其余狀態(tài)時(shí),F(xiàn)ull和Empty都為高電平。</p><p>  三個(gè)全加器級(jí)聯(lián)和三個(gè)非門形成A-B+1的運(yùn)算器,根據(jù)圖2的推算可得當(dāng)A-B=7或A-B+8=7時(shí),8×8FIFO寫滿,不考慮最高位進(jìn)位信號(hào)時(shí)正好為A-B+1=0的運(yùn)算規(guī)則,按照這個(gè)規(guī)則設(shè)計(jì)組合邏輯電路要比完全采用D觸發(fā)器建立的時(shí)序電路簡(jiǎn)潔很多,總共有11級(jí)反相器延遲,在現(xiàn)在的VLSI技術(shù)中是不大于一個(gè)周期的,也就是說(shuō)

18、,采用如下電路形式的狀態(tài)控制電路,在不增加延遲的基礎(chǔ)上,節(jié)省了芯片空間。</p><p>  圖10 狀態(tài)判斷邏輯</p><p><b>  結(jié)語(yǔ)</b></p><p>  FIFO存儲(chǔ)器在眾多數(shù)據(jù)處理領(lǐng)域得到了廣泛的應(yīng)用,提高FIFO芯片傳遞數(shù)據(jù)的速度是設(shè)計(jì)FIFO芯片過(guò)程中的重點(diǎn)。本設(shè)計(jì)詳細(xì)列舉了一個(gè)FIFO存儲(chǔ)器的設(shè)計(jì)步驟和設(shè)計(jì)過(guò)程及

19、其中需要注意的問(wèn)題。本文介紹的FIFO存儲(chǔ)器雖然只是8×8的規(guī)模設(shè)計(jì)方法,但其原理可以應(yīng)用到其它更大容量的同類存儲(chǔ)器的設(shè)計(jì)當(dāng)中去。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]·李東升·高速低功耗先入先出存儲(chǔ)器電路設(shè)計(jì)與版圖實(shí)現(xiàn)·TP333-2008</p><p>  [2]

20、·佚名·FIFO存儲(chǔ)器的設(shè)計(jì)·TN432-2008</p><p>  [3]·姚建楠 等·基于SRAM高速靈敏放大器分析與設(shè)計(jì)[J]·電子器件·2005,28(3).</p><p>  [4]·楊軍 等·基于FPGA的高速異步FIFO存儲(chǔ)器設(shè)計(jì)·云南大學(xué)學(xué)報(bào)(自然科學(xué)版)·20

21、07,29(6)</p><p><b>  附錄:VHDL代碼</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity fifo is</p><p>  port( clock

22、 : in std_logic;</p><p>  reset : in std_logic;</p><p>  wr_req : in std_logic;</p><p>  rd_req : in std_logic;</p><p>  data_in : in std_logic_vector(7 downto

23、0);</p><p>  full : buffer std_logic;</p><p>  empty : buffer std_logic;</p><p>  data_out : out std_logic_vector(7 downto 0));</p><p>  end entity;</p>&

24、lt;p>  architecture behav of entity is</p><p>  type type_2d_array is array(0 to 7) of std_logic_vector(7 downto 0);</p><p>  signal fifo_memory : type_2d_array;</p><p>  signal

25、wr_address : integer range 0 to 7;</p><p>  signal rd_address : integer range 0 to 7;</p><p>  signal offset : integer range 0 to 7;</p><p>  signal rd_signal : std_logic;&

26、lt;/p><p>  signal wr_signal : std_logic;</p><p>  signal data_buffer : std_logic_vector(7 downto 0);</p><p>  signal temp : std_logic_vector(4 downto 1);</p><p>

27、<b>  begin</b></p><p>  process(clock)</p><p><b>  begin</b></p><p>  if rising_edge(clock) then</p><p>  temp(1) <= wr_req;</p><p

28、>  temp(2) <= temp(1);</p><p>  temp(3) <= rd_req;</p><p>  temp(4) <= temp(3);</p><p><b>  end if; </b></p><p>  end process;</p><p

29、>  wr_signal <= temp(2) and not(temp(1));</p><p>  rd_signal <= temp(4) and not(temp(3));</p><p>  offset <= (wr_address - rd_address)when (wr_address > rd_address)else</p>

30、<p>  (8 - (rd_address - wr_address))when (rd_address > wr_address)else 0;</p><p>  empty <= '1' when (offset = 0) else '0';</p><p>  full <= '1' whe

31、n (offset = 7) else '0';</p><p>  process(clock)</p><p><b>  begin</b></p><p>  if (clock'event and clock='1') then</p><p>  if reset =

32、 '1' then</p><p>  rd_address <= 0;</p><p>  data_buffer <= (others => '0');</p><p>  elsif (rd_signal = '1' and empty = '0') then</p>

33、;<p>  data_buffer <= fifo_memory(rd_address);</p><p>  case rd_address is</p><p>  when 7 => rd_address<=0;</p><p>  when others => rd_address <= rd_addr

34、ess + 1 ;</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  proc

35、ess(clock)</p><p><b>  begin</b></p><p>  if (clock'event and clock='1') then</p><p>  if reset = '1' then</p><p>  wr_address <= 0;&

36、lt;/p><p>  elsif (wr_signal = '1' and full = '0') then</p><p>  fifo_memory(wr_address) <= data_in;</p><p>  case wr_address is</p><p>  when 7 =&

37、gt; wr_address<=0;</p><p>  when others => wr_address <= wr_address + 1 ;</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p><

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論