Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / README
CommitLineData
86530b38
AT
1
2===============================================================================
3 Installation Instructions for OpenSPARC T2 design and verification database
4===============================================================================
5
61. Download OpenSPARCT2.tar.bz2 file to your directory.
7 e.g. you downloaded this file to "/home/johndoe/OpenSPARCT2" directory.
8
92. Unzip downloaded file by using following command:
10
11 % bunzip2 OpenSPARCT2.tar.bz2
12
13 This step will create OpenSPARCT2.tar file.
14
153. Extract files from tar file by using following command:
16
17 % tar xvf OpenSPARCT2.tar
18
194. Setup environment variables by editing OpenSPARCT2.cshrc file.
20
21 Please set the following variables in OpenSPARCT2.cshrc file so you can
22 source the file for setting them up at your terminal.
23
24 (a) DV_ROOT Directory where you extracted the
25 OpenSPARCT2.tar file
26 (b) MODEL_DIR Directory where you will run your
27 simulations, you need create this
28 directory first before starting build and run
29 (c) CC_BIN Directory location for C compiler binaries
30 (e.g. cc, gcc, etc.)
31 (d) VCS_HOME Directory location for Synopsys VCS installation
32 (RTL simulator)
33 (e) VERA_HOME Directory location for Synopsys Vera installation
34 (verification suite)
35 (f) NOVAS_HOME Directory location for Novas Debussy/Verdi
36 installation (for linking waveform dumping PLI)
37 (g) NCV_HOME Directory location for Cadence NC-Verilog
38 installation (RTL simulator)
39 (h) SYN_HOME Directory location for Synopsys Design Compiler
40 installation.
41 (i) LM_LICENSE_FILE Specify all of the license files for the
42 aforementioned CAD tools.
43
44EDA Tools Requirements
45=======================
46-----------------------------------------------------------------------------
47 | T2 w/o IO SubSystem | T2 w/ IO SubSystem
48 | Solaris Linux | Solaris Linux
49-----------------------------------------------------------------------------
50EDA Simulation |
51=============== |
52 VCS | 2006.06-SP2-1 2006.06-4 | 2006.06-SP2-1 2006.06-4
53 Vera | X-2005.12-1 X-2005.12-11| X-2005.12-1 X-2005.12-11
54 NC Verilog | 6.11.s3 06.20-s006 | 6.11.s3 06.20-s006
55 Debussy | 2008.04 2008.04 | 2008.04 2008.04
56Denali PureSpec | 3.2.053 -NA- | 3.2.053 -NA-
57
58Software Tools |
59============= |
60 C/C++ Compiler| gcc 3.3.2 gcc 3.3.2 | gcc 3.3.2 gcc 3.3.2
61
62EDA Synthesis |
63============= |
64Design Compiler |X2005.09 X2005.09 | X2005.09 X2005.09
65
66FPGA Synthesis |
67============== |
68Synplify Pro | Version 9.2 |
69Xilinx ISE | 10.1.03 |
70-----------------------------------------------------------------------------
71Note: The SOC component, PEU SystemC behaviroal model, uses SystemC 2.2
72 which is a beta feature in VCS 2006.06. You will required to get
73 VCS beta licence key to compile this model.
74
75Exmple environment settings:
76============================
77
78 setenv DV_ROOT /home/johndoe/OpenSPARCT2
79 setenv MODEL_DIR /home/johndoe/OpenSPARCT2/build
80 setenv CC_BIN /import/freetools/local/gcc/3.3.2
81 setenv VCS_HOME /import/EDAtools/vcs/vcs7.1.3
82 setenv VERA_HOME /import/EDAtools/vera/vera,v6.3.10/5.x
83 setenv NOVAS_HOME /import/EDAtools/debussy/debussy,v5.4v9/5.x
84 setenv DENALI /import/EDAtools/denali/v3.2.053_32bit
85 setenv NCV_HOME /import/EDAtools/ncverilog/ncverilog,v6.11.s3/5.x
86 setenv SYN_HOME /import/EDAtools/synopsys/synopsys.vX-2005.09
87 setenv SYNP_HOME /import/EDAtools/linux/synplicity/synplify.v9.2/fpga_92
88 setenv XILINX_HOME /import/EDAtools/pkgs/xilinx/xilinx.vm10.1/ISE
89 setenv LM_LICENSE_FILE /import/EDAtools/licenses/keys/synopsys/synopsys_key:/import/EDAtools/licenses/keys/cadence/cadence_key:/import/EDAtools/licenses/keys/novas/novas_key
90
91
92 NOTE - In the 1.0 release of the OpenSPARC T2, the only supported RTL simulator
93 was Synopsys VCS version 7.1.3 or later. Also note that the Vera
94 verification platform from Synopsys was also required for simulations
95 to work.
96
97 In the version 1.1, you can also invoke NC-Verilog as the RTL simulator,
98 but Vera (from Synopsys) will still be required to run all of the
99 verification, coverage and checker related aspects within the design.
100
101
1025. After you have set all of the environment variables as above, source the file at
103 your terminal prompt by using following command :
104
105 % source OpenSPARCT2.cshrc
106
107
1086. The OpenSPARC T2 Design/Verification package now comes with following different
109 environments:
110 -------------------------------------------------------------------------
111 Environment | Platform Supported
112 | Solaris Linux
113 | VCS NCVerilog VCS NCVerilog
114 -------------------------------------------------------------------------
115 cmp1 | Y Y Y Y
116 cmp8 | Y Y Y Y
117 fc1 (default no NIU and PEU) | Y Y Y Y
118 fc8 (default no NIU and PEU) | Y Y Y Y
119 fc1 (PEU SystemC & NIU RTL) | Y N N N
120 fc8 (PEU SystemC & NIU RTL) | Y N N N
121 fc1 (PEU SystemC & NIU SystemC)| Y N N N
122 fc8 (PEU SystemC & NIU SystemC)| Y N N N
123 fpga_1c8t (fpga system model) | Y N N N
124 -------------------------------------------------------------------------
125
126 Note : a. SystemC models are fully behavioral level models.
127 b. NIU SystemC behavioral model code is based upon the NIU SAM code.
128 The NIU SAM library is located at $DV_ROOT/verif/model/systemc/niu/n2niu.so
129 c. For more details on synthesizable system-level model for FPGA,
130 please see README_FPGA file.
131
132
133 (i) The cmp1 environment consists of one SPARC CPU core, crossbar, Level 2 cache.
134 Does not include memory controller unit, or any of the on-chip I/O sub-systems.
135 It means you can run upto 8 threads in this model.
136
137 (ii) The cmp8 environment consists of 8 SPARC CPU cores, crossbar, Level 2 cache.
138 Does not include memory controller unit, or any of the on-chip I/O sub-systems.
139 It means you can run all 64 threads in this model.
140
141 (iii) The fc1 environment consists of one SPARC CPU core, crossbar, Level 2 cache,
142 memory controller unit, and all of the on-chip I/O sub-systems, except PCI-Express.
143 You can run upto 8 threads in this model.
144
145 (iv) The fc8 environment consists of the complete OpenSPARC T2 chip including
146 8 SPARC CPU coress, crossbar, Level 2 cache, memory controller unit, and all of
147 the on-chip I/O sub-systems except PCI-Express. You can run all 64 threads in this
148 model.
149
150
151 Each of the above environments comes with the "mini" regression and "all"
152 regression suites. Mini regressions comprise of only a few tests for quick
153 validation, whereas all regressions, comprise of an extensive set of tests
154 targetted at verifying majority of the blocks making up the OpenSPARC T2 design.
155
156 To run regressions, please use the 'sims' script.
157 'Sims' is a perl-based utility that is used to set-up and run all of the
158 required underlying utilities and tools for a complete build and regression.
159
160
161 The 2 important sims command parameters to remember are :
162 (Note: 'sims' supports a whole bunch of commands, so please do a % sims -h
163 to get help on those options)
164
165
166 A. -sys : system environment type
167
168 Please set this to either cmp1, cmp8, fc1 or fc8.
169
170 For example: -sys=cmp1
171
172
173 B. -group : Regression group
174
175 There are 8 choices for regression suites: (for both VCS and NC-Verilog)
176
177 -------------------------------------
178 MINI ALL
179 --------------------------------------
180 (i) mp1_mini_T2 cmp1_all_T2
181 (ii) cmp8_mini_T2 cmp8_all_T2
182 (iii) fc1_mini_T2 fc1_all_T2
183 (iv) fc8_mini_T2 fc8_all_T2
184 --------------------------------------
185
186 For example : -group=cmp1_mini_T2
187
188
189 ---------------------------------------
190
191
192 Below are some examples for running regressions, note that the diags
193 (or functional tests) comprising a diaglist will by default be run sequentially,
194 1-by-1.
195
196 You will need to craft a mechanism at your end that allows you to distribute
197 the simulation runs across several CPUs so as to complete the regressions
198 faster by parallelly launching the simulation runs.
199
200 If the script/wrapper that you have devised for sending a job to an available
201 CPU is called 'job_submit' (for example), then you only need to append the
202 following argument to 'sims' (in addition to all the ones mentioned above)
203
204 -sim_q_command="job_submit ... ... ..."
205
206 where "... ... ..." implies whatever arguments are needed to be supplied to your
207 script/wrapper for launching the job to a free avaliable CPU.
208
209
210
211 Here are all of the 8 regression suites that are supported. By default, commands
212 are meant for running with VCS (Synopsys RTL simulator). If however, you wish to
213 run the OpenSparc T2 models using NC-Verilog (Cadence RTL simulator), then you just
214 need to append
215
216 -sim=ncv
217
218 to the rest of the arguments and that is it.
219
220
221 Note: when using NC-Verilog, you will also require Synopsys Vera to run most
222 of the verification related aspects within ncsim. It will not work otherwise.
223
224
225
226 (1) To run mini regression for cmp1 environment, type
227
228 % sims -sys=cmp1 -group=cmp1_mini_T2
229 OR
230 % sims -sys=cmp1 -group=cmp1_mini_T2 -sim_q_command="job_submit ... ... ..."
231 (which is to be used only if you have devised the scheme for
232 parallelizing your runs)
233
234
235
236 For NC-Verilog, the arguments would be
237 % sims -sys=cmp1 -group=cmp1_mini_T2 -sim=ncv
238 OR
239 % sims -sys=cmp1 -group=cmp1_mini_T2 -sim=ncv -sim_q_command="job_submit ... ..."
240
241
242
243 (2) To run mini regression for cmp8 environment, type
244
245 % sims -sys=cmp8 -group=cmp8_mini_T2
246 OR
247 % sims -sys=cmp8 -group=cmp8_mini_T2 -sim=ncv (for NC-Verilog)
248
249
250 (3) To run mini regression for fc1 environment, type
251
252 % sims -sys=fc1 -group=fc1_mini_T2
253 OR
254 % sims -sys=fc1 -group=fc1_mini_T2 -sim=ncv (for NC-Verilog)
255
256
257 (4) To run mini regression for fc8 environment, type
258
259
260 % sims -sys=fc8 -group=fc8_mini_T2
261 OR
262 % sims -sys=fc8 -group=fc8_mini_T2 -sim=ncv (for NC-Verilog)
263
264
265
266 (5) To run full regression for cmp1 environment, type
267
268 % sims -sys=cmp1 -group=cmp1_all_T2
269 OR
270 % sims -sys=cmp1 -group=cmp1_all_T2 -sim=ncv (for NC-Verilog)
271
272
273 (6) To run full regression for cmp8 environment, type
274
275 % sims -sys=cmp8 -group=cmp8_all_T2
276 OR
277 % sims -sys=cmp8 -group=cmp8_all_T2 -sim=ncv (for NC-Verilog)
278
279
280
281 (7) To run full regression for fc1 environment, type
282
283 % sims -sys=fc1 -group=fc1_all_T2
284 OR
285 % sims -sys=fc1 -group=fc1_all_T2 -sim=ncv (for NC-Verilog)
286
287
288
289 (8) To run full regression for fc8 environment, type
290
291 % sims -sys=fc8 -group=fc8_all_T2
292 OR
293 % sims -sys=fc8 -group=fc8_all_T2 -sim=ncv (for NC-Verilog)
294
295
296 (9) To run full regression for fc1 environment, with NIU RTL and PIU SystemC model
297
298 % sims -sys=fc1 -group=fc1_all_T2 -config_cpp_args=-DPEU_SYSC_NIU_RTL
299
300
301 (10) To run full regression for fc8 environment, with NIU RTL and PIU SystemC model
302
303 % sims -sys=fc8 -group=fc8_all_T2 -config_cpp_args=-DPEU_SYSC_NIU_RTL
304
305 (11) To run full regression for fc1 environment, with NIU and PIU SystemC model
306
307 % sims -sys=fc1 -group=fc1_all_T2 -config_cpp_args=-DPEU_SYSC_NIU_SYSC
308
309
310 (12) To run full regression for fc8 environment, with NIU and PIU SystemC model
311
312 % sims -sys=fc8 -group=fc8_all_T2 -config_cpp_args=-DPEU_SYSC_NIU_SYSC
313
314
315 ----------------------------------------
316
317
318 *** If you already have a VCS or NC-Verilog model built and you want to
319 use that to run your regression, you can do the following, which can be
320 useful since you may not want to rebuild your simulation binaries or
321 snapshots all the time (from scratch).
322
323
324
325 (i) using a VCS -built model
326
327 % sims -sys=cmp1 -group=cmp1_mini_T2 -nobuild \
328 -model_rel_name=vcs_build_2008_02_16_0
329
330 (to get the -model_rel_name=<...>, you simply look into the original
331 sims.log file under your $MODEL_DIR, search for the string
332 "-model_rel_name", and then parse it exactly as it appears)
333
334
335 (ii) using a NC-Verilog built model
336
337 % sims -sys=cmp1 -group=cmp1_mini_T2 -sim=ncv -nobuild \
338 -model_rel_name=ncv_build_2008_02_16_0
339
340
341 If you wish to rerun a particular test using a simulation binary of your choice,
342 here is what you need to do.
343
344 since you are rerunning, you obviously have the old 'sims.log' file for the
345 particular diag that you are trying to run. Once you go inside that run directory,
346 type the following command:
347
348 % sims -rerun -model_rel_name=vcs_build_2008_02_16_0 (for VCS)
349
350 OR
351
352 % sims -rerun -sim=ncv -model_rel_name=ncv_build_2008_02_16_0 (for NC-Verilog)
353
354
355 This will then rerun the diag for you using the simulation binary that is
356 located inside the "-model_rel_name=<...>" directory that you have entered.
357
358
359
360 To get help on "sims", simply type
361
362 % sims -h
363
364
3657. Block level model building
366
367 Every block of the OpenSPARC T2 comes with a relevant filelist that allows
368 users to compile the model for that particular block. You can execute a
369 simple simulator command to achieve that. For example, to build simulation
370 model for the "ccx" block, execute following command:
371
372 cd $DV_ROOT/design/sys/iop/ccx
373 vcs -f ccx.flist -timescale=1ps/1ps +v2k
374
375 Or to build full OpenSPARC T2 CPU model, type
376
377 cd $DV_ROOT/design/sys/iop/cpu
378 vcs -f cpu.flist -timescale=1ps/1ps +v2k
379
380 One can build verification test benches in addition to the ones provided
381 by this distribution at the block level.
382
383
3848. Synthesis
385
386 Before attempting to run synthesis, please make sure you have SYN_HOME
387 environment variable pointing to Synopsys Design Compiler installation.
388
389 Use "rsyn" script to run synthesis on control and datapath blocks of the
390 OpenSPARC T2 design. For example, to run synthesis on ccu block of the
391 OpenSPARC T2 design, type following command:
392
393 rsyn ccu
394
395 To run synthesis on all the control and datapath blocks of the chip, run
396
397 rsyn -all
398
399 For the usage of this command, simply type
400
401 rsyn -h
402
4039. FPGA Synthesis and Simulation
404
405 A fully synthesizable, reduced footprint, System-level model has been
406 developed, suitable for FPGA and Emulation Platforms.
407 This model has CORE, CCX and WISHBONE Memory Controller (OpenCores).
408 This environment supports RTL Simulation, FPGA Synthesis and Gate-
409 level simulation with a one-to-one correspondence (i.e a given test
410 runs unchanged in the RTL & Gate environmentS.
411
412 Please see more details in README_FPGA file in this dir.
413
414
415
41610. Platforms
417
418 With the release 1.1 of the OpenSPARC T2, both synthesis and simulation
419 environments are supported for following platforms
420
421 - Solaris 9 running on SPARC
422 - Solaris 10 running on SPARC
423 - Red Hat Linux 2.6 and above running on x64
424
425 IMPORTANT - Full chip environment with PEU and NIU is currently unsupported on
426 Linux/x64 platform. It is only supported on the Solaris 9, and Solaris 10 running
427 on SPARC.
428
429
43011. Documents
431
432 Following documents (.pdf format) are available under 'doc' directory :
433
434 OpenSPARC T2 Core Micro-Architecture Specification
435 OpenSPARC T2 SoC Micro-Architecture Specification
436
437
438