



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、同步fifo設(shè)計(jì)i.功能定義:用16*8RAM實(shí)現(xiàn)一個(gè)同步先進(jìn)先出(FIFO)隊(duì)列設(shè)計(jì)。由寫使能端控制該數(shù)據(jù)流的寫入FIFO,并由讀使能控制FIFO中數(shù)據(jù)的讀出。寫入和讀出的操作由時(shí)鐘的上升沿觸發(fā)。當(dāng)FIFO的數(shù)據(jù)滿和空的時(shí)候分別設(shè)置相應(yīng)的高電平加以指示。2.頂層信號(hào)定義:信號(hào)名稱I/O功能描述源/目標(biāo)備注Rstn全局復(fù)包(低后效)管腳Clkn工局時(shí)鐘管腳頻率10Mhz;占空比:50%Wr_enn低有效寫使能管腳Rd_ennj氐后效讀使能管腳Data_in7:0n,據(jù)輸入端管腳Data_out7:0Out色據(jù)輸出端管腳EmptyOut,指示信號(hào)管腳為高時(shí)表示fifo空FullOut管腳為高時(shí)表
2、示fifo滿3.頂層模塊劃分及功能實(shí)現(xiàn)該同步fifo可劃分為如下四個(gè)模塊,如圖1所示:存儲(chǔ)器模塊(RAM)用于存放及輸出數(shù)據(jù);讀地址模塊(rd_addr)用于讀地址的產(chǎn)生;寫地址模塊(wr_addr)用于寫地址的產(chǎn)生標(biāo)志模塊(flag_gen)-用于產(chǎn)生FIFO當(dāng)前空滿狀態(tài)。圖1同步FIFO的模塊劃分1) RAM模塊本設(shè)計(jì)中的FIFO采用采用16*8雙口RAM,以循環(huán)讀寫的方式實(shí)現(xiàn);l根據(jù)rd_addr_gen模塊產(chǎn)生的讀地址,在讀使能(rd_en)為高電平的時(shí)候,將RAM中rd_addr3:0地址中的對(duì)應(yīng)單元的數(shù)據(jù)在時(shí)鐘上升沿到來的時(shí)候,讀出到data_out7:0中。l根據(jù)wr_addr_
3、gen產(chǎn)生的寫地址和在寫使能(wr_en)為高電平的時(shí)候,將輸入數(shù)據(jù)(data_in7:0)在時(shí)鐘上升沿到來的時(shí)候,寫入wr_addr3:0地址對(duì)應(yīng)的單元。以下是ram程序:moduleram(clk,wr_en,rd_en,data_in,wr_addr,rd_addr,data_out);inputclk;inputrd_en;inputwr_en;input7:0data_in;input3:0wr_addr;input3:0rd_addr;output7:0data_out;reg7:0data_out;parametermax_count=5'b10000;reg7:0fif
4、o0:max_count;讀操作always(posedgeclk)beginif(rd_en)data_out<=fiford_addr;end寫操作always(posedgeclk)beginif(wr_en)fifowr_addr<=data_in;endendmodule2) wr_addr_gen該模塊用于產(chǎn)生FIFO寫數(shù)據(jù)時(shí)所用的地址。由于16個(gè)RAM單元可以用4位地址線尋址。本模塊用4位計(jì)數(shù)器(wr_addr3:0)實(shí)現(xiàn)寫地址的產(chǎn)生。l在復(fù)位時(shí)(rst=0),寫地址值為0。l如果FIFO未滿(full)且有寫使能(wr_en)有效,則wr_addr3:0加1;否則不
5、變。modulewr_addr_gen(clk,rst,full,wr_en,wr_addr);clkwr_addr(3.0)rdfullwr_eninstSinputclk,rst;inputfull;inputwr_en;output3:0wr_addr;reg3:0wr_addr;always(posedgeclkornegedgerst)beginif(!rst)wr_addr<=4'b0000;elseif(full=0&&wr_en=1)wr_addr<=wr_addr+1;elsewr_addr<=4'b0000;endendmo
6、dule3)rd_addr_gen:該模塊用于產(chǎn)生FIFO讀數(shù)據(jù)時(shí)所用的地址。由于塊用4位計(jì)數(shù)器(rd_addr3:0)實(shí)現(xiàn)讀地址的產(chǎn)生。l在復(fù)位時(shí)(rst=0),讀地址值為0。l如果FIFO未空(empty)且有讀使能(rd_enmodulerd_addr_gen(clk,rst,emptyp,rd_en,rd_addr);inputclk,rst;inputemptyp;inputrd_en;output3:0rd_addr;reg3:0rd_addr;always(posedgeclkornegedgerst)beginif(!rst)rd_addr<=4'b0000;el
7、seif(emptyp=0&&rd_en=1)rd_addr<=rd_addr+1;elserd_addr<=4'b0000;endendmodule16個(gè)RAM單元可以用4位地址線尋址。本模)有效,則rd_addr3:0力口1;否則不變。iiainriiimasisb-iaiair-ariaraBiiirmi-iran!:rd_adcir_s>en'clkrd_3d±(3.0jj-rst:emptyprdjeninstB=*f,iJi,Hg'gy一.",=,-tf,p*曜4)flag_gen模塊flag_gen模塊
8、產(chǎn)生FIFO空滿標(biāo)志。本模塊設(shè)計(jì)并不用讀寫地址判定FIFO是否空滿。設(shè)計(jì)一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器(pt_cnt)用于指示當(dāng)前周期中FIFO中數(shù)據(jù)的個(gè)數(shù)。由于FIFO中最多只有16個(gè)數(shù)據(jù),因此采用5位計(jì)數(shù)器來指示FIFO中數(shù)據(jù)個(gè)數(shù)。具體計(jì)算如下:l復(fù)位的時(shí)候,pt_cnt=0;l如果wr_en和rd_en同時(shí)有效的時(shí)候,pt_cnt不加也不減;表示同時(shí)對(duì)FIFO進(jìn)行讀寫操作的時(shí)候,F(xiàn)IFO中的數(shù)據(jù)個(gè)數(shù)不變。l如果wr_en有效且full=0,則pt_cont+1;表示寫操作且FIFO未滿時(shí)候,F(xiàn)IFO中的數(shù)據(jù)個(gè)數(shù)增加了1;l如果rd_en有效且empty=0,則pt_cont-1;表示讀操作且FIF
9、O未滿時(shí)候,F(xiàn)IFO中的數(shù)據(jù)個(gè)數(shù)減少了1;l如果pt_cnt=0的時(shí)候,表示FIFO空,需要設(shè)置empty=1;如果pt_cnt=16的時(shí)候,表示FIFO現(xiàn)在已經(jīng)滿,需要設(shè)置full=1。moduleflag_gen(clk,rst,full,emptyp,wr_en,rd_en);inputclk,rst;inputrd_en;inputwr_en;outputfull,emptyp;regfull,emptyp;reg4:0count;parametermax_count=5'b01111;always(posedgeclkornegedgerst)beginif(!rst)cou
10、nt<=0;elsebegincase(wr_en,rd_en)2'b00:count<=count;2'b01:if(count!=5'b00000)count<=count-1;2'b10:if(count!=max_count)count<=count+1;2'b11:count<=count;endcaseendendalways(count)beginif(count=5'b00000)emptyp<=1;elseemptyp<=0;endalways(count)beginif(count=max_count)full<=1;elsefull<=0;e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 管廊施工方案范本
- 錨噴支護(hù)施工方案
- 課題開題報(bào)告:管理者信息素養(yǎng)要求、技術(shù)服務(wù)能力研究
- 課題開題報(bào)告:共同富裕背景下職業(yè)教育助力鄉(xiāng)村振興的新路徑研究
- 室內(nèi)裝修腳手架施工方案
- 冷菜、冷拼與食品雕刻技藝(第二版)第七章學(xué)習(xí)資料
- 龍門吊專項(xiàng)施工方案
- 燒堿批發(fā)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 計(jì)算機(jī)整機(jī)批發(fā)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 櫥柜內(nèi)嵌燈行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- L阿拉伯糖與排毒課件
- 《沖壓工藝與模具設(shè)計(jì)》知識(shí)點(diǎn) (2)
- T∕CACM 1064-2018 針刀醫(yī)學(xué)臨床 通用要求
- 《現(xiàn)代交換原理》期末考試試習(xí)題和答案(免費(fèi))
- 手機(jī)開發(fā)流程圖
- 隊(duì)列隊(duì)形比賽評(píng)分標(biāo)準(zhǔn)
- 生產(chǎn)礦井儲(chǔ)量管理規(guī)程
- LED投光燈產(chǎn)品說明書
- 實(shí)木家具工藝標(biāo)準(zhǔn)(全流程)
- 《風(fēng)電調(diào)度運(yùn)行管理規(guī)范》
- 日本文學(xué)史試卷
評(píng)論
0/150
提交評(píng)論