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

正文內(nèi)容

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

2025-04-03 09:17 本頁面
 

【文章內(nèi)容簡介】 圖 31 格雷碼計數(shù)器模塊 圖 32 5 bit 格雷碼計數(shù)器仿真波形 同步模塊 為了降低亞穩(wěn)態(tài)發(fā)生的概率,本課題使用前章所介紹 D 觸發(fā)器二級同步將異步信號同步化。在空滿標志模塊判斷寫滿標志時,同步模塊將讀指針與寫時鐘同步后,和寫指針比較產(chǎn)生寫滿標志;判斷讀空標志時,同步模塊將寫指針與讀時鐘同步后,和讀指針比較產(chǎn)生讀空標志。同步模塊的 VHDL 設(shè)計程序見附錄。 程序編譯成功后生成的同步模塊如圖 33 所示,利用 Quartus II 軟件的波形江蘇科技大學本科畢業(yè)設(shè)計(論文) 9 編輯器對該模塊進行時序仿真,其仿真波形如圖 34 所示。從 仿真波形可以看出,該模塊將輸入的異步碼與輸入時鐘同步后輸出同步碼,由延時時間可以看出其滿足二級同步要求。 圖 33 同步模塊 圖 34 同步模塊仿真波形 格雷碼∕自然碼轉(zhuǎn)換模塊 雖然為了降低亞穩(wěn)態(tài)發(fā)生概率而使用格雷碼對讀、寫地址進行轉(zhuǎn)換,但在雙端口 RAM 進行存儲和空滿產(chǎn)生模塊進行讀寫地址比較時仍使用自然二進制碼,所以在異步地址信號同步后,仍需將格雷碼地址轉(zhuǎn)換回自然二進制碼。 n 位格雷碼轉(zhuǎn)換為自然二進制碼的法則為: Bn = Gn, Bi = Gi⊕ Bi+1 (i≠n),其中 G 表示格雷碼, B 標志 自然二進制碼。格雷碼∕自然碼轉(zhuǎn)換模塊的 VHDL 設(shè)計程序見附表。 程序編譯成功后生成的格雷碼∕自然碼轉(zhuǎn)換模塊如圖 35 所示,利用 Quartus II 軟件的波形編輯器對該模塊進行時序仿真,其仿真波形如圖 36 所示。 圖 35 格雷碼∕自然碼轉(zhuǎn)換模塊 江蘇科技大學本科畢業(yè)設(shè)計(論文) 10 圖 36 格雷碼∕自然碼轉(zhuǎn)換模塊仿真波形 空滿標志產(chǎn)生模塊 空滿標志產(chǎn)生模塊是整個異步 FIFO 系統(tǒng)的核心部分,該模塊設(shè)計的好壞直接決定了該異步 FIFO 的性能??諠M標志產(chǎn)生的基本原則是無論在什么情況下,都不會出現(xiàn)存儲器對同一存儲地址同時進行讀寫操作的 情況,也就是存儲器寫滿后不產(chǎn)生溢出,讀空后不進行多讀 [2]。 對于同步的 FIFO 系統(tǒng),讀寫操作同時從存儲單元起始位置開始進行讀寫操作,每進行完一次讀寫操作后,控制指針就增加一位,指向下一個存儲單元,直到下一次時鐘沿到來后存儲器對該存儲單元進行一次讀寫操作,然后指針繼續(xù)增加。當指針移動到最后一個存儲單元后,它又重新回到起始位置繼續(xù)進行讀寫操作。由于同步 FIFO 讀寫操作同時進行,所以存儲器始終處于非空和非滿的狀態(tài),讀寫操作可以一直進行。對于異步 FIFO 系統(tǒng),有兩個獨立的控制指針 —— 讀指針和寫指針,讀操作和寫操作 獨立運行。然而當存儲器存儲空間被讀空后,若繼續(xù)讀取數(shù)據(jù)則會造成多讀,使一個無用的信號被讀出;當存儲器存儲空間寫滿后,若繼續(xù)寫入數(shù)據(jù)則會產(chǎn)生溢出,造成一個有用的數(shù)據(jù)被覆蓋。為了避免這種情況發(fā)生,異步 FIFO 系統(tǒng)對存儲器設(shè)置了讀空和寫滿兩個狀態(tài)標志。當存儲器讀空后,讀空標志置位,暫停讀操作繼續(xù)讀取數(shù)據(jù),但仍可以執(zhí)行寫操作;當存儲器寫滿后,寫滿標志置位,暫停寫操作繼續(xù)寫入數(shù)據(jù),但仍可以執(zhí)行讀操作。按照此原理,當全局復位信號復位后,異步 FIFO 應該處于讀空狀態(tài)。 由上述原理可以知道,當讀指針和寫指針不相等時,讀寫操 作互不干擾,異步 FIFO 處于非空和非滿的狀態(tài)。當讀指針和寫指針相等時, FIFO 要么處于讀空狀態(tài),要么處于寫滿狀態(tài)。那么該怎么判斷異步 FIFO 究竟處于什么樣的狀態(tài)呢? 判斷的方法有很多,本課題使用讀寫指針比較的方法,通過額外增加狀態(tài)標志位來判斷究竟是讀指針追趕寫指針輸出讀空標志,還是寫指針追趕讀指針輸出寫滿江蘇科技大學本科畢業(yè)設(shè)計(論文) 11 標志。本課題設(shè)計的異步 FIFO 存儲深度為 128 bit,那么讀寫指針應有 4 個地址位,本設(shè)計使用 5 bit 的讀寫指針,其最高位作為額外增加的狀態(tài)標志位,剩下的低 4 位為地址位。地址位隨著相應的讀(寫)操作的進行 依次遞增,當讀(寫)指針由最后一個存儲單元重新回到起始位置時狀態(tài)標志位取反。當讀寫指針的狀態(tài)標志位和地址位完全相同時,表明執(zhí)行了相同次數(shù)的讀寫操作,此時異步 FIFO處于讀空狀態(tài);當讀寫指針的狀態(tài)標志位不同,而地址位完全相同時,表明寫操作比讀操作多進行了一次循環(huán),此時異步 FIFO 處于寫滿狀態(tài)??諠M狀態(tài)的行為描述如下: full = 39。139。 when (wr_addr(4) /= rd_addr(4)) and (wr_addr(3 downto 0) = rd_addr(3 downto 0)) empty = 39。139。 when (wr_addr(4 downto 0) = rd_addr(4 downto 0)) 由于空滿標志是通過比較同步后的讀寫指針產(chǎn)生的,那么就可能出現(xiàn)這樣的情況:當同步寫指針時,實際的寫指針可能已經(jīng)發(fā)生了變化,這意味著此時的寫指針可能是一個無用的值。這樣從讀操作的角度來看,就會發(fā)生就會發(fā)生少寫的的現(xiàn)象,也就是異步 FIFO 判定為讀空時, FIFO 實際上可能未空,因為寫操作可能正在發(fā)生,寫指針仍在變化,但這從讀操作的角度是“看不到的”;同理從寫操作的角度來看,也會出現(xiàn)類似的情況,即異步 FIFO 判定為寫滿時, FIFO 實際上可能未滿。上述的情況被稱為保守的報告,當 FIFO 未空時判定 FIFO 讀空,而阻止讀操作的繼續(xù)進行;當 FIFO 未滿時判定 FIFO 寫滿,而阻止寫操作的繼續(xù)進行。這種情況從存儲器的角度來看,存儲器的存儲空間好像變小,然而這種情況是毫無壞處的,能很好的避免錯誤的發(fā)生,因為當 FIFO 真的讀空或?qū)憹M了,而不去阻止讀操作或?qū)懖僮鞯倪M行將會出現(xiàn)多讀或溢出的錯誤,影響異步 FIFO的性能 [2]。讀空、寫滿狀態(tài)判定的 VHDL 設(shè)計程序分別見附錄。 空滿標志產(chǎn)生模塊的頂層設(shè)計電路如圖 37 所示,其中 empty_cmp 模塊和full_cmp 模塊分別是讀空標志判定模塊和寫滿標志判定模塊。將該頂層電路編譯成功后生成的空滿標志產(chǎn)生模塊如圖 38 所示。 江蘇科技大學本科畢業(yè)設(shè)計(論文) 12 圖 37 空滿標志產(chǎn)生模塊頂層電路圖 江蘇科技大學本科畢業(yè)設(shè)計(論文) 13 圖 38 空滿標志產(chǎn)生模塊 雙端口 RAM 本課題設(shè)計的異步 FIFO 的存儲器是一個存儲深度為 128 bit,數(shù)據(jù)寬度為 8 bit 的雙端口 RAM,該 RAM 使用 Altera 的 Mega Wizard PlugIn Manager 工具定制,定制主要參數(shù)設(shè)置過程如下: ( 1)打開 Mega Wizard PlugIn Manager 對話框,選擇“ Create a new custom megafunction variation”定制新的宏功能模塊。 ( 2) 定制完新的功能模塊后選中 Memory piler 下的 RAM: 2PORT 生成雙端口 RAM。然后選擇 Cyclone II 器件和 VHDL 文件格式,輸入 RAM 存放路徑和模塊名。 ( 3) 生成 RAM后在 RAM 功能設(shè)置界面的 ram端口點擊“ With one read port and one write port”,選擇一個讀端口和一個寫端口。存儲方式選擇 bit 方式,即“ As a number of bits”。 ( 4) 雙端口 RAM 的存儲深度選擇 128 bit,數(shù)據(jù)線寬度選擇 8 bit。 ( 5) 設(shè)置完存儲深度和數(shù)據(jù)寬度后進入時鐘設(shè)置界面,選擇獨立的讀寫時鐘,并添加讀使能。 ( 6) 在寄存器設(shè)置界面選中“ Which ports should be registered?”欄下第三個選擇框,增加輸出寄存器。 ( 7) 定制生成的雙端口 RAM 外部接口如圖 39 所示。 江蘇科技大學本科畢業(yè)設(shè)計(論文) 14 圖 39 雙端口 RAM 外部接口 江蘇科技大學本科畢業(yè)設(shè)計(論文) 15 第四章 時序仿真與實現(xiàn) 模塊整合 本課題采用層次化、描述語言和圖形輸入相結(jié)合的方法設(shè)計異步 FIFO 電路,該系統(tǒng)被分為同步模塊、格雷碼計數(shù)模塊、格雷碼∕自然碼轉(zhuǎn)換模塊、空滿標志產(chǎn)生模塊和雙端口 RAM 幾部分,上一章節(jié)已經(jīng)完成了各模塊的編寫及時序仿真測試。將各模塊整合后的異步 FIFO 電路的頂層實體如圖 41 所示,其中 gray 模塊是格雷碼計數(shù)器模塊, G2B 模塊是格雷碼∕自然碼轉(zhuǎn)換模塊, full_empty 是空滿標志產(chǎn)生模塊, dram 模塊是雙端口 RAM。 江蘇科技大學本科畢業(yè)設(shè)計(論文) 16 圖 41 異步 FIFO 頂層電路圖 江蘇科技大學本科畢業(yè)設(shè)計(論文) 17 時序仿真及功能測試 本課題使用 Quartus II 軟件的波形編輯器對設(shè)計的異步 FIFO 電路進行時序仿真, 并根據(jù)仿真波形對各模塊功能進行測試,確認該異步 FIFO 是否滿足設(shè)計要求。 復位功能軟件仿真與測試 對于復位功能的時序仿真測試波形如圖 42 所示。從圖中可以看出,當系統(tǒng)運行后,復位端置 1,即不按下復位鍵時,異步 FIFO 系統(tǒng)正常工作;當復位端置 0,即按下復位鍵后,無論讀寫使能信號處于什么狀態(tài),數(shù)據(jù)輸出始終不變,異步 FIFO 處于讀空狀態(tài)。該仿真波形表明所設(shè)計的異步 FIFO 電路的復位鍵能控制系統(tǒng)的全局操作,復位功能達到了預期的設(shè)計要求。 圖 42 復位功能時序仿真測試波形 寫操作功能時 序仿真與測試 對于寫操作功能的時序仿真測試波形如圖 43 所示。從圖中可以看出,將系統(tǒng)復位端置 1,將寫使能置位,讀使能復位,經(jīng)過一段時間后,數(shù)據(jù)輸出始終不變,讀空標志始終為 0,寫滿標志始終為 1,這表明異步 FIFO 電路始終處于寫滿狀態(tài)。該仿真波形表明寫使能端控制系統(tǒng)只進行寫操作寫入數(shù)據(jù),由于不進行讀操作,一段時間后雙端口 RAM 存儲器存儲單元會始終處于寫滿狀態(tài),這表明所設(shè)計的異步 FIFO 電路的寫操作功能達到了預期的設(shè)計要求。 江蘇科技大學本科畢業(yè)設(shè)計(論文) 18 圖 43 寫操作功能時序仿真測試波形 讀操作功能時序仿真與測試 對于讀 操作功能的時序仿真測試波形如圖 44 所示。從圖中可以看出,將系統(tǒng)復位端置 1,將寫使能復位,讀使能置位,數(shù)據(jù)輸出始終不變,寫滿標志始終為 0,讀空標志始終為 1,這表明異步 FIFO 電路始終處于讀空狀態(tài)。該仿真波形表明讀使能端控制系統(tǒng)只進行讀操作讀取數(shù)據(jù),由于不進行寫操作,雙端口RAM 存儲器存儲單元會始終處于讀空狀態(tài),這表明所設(shè)計的異步 FIFO 電路的讀操作功能達到了預期的設(shè)計要求。 圖 44 讀操作功能時序仿真測試波形 異步 FIFO 電路整體功能軟件仿真與測試 對于異步 FIFO 電路整體功能的時序仿真 測試波形如圖 45 和圖 46 所示,其中圖 45 的輸入的讀時鐘頻率是寫時鐘頻率的 2 倍,圖 46 的輸入的寫時鐘頻率是讀時鐘頻率的 2 倍。對于圖 45,將系統(tǒng)復位端置 1,將讀寫使能均置位,一段時間后異步 FIFO 間歇性處于讀空狀態(tài),但始終不處于寫滿狀態(tài),輸出數(shù)據(jù)隊列與輸入數(shù)據(jù)隊列相同,但會有一定的延時。這表明系統(tǒng)能同時進行讀寫操作,由于讀操作速度快于寫操作,所以異步 FIFO 只會處于讀空狀態(tài),而不會進入寫江蘇科技大學本科畢業(yè)設(shè)計(論文) 19 滿狀態(tài)。另外,輸出數(shù)據(jù)隊列與輸入數(shù)據(jù)隊列相同,也表明該電路實現(xiàn)了先入先出的功能,輸入輸出隊列之間的延時是由同步電路和 程序的運行時間造成的。對于圖 46,將系統(tǒng)復位端置 1,將讀寫使能均置位,一段時間后異步 FIFO 間歇性處于寫滿狀態(tài),但始終不處于讀空狀態(tài),輸出數(shù)據(jù)隊列與輸入數(shù)據(jù)隊列相同,但會有一定的延時。和圖 45 相似,這同樣表明系統(tǒng)同時進行了讀寫操作,由于寫操作速度快于讀操作,異步 FIFO 只會處于寫滿狀態(tài),而不會進入讀空狀態(tài)。輸出數(shù)據(jù)隊列與輸入數(shù)據(jù)隊列相同,同樣說明電路實現(xiàn)了先入先出的功能,隊列之間的延時依然是由同步電路和程序的運行時間造成的。圖 45 和圖 46 的仿真波形表明所設(shè)計的異步 FIFO 電路的整體功能達到了預期的設(shè) 計要求。 圖 45 異步 FIFO 系統(tǒng)時序仿真測試波形 1 圖 46 異步 FIFO 系統(tǒng)時序仿真測試波形 2 時序仿真結(jié)果總結(jié) 從上述時序仿真測試結(jié)果可以看出,該異步 FIFO 電路在硬件邏輯設(shè)計方面實現(xiàn)了所有的預期設(shè)計功能,能快速準確的判定 FIFO 存儲器的空滿狀態(tài),并能通過外部讀寫使能控制系統(tǒng)內(nèi)部讀寫操作,實現(xiàn)寬度為 8 bit 的數(shù)據(jù)隊列在兩個獨立的異步時鐘域之間進行先進先出的數(shù)據(jù)傳輸。 江蘇科技大學本科畢業(yè)設(shè)計(論文) 20 第五章 硬件仿真與實現(xiàn) 外部電路焊接 由于本課題使用 EP2C5T144C8N 核心板最小系統(tǒng),其外設(shè)遠不能滿足 設(shè)計要求,所以仍需焊接相應的外設(shè)電路板來連接開發(fā)板以完成異步 FIFO 電路的硬件實物設(shè)計。本課題除使用開發(fā)板自帶的按鍵作為系統(tǒng)復位鍵外,仍需焊接兩個撥動開關(guān)作為讀寫
點擊復制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1