blob: a0b500060a7fb83eb368661766e5fc4e1869057a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
ram block $__CC_BRAM_TDP_ {
option "MODE" "20K" {
abits 14;
widths 1 2 5 10 20 per_port;
cost 129;
}
option "MODE" "40K" {
abits 15;
widths 1 2 5 10 20 40 per_port;
cost 257;
}
option "MODE" "CASCADE" {
abits 16;
# hack to enforce same INIT layout as in the other modes
widths 1 2 5 per_port;
cost 513;
}
byte 1;
init no_undef;
port srsw "A" "B" {
clock anyedge;
clken;
option "MODE" "20K" {
width mix;
}
option "MODE" "40K" {
width mix;
}
option "MODE" "CASCADE" {
width mix 1;
}
portoption "WR_MODE" "NO_CHANGE" {
rdwr no_change;
}
portoption "WR_MODE" "WRITE_THROUGH" {
rdwr new;
}
wrbe_separate;
}
}
ram block $__CC_BRAM_SDP_ {
option "MODE" "20K" {
abits 14;
widths 1 2 5 10 20 40 per_port;
cost 129;
}
option "MODE" "40K" {
abits 15;
widths 1 2 5 10 20 40 80 per_port;
cost 257;
}
byte 1;
init no_undef;
port sr "R" {
option "MODE" "20K" {
width 40;
}
option "MODE" "40K" {
width 80;
}
clock anyedge;
clken;
}
port sw "W" {
option "MODE" "20K" {
width 40;
}
option "MODE" "40K" {
width 80;
}
clock anyedge;
clken;
wrbe_separate;
}
}
|