count100.v

来自「60秒秒表设计」· Verilog 代码 · 共 44 行

V
44
字号
//8bit 100-band counter
module count100(clk,rst,en,load,q,carry);
input  clk,rst,en,load;
output [7:0]q;
output carry;

reg[3:0] high1;
reg[3:0] low1;

always@(posedge clk or negedge rst)
begin
  if(rst==1'b0)
    begin
      high1[3:0]=0; 
	  low1[3:0]=0; 
    end
  else if(load==1'b0)
    begin
      high1[3:0]=0; 
	  low1[3:0]=0; 
    end
  else if(en==1'b0)
    begin
      high1[3:0]=high1[3:0]; 
	  low1[3:0]=low1[3:0];
    end
  else if(low1[3:0]==4'd9)
    begin
      low1[3:0]=4'd0;
      if(high1[3:0]==4'd9)
        begin
          high1[3:0]=4'd0;
        end
      else
        high1[3:0]=high1[3:0]+1'b1;
    end
  else
      low1[3:0]=low1[3:0]+1'b1;
end

assign carry=(low1[3:0]==4'd9&&high1[3:0]==4'd9)?1'b1:1'b0;
assign q={high1,low1};

endmodule

⌨️ 快捷键说明

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