您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > verilog程序-流水灯
/****************************************************程序功能:流水灯版本:1.1版权:分享快乐*****************************************************/moduleliu_shui_deng(inputwirepin_clk_in,inputwirepin_rest_n,inputwire[1:0]pin_ctrl,outputreg[7:0]pin_led_out);wireclk;reg[31:0]counter32;always@(posedgepin_clk_inornegedgepin_rest_n)beginif(pin_rest_n==1'b0)begincounter32=32'b0;endelsebegincounter32=counter32+1'b1;endendassignclk=counter32[3];reg[2:0]cur_sta,stateparameter[2:0]IDLE=3'b000;parameter[2:0]RIGHT=5'b001;parameter[2:0]LEFT=5'b010;parameter[2:0]DOUB_LEFT=5'b011;parameter[2:0]ERROR=5'b100;always@(posedgeclkornegedgepin_rest_n)beginif(pin_rest_n==1'b0)beginstate=IDLE;endelsebegincase(state)IDLE:beginif(pin_ctrl==2'b00)beginstate=LEFT;endelseif(pin_ctrl==2'b01)beginstate=RIGHT;endelseif(pin_ctrl==2'b10)beginstate=DOUB_LEFT;endelsebeginstate=ERROR;endendLEFT:beginif(pin_ctrl==2'b00)beginstate=LEFT;endelseif(pin_ctrl==2'b01)beginstate=RIGHT;endelseif(pin_ctrl==2'b10)beginstate=DOUB_LEFT;endelsebeginstate=ERROR;endendRIGHT:beginif(pin_ctrl==2'b00)beginstate=LEFT;endelseif(pin_ctrl==2'b01)beginstate=RIGHT;endelseif(pin_ctrl==2'b10)beginstate=DOUB_LEFT;endelsebeginstate=ERROR;endendDOUB_LEFT:beginif(pin_ctrl==2'b00)beginstate=LEFT;endelseif(pin_ctrl==2'b01)beginstate=RIGHT;endelseif(pin_ctrl==2'b10)beginstate=DOUB_LEFT;endelsebeginstate=ERROR;endendERROR:beginif(pin_ctrl==2'b00)beginstate=LEFT;endelseif(pin_ctrl==2'b01)beginstate=RIGHT;endelseif(pin_ctrl==2'b10)beginstate=DOUB_LEFT;endelsebeginstate=ERROR;endenddefault:state=IDLE;endcaseendendalways@(posedgeclkornegedgepin_rest_n)beginif(pin_rest_n==1'b0)beginpin_led_out[7:0]=8'b0000_0000;endelsebegincase(state)IDLE:beginpin_led_out[7:0]=8'b0000_0000;endLEFT:beginif((pin_led_out[0]+pin_led_out[1]+pin_led_out[2]+pin_led_out[3]+pin_led_out[4]+pin_led_out[5]+pin_led_out[6]+pin_led_out[7])!=8'd1)beginpin_led_out[7:0]=8'b0000_0001;endelsebeginpin_led_out[7:1]=pin_led_out[6:0];pin_led_out[0]=pin_led_out[7];endendRIGHT:beginif((pin_led_out[0]+pin_led_out[1]+pin_led_out[2]+pin_led_out[3]+pin_led_out[4]+pin_led_out[5]+pin_led_out[6]+pin_led_out[7])!=8'd1)beginpin_led_out[7:0]=8'b0000_0001;endelsebeginpin_led_out[6:0]=pin_led_out[7:1];pin_led_out[7]=pin_led_out[0];endendDOUB_LEFT:beginif((pin_led_out[0]+pin_led_out[1]+pin_led_out[2]+pin_led_out[3]+pin_led_out[4]+pin_led_out[5]+pin_led_out[6]+pin_led_out[7])!=8'd2)beginpin_led_out[7:0]=8'b0000_0011;endelsebeginpin_led_out[7:1]=pin_led_out[6:0];pin_led_out[0]=pin_led_out[7];endendERROR:beginpin_led_out[7:0]=8'b1111_1111;enddefault:pin_led_out[7:0]=8'b0000_0000;endcaseendendendmodule
本文标题:verilog程序-流水灯
链接地址:https://www.777doc.com/doc-7120590 .html