版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單口RAM計(jì)數(shù)器</b></p><p><b> 設(shè)計(jì)題目</b></p><p> 用一個(gè)8×256的單口RAM完成256個(gè)8位計(jì)數(shù)器,計(jì)數(shù)器的初值分別為0-255,時(shí)鐘頻率為10MHz,計(jì)數(shù)器計(jì)數(shù)頻率為5/256MHz。</p><p><b> 設(shè)計(jì)規(guī)范<
2、;/b></p><p> 1、功能:完成一個(gè)模為256的計(jì)數(shù)器。</p><p><b> 2、輸入輸出變量:</b></p><p> Clk(輸入時(shí)鐘)、rst_n(復(fù)位信號(hào))、outdata(輸出信號(hào))</p><p> Clk:時(shí)鐘信號(hào),10MHZ</p><p> rs
3、t_n:復(fù)位信號(hào),低電平有效,當(dāng)復(fù)位信號(hào)有效時(shí),對(duì)存儲(chǔ)單元進(jìn)行復(fù)位,具體設(shè)計(jì):</p><p> if(!rst_n)</p><p><b> begin</b></p><p> for(i=0;i<256;i=i+1)</p><p> RAM[i]<=i; </p><p&
4、gt;<b> end </b></p><p> outdata: 輸出變量,對(duì)存儲(chǔ)單元的計(jì)數(shù)情況進(jìn)行檢驗(yàn),方便檢查。</p><p><b> 3、實(shí)現(xiàn)方案</b></p><p> 首先對(duì)整個(gè)系統(tǒng)的功能進(jìn)行研究,將整個(gè)系統(tǒng)進(jìn)行模塊劃分:</p><p><b> 模塊劃分說
5、明:</b></p><p> 二分頻功能塊:對(duì)系統(tǒng)時(shí)鐘進(jìn)行而分頻,形成5MHZ的時(shí)鐘;</p><p> 輸入變量clk(10MHZ),輸出變量為clk1(5MHZ)。</p><p> 一個(gè)地址自加模塊:當(dāng)一個(gè)時(shí)鐘上升沿來時(shí),觸發(fā)地址器加一,從而對(duì)ram單元進(jìn)行選擇,也就是實(shí)現(xiàn)了對(duì)5MHZ的256分頻,所以通過以上兩個(gè)模塊,共同完成了頻率為5/
6、256MHZ的時(shí)鐘。輸入信號(hào)為clk1(5MHZ),輸出變量為8位寬的地址信號(hào)。</p><p> 存儲(chǔ)單元:存儲(chǔ)功能,存放每個(gè)計(jì)數(shù)器的值。</p><p> 存儲(chǔ)容量:256*8,</p><p> 輸入變量:地址信號(hào)、時(shí)鐘信號(hào)clk1</p><p> 輸出變量:outdata(檢驗(yàn)結(jié)果正確性,可有可無)</p>&
7、lt;p><b> 總體實(shí)現(xiàn)方式</b></p><p><b> 最終模塊</b></p><p><b> 模塊劃分</b></p><p><b> 模塊功能</b></p><p> 二分頻:對(duì)時(shí)鐘頻率進(jìn)行分頻,得到5MHZ的頻率信
8、號(hào)clk1</p><p> 8bit地址:由每個(gè)時(shí)鐘信號(hào)clk1進(jìn)行觸發(fā),將地址信號(hào)addr進(jìn)行加一,并將結(jié)果送至存儲(chǔ)單元進(jìn)行單元選擇。</p><p> 256*8的RAM:實(shí)現(xiàn)8個(gè)模為256的計(jì)數(shù)器,并有地址線進(jìn)行選擇輸出。</p><p><b> 模塊源代碼</b></p><p><b>
9、1、二分頻</b></p><p> module diff_f(clk,out);//分頻器</p><p> input clk;</p><p> output out;</p><p><b> reg out;</b></p><p><b> initi
10、al</b></p><p><b> out=0;</b></p><p> always @(posedge clk) //分頻</p><p> out = out+1;</p><p><b> endmodule</b></p><p><
11、b> 2、地址自加</b></p><p> module address(clk1,addr1);</p><p> input clk1; //輸入時(shí)鐘</p><p> output [7:0]addr1;//輸出地址</p><p> reg [7:0]addr1;</p><p>
12、 always@(negedge clk1 or negedge rst_n)</p><p> if(!rst_n)</p><p> addr1<=8'b0000_0000;</p><p> else //if(clk1)</p><p> addr1<=addr1+1; //地址加</p>
13、<p> endmodule </p><p><b> 3、RAM存儲(chǔ)單元</b></p><p> module ram256_8(clk2,addr2,rst_n,outdata);</p><p> input clk2; //輸入時(shí)鐘</p><p> inpu
14、t rst_n; //復(fù)位信號(hào)</p><p> input [7:0]addr2; //地址信號(hào)</p><p> output [7:0]outdata; //輸出驗(yàn)證</p><p> reg [7:0] outdata;</p><p> reg [7:0] RAM [255:0];</
15、p><p> integer i;</p><p> always @(negedge clk2 or posedge rst_n ) </p><p> if(!rst_n) //系統(tǒng)復(fù)位</p><p><b> begin</b></p><p>
16、; for(i=0;i<256;i=i+1)</p><p> RAM[i]<=i; </p><p><b> end </b></p><p><b> else</b></p><p><b> begin</b></p><p&
17、gt; RAM[addr2] = RAM[addr2]+1; //計(jì)數(shù)器值加一 </p><p><b> end </b></p><p> always @(negedge clk2 ) </p><p> outdata <= RAM[addr2];</p><p> /* always @
18、(posedge clk2)</p><p> outdata <=RAM[addr2-1]; */ </p><p> endmodule4、頂層模塊</p><p> module top(clk0,rst_n0,outdata0);</p><p><b> //輸入信號(hào)說明</b></p
19、><p> input clk0;</p><p> input rst_n0;</p><p><b> //輸出信號(hào)</b></p><p> input clk0;</p><p> input rst_n0;</p><p> output [7:0]out
20、data0;</p><p> wire clk_t;</p><p> wire [7:0]addr_t;</p><p> wire[7:0] outdata0;</p><p> diff_f duv1(.clk(clk0),.out(clk_t));//模塊實(shí)例化</p><p> address
21、 duv2(.clk1(clk_t),.addr1(addr_t),.rst_n(rst_n0));</p><p> ram256_8 duv3(.clk2(clk_t),.addr2(addr_t),.rst_n(rst_n0),.outdata(outdata0)); </p><p><b> endmodule</b></p>&l
22、t;p><b> 5、驗(yàn)證模塊</b></p><p> `timescale 1ns/100ps //時(shí)間精度</p><p> module test;</p><p><b> reg CLK;</b></p><p> reg RST_N;</p><p
23、> wire [7:0]OUT;</p><p> top cc(.clk0(CLK),.rst_n0(RST_N),.outdata0(OUT)); //頂層模塊實(shí)例化 </p><p><b> initial</b></p><p><b> begin</b></p><p>
24、; RST_N=0; //對(duì)系統(tǒng)進(jìn)行清零</p><p> #3 RST_N=1; //復(fù)位信號(hào)無效</p><p><b> end</b></p><p><b> initial </b></p><p><b> begin </b></p>
25、<p><b> CLK=1;</b></p><p> forever #1 CLK=~CLK;</p><p><b> end</b></p><p> endmodule </p><p><b> 設(shè)計(jì)驗(yàn)證</b></p>
26、<p> 通過對(duì)設(shè)計(jì)的模塊進(jìn)行仿真,得到計(jì)數(shù)器的功能正確,其輸出波形如下:</p><p><b> 經(jīng)驗(yàn)證結(jié)果正確。</b></p><p> 綜合布線所得圖形如下:</p><p><b> 后仿波形</b></p><p><b> 試驗(yàn)心得</b>&
27、lt;/p><p> 通過本段時(shí)間的學(xué)習(xí),最大的感觸便是能學(xué)到新的知識(shí),能將學(xué)到的知識(shí)學(xué)以致用,更深的體會(huì)了Verilog、fpge的實(shí)際應(yīng)用。</p><p> 首先在實(shí)驗(yàn)設(shè)計(jì)開始,一定要明白整個(gè)系統(tǒng)的功能以及工作原理,也就是進(jìn)行系統(tǒng)分析,然后可采用自頂向下進(jìn)行各個(gè)子模塊的具體分析,進(jìn)行相應(yīng)的設(shè)計(jì),并且對(duì)每個(gè)模塊進(jìn)行分別得設(shè)計(jì)與驗(yàn)證,然后再進(jìn)行整體綜合與驗(yàn)證,檢驗(yàn)設(shè)計(jì)的設(shè)計(jì)完整與正確性。
28、</p><p> 在實(shí)驗(yàn)中遇到的問題是:對(duì)于變量的設(shè)計(jì)以及定義線網(wǎng)(wire)、還是寄存器(reg)類型至關(guān)重要,比如說在模塊與模塊之間連線時(shí),上一級(jí)的輸出作為下一級(jí)的輸入時(shí),應(yīng)該定義成wire類型,但作為輸入時(shí),應(yīng)定義成reg類型。</p><p> 其次是,在時(shí)鐘的設(shè)計(jì)方面,盡量避免時(shí)鐘延遲,因?yàn)橐患?jí)延遲可能導(dǎo)致后面模塊出現(xiàn)以外而不可避免的錯(cuò)誤,所以在設(shè)計(jì)時(shí),要細(xì)致認(rèn)真的設(shè)計(jì)時(shí)鐘
29、信號(hào)。且,在每個(gè)使用的if語(yǔ)句過程中,要盡量與else進(jìn)行匹配,以免產(chǎn)生鎖存。</p><p> 再次是,在試驗(yàn)中,應(yīng)學(xué)習(xí)模塊設(shè)計(jì)過程中的分析問題的方法,比如采用自頂向下還是采用自底向上的思路,要將每個(gè)模塊劃分清楚,明白每個(gè)模塊的具體內(nèi)容與功能,且明白每個(gè)模塊所需的端口以及變量定義。先寫好可行性報(bào)告,分析方案的可行性,然后再書寫電路,進(jìn)行設(shè)計(jì)。我想,在模塊設(shè)計(jì)中,一定要先驗(yàn)證可行性,為后面工作做好鋪墊,且此工作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- fpga課程設(shè)計(jì)---基于ram的十口8位計(jì)數(shù)器
- fpga課程設(shè)計(jì)---基于ram的十口8位計(jì)數(shù)器
- fpga課程設(shè)計(jì)報(bào)告---采用ram實(shí)現(xiàn)計(jì)數(shù)器及fpga功能驗(yàn)證
- 光控計(jì)數(shù)器課程設(shè)計(jì)
- 6進(jìn)制計(jì)數(shù)器課程設(shè)計(jì)
- 里程計(jì)數(shù)器課程設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)之計(jì)數(shù)器
- 光電計(jì)數(shù)器課程設(shè)計(jì)報(bào)告
- 電子計(jì)數(shù)器課程設(shè)計(jì)報(bào)告
- 里程計(jì)數(shù)器課程設(shè)計(jì)
- 24進(jìn)制計(jì)數(shù)器課程設(shè)計(jì)
- 頻率計(jì)數(shù)器課程設(shè)計(jì)
- 可控計(jì)數(shù)器的設(shè)計(jì)eda課程設(shè)計(jì)
- 課程設(shè)計(jì)---多進(jìn)制計(jì)數(shù)器的設(shè)計(jì)
- 課程設(shè)計(jì)--簡(jiǎn)易的倒數(shù)計(jì)數(shù)器
- 電子課程設(shè)計(jì)-雙通道計(jì)數(shù)器
- 雙通道計(jì)數(shù)器的電子課程設(shè)計(jì)
- 10進(jìn)制加法計(jì)數(shù)器課程設(shè)計(jì)
- 電路課程設(shè)計(jì)---自動(dòng)循環(huán)計(jì)數(shù)器
- 數(shù)電課程設(shè)計(jì)--藥片計(jì)數(shù)器
評(píng)論
0/150
提交評(píng)論