Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module bcdcounter_pre(cuenta_bcd, cuenta_prev);
- input [15:0] cuenta_bcd;
- output reg [15:0] cuenta_prev;
- wire d0_0;//indica si el dígito 1 llegó a 0
- wire d1_0;//indica si el dígito 2 llegó a 0
- wire d2_0;//indica si el dígito 3 llegó a 0
- wire d3_0;//indica si el dígito 4 llegó a 0
- assign d0_0=(cuenta_bcd[3:0]==4'd0);
- assign d1_0=(cuenta_bcd[7:4]==4'd0);
- assign d2_0=(cuenta_bcd[11:8]==4'd0);
- assign d3_0=(cuenta_bcd[15:12]==4'd0);
- always@(*)
- if(d0_0)
- cuenta_prev[3:0] = 4'd9;
- else
- cuenta_prev[3:0] = cuenta_bcd[3:0] - 4'd1;
- always@(*)
- case({d1_0,d0_0})
- 2'b01:cuenta_prev[7:4] = cuenta_bcd[7:4] - 4'd1;
- 2'b11:cuenta_prev[7:4] = 4'd9;
- default:cuenta_prev[7:4] = cuenta_bcd[7:4];
- endcase
- always@(*)
- case({d2_0,d1_0,d0_0})
- 3'b011:cuenta_prev[11:8] = cuenta_bcd[11:8] - 4'd1;
- 3'b111:cuenta_prev[11:8] = 4'd9;
- default:cuenta_prev[11:8] = cuenta_bcd[11:8];
- endcase
- always@(*)
- case({d3_0,d2_0,d1_0,d0_0})
- 4'b0111:cuenta_prev[15:12] = cuenta_bcd[15:12] - 4'd1;
- 4'b1111:cuenta_prev[15:12] = 4'd9;
- default:cuenta_prev[15:12] = cuenta_bcd[15:12];
- endcase
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement