segmain.v

来自「Verilog 经典实例」· Verilog 代码 · 共 52 行

V
52
字号
module segmain
  ( 
	clk,
	rst,
	datain,
	dataout,
	ledcom
   );
    input  		 clk;
	input  		 rst;
	input [15:0] datain;
	output [3:0] dataout;
	output [3:0] ledcom;
	
	reg [3:0]    ledcom;
	reg [1:0]	 comclk;
	reg [3:0]	 bcd_led;
	
	always @(posedge clk or posedge rst)
	begin
	   if (rst) begin
	      comclk <= 0;
	   end
	   else begin
	      if (comclk >= 2'b11) begin
	          comclk <= 0;
	      end
	      else begin
	          comclk <= comclk + 1;
	      end
	   end
	end
	
	always @ (comclk)
	begin
		if (comclk == 2'b00) ledcom <= 4'b0001;
		else if (comclk == 2'b01) ledcom <= 4'b0010;
		else if (comclk == 2'b10) ledcom <= 4'b0100;
		else ledcom <= 4'b1000;
	end
	
	always @ (comclk)
	begin
		if (comclk == 2'b00) bcd_led <= datain[3:0];
		else if (comclk == 2'b01) bcd_led <= datain[7:4];
		else if (comclk == 2'b10) bcd_led <= datain[11:8];
		else bcd_led <= datain[15:12];
	end
	
	assign dataout = bcd_led;
endmodule
	  

⌨️ 快捷键说明

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