基於Verilog FPGA流水燈設計

2021-05-02 11:30:16 字數 3699 閱讀 2362

1樓:

module first_soft (clk, rst, led);//port

input clk, rst;

output [7:0] led;

reg [7:0] led;

reg [24:0] count;//計數器

reg [24:0] speed;//速度

reg [3:0] state;//狀態,[3]=1:正轉;[3]=0:翻轉;速度

always @(posedge clk or negedge rst)//自動變頻流水燈

if (!rst)

begin

state<=4'd0;

led<=8'b00000001;

count<=25'd0;

speed<=25'd20000000;

endelse

begin

count<=count+1'b1;

if (count==speed)

begin

count<=25'd0;//計數器復位

if (state[3]==0)//轉移發光二極體

begin

led<=led<<1'b1;

if (led==8'b01000000) state[3]<=1'b1;

endelse

begin

led<=led>>1'b1;

if (led==8'b00000010)

begin

case (state[2:0])

3'b000: begin speed<=25'd10000000; state[3:0]<=4'b0001; end

3'b001: begin speed<=25'd5000000; state[3:0]<=4'b0010; end

3'b010: begin speed<=25'd2500000; state[3:0]<=4'b0011; end

3'b011: begin speed<=25'd1200000; state[3:0]<=4'b0100; end

3'b100: begin speed<=25'd2500000; state[3:0]<=4'b0101; end

3'b101: begin speed<=25'd5000000; state[3:0]<=4'b0110; end

3'b110: begin speed<=25'd10000000; state[3:0]<=4'b0111; end

3'b111: begin speed<=25'd20000000; state[3:0]<=4'b0000; end

default: begin speed<=25'd20000000; state[3:0]<=4'b0000; end

endcase

endend

endend

endmodule

2樓:匿名使用者

正轉;[3]=0:翻轉;速度

3樓:匿名使用者

你是想用les實現呢還是用nios 2實現?

verilog 控制四種流水燈 fpga

4樓:匿名使用者

module ledwater(clk,led,s)input clk;

input[1:0]s;

output[7:0]led;

reg [7:0] led=0;

reg [1:0] olds=0;

always@(posedge clk) olds<=s;

always@(posedge clk)

if (olds^s)

case (s)

2'b00:  led<=1;               //*a2'b01:  led<=1;

2'b10:  led<=8'b1010_1010;

2'b11:  led<=8'b0000_0111;

endcase

else

case (s)

2'b00: led<=;//*b

2'b01: led<=;

2'b10: led<=~led;

2'b11: led<=;

endcase

endmodule

//第一種:一個燈亮,從右往左逐個移動,並迴圈//第二種:一個燈亮,從左往右逐個移動,並迴圈//第三種:一個間一個燈亮,並交替迴圈

//第四種:三個燈亮,從右往左逐個移動,並迴圈//當然可以再多一些花樣:

//如:燈從右往左逐步點亮

//  *a改為: led<=1;

//  *b改為: led<= (&led)? 1: ;

verilog實現fpga流水燈的問題。 20

5樓:匿名使用者

module filter_led( input clk ,

input reset,output reg led

);reg [24:0]cnt_led;///25m分頻25bit;[27:0]cnt_led;

always @( posedge clk or negedge reset )

begin

if ( !reset )

begin

cnt_led <= 0;

led <= 0;

endelse

begin

if ( cnt_led >= 25'h0ffffff)led <= 1;

else

led <= 0;

if ( cnt_led == 25'h1ffffff )cnt_led <= 0;

else

cnt_led <= cnt_led + 25'b1;

endend

endmodule

這個絕對可以,驗證過的

用verilog寫出 實現20hz 4個led 流水燈的程式及** 10

6樓:

週期=1/20秒

時鐘晶振選用50mhz的話,0.05秒就需要clk跑5*0.01*50*10^6= 2 500 000

module led;

input clk,rst;

output ledcon;

reg [3:0] led; //led開關鎖存位reg d1,d2,d3,d4;//四個燈開關reg [21:0] cnt_5; //0.

05秒計數器reg count; // 數滿標誌位

always @(posedge clk or negedge rst)

if (!rst)

cnt_5<=22'd0;

else if(cnt_5==22'd2500000)cnt_5<=22'd0; //數滿歸零else cnt_5<=cnt_5+1'b1;

always @(posedge clk or negedge rst))

if(!rst)

count<=1'b0;

else if (cnt_5==22'd2500000)count<=1'b1;

我擦。。剩下我不寫了。你查查網上資料吧。

就是每數滿時間就依次輪換開啟d1--d4開關並且關閉前一個。

ledcon用連續賦值

求基於51微控制器的流水燈的設計

include define uint unsigned int define uchar unsigned charsbit keya p2 1 這裡看你把按鍵設定在哪個引腳上,這個是實現功能2 sbit keyb p2 2 這個是實現功能2sbit keyc p2 7 實現功能3void del...

什麼是基於B S架構的系統設計,什麼是基於B S,c s架構的系統設計

第一 什麼是c s結構。browser server 拷貝請說明來處,哈哈 說白了就是web 什麼是基於b s,c s架構的系統設計 web程式是基於bs結構的,分三層 表現層 業務邏輯層 資料層 bs就是瀏覽器伺服器 cs 客戶端伺服器。一個是通過瀏覽器,一個是通過本地的exe來進行實現。什麼是基...

樹脂流水擺件和石材流水牆那個好,流水擺件用的是什麼樹脂

如果二選抄一的話,當然是石材比較襲好,比樹脂環保,如 果造型不是很難的話,建議用石材,如果造型屬於異形的那種而用石材又比較難達到效果,也建議用其他材質,例如不鏽鋼這些。其實鐵藝更容易成型,不過用於流水的地方容易生鏽。建議你還是先試試石材,如果不行再找卓格鐵藝問下不鏽鋼的能不能實現你想要的效果。流水擺...