diff options
Diffstat (limited to 'bin2bcd.sv')
| -rw-r--r-- | bin2bcd.sv | 3 |
1 files changed, 2 insertions, 1 deletions
| @@ -1,6 +1,7 @@ | |||
| 1 | module bin2bcd | 1 | module bin2bcd |
| 2 | #( BITS = 8 | 2 | #( BITS = 8 |
| 3 | , BASE = 10 | 3 | , BASE = 10 |
| 4 | , MAX_SKIP = BITS | ||
| 4 | ) | 5 | ) |
| 5 | ( input bit clk | 6 | ( input bit clk |
| 6 | , input bit reset | 7 | , input bit reset |
| @@ -64,7 +65,7 @@ always_ff @(posedge clk) begin | |||
| 64 | bin_b_data = `bin_data; | 65 | bin_b_data = `bin_data; |
| 65 | bcd = 0; | 66 | bcd = 0; |
| 66 | work = BITS; | 67 | work = BITS; |
| 67 | for (int i = BITS; i > 0; i = i - 1) begin | 68 | for (int i = 0; i < BITS && i < MAX_SKIP; i = i + 1) begin |
| 68 | if (bin_b_data[BITS-1]) break; | 69 | if (bin_b_data[BITS-1]) break; |
| 69 | bin_b_data = { bin_b_data[BITS-2:0], 1'b0 }; | 70 | bin_b_data = { bin_b_data[BITS-2:0], 1'b0 }; |
| 70 | work = work - 1; | 71 | work = work - 1; |
