<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Altera MAX10: LED流水燈

Altera MAX10: LED流水燈

作者: 時(shí)間:2023-11-02 來(lái)源:電子森林 收藏

在時(shí)鐘分頻實(shí)驗中我們練習了如何處理時(shí)鐘,接下來(lái)我們要學(xué)習如何利用時(shí)鐘來(lái)完成時(shí)序邏輯。

本文引用地址:http://dyxdggzs.com/article/202311/452378.htm

實(shí)現是很常見(jiàn)的一個(gè)實(shí)驗,雖然邏輯比較簡(jiǎn)單,但是里面也包含了實(shí)現時(shí)序邏輯的基本思想。要用實(shí)現有很多種方法,在這里我們會(huì )用兩種不同的方法實(shí)現。
1,模塊化設計:在之前的實(shí)驗中我們做了3-8譯碼器和時(shí)鐘分頻,如果把這兩個(gè)結合起來(lái),我們就能搭建一個(gè)自動(dòng)操作的流水LED顯示??驁D如下:

2,循環(huán)賦值:這是一種很簡(jiǎn)潔的實(shí)現效果邏輯,就是定義一個(gè)8位的變量,在每個(gè)時(shí)鐘上升沿將最低位賦值給最高位,其他位右移一位,這就實(shí)現了循環(huán)賦值。這8位輸出到LED就能實(shí)現流水燈。

模塊化設計是用硬件描述語(yǔ)言進(jìn)行數字電路設計的精髓,代碼可重復利用。而且模塊化的設計使得程序的結構也很清晰。這里我們首先看看流水燈的模塊化設計。利用了之前的3-8譯碼器和分頻器,你需要把這兩個(gè)程序也拷貝到一個(gè)工程。

// ********************************************************************
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// ********************************************************************
// File name    : flashled.v
// Module name  : flashled
// Author       : STEP
// Description  : segment initial
// Web          : www.stepfpga.com 
// 
// --------------------------------------------------------------------
// Code Revision History : 
// --------------------------------------------------------------------
// Version: |Mod. Date:   |Changes Made:
// V1.0     |2017/03/02   |Initial ver
// --------------------------------------------------------------------
// Module Function:流水燈的模塊化設計 
module flashled (clk,rst,led); 	
input clk,rst;						
	output [7:0] led;				 
         reg   [2:0] cnt ;                               //定義了一個(gè)3位的計數器,輸出可以作為3-8譯碼器的輸入         
         wire clk1h;                                     //定義一個(gè)中間變量,表示分頻得到的時(shí)鐘,用作計數器的觸發(fā)                 
         //例化module decode38,相當于調用
        decode38 u1 (                                   
			.sw(cnt),                       //例化的輸入端口連接到cnt,輸出端口連接到led  
			.led(led)
			);         //例化分頻器模塊,產(chǎn)生一個(gè)1Hz時(shí)鐘信號		
        divide #(.WIDTH(32),.N(12000000)) u2 (         //傳遞參數
			.clk(clk),
			.rst_n(rst),                   //例化的端口信號都連接到定義好的信號
			.clkout(clk1h)
			);                                      //1Hz時(shí)鐘上升沿觸發(fā)計數器,循環(huán)計數		
        always @(posedge clk1h or negedge rst)
	     if (!rst)
		cnt <= 0;
	     else
		cnt <= cnt +1;         
		endmodule

模塊化設計結構清晰,verilog語(yǔ)言是很靈活的。對于流水燈還有一種很簡(jiǎn)潔的實(shí)現方法。

// ********************************************************************
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// ********************************************************************
// File name    : flashled.v
// Module name  : flashled
// Author       : STEP
// Description  : segment initial
// Web          : www.stepfpga.com 
// 
// --------------------------------------------------------------------
// Code Revision History : 
// --------------------------------------------------------------------
// Version: |Mod. Date:   |Changes Made:
// V1.0     |2017/03/02   |Initial ver
// --------------------------------------------------------------------
// Module Function:流水燈的模塊化設計 
module flashled (clk,rst,led); 	
input clk,rst;						
	output [7:0] led;				         
	wire clk1h;                                 //定義一個(gè)中間變量,表示分頻得到的時(shí)鐘,用作計數器的觸發(fā)                 
	//例化分頻器模塊,產(chǎn)生一個(gè)1Hz時(shí)鐘信號		
        divide #(.WIDTH(32),.N(12000000)) u2 (         //傳遞參數
			.clk(clk),
			.rst_n(rst),                   //例化的端口信號都連接到定義好的信號
			.clkout(clk1h)
			);                                      //1Hz時(shí)鐘上升沿觸發(fā)循環(huán)賦值	
        reg [7:0] led;
        always@(posedge clk1h or negedge rst)
	begin
		if(!rst)
			led <= 8'b11111110;            // <=為非阻塞賦值
		else 
			led <= {led[0],led[7:1]};      
			//當時(shí)鐘上升沿來(lái)一次,執行一次賦值,賦值內容是led[0]與led[7:1]重新拼接成8位賦給led,相當于循環(huán)右移
	end	

按照下面表格定義輸入輸出信號

信號引腳信號引腳
clkJ5led[3]M12
rstJ9led[4]L15
led[0]N15led[5]K12
led[1]N14led[6]L11
led[2]M14led[7]K11

配置好以后編譯下載程序??梢哉{整例化分頻器時(shí)傳遞的參數來(lái)調整流水燈的速度。

掌握了verilog里面例化module的用法,采用模塊化設計程序。模塊化設計是非常重要的設計思想。在下一節我們會(huì )學(xué)習按鍵的另外用法按鍵消抖。



關(guān)鍵詞: 流水燈 FPGA Lattice Diamond 小腳丫

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>