2014年5月24日 星期六

16LED 跑馬燈---適用於DE2-70





module LED_16_water(CLOCK_50,KEY,LEDR);

input CLOCK_50;
input [3:0]KEY;
output [15:0] LEDR;

wire Clk_1Hz;


clk_1 U0 (CLOCK_50, KEY[0], Clk_1Hz);

ledwater U1 (LEDR[15:0], Clk_1Hz );

endmodule





module clk_1( input clk_50mhz, input reset_n, output  reg clk_1hz);


reg [25:0]  count;


always @(posedge clk_50mhz or negedge reset_n)

    if(!reset_n) begin
                        count   <= 26'd2499999;
                        clk_1hz <= 1'b0;
    end else begin
                        count   <= count + 26'h1ffffff;
        if(!count) begin
                        count   <= 26'd2499999;
                        clk_1hz <= ~clk_1hz;
        end
    end

endmodule




module ledwater( led, clk );  

output[15:0] led;
input clk;  

reg[15:0] led_r = 16'b000_000_0000_0001;  // 初始設定
assign led = led_r[15:0];  
reg dir = 1; // 方向
always @(posedge clk)
begin 
if(led_r == 16'b0000_0000_0000_0001)  
begin 
dir = 1;
led_r <= 16'b0000_0000_0000_0001;
end 
 
if(led_r == 16'b1000_0000_0000_0000) 
begin 
dir = 0;  
led_r <= 9'b1000_0000_0000_0000;
end 
 
if(dir) 
led_r <= led_r << 1; // 左移  
else 
led_r <= led_r >> 1; // 右移 
 
end 
endmodule

沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...