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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [mp3/] [lib/] [xilinx/] [unisims/] [CY4.v] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 266 lampret
// $Header: /home/marcus/revision_ctrl_test/oc_cvs/cvs/or1k/mp3/lib/xilinx/unisims/CY4.v,v 1.1.1.1 2001-11-04 18:59:46 lampret Exp $
2
 
3
/*
4
 
5
FUNCTION        : Carry Logic Function
6
 
7
*/
8
 
9
`timescale  100 ps / 10 ps
10
 
11
`celldefine
12
 
13
module CY4 (COUT, COUT0, A0, A1, ADD, B0, B1, C0, C1, C2, C3, C4, C5, C6, C7, CIN );
14
 
15
    parameter cds_action = "ignore";
16
 
17
    output COUT, COUT0;
18
 
19
    input  A0, A1, ADD, B0, B1, C0, C1, C2, C3, C4, C5, C6, C7, CIN;
20
 
21
    // default unconnected input pins to 0
22
    tri0 A0, A1, ADD, B0, B1, CIN;
23
 
24
        not N1 (INV1_o, B1);
25
        not N2 (INV2_o, C0);
26
        not N3 (INV3_o, ADD);
27
        not N4 (INV4_o, C7);
28
        not N5 (INV5_o, B0);
29
        not N6 (INV6_o, C6);
30
        not N7 (INV7_o, C5);
31
        not N8 (INV8_o, C4);
32
        not N9 (INV9_o, C3);
33
        not N10 (INV10_o, OR4_o);
34
        not N11 (INV11_o, OR6_o);
35
 
36
        or O1 (OR1_o, INV4_o, INV1_o);
37
        or O2 (OR2_o, AND1_o, AND2_o);
38
        or O3 (OR3_o, INV4_o, INV5_o);
39
        or O4 (OR4_o, INV6_o, AND3_o);
40
        or O5 (OR5_o, AND4_o, AND5_o, AND6_o);
41
        or O6 (OR6_o, AND7_o, AND8_o);
42
 
43
        and AND1 (AND1_o, C1, INV2_o);
44
        and AND2 (AND2_o, ADD, C0);
45
        and AND3 (AND3_o, XOR2_o, C6);
46
        and AND4 (AND4_o, INV7_o, INV8_o, C7);
47
        and AND5 (AND5_o, C5, INV8_o, INV3_o);
48
        and AND6 (AND6_o, C5, C4, A0);
49
        and AND7 (AND7_o, C2, INV9_o);
50
        and AND8 (AND8_o, XOR4_o, C3);
51
 
52
        xor X1 (XOR1_o, OR1_o, OR2_o);
53
        xor X2 (XOR2_o, A1, XOR1_o);
54
        xor X3 (XOR3_o, OR2_o, OR3_o);
55
        xor X4 (XOR4_o, XOR3_o, A0);
56
 
57
        bufif0 T1 (BUF1_i, A1, OR4_o);
58
        bufif0 T2 (BUF1_i, COUT0, INV10_o);
59
        bufif0 T3 (BUF2_i, OR5_o, OR6_o);
60
        bufif0 T4 (BUF2_i, CIN, INV11_o);
61
 
62
        // ADD buffers so can use module path delay
63
        buf BUF1 (COUT, BUF1_i);
64
        buf BUF2 (COUT0, BUF2_i);
65
 
66
    specify
67
        (A0     *> COUT)        = (1, 1);
68
        (A1     *> COUT)        = (1, 1);
69
        (ADD    *> COUT)        = (1, 1);
70
        (B0     *> COUT)        = (1, 1);
71
        (B1     *> COUT)        = (1, 1);
72
        (CIN    *> COUT)        = (1, 1);
73
        (C0     *> COUT)        = (1, 1);
74
        (C1     *> COUT)        = (1, 1);
75
        (C2     *> COUT)        = (1, 1);
76
        (C3     *> COUT)        = (1, 1);
77
        (C4     *> COUT)        = (1, 1);
78
        (C5     *> COUT)        = (1, 1);
79
        (C6     *> COUT)        = (1, 1);
80
        (C7     *> COUT)        = (1, 1);
81
        (A0     *> COUT0)       = (1, 1);
82
        (ADD    *> COUT0)       = (1, 1);
83
        (B0     *> COUT0)       = (1, 1);
84
        (CIN    *> COUT0)       = (1, 1);
85
        (C0     *> COUT0)       = (1, 1);
86
        (C1     *> COUT0)       = (1, 1);
87
        (C2     *> COUT0)       = (1, 1);
88
        (C3     *> COUT0)       = (1, 1);
89
        (C4     *> COUT0)       = (1, 1);
90
        (C5     *> COUT0)       = (1, 1);
91
        (C7     *> COUT0)       = (1, 1);
92
    endspecify
93
 
94
endmodule
95
 
96
`endcelldefine

powered by: WebSVN 2.1.0

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