freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于veriloghdl的異步fifo設計畢業(yè)設計(參考版)

2025-06-22 12:40本頁面
  

【正文】 endmodule 參考文獻[1] 陳曦,:中國水利水電出版社,~84.[2] 潘松,:科學出版社,~46.[3] 鄭亞民,:國防工業(yè)出版社,~58.[4] :北京航空航天大學出版社,~87.[5] :電子工業(yè)出版社,~58. [6] 夏宇, :~70.[7] 朱永峰,陸生禮,,2003.(11)。.wren_b (139。.q_a (),b1}}),.clocken1 (139。b1),.byteena_b (139。b1),.addressstall_b (139。b0),.aclr1 (139。b0),altsyncramwire [7:0] q = sub_wire0[7:0]。wire [7:0] sub_wire0。 q。output wren。input wrclock。input wraddress。input rden。input rdclock。input rdaddress。input data。inputq)。wrclock,rden,rdaddress,endmodule(使用altera的lpm_ram_dp產(chǎn)生)module duralportram1 ( else {rempty,rempty2}=239。 {wfull,wfull2}={wfull2,~full}。 {wfull,wfull2}=239。b00。 if (!wrst_n)always (posedge wrclk or negedge full or negedge wrst_n)assign empty=~(directionamp。assign full=~((wptr==rptr)amp。 else if (!dirset) if(!dirrst2) direction=0。assign dirrst2=~(dirrst||wrst_n)。assign dirrst=(~(wptr[n1]^rptr[n2]))amp。//generate full,wfull,empty,remptyassign dirset=~((wptr[n1]^rptr[n2])amp。 endassign rbnext=rempty?rbin:rbin+1。 else begin rempty=839。 rempty2=839。 rptr=0。 beginalways (posedge reclk or negedge rrst_n)//generate rptr endassign wbnext=wfull?wbin:wbin+1。 else begin wfull=839。 wfull2=839。 wbin=839。 wptr=839。 beginalways (posedge wrclk or negedge wrst_n)//generate wptrreg wfull2,rempty2。wire high=1。wire full,empty。reg [7:0] wbin,rbin。output reg rempty。input reclk。output reg wfull。//input wren。parameter n=8。assign remptye=!rempty。duralportram1 duralportram_a(.data(wdata),.wrclock(wrclk),.rdclock(reclk),.rdaddress(rptr),.rden(remptye),.wraddress(wptr),.wren(wfulle),.q(rdata))。wire wfulle,remptye。output wfull,rempty。input [7:0] wdata。input wrclk,reclk。對數(shù)據(jù)總線來說,握手和一個保持寄存器很有用,但每次向新時鐘域傳送的數(shù)據(jù)字都不能超過一個。不要分別同步每一個信號,而要采用一個保持寄存器和握手方式。最后,對跨時鐘域的脈沖信號應使用脈沖同步器。對于在多個時鐘周期內(nèi)一直保持有效的信號來說,電平同步器的效果很好。如果在設計跨不同時鐘域電路時,使用一些技術(shù)來降低通信失敗的風險,則處理跨時鐘域的信號就不再是艱巨的任務。經(jīng)驗證,該異步FIFO能夠安全的實現(xiàn)數(shù)據(jù)的跨時鐘域傳遞有數(shù)據(jù)緩沖作用,可以應用到URAT(通用異步收發(fā)器),SPI(服務提供商接口)等通訊外設中。圖48 仿真圖形5 總結(jié) 異步FIFO設計的總結(jié)本文討論了一種異步FIFO的設計方法,應用Verilog HDL語言采用自頂向下的設計方法實現(xiàn)了FIFO的數(shù)據(jù)緩沖功能。當FIFO寫滿時,滿標志wfull馬上由0變1,禁止寫數(shù)據(jù)并且寫地址也不再增加, FIFO只讀不寫;當FIFO讀空時,空標志rempty馬上由0變1,禁止讀數(shù)據(jù)并且讀地址也不再增加,F(xiàn)IFO只寫不讀。 仿真驗證根據(jù)以上分析,以深度為1數(shù)據(jù)寬度為8位的異步FIFO為例,用Verilog HDL編寫了各個模塊,并采用Mentor公司的仿真工具Modelsim SE 。由于full信號的聲明是因為寫指針的增加,而其失效是因為讀指針(讀時鐘域產(chǎn)生,異步于寫時鐘域)的增加,所以要把異步信號full同步到讀時鐘域產(chǎn)生wfull信號。寫控制模塊。讀時鐘rclk控制下的同步讀時鐘域,包括讀指針和空邏輯的產(chǎn)生。同時為FIFO的深度擴展和寬度擴展設計擴展邏輯,以適應多位寬和大容量的要求。  對于標志信號都是采用異步比較輸出下降沿作為最終比較結(jié)果的復位信號,而其上升沿則采用傳統(tǒng)的雙鎖存器法進行同步的方法。當高4位寫地址減去讀地址小于其低位讀地址大于寫地址時,產(chǎn)生將近空。這個電路一般用的是比較器判斷。所以判斷半滿主要是對第11根地址的讀和寫計數(shù)輸出相同情況和不同情況下進行判斷。當2K字的FIFO半滿有效時,標志w_point 地址減去 r_point地址的范圍在1K~2K字之間。圖47 設計2KB的FIFO將近空和半滿標志位的仿真結(jié)果以2K字容量的FIFO為例來說明異步FIFO的半滿與將近滿。半滿標志是一個雙用輸出端口,在單片模式下,當擴展輸入端接地時,這個端口就作為半滿標志。 雖然空/滿標志的設置是保守的,但這并不影響FIFO功能的正確性,經(jīng)驗證保守的空/滿標志能夠滿足FIFO的設計要求。也就是說,雖然FIFO已經(jīng)非空了,但是空信號rempty要經(jīng)過幾個周期的延遲才能變?yōu)闊o效。由于同步器使用了兩個觸發(fā)器,因此空信號rempty的失效要經(jīng)過至少兩個時鐘周期的延遲。aempty信號的失效與寫時鐘同步。此信號會立即把圖46所示的set觸發(fā)器置位,使觸發(fā)器輸出為1,即向外部輸出同步的空信號rempty,并且保證了FIFO一旦為空,讀指針就不增加,避免了FIFO的讀溢出。 保守的空/滿標志設計中FIFO空/滿標志的設置是保守的,即FIFO空/滿標志的置位是立即有效的,而其失效則是在一段時間之后。同時增加的兩級鎖存器也增加了一個時鐘周期的延時輸出,這樣在滿有效狀態(tài)下,同時來自讀寫時鐘的讀寫指令存在潛在的亞穩(wěn)態(tài)問題就可以避免。與傳統(tǒng)的先將地址信號同步再進行同步比較的方法相比,異步比較法避免了使用大量的同步寄存器,而效率則更高,實現(xiàn)也更簡單。異步比較法的關(guān)鍵是用異步比較結(jié)果的信號的下降沿作為最終比較結(jié)果的復位信號,而其上升沿則用傳統(tǒng)的雙鎖存器法進行同步?! ? always (posedge wclk or negedge afull)  if (!afull) {wfull,wfull2} = 2′b11?! ? always (posedge rclk or negedge aempty)  if (!aempty) {rempty,rempty2} = 2′b11。amp。 !direction)?! ? assign aempty=~((wptr==rptr) amp?! ? else if (!dirset) direction = 1′b。 (wptr[n1]^rptr[n])) |~wrst)。 (wptr[n1]^rptr[n]))。同理可以得到空標志信號rempty。由于滿標志afull只影響FIFO的寫入,故將其同步到寫時鐘域。當讀地址增加時,表明已經(jīng)從FIFO中讀走了一個數(shù)據(jù),afull由有效的低電平變?yōu)闊o效的高電平,即afull的上升沿與rptr同屬于讀時鐘域。下面以滿信號 (wfull)為例說明同步信號的產(chǎn)生過程:滿信號afull是因為寫地址追上了讀地址并比讀地址多循環(huán)一次所產(chǎn)生,此時不能再向FIFO中寫入數(shù)據(jù),否則會造成FIFO寫溢出。控制信號同步如圖46所示。由于aempty_n的下降沿是屬于rclk時鐘域的,所以可以用它來作為empty的復位信號;而aempty_n的上升沿是屬于wclk時鐘域的,因此可以用雙鎖存器法將其過渡到rclk時鐘域,最后得到的empty信號就屬于rclk時鐘域。圖45 異步比較的時鐘域圖46 控制信號同步因此可以利用上述的理論基礎(chǔ)來實現(xiàn)從aempty_n到empty的過渡。當rptr與wptr進行異步比較時,由于rptr的變化(assert)產(chǎn)生aempty_n(FIFO空標志),即aempty_n的下降沿是與rptr同屬于一個時鐘域的;同理,由于wptr的變化(assert)使aempty_n無效(deassert),即aempty_n的上升沿是與wptr同屬于一個時鐘域的。目前IDT公司的系列產(chǎn)品一般都采用這種異步比較法。圖44 異步FIFO邏輯框圖 標志位的產(chǎn)生 異步比較FI FO邏輯標志與時鐘的同步一般的異步FIFO是先將讀地址與寫地址同步以后(以上提到的方法)再進行比較,這種方法一般效率不高,不能很好地節(jié)省制版面積。在異步FIFO中的標志位主要包括空標志、滿標志、半滿標志和將近滿、將近空標志?! 酥具壿嬍怯靡援a(chǎn)生反映器件內(nèi)部RAM陣列占用情況的狀態(tài)標志信號,使系統(tǒng)可以及時采取措施以免數(shù)據(jù)溢出。異步FIFO存儲器在結(jié)構(gòu)上可劃分為存儲陣列和外圍電路兩大部分,它由幾個主要模塊組成:存儲單元RAM、寫控制邏輯、讀控制邏輯、標志邏輯、擴展邏輯、復位邏輯以及并/串轉(zhuǎn)換邏輯。即用“結(jié)繩”將信號延長,用“同步”實現(xiàn)雙latch采樣,用“解繩”還原為原來的時鐘,保證另一個時鐘域也可以正確采樣,而接收方用相反的流程送回響應信號。所以在使用雙鎖存器法時,應該使原始信號保持足夠長的時間,以便另一個時鐘域的鎖存器對其進行正確的采樣。這種方法在clka與clkb的采樣周期相差不大的情況下比較適合。這種方法同時帶來了對輸入信號的一級延時,需要在設計時鐘的時候加以注意。由于增加了一級觸發(fā)器,這樣在最后的輸出就延遲了一個時鐘,使前一個時鐘產(chǎn)生的數(shù)據(jù)被b_clk連續(xù)鎖存兩次。兩級時鐘同時消除亞穩(wěn)態(tài)如圖42。格雷碼是對二進制地址輸出進行轉(zhuǎn)換,下面是四位代碼之間轉(zhuǎn)換的邏輯表達式:B碼轉(zhuǎn)G碼的邏輯表達式:G碼轉(zhuǎn)B碼的邏輯表達式:    B4=G4         G4=B4    B3=B4⊕G3      G3=B4⊕B3    B2=B3⊕G2      G2=B3⊕B2    B1=B2⊕G1      G1=B2⊕B1  但采用格雷碼編碼法需要在地址位的每一位增加一級的異或門,這樣在計數(shù)比較前增大了延時和版圖面積。對于多個觸發(fā)器的輸出所組成的寫地址/讀地址可以采用格雷碼。圖41 異步時鐘和亞穩(wěn)態(tài) 常見的解決方法[10]寫地址/讀地址采用格雷碼。在圖41的異步電路中,電路外部的輸入和內(nèi)部的時鐘之間是毫無時間關(guān)系的,因此setup/hold沖突是必然的;同在電路內(nèi)部的兩個沒有關(guān)系的時鐘域之間的信號傳遞,也必然會導致setup/hold沖突。當一個信號被寄存器鎖存時,如果信號和時鐘之間不滿足這個要求,Q端的值是不確定的,并且在未知的時刻會固定到高電平或低電平,這個過程稱為亞穩(wěn)態(tài),如圖41所示。即用“結(jié)繩”將信號延長,用“同步”實現(xiàn)雙latch采樣,用“解繩”還原為原來的時鐘,保證另一個時鐘域也可以正確采樣,而接收方用相反的流程送回響應信號。在使用雙鎖存器法時,應該使原始信號保持足夠長的時間,以便另一個時鐘域的鎖存器對其進行正確的采樣。結(jié)繩法是利用一種十進的位置系統(tǒng)在繩子上打結(jié)。 [6] 印加帝國的領(lǐng)地,是環(huán)繞庫斯科城的一方地域,那里現(xiàn)在大部分屬于秘魯,還有一部分屬于厄瓜多爾和智利。0與第四位 1 進行異或結(jié)果為1,上面結(jié)果1與第三位0異或結(jié)果為1,上面結(jié)果1與第二位異或結(jié)果為0,上面結(jié)果0與第一位0異或結(jié)果為 0因此最終結(jié)果為1100。舉例:如果采集器器采到了格雷碼1010 異或:異或則是按位“異或”,相同為“0”,相異為“1”。但格雷碼不是權(quán)重碼,每一位碼沒有確定的大小,不能直接進行比較大小和算術(shù)運算,也不能直接轉(zhuǎn)換成液位信號,要經(jīng)過一次碼變換,變成自然二進制碼,再由上位機讀取。它大大地減少了由一個狀態(tài)到下一個狀態(tài)時邏輯的混淆。格雷碼屬于可靠性編碼,是一種錯誤最小化的編碼方式,因為,雖然自然二進制碼可以直接由數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號,但在某些情況,例如從十進制的3轉(zhuǎn)換為4時二進制碼的每一位都要
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1