leddrv.v

来自「很好的一个东西,希望能对大家有所帮助.关于PWM的编程.」· Verilog 代码 · 共 34 行

V
34
字号
module leddrv(clk,rst,in,out,cs);

input clk,rst;
input[31:0] in;
output[7:0] out;
output[3:0] cs;

reg[7:0] out;

reg[18:0] cnt;

always@(posedge(clk))
begin
  if(rst==1)begin
    cnt=0;
  end else begin
    cnt=(cnt+19'b0000000000000000001);
  end
end

always@(cnt,in)
begin
  if(cnt[18:17]==2'b00) out=in[7:0];
  else if(cnt[18:17]==2'b01) out=in[15:8];
  else if(cnt[18:17]==2'b10) out=in[23:16];
  else out=in[31:24];
end

assign cs[0]=((~cnt[18])&(~cnt[17])&cnt[16])|((~cnt[18])&(~cnt[17])&cnt[15])|((~cnt[18])&(~cnt[17])&cnt[14])|((~cnt[18])&(~cnt[17])&cnt[13]);
assign cs[1]=((~cnt[18])&(cnt[17])&cnt[16])|((~cnt[18])&(cnt[17])&cnt[15])|((~cnt[18])&(cnt[17])&cnt[14])|((~cnt[18])&(cnt[17])&cnt[13]);
assign cs[2]=((cnt[18])&(~cnt[17])&cnt[16])|((cnt[18])&(~cnt[17])&cnt[15])|((cnt[18])&(~cnt[17])&cnt[14])|((cnt[18])&(~cnt[17])&cnt[13]);
assign cs[3]=((cnt[18])&(cnt[17])&cnt[16])|((cnt[18])&(cnt[17])&cnt[15])|((cnt[18])&(cnt[17])&cnt[14])|((cnt[18])&(cnt[17])&cnt[13]);

endmodule

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?