實(shí)驗(yàn)01流水燈模塊那些事兒驅(qū)動(dòng)篇i_第1頁(yè)
實(shí)驗(yàn)01流水燈模塊那些事兒驅(qū)動(dòng)篇i_第2頁(yè)
實(shí)驗(yàn)01流水燈模塊那些事兒驅(qū)動(dòng)篇i_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)一:流水燈模塊對(duì)于發(fā)展商而言,動(dòng)土儀式無(wú)疑是最重要的任務(wù)。為此,流水燈實(shí)驗(yàn)作為低級(jí)建模 II的動(dòng)土儀式再適合不過了。廢話少說,我們還是開始實(shí)驗(yàn)吧。圖 1.1 實(shí)驗(yàn)?zāi)D。如圖 1.1 所示,實(shí)驗(yàn)一有名為 led_funcmod 的功能模塊。如果無(wú)視環(huán)境信號(hào)(時(shí)鐘信號(hào)還有復(fù)位信號(hào)),該功能模塊只有一組輸出端,亦即 4 位 LED 信號(hào)。接下來(lái)讓我們來(lái)看具體內(nèi)容:led_funcmod.v以為出入端。以為常量。分別是 1 秒至 1 毫秒。11.reg 3:0i;12.reg 25:0C1;13.reg 3:0D;14.reg 25:0T;15.reg 3:0isTag; 16.17.always

2、 ( posedge CLOCK or negedge RESET )6.parameter T1S = 26'd50_000_000; /1Hz7.parameter T100MS = 26'd5_000_000; /10Hz 8.parameter T10MS = 26'd500_000; /100Hz9.parameter T1MS = 26'd50_000; /1000Hz10.1.module led_funcmod 2.(3. input CLOCK, RESET,4. output 3:0LED 5.);以是相關(guān)的寄存器以及復(fù)位操作。寄存器 i 用

3、來(lái)指向步驟,寄存器 C1 用來(lái)計(jì)數(shù),寄存器 D 用來(lái)暫存結(jié)果和驅(qū)動(dòng)輸出,寄存器 T 用來(lái)暫存計(jì)數(shù)量,isTag 則用來(lái)暫存延遲。27.case( i )28.29.0:30.if( C1 = T -1) begin C1 <= 26'd0; i <= i + 1'b1; end31.else begin C1 <= C1 + 1'b1; D <= 4'b0001; end 32.33.1:34.if( C1 = T -1) begin C1 <= 26'd0; i <= i + 1'b1; end35.else

4、 begin C1 <= C1 + 1'b1; D <= 4'b0010; end 36.37.2:38.if( C1 = T -1) begin C1 <= 26'd0; i <= i + 1'b1; end39.else begin C1 <= C1 + 1'b1; D <= 4'b0100; end 40.41.3:42.if( C1 = T -1) begin C1 <= 26'd0; i <= i + 1'b1; end43.else begin C1 <= C1 +

5、 1'b1; D <= 4'b1000; end 44.45.4:46.begin isTag <= isTag2:0, isTag3 ; i <= i + 1'b1; end 47.48.5:49. if( isTag0 ) begin T <= T1S; i <= 4'd0; end50. else if( isTag1 ) begin T <= T100MS; i <= 4'd0; end51. else if( isTag2 ) begin T <= T10MS; i <= 4'd0;

6、 end52. else if( isTag3 ) begin T <= T1MS; i <= 4'd0; end 53.54.endcase55.18. if( !RESET )19. begin20.i <= 4'd0;21.C1 <= 26'd0;22.D <= 4'b0001;23.T <= T1S;24.isTag <= 4'b0001;25. end26. else以為是操作以及輸出驅(qū)動(dòng)。步驟 03 用來(lái)實(shí)現(xiàn)流水燈效果。最初,每個(gè)步驟的停留時(shí)間是 1 秒,然后步驟 03 按順序執(zhí)行便會(huì)產(chǎn)生流水效果。步

7、驟 4 是用來(lái)切換模式,步驟 5 則是根據(jù) isTag 的內(nèi)容再為 T 寄存器載入不同的延遲內(nèi)容,如 0 延遲1 秒,1 延遲 100 毫妙,2 延遲 10 毫妙,3 延遲 1 毫妙。默認(rèn)下為模式 0(第 24行),既延遲 1 秒(第 23 行)。這個(gè)實(shí)驗(yàn)所在乎的內(nèi)容根本不是實(shí)驗(yàn)結(jié)果而是低級(jí)建模 II 本身。假若比較建模篇的流水實(shí)驗(yàn),低級(jí)建模 I 與低級(jí)建模 II 之間是有明顯的差距。首先,低級(jí)建模 II 再也不見計(jì)數(shù)器或者定時(shí)器等周邊操作。再者,低級(jí)建模 II 的整合度很高,例如步驟 03:代碼 1.1內(nèi)容如代碼 1.1 所示,步驟 03 每個(gè)步驟示意一段完整的小操作,例如步驟 0 為 4b

8、0001 保持一段時(shí)間,步驟 1 為 4b0010 保持一段時(shí)間,步驟 23 也是如此。其中 -1 也考慮了步驟切換的時(shí)間。假設(shè)流水間隔要求 1 毫妙,那么每個(gè)步驟都會(huì)準(zhǔn)確無(wú)誤停留 50000個(gè)時(shí)鐘。事實(shí)上,步驟 0 也可以換成比較方便的寫法,如代碼 1.2 所示:代碼 1.2代碼 1.2 表示,只要寄存器D 準(zhǔn)備好初值,例如 4b0001,那么步驟 03 都可以共享同樣的操作,如此一來(lái)會(huì)大大減少行數(shù),節(jié)省空間。好奇的同學(xué)一定覺得疑惑,既然代碼1.reg 3:0 D = 4b0001;2.3.0,1,2,3:4.if( C1 = T -1) begin D <= D2:0, D3 ; C

9、1 <= 26'd0; i <= i + 1'b1; end5.else begin C1 <= C1 + 1'b1; end1.0:2.if( C1 = T -1) begin C1 <= 26'd0; i <= i + 1'b1; end 3.else begin C1 <= C1 + 1'b1; D <= 4'b0001; end4.1:5.if( C1 = T -1) begin C1 <= 26'd0; i <= i + 1'b1; end 6.else be

10、gin C1 <= C1 + 1'b1; D<= 4'b0010; end7.2:8.if( C1 =T -1) begin C1 <= 26'd0; i <= i + 1'b1; end 9.else begin C1 <= C1 + 1'b1; D <= 4'b0100; end10.3:11.if( C1 = T -1) begin C1 <= 26'd0; i <= i + 1'b1; end12.else begin C1 <= C1 + 1'b1; D <= 4'b1000; end56.assign LED = D; 57.58. endmodule1.2 的寫法那么方便,反之筆者為何要選擇代碼 1.1 的寫法呢?很單純,那是為了清晰模塊內(nèi)容,以致我們?nèi)菀啄X補(bǔ)時(shí)序。感覺上,兩者雖然都差不多,但是我們只要仔看,我們便會(huì)發(fā)現(xiàn) . 代碼 1.2 它雖然書寫方便,細(xì)節(jié)模糊而且內(nèi)容也不直觀。在此,筆者需要強(qiáng)調(diào)!低級(jí)建模 II 雖然有整合技巧讓操作變得更加便捷,不過比起整合它更加注重表達(dá)能力以及清晰度。這樣做的關(guān)鍵是為了發(fā)揮主動(dòng)思想,以便擺脫無(wú)謂的。所以說,如果讀者想和低

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論