synth_xilinx: Initial Spartan 6 block RAM inference support.
[yosys.git] / techlibs / xilinx / xc6s_brams_bb.v
1 module RAMB8BWER (
2 input CLKAWRCLK,
3 input CLKBRDCLK,
4 input ENAWREN,
5 input ENBRDEN,
6 input REGCEA,
7 input REGCEBREGCE,
8 input RSTA,
9 input RSTBRST,
10
11 input [12:0] ADDRAWRADDR,
12 input [12:0] ADDRBRDADDR,
13 input [15:0] DIADI,
14 input [15:0] DIBDI,
15 input [1:0] DIPADIP,
16 input [1:0] DIPBDIP,
17 input [1:0] WEAWEL,
18 input [1:0] WEBWEU,
19
20 output [15:0] DOADO,
21 output [15:0] DOBDO,
22 output [1:0] DOPADOP,
23 output [1:0] DOPBDOP
24 );
25 parameter INITP_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
26 parameter INITP_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
27 parameter INITP_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
28 parameter INITP_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
29
30 parameter INIT_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
31 parameter INIT_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
32 parameter INIT_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
33 parameter INIT_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
34 parameter INIT_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
35 parameter INIT_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
36 parameter INIT_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
37 parameter INIT_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
38 parameter INIT_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
39 parameter INIT_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
40 parameter INIT_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
41 parameter INIT_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
42 parameter INIT_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
43 parameter INIT_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
44 parameter INIT_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
45 parameter INIT_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
46 parameter INIT_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
47 parameter INIT_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
48 parameter INIT_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
49 parameter INIT_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
50 parameter INIT_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
51 parameter INIT_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
52 parameter INIT_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
53 parameter INIT_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
54 parameter INIT_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
55 parameter INIT_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
56 parameter INIT_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
57 parameter INIT_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
58 parameter INIT_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
59 parameter INIT_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
60 parameter INIT_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
61 parameter INIT_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
62
63 parameter RAM_MODE = "TDP";
64 parameter integer DOA_REG = 0;
65 parameter integer DOB_REG = 0;
66
67 parameter integer DATA_WIDTH_A = 0;
68 parameter integer DATA_WIDTH_B = 0;
69
70 parameter WRITE_MODE_A = "WRITE_FIRST";
71 parameter WRITE_MODE_B = "WRITE_FIRST";
72
73 parameter EN_RSTRAM_A = "TRUE";
74 parameter EN_RSTRAM_B = "TRUE";
75
76 parameter INIT_A = 18'h000000000;
77 parameter INIT_B = 18'h000000000;
78 parameter SRVAL_A = 18'h000000000;
79 parameter SRVAL_B = 18'h000000000;
80
81 parameter RST_PRIORITY_A = "CE";
82 parameter RST_PRIORITY_B = "CE";
83
84 parameter RSTTYPE = "SYNC";
85
86 parameter SIM_COLLISION_CHECK = "ALL";
87 endmodule
88
89 module RAMB16BWER (
90 input CLKA,
91 input CLKB,
92 input ENA,
93 input ENB,
94 input REGCEA,
95 input REGCEB,
96 input RSTA,
97 input RSTB,
98
99 input [13:0] ADDRA,
100 input [13:0] ADDRB,
101 input [31:0] DIA,
102 input [31:0] DIB,
103 input [3:0] DIPA,
104 input [3:0] DIPB,
105 input [3:0] WEA,
106 input [3:0] WEB,
107
108 output [31:0] DOA,
109 output [31:0] DOB,
110 output [3:0] DOPA,
111 output [3:0] DOPB
112 );
113 parameter INITP_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
114 parameter INITP_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
115 parameter INITP_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
116 parameter INITP_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
117 parameter INITP_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
118 parameter INITP_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
119 parameter INITP_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
120 parameter INITP_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
121
122 parameter INIT_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
123 parameter INIT_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
124 parameter INIT_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
125 parameter INIT_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
126 parameter INIT_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
127 parameter INIT_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
128 parameter INIT_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
129 parameter INIT_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
130 parameter INIT_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
131 parameter INIT_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
132 parameter INIT_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
133 parameter INIT_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
134 parameter INIT_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
135 parameter INIT_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
136 parameter INIT_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
137 parameter INIT_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
138 parameter INIT_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
139 parameter INIT_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
140 parameter INIT_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
141 parameter INIT_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
142 parameter INIT_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
143 parameter INIT_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
144 parameter INIT_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
145 parameter INIT_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
146 parameter INIT_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
147 parameter INIT_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
148 parameter INIT_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
149 parameter INIT_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
150 parameter INIT_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
151 parameter INIT_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
152 parameter INIT_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
153 parameter INIT_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
154 parameter INIT_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
155 parameter INIT_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
156 parameter INIT_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
157 parameter INIT_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
158 parameter INIT_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
159 parameter INIT_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
160 parameter INIT_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
161 parameter INIT_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
162 parameter INIT_28 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
163 parameter INIT_29 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
164 parameter INIT_2A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
165 parameter INIT_2B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
166 parameter INIT_2C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
167 parameter INIT_2D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
168 parameter INIT_2E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
169 parameter INIT_2F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
170 parameter INIT_30 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
171 parameter INIT_31 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
172 parameter INIT_32 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
173 parameter INIT_33 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
174 parameter INIT_34 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
175 parameter INIT_35 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
176 parameter INIT_36 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
177 parameter INIT_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
178 parameter INIT_38 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
179 parameter INIT_39 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
180 parameter INIT_3A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
181 parameter INIT_3B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
182 parameter INIT_3C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
183 parameter INIT_3D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
184 parameter INIT_3E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
185 parameter INIT_3F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
186
187 parameter integer DOA_REG = 0;
188 parameter integer DOB_REG = 0;
189
190 parameter integer DATA_WIDTH_A = 0;
191 parameter integer DATA_WIDTH_B = 0;
192
193 parameter WRITE_MODE_A = "WRITE_FIRST";
194 parameter WRITE_MODE_B = "WRITE_FIRST";
195
196 parameter EN_RSTRAM_A = "TRUE";
197 parameter EN_RSTRAM_B = "TRUE";
198
199 parameter INIT_A = 36'h000000000;
200 parameter INIT_B = 36'h000000000;
201 parameter SRVAL_A = 36'h000000000;
202 parameter SRVAL_B = 36'h000000000;
203
204 parameter RST_PRIORITY_A = "CE";
205 parameter RST_PRIORITY_B = "CE";
206
207 parameter RSTTYPE = "SYNC";
208
209 parameter SIM_COLLISION_CHECK = "ALL";
210 endmodule
211