名稱:8路彩燈控制器basys2開發(fā)板ISE流水燈verilog代碼(代碼在文末下載)
軟件:ISE
語(yǔ)言:Verilog
代碼功能:
設(shè)計(jì)一個(gè)8路彩燈控制器,能在Basys2開發(fā)板上實(shí)際驗(yàn)證。
用8個(gè)LED代替八路彩燈,任一時(shí)刻,這8個(gè)LED有的亮有的不亮,這稱為一種花型,再過一段時(shí)間,這8個(gè)LED又是另外一種亮暗分布,這就是另外一種花型。
控制器需要讓6種花型循環(huán)出現(xiàn)。前面說的6種花型合在一起稱為一套花型,要求最少有2套花型,使用一個(gè)開關(guān)來選擇使用哪一個(gè)花型。
另外,同一套花型中,從一種花型變換到另外一種花型的速度最少有2種,也用開關(guān)來進(jìn)行切換。
另外,數(shù)碼管上要顯示以下信息,現(xiàn)在是第幾套花型,是第幾種花型,序號(hào)可以從0開始,還要顯示當(dāng)前花型對(duì)應(yīng)的16進(jìn)制數(shù)。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在Basys2開發(fā)板驗(yàn)證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
工程文件:
程序文件:
程序編譯:
管腳分配:
RTL圖:
部分代碼展示:
`timescale?1ns?/?1ps ////////////////////////////////////////////////////////////////////////////////// //?花型控制模塊課 module?control( ????input?clk,//時(shí)鐘 ????input?reset,//復(fù)位 ????input?SW1,//花型切換 ????output?[7:0]?LED,//LED燈 ????output?[3:0]?LED_type,//第幾套花型 ????output?[3:0]?LED_num//第幾種花型 ????); //6種花型 reg?[3:0]?num1_cnt=4'd0; reg?[3:0]?num2_cnt=4'd0; //花型1計(jì)數(shù) always@(posedge?clk?or?posedge?reset) if(reset)//復(fù)位 num1_cnt<=4'd0; else?if(SW1==1)//花型1 if(num1_cnt>=4'd5)//0~5 num1_cnt<=4'd0; else num1_cnt<=num1_cnt+4'd1;//加1 else num1_cnt<=4'd0; //花型1計(jì)數(shù) always@(posedge?clk?or?posedge?reset) if(reset)//復(fù)位 num2_cnt<=4'd0; else?if(SW1==0)//花型2 if(num2_cnt>=4'd5)//0~5 num2_cnt<=4'd0; else num2_cnt<=num2_cnt+4'd1;//加1 else num2_cnt<=4'd0; //根據(jù)計(jì)數(shù)控制具體LED燈變化 reg?[7:0]?LED1=8'd0; always@(posedge?clk?or?posedge?reset) if(reset)//復(fù)位 LED1<=8'd0; else case(num1_cnt)//8個(gè)LED變化 4'd0:LED1<=8'b11100000; 4'd1:LED1<=8'b01110000; 4'd2:LED1<=8'b00111000; 4'd3:LED1<=8'b00011100; 4'd4:LED1<=8'b00001110; 4'd5:LED1<=8'b00000111; default:; endcase //根據(jù)計(jì)數(shù)控制具體LED燈變化 reg?[7:0]?LED2=8'd0; always@(posedge?clk?or?posedge?reset) if(reset)//復(fù)位 LED2<=8'd0; else case(num2_cnt)//8個(gè)LED變化 4'd0:LED2<=8'b00000111; 4'd1:LED2<=8'b00001110; 4'd2:LED2<=8'b00011100; 4'd3:LED2<=8'b00111000; 4'd4:LED2<=8'b01110000; 4'd5:LED2<=8'b11100000; default:; endcase assign?LED=(SW1)?LED1:LED2;//SW1控制花型切換LED1還是LED2 assign?LED_type=(SW1)?4'd1:4'd2;//第幾套花型 assign?LED_num=(SW1)?num1_cnt:num2_cnt;//第幾種花型 endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=279