大規(guī)模數(shù)字邏輯課程設(shè)計流水燈設(shè)計_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  大規(guī)模數(shù)字邏輯課程設(shè)計</p><p><b>  題目:流水燈設(shè)計</b></p><p>  學(xué) 號: XXX </p><p>  姓 名: XXX </p><p>  班 級: XXX </p><

2、p><b>  目錄</b></p><p>  1.流水燈控制的實驗要求與思路3</p><p><b>  1.1實驗要求3</b></p><p><b>  1.2實驗思路3</b></p><p>  2.系統(tǒng)邏輯設(shè)計:4</p>&l

3、t;p><b>  3.源程序代碼4</b></p><p>  (1)分頻器部分4</p><p><b>  (2)控制模塊5</b></p><p><b>  4.實驗步驟:7</b></p><p>  5. 實驗原理圖:7</p>&l

4、t;p><b>  6.分配管腳8</b></p><p><b>  7.運行界面:8</b></p><p>  8.總結(jié)與體會10</p><p><b>  9.參考文獻(xiàn)10</b></p><p>  流水燈控制的實驗要求與思路</p>&

5、lt;p><b>  1.1實驗要求</b></p><p>  在流水燈控制系統(tǒng)中,要求開發(fā)板上的8個LED燈依次以0.5S的時間間隔從上到下再下到上的順序點亮,然后分別以1S、1.5S、2S的時間間隔和相同順序點亮8個LED燈,以此為一個循環(huán),重復(fù)以上四個步驟就可以實現(xiàn)流水燈系統(tǒng)的自動循環(huán)運作。</p><p><b>  1.2實驗思路</

6、b></p><p>  根據(jù)時鐘信號的脈沖輸入,我們以改變每個LED點亮狀態(tài)的保持的時間來改變LED的變換間隔時間,根據(jù)LED的循環(huán)點亮和時間間隔的改變設(shè)計成為一個直觀的LED流水燈自動循環(huán)系統(tǒng),由此思路我們就可以很容易的著手流水燈控制程序的設(shè)計。</p><p><b>  系統(tǒng)邏輯設(shè)計:</b></p><p>  根據(jù)以上的設(shè)計要

7、求,運用模塊化的設(shè)計思路,我們在Quartus II8.0 軟件系統(tǒng)中設(shè)計了LED流水燈控制模塊、分頻器模塊,并通過各個模塊程序之間的端口合理連接和協(xié)調(diào),成功設(shè)計出LED流水燈燈控制電路,得到邏輯結(jié)構(gòu)原理圖,即為整個流水燈控制電路的邏輯結(jié)構(gòu)。使用VerilogHDL語言設(shè)計相應(yīng)的模塊。</p><p><b>  3.源程序代碼</b></p><p>  (1)//

8、 分頻器部分 ,獲得便于試驗觀察的時鐘信號</p><p>  module clk_div(clk_out,clk_in);</p><p>  input clk_in;</p><p>  output clk_out;</p><p>  reg clk_out;</p><p>  integer count

9、er; </p><p>  parameter cnt=25_000_000; </p><p>  always @(posedge clk_in)</p><p><b>  begin</b></p><p>  counter<=counter+1;</p><p>  if(c

10、ounter==cnt/2-1)</p><p><b>  begin</b></p><p>  clk_out<=!clk_out;</p><p>  counter<=0;</p><p><b>  end</b></p><p><b> 

11、 end</b></p><p><b>  endmodule</b></p><p> ?。?)//控制模塊:</p><p>  module lsd(clk,led);</p><p>  input clk;</p><p>  output [7:0]led;// 輸出端口

12、定義為寄存器型</p><p>  reg [7:0] count;</p><p>  reg [7:0] count1;</p><p>  reg [7:0] count2;</p><p>  reg [7:0] led;</p><p>  reg [3:0] state; </p><p

13、>  always @(posedge clk)// always語句,表示每當(dāng)CLK的上升沿到來時,完成begin-end之間語句的操作</p><p><b>  begin</b></p><p>  count<=count+1;</p><p>  if(count<17)</p><p> 

14、 begin </p><p>  state = state + 4'b0001; // one clk,one state</p><p>  case(state)</p><p>  4'b0000: led <= 8'b00000001; //the 1st state</p>

15、<p>  4'b0001: led <= 8'b00000010; </p><p>  4'b0010: led <= 8'b00000100;</p><p>  4'b0011: led <= 8'b00001000;</p><p>  4'b0100: led <=

16、 8'b00010000;</p><p>  4'b0101: led <= 8'b00100000;</p><p>  4'b0110: led <= 8'b01000000;</p><p>  4'b0111: led <= 8'b10000000;</p><p

17、>  4'b1000: led <= 8'b10000000;</p><p>  4'b1001: led <= 8'b01000000;</p><p>  4'b1010: led <= 8'b00100000;</p><p>  4'b1011: led <= 8'

18、;b00010000;</p><p>  4'b1100: led <= 8'b00001000;</p><p>  4'b1101: led <= 8'b00000100;</p><p>  4'b1110: led <= 8'b00000010;</p><p>  

19、4'b1111: led <= 8'b00000001;</p><p>  default: state = 4'b0000; // default,8'b00000001</p><p><b>  endcase</b></p><p><b>  end</b></p

20、><p>  else if(count<49)</p><p><b>  begin</b></p><p>  if(count%2==0)</p><p><b>  begin</b></p><p>  state = state + 4'b0001;

21、 // one clk,one state</p><p>  case(state)</p><p>  4'b0000: led <= 8'b00000001; //the 2st state</p><p>  4'b0001: led <= 8'b00000010; </p><p> 

22、 4'b0010: led <= 8'b00000100;</p><p>  4'b0011: led <= 8'b00001000;</p><p>  4'b0100: led <= 8'b00010000;</p><p>  4'b0101: led <= 8'b001

23、00000;</p><p>  4'b0110: led <= 8'b01000000;</p><p>  4'b0111: led <= 8'b10000000;</p><p>  4'b1000: led <= 8'b10000000;</p><p>  4'

24、;b1001: led <= 8'b01000000;</p><p>  4'b1010: led <= 8'b00100000;</p><p>  4'b1011: led <= 8'b00010000;</p><p>  4'b1100: led <= 8'b00001000;

25、</p><p>  4'b1101: led <= 8'b00000100;</p><p>  4'b1110: led <= 8'b00000010;</p><p>  4'b1111: led <= 8'b00000001;</p><p>  default: st

26、ate = 4'b0000; // default,8'b00000001</p><p><b>  endcase</b></p><p><b>  end</b></p><p><b>  end</b></p><p>  else if(cou

27、nt<97)</p><p><b>  begin</b></p><p>  count1<=count1+1;</p><p>  if(count1%3==0)</p><p><b>  begin</b></p><p>  state = state

28、 + 4'b0001; // one clk,one state</p><p>  case(state)</p><p>  4'b0000: led <= 8'b00000001; //the 3st state</p><p>  4'b0001: led <= 8'b00000010; </p

29、><p>  4'b0010: led <= 8'b00000100;</p><p>  4'b0011: led <= 8'b00001000;</p><p>  4'b0100: led <= 8'b00010000;</p><p>  4'b0101: led

30、<= 8'b00100000;</p><p>  4'b0110: led <= 8'b01000000;</p><p>  4'b0111: led <= 8'b10000000;</p><p>  4'b1000: led <= 8'b10000000;</p>

31、<p>  4'b1001: led <= 8'b01000000;</p><p>  4'b1010: led <= 8'b00100000;</p><p>  4'b1011: led <= 8'b00010000;</p><p>  4'b1100: led <=

32、8'b00001000;</p><p>  4'b1101: led <= 8'b00000100;</p><p>  4'b1110: led <= 8'b00000010;</p><p>  4'b1111: led <= 8'b00000001;</p><p&

33、gt;  default: state = 4'b0000; // default,8'b00000001</p><p><b>  endcase</b></p><p><b>  end</b></p><p>  end </p><p>  else i

34、f(count<161)</p><p><b>  begin</b></p><p>  count2<=count2+1;</p><p>  if(count2%4==0)</p><p><b>  begin</b></p><p>  state =

35、 state + 4'b0001; // one clk,one state</p><p>  case(state)</p><p>  4'b0000: led <= 8'b00000001; //the 4st state</p><p>  4'b0001: led <= 8'b00000010;

36、</p><p>  4'b0010: led <= 8'b00000100;</p><p>  4'b0011: led <= 8'b00001000;</p><p>  4'b0100: led <= 8'b00010000;</p><p>  4'b0101

37、: led <= 8'b00100000;</p><p>  4'b0110: led <= 8'b01000000;</p><p>  4'b0111: led <= 8'b10000000;</p><p>  4'b1000: led <= 8'b10000000;</p

38、><p>  4'b1001: led <= 8'b01000000;</p><p>  4'b1010: led <= 8'b00100000;</p><p>  4'b1011: led <= 8'b00010000;</p><p>  4'b1100: led

39、<= 8'b00001000;</p><p>  4'b1101: led <= 8'b00000100;</p><p>  4'b1110: led <= 8'b00000010;</p><p>  4'b1111: led <= 8'b00000001;</p>

40、<p>  default: state = 4'b0000; // default,8'b00000001</p><p><b>  endcase</b></p><p><b>  end</b></p><p><b>  end</b></p>

41、<p>  else count<=0; </p><p><b>  end</b></p><p><b>  endmodule</b></p><p><b>  4.實驗步驟:</b></p><p>  將MODUL_SEL撥碼開關(guān)組合為1,2

42、,8撥上3,4,5,6,7撥下,是數(shù)碼管顯示為C1.</p><p>  建立工程,對建立的工程命名、文件命名,選擇相應(yīng)的芯片及配置,然后在打開的工程下建立VerilogHDL語言編寫的文件:文件名分別是lsd.v、clk_div.v,將這兩個文件同時加入此工程內(nèi)。</p><p>  將相應(yīng)的文件轉(zhuǎn)換為符號文件,并創(chuàng)建一個block,生成電路原理圖,然后將此文件保存到當(dāng)前工程下,并將文件

43、名命名為lsdblock,然后將其設(shè)置為頂層實體。</p><p>  將步驟2中生成的Block文件先進(jìn)行綜合,待綜合無誤之后進(jìn)行管腳分配,之后進(jìn)行全編譯生成我們需要下載到開發(fā)板上的lsd.sof文件,然后加入下載界面,選擇相應(yīng)的設(shè)置,且在JTAG模式下,然后下載該sof文件來觀察開發(fā)板上LED的變化現(xiàn)象。</p><p><b>  5. 實驗原理圖:</b>&l

44、t;/p><p><b>  6.分配管腳</b></p><p><b>  運行界面:</b></p><p> ?。?)根據(jù)lsd.v文件代碼創(chuàng)建符號文件:</p><p> ?。?)根據(jù)clk_div.v文件代碼創(chuàng)建符號文件:</p><p><b>  (3)

45、綜合時顯示框</b></p><p> ?。?)全編譯時顯示框</p><p> ?。?)下載文件的界面:</p><p><b>  8.總結(jié)與體會</b></p><p>  此次課程設(shè)計,學(xué)到了很多課內(nèi)學(xué)不到的東西,比如獨立思考解決問題,出現(xiàn)差錯的隨機應(yīng)變,和與人合作共同提高,都受益非淺,通過這次的課程

46、設(shè)計,使我對基礎(chǔ)知識加深了理解,熟練了軟件Qutars II8.0的基本操作,并且對一個設(shè)計中的流程有所了解,知道了每個操作步驟的具體作用,這樣可以使自己更加明白的去操作每一步。在課程設(shè)計中不僅知道了自己的不足之處,而且更加的了解了編程對學(xué)習(xí)的重要性,自己編程的水平直接制約了設(shè)計的進(jìn)展,所以在以后的學(xué)生生活之中一定要對編程加以鞏固保證不會拖自己的后腿;平時看課本時,有時問題老是弄不懂,做完課程設(shè)計,那些問題就迎刃而解了,而且還可以記住很

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論