module demo1( input[7:0]x, input clk, input clr, output reg[6:0]atog, output reg[3:0]an ); wire[1:0]s; reg[3:0]digit; reg[19:0]clkdiv; assign s=clkdiv[19:18]; always@(*) case(s) 0:digit=x[7:4]; 1:digit=x[3:0]; 2:digit=0; 3:digit=0; default:digit=x[7:4]; endcase always@(*) case(digit) 0:atog=7'b0000001; 1:atog=7'b1001111; 2:atog=7'b0010010; 3:atog=7'b0000110; 4:atog=7'b1001100; 5:atog=7'b0100100; 6:atog=7'b0100000; 7:atog=7'b0001111; 8:atog=7'b0000000; 9:atog=7'b0000100; 'hA:atog=7'b0001000; 'hB:atog=7'b1100000; 'hC:atog=7'b0110001; 'hD:atog=7'b1000010; 'hE:atog=7'b0110000; 'hF:atog=7'b0111000; default:atog=7'b0000001; endcase always@(*) begin an=4'b1111; an[s]=0; end
模板资料
资源共享
always@(posedge clk or posedge clr) begin if(clr==1) clkdiv<=0; else clkdiv<=clkdiv+1; end endmodule
NET\NET\NET\NET\NET\NET\NET\NET\NET\NET\NET\NET\NET\NET\ NET\ NET\ NET\ NET\ NET\ NET\ NET\
module demo1( input[7:0]x, input clk, input clr, output reg[6:0]atog, output reg[3:0]an ); wire[1:0]s; reg[3:0]digit; reg[19:0]clkdiv; assign s=clkdiv[19:18]; always@(*)
模板资料 资源共享
case(s) 0:if(x[3:0]>=4'b1010) digit=x[3:0]-4'b1010; else digit=x[3:0]; 1:if(x[3:0]>=4'b1010) digit=4'b0001; else digit=4'b0000; 2:if(x[7:4]>=4'b1010) digit=x[7:4]-4'b1010; else digit=x[7:4]; 3:if(x[7:4]>=4'b1010) digit=4'b0001; else digit=4'b0000; default:digit=4'b0000; endcase always@(*) case(digit) 0:atog=7'b0000001; 1:atog=7'b1001111; 2:atog=7'b0010010; 3:atog=7'b0000110; 4:atog=7'b1001100; 5:atog=7'b0100100; 6:atog=7'b0100000; 7:atog=7'b0001111; 8:atog=7'b0000000; 9:atog=7'b0000100; 'hA:atog=7'b0001000; 'hB:atog=7'b1100000; 'hC:atog=7'b0110001; 'hD:atog=7'b1000010; 'hE:atog=7'b0110000; 'hF:atog=7'b0111000; default:atog=7'b0000001; endcase always@(*) begin an=4'b1111; an[s]=0; end
模板资料
资源共享