FPGA型号:EG4S20BG256
软件:Anlogic TD 64-Bit Version 4.2.511
功能:按下按键则LED红、绿、蓝切换
注意事项:在Xilinx的ISE或者Vivado中,可以在定义的时候赋初值;在Intel的Quartus中可以用initial赋初值,在此版本的TD软件中,无法赋初值,因此在代码中用
if(sfr==3'b000)begin
sfr <= 3'b001;赋初值
主体代码如下。
module led
(
input wire CLK_IN, //时钟输入,24MHz
input wire RST_N, //复位按键输入,低有效
output wire [2:0]RGB_LED //RGB led输出
);
wire clk;
wire en5ms;
wire clear_key1;
reg [2:0]sfr;
assign clk = CLK_IN;
assign RGB_LED = ~sfr;
genEn #(.DIV_NUM(120000),.WIDTH(18))EN5ms_IN(
.clk(clk),
.rst(1'b0),
.en(en5ms)
);
clearkey clearkey1(
.clk(clk),
.sample_enable(en5ms),
.key_in(RST_N),
.clear_key(clear_key1)
);
negEdge_detect Key1ED(
.clk(clk),
.din(clear_key1),
.en(key1press)
);
always @(posedge clk)
begin
if(sfr==3'b000)begin
sfr <= 3'b001;
end else begin
if(key1press)begin
sfr <= {sfr[1:0],sfr[2]};
end
end
end
endmodule