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

正文內(nèi)容

基于verilog_hdl的異步fifo設(shè)計畢業(yè)設(shè)計(編輯修改稿)

2024-09-30 14:08 本頁面
 

【文章內(nèi)容簡介】 頁 靜態(tài)隨機存取存儲器 SRAM(Static Random Access Memory)是一種非常重要的易失性存儲器,它的速度非???,并且能在快速讀取和刷新時保持數(shù)據(jù)完整性。 SRAM 器件采用Hynix 公司的 HY64UD16322A。 HY64UD16322A 是高速、超低功耗 32 Mbit SRAM,內(nèi)部具有 2 097 152 個 16 bit 字容量。采用了 CMOS 制造工藝、 TTL 電平接口以及三態(tài)輸出,具有較大的輸入電 壓和溫度范圍。同時 HY64UD16322A支持 DPD(Deep Power Down)模式,保證其在待機模式下功耗進一步降低。 系統(tǒng)采用 CPLD 作為總控制器件。根據(jù) FIFO 的特點,需要將 SRAM 按地址存儲用程序控制成先進先出的結(jié)構(gòu)。這里采用指針?biāo)惴▉韺崿F(xiàn)這種結(jié)構(gòu)設(shè)計:設(shè)置兩個指針變量StartPos 和 EndPos。分別作為進入數(shù)據(jù)頭尾指針。當(dāng)有新數(shù)據(jù)寫入時,數(shù)據(jù)從上一次存儲最后位置的下一個位置開始存入一個數(shù)據(jù), EndPos 就自動加 1,保持與最后數(shù)據(jù)位置同步。當(dāng) EndPos 超過整個 RAM 的最大容量 (RAM_SIZE)時,就需要循環(huán)返回,從 0x000 位置存放,一直到 EndPos 與 StartPos 重合。這時可以認為 RAM 已經(jīng)存滿。同理,讀出數(shù)據(jù)時。起始位置 StartPos 自動加 1。當(dāng) StartPos 超過整個 RAM 的最大容量時,就從 0x000 位置讀取。一直到 StartPos 與 EndPos 重合,這時可以認為 RAM 已經(jīng)讀空。在這兩個過程當(dāng)中,CPLD 需要對地址線進行控制。不難發(fā)現(xiàn),寫數(shù)據(jù)的時候 Address 與 EndPos 一致,讀數(shù)據(jù)的時候 Address 與 StartPos 一致。 異步 FIFO設(shè)計中存在的問題及解 決辦法 [1] 亞穩(wěn)態(tài) 對于亞穩(wěn)態(tài)的解決方法主要有三種: 1: 對寫地址 /讀地址采用格雷碼。由實踐可知,同步多個異步輸入信號出現(xiàn)亞穩(wěn)態(tài)的概率遠遠大于同步一個異步信號的概率。對多個觸發(fā)器的輸出所組成的寫地址 /讀地址可以采用格雷碼。由于格雷碼每次只變化一位,采用格雷碼可以有效地減少亞穩(wěn)態(tài)的產(chǎn)生。 2: 采用兩極觸發(fā)器來同步異步輸入信號。信號同步的目的是防止新時鐘域中第一級觸發(fā)器的亞穩(wěn)態(tài)信號對下級邏輯造成影響。兩級寄存器的同步化處理單元由兩個觸發(fā)器串聯(lián)而成,中問沒有其它組合電路。這種設(shè)計可以保證后面的觸發(fā)器 獲得前一個觸發(fā)器輸出時,前一個觸發(fā)器已退出了亞穩(wěn)態(tài),并且輸出已穩(wěn)定。但是,這種方法同時帶來了對輸入信號的一級延時,需要在設(shè)計時鐘的時候加以注意。 3: 在信號從快時鐘域向慢時鐘域過渡時,如果信號變化太快,慢時鐘將可能無法對該信號進行正確采樣,即采樣失敗。所以在使用雙鎖存器法時,應(yīng)該使原始信號保持足夠長 的 時 間 , 以 便 另 一 個 時 鐘 域 的 鎖 存 器 對 其 進 行 正 確 的 采 樣 。 對上述問題 ,一般采用“結(jié)繩法”的設(shè)計方法,將慢時鐘周期信號通過分頻的方式將其周期增長,經(jīng)過雙鎖存采樣以后再使其恢復(fù)原來的時鐘周期。即用“結(jié)繩”將信號延 長,陜西理工學(xué)院畢業(yè)設(shè)計 第 14 頁 共 39 頁 用“同步”實現(xiàn)雙 latch 采樣,用“解繩”還原為原來的時鐘,保證另一個時鐘域也可以正確采樣,而接收方用相反的流程送回響應(yīng)信號。 空 /滿指針的解決方法 空 /滿標(biāo)志產(chǎn)生的原則是:寫滿不溢出,讀空不多讀。即無論在什么進修,都不應(yīng)出現(xiàn)讀寫地址同時對一個存儲器地址操作的情況。在讀寫地址相等或相差一個或多個地址的時候,滿標(biāo)志應(yīng)該有效,表示此時 FIFO 已滿,外部電路應(yīng)對 FIFO 發(fā)數(shù)據(jù)。在滿信號有效時寫數(shù)據(jù),應(yīng)根據(jù)設(shè)計的要求,或保持、或拋棄重發(fā)。同理,空標(biāo)志的產(chǎn)生也是如此,即: 空標(biāo)志 =(|寫地址 讀地址 |=預(yù)定值 )AND(寫地址超前讀地址) 滿標(biāo)志 =( |寫地址 讀地址 |=預(yù)定值) AND(讀地址超前寫地址 ) 最直接的做法是,采用讀寫地址相比較來產(chǎn)生空滿標(biāo)志。當(dāng)讀寫地址的差值等于一個預(yù)設(shè)值的時候,空 /滿信號被置位。這種實現(xiàn)方法邏輯簡單,但它是減法器形成的一個比較大的組合邏輯,因而限制了 FIFO 的速度。所以,一般只采用相等不相等的比較邏輯,避免使用減法器。 論文主要內(nèi)容 第一章引言。簡單介紹了所研究題目的發(fā)展?fàn)顩r,以及它的研究有意義。 第二章 FIFO 工作原理簡介。通過簡單的與原理圖介紹了異步 FIFO 的實現(xiàn)框圖以及設(shè)計的相關(guān)技術(shù)和簡要工作原理。 第三章 FIFO 的實現(xiàn)方法及技術(shù)。分析了異步 FIFO 的參數(shù)和設(shè)計的難點。 第四章異步 FIFO 實現(xiàn)及主要方法。通過第二章第三章對異步 FIFO 具體介紹,在這張內(nèi)容中,重點描述了異步 FIFO 的實現(xiàn)方法。 第五章總結(jié)。對異步 FIFO 的設(shè)計方法作了簡要的總結(jié),簡述了設(shè)計方法的不足之處,以及應(yīng)采取的措施。 陜西理工學(xué)院畢業(yè)設(shè)計 第 15 頁 共 39 頁 2 異步 FIFO 工作原理簡介 關(guān)于異步信號 [9] 在許多情況下,數(shù)據(jù)在跨越時鐘域時需要 “ 堆積 ” 起來,因此使用單個保持寄存器無法完成工作。例如一種情況是某 個傳輸電路猝發(fā)式發(fā)送數(shù)據(jù),接收電路來不及采樣。另一種情況是接收電路采樣速度超出傳輸電路發(fā)送數(shù)據(jù)的速度,但采樣的數(shù)據(jù)寬度不夠。這些情況就要使用 FIFO 了。 基本上, 人們 使用 FIFO 有兩個目的:速度匹配或數(shù)據(jù)寬度匹配。在速度匹配時, FIFO 較快的端口處理猝發(fā)的數(shù)據(jù)傳輸,而較慢的端口則維持恒定的數(shù)據(jù)流。但是,雖然訪問方式和速度不同,但進出 FIFO 的平均數(shù)據(jù)速率必須是相同的,否則 FIFO 就會出現(xiàn)上溢(oveRFlow)或下溢 (underflow)問題。與單寄存器設(shè)計相同, FIFO 將數(shù)據(jù)保存在 寄存器或存儲器中,同時 同步 狀態(tài) 信號 ,判斷何時可以把數(shù)據(jù)寫入 FIFO 或從 FIFO 中讀出。 在速度匹配應(yīng)用中,每個端口(讀或?qū)懀┑臅r鐘不同。 FIFO 中的寄存器使用寫端口時鐘,就像保持寄存器使用電路時鐘來改變寄存器內(nèi)容一樣。信號同步 發(fā)生在指針邏輯中,而且比握手信號要復(fù)雜得多。 現(xiàn)在指針邏輯的設(shè)計有多種方法。第一種方法是將讀、寫選通進行同步,同時在各個時鐘域使用計數(shù)器來跟蹤 FIFO 中可用的項。計數(shù)器反映出可用于讀寫的 FIFO 項目號,計數(shù)器也與相應(yīng)的端口同步。讀計數(shù)器跟蹤包含有效數(shù)據(jù)的項數(shù),而寫計數(shù)器則跟蹤可以存儲數(shù)據(jù)的項數(shù)。當(dāng)對指針邏輯進行復(fù)位時,由于沒有數(shù)據(jù)可讀,讀計數(shù)器從零起始。寫計數(shù)器則從 FIFO 中項的總數(shù)開始計數(shù),即所有項均可用來存儲數(shù)據(jù)。 讀選通信號累減讀計數(shù)器,并與寫時鐘域同步,因為它同時也累加寫計數(shù)器。 寫選通信號則累減寫計數(shù)器,并與讀時鐘域同步,因為它同時也累加讀計數(shù)器。 這種設(shè)計需要單時鐘寬度脈沖以及用于讀、寫選通的脈沖同步器,因為當(dāng)一個電平信號從一個時鐘域跨越到 另一個更快的時鐘域時,在較快時鐘域中它能在更多的時鐘周期中保持有效。由于只要讀或?qū)懶盘柺怯行У?,每個計數(shù)器就會發(fā)生變化,因此較快的時鐘域就檢測到更多的讀、寫,超出較慢時鐘域?qū)嶋H發(fā)生的數(shù)量。脈沖同步器可以將一個時鐘域的時鐘寬度脈沖轉(zhuǎn)換為新時鐘域的時鐘寬度脈沖,每個脈沖都表示一次 FIFO 的讀或?qū)憽? 這種 FIFO 狀態(tài)技術(shù)對讀、寫狀態(tài)都不太 有利。當(dāng) FIFO 中所有項均充滿時,寫端口狀態(tài)指示為滿,并在讀選通觸發(fā)后繼續(xù)指示 FIFO 滿,因為同步過程會使選通信號延遲送給寫計數(shù)器。讀端口為空時也會出現(xiàn)這種情況,因為同步過程會使寫選通信號延遲到達讀計數(shù)器。 這種設(shè)計的另一種考慮是及時檢測全滿 /全空狀態(tài)。如果 FIFO 還有一項可用,并且有寫選通觸發(fā),則 FIFO 必須立即置為全滿狀態(tài)。這樣才能提前一個時鐘給出全滿標(biāo)志,使 FIFO 有足夠時間防止下一個數(shù)據(jù)寫入而產(chǎn)生溢出。對 FIFO 的讀端口也是這樣。這種陜西理工學(xué)院畢業(yè)設(shè)計 第 16 頁 共 39 頁 情況下,如果 FIFO 里只有一個數(shù),并且 有讀選通觸發(fā),則必須置全空狀態(tài),以給讀電路足夠的時間防止讀空 FIFO。 這種指針邏輯限制電路在每個時鐘周期中訪問 FIFO,即使在慢速時鐘域中也是這樣。這一功能的優(yōu)點在于訪問 FIFO 的電路至少有一個時鐘周期來評估 FIFO 的狀態(tài)。 FIFO 可以將所有項都填滿數(shù)據(jù),而不會出現(xiàn)數(shù)據(jù)被覆蓋或全空無數(shù)據(jù)可讀的情況。這種設(shè)計的另一個優(yōu)點是每一端都可以讀其相應(yīng)的計數(shù)器,來判斷 FIFO 中還有多少項可用。 人們 可以將這種 FIFO 設(shè)計用在進行多次數(shù)據(jù)讀 /寫的電路中,而不會造成上溢或下溢的情況。 這種設(shè)計的不足 之處是由計數(shù)器來判斷狀態(tài),而不是直接比較讀、寫指針。對大型 FIFO 來說,這些計數(shù)器也很大。而且,由于使用脈沖同步時,來自較快時鐘域的讀、寫脈沖在較慢時鐘域的脈沖間至少必須有兩個時鐘周期,因此平均數(shù)據(jù)速率為最低時鐘頻率的一半。解決這些問題的一種方法是采用直接指針比較法。 在這種 FIFO 設(shè)計中,讀、寫指針的比較決定了 FIFO 的狀態(tài)。 異步 設(shè)計中的指針比較更富有挑戰(zhàn) 性,因為每個指針位于不同的時鐘域中,對信號總線的同步要求在同步握手信號期間總線不發(fā)生改變。將這種技術(shù)用于指針同步的 FIFO 設(shè)計可能會很慢。要解決這個問題, FIFO 指針邏輯使用了格雷碼,代替指針使用的二進制碼。 格雷碼 如 表 21所示, 在每一次計數(shù)增減時只改變其中的一位??梢栽诟窭状a總線上使用同步器,因為每一次總線改變時只有一根信號線有變化,于是就消除了格雷碼總線各位通過不同同步器時的競爭情況。這種設(shè)計的指針為格雷碼計數(shù)器。使用二進制指針時需要將其變換成格雷碼后的同步指針,而使用變換邏輯會違反對同步 信號的限制,即同步的信號在跨越時鐘域前要來自觸發(fā)器 。 Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binary 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 Gray 0 1 11 10 110 111 101 100 1100 1101 1111 1110 1010 1011 1001 1000 表 21 格雷碼與十進制,二進制的轉(zhuǎn)換關(guān)系表 異步 FIFO芯片 簡介 [3] FIFO 芯片是一種具有存儲功能的高速邏輯芯片,可在高速數(shù)字系統(tǒng)中用作數(shù)據(jù)緩存。FIFO 通常利用雙口 RAM 和讀寫地址產(chǎn)生模塊來實現(xiàn)其功能。 FIFO 的接口信號包括異步寫時鐘( wrclk)和讀時鐘( rdclk)、與寫時鐘同步的寫有效( wren)和寫數(shù)據(jù)( wrdata)、與讀時鐘同步的讀有效( rden)和讀數(shù)據(jù)( rddata)。寫地址產(chǎn)生模塊一般還根據(jù)讀地址和寫地址來產(chǎn)生 FIFO 的滿標(biāo)志。讀地址產(chǎn)生模塊一般根據(jù)讀地址和寫地址的差來產(chǎn)生FIFO 的空標(biāo)志。為了實現(xiàn)正確的讀寫和避免 FIFO 的上溢或下溢 ,通常還應(yīng)給出與讀時鐘和寫時鐘同步的 FIFO 的空標(biāo)志( empty)和滿標(biāo)志( full),以禁止讀寫操作。寫地址產(chǎn)陜西理工學(xué)院畢業(yè)設(shè)計 第 17 頁 共 39 頁 生模塊通常根據(jù)寫時鐘和寫有效信號來產(chǎn)生遞增的寫地址,而讀地址產(chǎn)生模塊則根據(jù)讀時鐘和讀有效信號來產(chǎn)生遞增的讀地址。 FIFO 一般在操作時,首先在寫時鐘 wr clk 的上升沿且當(dāng) wren 有效時,將 wrdata 寫入雙口 RAM中寫地址對應(yīng)的位置中,然后將讀地址對應(yīng)的雙口 RAM 中的數(shù)據(jù)輸出到讀數(shù)據(jù)總線上,這樣就可實現(xiàn)先進先出功能。讀寫操作一般會自動訪問存儲器中連續(xù)的存儲單元。從 FIFO 中讀出的數(shù)據(jù)順序與寫入的順 序相同,而地址的順序則在內(nèi)部已經(jīng)預(yù)先定義好,因此,對 FIFO 芯片的操作不需要額外的地址信息。另外, FIFO 芯片還能提供對讀/寫指針的復(fù)位功能。這些結(jié)構(gòu)上的特點使 FI- FO 的應(yīng)用大大簡化了電路的復(fù)雜程度,提高了系統(tǒng)的可靠性和穩(wěn)定性。 FIFO 的一些重要參數(shù) [7] FIFO 的寬度:也就是英文資料里常看到的 THE WIDTH,它只的是 FIFO 一次讀寫操作的數(shù)據(jù)位,就像 MCU 有 8 位和 16 位, ARM 32 位等等, FIFO 的寬度在單片成品 IC 中是固定的,也有可選擇的,如果用 FPGA 自己實現(xiàn)一個 FIFO,其數(shù)據(jù)位 ,也就是寬度是可以自己定義的。 FIFO 的深度: THE DEEPTH,它指的是 FIFO 可以存儲多少個 N 位的數(shù)據(jù)(如果寬度為N)。如一個 8位的 FIFO,若深度為 8,它可以存儲 8個 8位的數(shù)據(jù),深度為 12 ,就可以存儲 12個 8位的數(shù)據(jù), FIFO 的深度可大可小,個人認為 FIFO 深度的計算并無一個固定的公式。在 FIFO 實際工作中,其數(shù)據(jù)的滿 /空標(biāo)志可以控制數(shù)據(jù)的繼續(xù)寫入或讀出。在一個具體的應(yīng)用中也不可能由一些參數(shù)算數(shù)精確的所需 FIFO 深度為多少,這在寫速度大于讀速度的理想狀態(tài)下是可行的,但在實際中用到的 FIFO 深度往 往要大于計算值。一般來說根據(jù)電路的具體情況,在兼顧系統(tǒng)性能和 FIFO 成本的情況下估算一個大概的寬度和深度就可以了。而對于寫速度慢于讀速度的應(yīng)用, FIFO 的深度要根據(jù)讀出的數(shù)據(jù)結(jié)構(gòu)和讀出數(shù)據(jù)的由那些具體的要求來確定。 滿標(biāo)志: FIFO 已滿或?qū)⒁獫M
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1