OpenCores
URL https://opencores.org/ocsvn/vtach/vtach/trunk

Subversion Repositories vtach

[/] [vtach/] [trunk/] [bcdincr.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 wd5gnr
`timescale 1us/1ns
2
// Unsigned increment
3
// based off bcdadd but assume no negatives
4
// This is used for the bug (shorter bit length)
5
// and for BCD adding
6
 
7
module bcdincr(input [16:0] a, output [16:0] z);
8
/*
9
// {c3,p,q,r} = a+b
10
// c1 and c2 are intermediate carrys
11
// a1, a2, a3 and b1, b2, b3 are
12
// digits
13
   wire [3:0] p;
14
   wire [3:0] p0;
15
   wire [3:0] a0;
16
   wire       c1;
17
   wire [3:0] q;
18
   wire [3:0] a1;
19
   wire       c2;
20
   wire [3:0] r;
21
   wire [3:0] a2;
22
   wire       c3,c4;
23
   wire [3:0] a3;
24
 
25
// split digits
26
   assign a0=a[3:0];
27
   assign a1=a[7:4];
28
   assign a2=a[11:8];
29
   assign a3=a[15:12];
30
 
31
 
32
// Use the digit add block
33
// and propagate carry
34
   digitadd add1(a0,4'b1,1'b0,r,c1);
35
   digitadd add2(a1,4'b0,c1,q,c2);
36
   digitadd add3( a2,4'b0 ,c2,p,c3);
37
   digitadd add4( a3,4'b0 ,c3,p0,c4);
38
// build up result
39
   assign z={ a[16]+c4,p0,p,q,r};
40
        */
41
        usum inc(a,13'h1,z);
42
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.