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

正文內(nèi)容

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

2024-09-03 11:11 本頁面
 

【文章內(nèi)容簡介】 則會造成多讀,使一個無用的信號被讀出;當存儲器存儲空間寫滿后,若繼續(xù)寫入數(shù)據(jù)則會產(chǎn)生溢出,造成一個有用的數(shù)據(jù)被覆蓋。為了避免這種情況發(fā)生,異步FIFO系統(tǒng)對存儲器設置了讀空和寫滿兩個狀態(tài)標志。當存儲器讀空后,讀空標志置位,暫停讀操作繼續(xù)讀取數(shù)據(jù),但仍可以執(zhí)行寫操作;當存儲器寫滿后,寫滿標志置位,暫停寫操作繼續(xù)寫入數(shù)據(jù),但仍可以執(zhí)行讀操作。按照此原理,當全局復位信號復位后,異步FIFO應該處于讀空狀態(tài)。由上述原理可以知道,當讀指針和寫指針不相等時,讀寫操作互不干擾,異步FIFO處于非空和非滿的狀態(tài)。當讀指針和寫指針相等時,F(xiàn)IFO要么處于讀空狀態(tài),要么處于寫滿狀態(tài)。那么該怎么判斷異步FIFO究竟處于什么樣的狀態(tài)呢?判斷的方法有很多,本課題使用讀寫指針比較的方法,通過額外增加狀態(tài)標志位來判斷究竟是讀指針追趕寫指針輸出讀空標志,還是寫指針追趕讀指針輸出寫滿標志。本課題設計的異步FIFO存儲深度為128 bit,那么讀寫指針應有4個地址位,本設計使用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判定為讀空時,F(xiàn)IFO實際上可能未空,因為寫操作可能正在發(fā)生,寫指針仍在變化,但這從讀操作的角度是“看不到的”;同理從寫操作的角度來看,也會出現(xiàn)類似的情況,即異步FIFO判定為寫滿時,F(xiàn)IFO實際上可能未滿。上述的情況被稱為保守的報告,當FIFO未空時判定FIFO讀空,而阻止讀操作的繼續(xù)進行;當FIFO未滿時判定FIFO寫滿,而阻止寫操作的繼續(xù)進行。這種情況從存儲器的角度來看,存儲器的存儲空間好像變小,然而這種情況是毫無壞處的,能很好的避免錯誤的發(fā)生,因為當FIFO真的讀空或?qū)憹M了,而不去阻止讀操作或?qū)懖僮鞯倪M行將會出現(xiàn)多讀或溢出的錯誤,影響異步FIFO的性能[2]。讀空、寫滿狀態(tài)判定的VHDL設計程序分別見附錄??諠M標志產(chǎn)生模塊的頂層設計電路如圖37所示,其中empty_cmp模塊和full_cmp模塊分別是讀空標志判定模塊和寫滿標志判定模塊。將該頂層電路編譯成功后生成的空滿標志產(chǎn)生模塊如圖38所示。圖37 空滿標志產(chǎn)生模塊頂層電路圖圖38 空滿標志產(chǎn)生模塊 雙端口RAM本課題設計的異步FIFO的存儲器是一個存儲深度為128 bit,數(shù)據(jù)寬度為8 bit的雙端口RAM,該RAM使用Altera的Mega Wizard PlugIn Manager工具定制,定制主要參數(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功能設置界面的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ù)據(jù)寬度后進入時鐘設置界面,選擇獨立的讀寫時鐘,并添加讀使能。(6) 在寄存器設置界面選中“Which ports should be registered?”欄下第三個選擇框,增加輸出寄存器。(7) 定制生成的雙端口RAM外部接口如圖39所示。圖39 雙端口RAM外部接口第4章 時序仿真與實現(xiàn) 模塊整合本課題采用層次化、描述語言和圖形輸入相結合的方法設計異步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。圖41 異步FIFO頂層電路圖 時序仿真及功能測試本課題使用Quartus II ,并根據(jù)仿真波形對各模塊功能進行測試,確認該異步FIFO是否滿足設計要求。 復位功能軟件仿真與測試對于復位功能的時序仿真測試波形如圖42所示。從圖中可以看出,當系統(tǒng)運行后,復位端置1,即不按下復位鍵時,異步FIFO系統(tǒng)正常工作;當復位端置0,即按下復位鍵后,無論讀寫使能信號處于什么狀態(tài),數(shù)據(jù)輸出始終不變,異步FIFO處于讀空狀態(tài)。該仿真波形表明所設計的異步FIFO電路的復位鍵能控制系統(tǒng)的全局操作,復位功能達到了預期的設計要求。圖42 復位功能時序仿真測試波形 寫操作功能時序仿真與測試對于寫操作功能的時序仿真測試波形如圖43所示。從圖中可以看出,將系統(tǒng)復位端置1,將寫使能置位,讀使能復位,經(jīng)過一段時間后,數(shù)據(jù)輸出始終不變,讀空標志始終為0,寫滿標志始終為1,這表明異步FIFO電路始終處于寫滿狀態(tài)。該仿真波形表明寫使能端控制系統(tǒng)只進行寫操作寫入數(shù)據(jù),由于不進行讀操作,一段時間后雙端口RAM存儲器存儲單元會始終處于寫滿狀態(tài),這表明所設計的異步FIFO電路的寫操作功能達到了預期的設計要求。圖43 寫操作功能時序仿真測試波形 讀操作功能時序仿真與測試對于讀操作功能的時序仿真測試波形如圖44所示。從圖中可以看出,將系統(tǒng)復位端置1,將寫使能復位,讀使能置位,數(shù)據(jù)輸出始終不變,寫滿標志始終為0,讀空標志始終為1,這表明異步FIFO電路始終處于讀空狀態(tài)。該仿真波形表明讀使能端控制系統(tǒng)只進行讀操作讀取數(shù)據(jù),由于不進行寫操作,雙端口RAM存儲器存儲單元會始終處于讀空狀態(tài),這表明所設計的異步FIFO電路的讀操作功能達到了預期的設計要求。圖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),而不會進入寫滿狀態(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的仿真波形表明所設計的異步FIFO電路的整體功能達到了預期的設計要求。圖45 異步FIFO系統(tǒng)時序仿真測試波形1圖46 異步FIFO系統(tǒng)時序仿真測試波形2 時序仿真結果總結從上述時序仿真測試結果可以看出,該異步FIFO電路在硬件邏輯設計方面實現(xiàn)了所有的預期設計功能,能快速準確的判定FIFO存儲器的空滿狀態(tài),并能通過外部讀寫使能控制系統(tǒng)內(nèi)部讀寫操作,實現(xiàn)寬度為8 bit的數(shù)據(jù)隊列在兩個獨立的異步時鐘域之間進行先進先出的數(shù)據(jù)傳輸。第5章 硬件仿真與實現(xiàn) 外部電路焊接由于本課題使用EP2C5T144C8N核心板最小系統(tǒng),其外設遠不能滿足設計要求,所以仍需焊接相應的外設電路板來連接開發(fā)板以完成異步FIFO電路的硬件實物設計。本課題除使用開發(fā)板自帶的按鍵作為系統(tǒng)復位鍵外,仍需焊接兩個撥動開關作為讀寫使能控制鍵,撥動開關原理圖如圖51所示。另外,在外設板上還需要焊接一定數(shù)量的引腳來作為相應的讀寫時鐘輸入端和數(shù)據(jù)輸入輸出端,焊接完成的外設電路板如圖52所示。對于圖52所示撥碼開關,向上撥碼為0,向下?lián)艽a為1,其中1號開關為寫使能控制開關,2號開關為讀使能控制開關,4號開關為預留的無用開關。開發(fā)板電路的(1819,AC)區(qū)域引腳為寫時鐘輸入引腳,(0809,AC)區(qū)域引腳為讀時鐘輸入引腳,(26,MO)區(qū)域引腳為Vcc引腳,(1314,H)區(qū)域引腳為控制信號輸入引腳,(01,MO)區(qū)域引腳為接地引腳,(2426,WD(右))區(qū)域引腳為輸入數(shù)據(jù)引腳,(1819,CE(右))區(qū)域引腳為寫滿狀態(tài)(full)引腳,(0809,CE(右))區(qū)域引腳為讀空狀態(tài)(empty)引腳,(0103,WD(右))區(qū)域引腳為輸出數(shù)據(jù)引腳。.GND撥碼開關100Ω控制信號輸入.Vcc圖51 撥動開關原理圖圖52 外設電路板 引腳分配焊接好外設電路板后,將外設電路板使用杜邦線接入EP2C5T144C8N最小系統(tǒng)核心板。但在此之前,仍需對設計的異步FIFO電路進行相應的引腳分配,使系統(tǒng)下載入核心板后能按照設計要求正常工作,外設電路板也需根據(jù)引腳分配情況,將相應功能區(qū)域引腳接入核心板。本設計使用Quartus II Planner工具欄分配電路引腳,分配完成后的引腳如表51所示。其中rst引腳分配為144引腳,其對應為核心板的自帶按鍵,本設計使用此按鍵作為系統(tǒng)復位鍵。引腳分配完成后點擊Settings工具欄,找到里面的Device選項欄,選中Device and Pin Options工具欄,將未用引腳設置為高阻態(tài),防止未用引腳出現(xiàn)其他狀態(tài)而對設計電路的功能測試產(chǎn)生干擾,將nCEO端口設置為I∕O口。完成這些設置后點擊Start Compilation進行編譯,編譯成功后電路圖中
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1