Professional Documents
Culture Documents
STAR Mem System Integration Apnt0235
STAR Mem System Integration Apnt0235
July 2018
Version 2.0
SMS integration flow
STAR Memory System 4.x, 5.x, 6.x release
SystemC is a trademark of the Open SystemC Initiative and is used under license.
ARM and AMBA are registered trademarks of ARM Limited.
Saber is a registered trademark of SabreMark Limited Partnership and is used under license.
PCI Express is a trademark of PCI-SIG.
All other product or company names may be trademarks of their respective owners.
Synopsys, Inc.
700 E. Middlefield Road
Mountain View, CA 94043
http://www.synopsys.com
Revision History
Table of Contents
1 Introduction ............................................................................................................................................................. 5
2 The SMS integration flow into the design ................................................................................................................5
3 Test scenario .......................................................................................................................................................... 5
3.1 Design file set ..................................................................................................................................................5
3.2 Libraries used in the RTL design ..................................................................................................................... 6
3.3 Design Partitioning ...........................................................................................................................................6
4 Read design ............................................................................................................................................................ 6
4.1 Examples ......................................................................................................................................................... 7
4.1.1 Creating workspace “encoder” ...............................................................................................................7
4.1.2 Compiling down_sampling library ...........................................................................................................7
4.1.3 Compiling deinterleave library ................................................................................................................7
4.1.4 Reading encoder design as SubChip/SoC ............................................................................................. 7
4.1.5 Closing workspace .................................................................................................................................7
5 Extract memory instances hierarchy ....................................................................................................................... 8
5.1 Examples ......................................................................................................................................................... 8
5.1.1 Input file content .....................................................................................................................................8
5.1.2 Output file content ..................................................................................................................................8
6 Create SMS project .................................................................................................................................................9
6.1 Examples ......................................................................................................................................................... 9
7 Integrate SoC/Sub-chip ......................................................................................................................................... 10
7.1 Examples ....................................................................................................................................................... 11
7.1.1 Creating/Integrating “down_sampling” SubChip ................................................................................... 11
7.1.2 Creating/Integrating “deinterleaving” SubChip ..................................................................................... 11
7.1.3 Creating/Integrating “conversion” SubChip .......................................................................................... 12
7.1.4 Creating/Integrating “encoder” SoC ...................................................................................................... 12
8 Known limitations for Builder 2014.09 for Macro usage ........................................................................................ 13
8.1 If macro is defined in separate file ................................................................................................................. 13
8.2 If macro defines the module port list .............................................................................................................. 13
9 Quick Verification of the integrated RTL design .................................................................................................... 13
9.1 Examples ....................................................................................................................................................... 13
9.1.1 SubChip simulation .............................................................................................................................. 13
9.1.2 SoC simulation ..................................................................................................................................... 13
10 General Post-insertion verification means generated by Builder (Yield Accelerator and Builder) .................. 14
10.1 design.lst, design_sv.lst and design_vhdl.lst ............................................................................................. 14
10.2 hier_names.txt .......................................................................................................................................... 14
10.3 <server_name>_uds.uds .......................................................................................................................... 14
10.4 <server_name>_ chip_param.cpf ............................................................................................................. 14
10.5 hier_names_sms.txt .................................................................................................................................. 14
1 Introduction
This application note is intended to outline the SMS integration flow into the RTL design. The goal is to provide
Builder tool commands user needs to run to compile necessary libraries, read the RTL design, create SMS project,
and integrate the SMS into the RTL design. Builder allows to accomplish the integration via GUI, where all the steps
performed in the STAR Builder GUI are journalized in the <project_name>_rcl.log file. By using Builder shell and
rcl.log file the same GUI actions can be reproduced.
Read Design
Integrate SoC/Subchip
3 Test scenario
This section describes the test scenario that is considered through this document. The test case contains RTL design
with VHDL/SVerilog/Verilog mixed. Please note that there is no test case attached to this document, and file names
are given as examples.
common.v Verilog file, defines “common” memory functional wrapper module instantiating
S512x64_MEM
encoder_top_cfg.vhd VHDL file, RTL design top configuration file defining the bindings
encoder_top.vhd VHDL file, RTL design top entity/architecture. Here all the blocks are instantiated
encoder_top.v Verilog file, defines module which is instantiated in the encoder_top.vhd. Here one
S256x64_MEM is instantiated
down_sampling.v Verilog file, defines the module which is instantiated in the down_sampling.vhd
conversion.v Verilog file, defines the module which is instantiated in the encoder_top.
conversion_ctrl.v Verilog file, defines internal logic for the color conversion block. Here one
S1024x64_MEM is instantiated
Table 1 RTL Design files list
encoder_top (SoC)
deinterleaving down_sampling conversion
(VHDL/Verilog/SVerilog) (VHDL/Verilog/SVerilog) (Verilog/Sverilog)
S256x64_MEM
S512x64_MEM S512x64_MEM S1024x64_MEM
4 Read design
Builder configuration RTL Design file set Design options
Builder
Database
.
Figure 3 above, shows the RTL read diagram. The input blocks used in the figure are described below:
Builder configuration - includes Builder project options, such as Enable DC SMS Parser, Enable Comments, and
path to the compout directory, etc.
RTL Design file set - design files grouped by HDL type should be provided.
Design options – these sets include information as VHDL libraries to be compiled/used, macros definitions, include
directories, etc.
The result of the RTL design read is the Builder Database loaded.
The very first step is to read RTL design into the Builder Database. If RTL design uses libraries, then libraries should
be built prior to SMS integration.
For this purpose, the RTL design file set needs to be provided, so those can be analyzed. Here any additional
information necessary for the design processing should be provided such as include directories, VHDL top
configuration, libraries names and storage location, etc.
The section below represents the steps to be performed to read the RTL.
4.1 Examples
The examples below explain the “down_sampling” and “deinterleave” libraries compilation. Once the libraries are built
and stored, the SubChip/SoC will be created to read the RTL design. This code can be used for tasks like the
extraction of memory instances hierarchies.
Note that codes from the sections below should be sequentially performed in one RCL file.
Note: Each library/SubChip/SoC that depends on other libraries should be created in the same workspace where the
other libraries were read. In the example above, “down_sampling” and “deinterleave” libraries compilation is done in
the workspace named “encoder”. Note that in the same workspace the “encoder_top” SubChip/SoC is created.
The diagram above represents the necessary information to provide to Builder tool to analyze the RTL design and
output the memory instances information.
Here are the input blocks descriptions:
Builder configuration - includes Builder project options, such as Enable DC SMS Parser, Enable Comments, and
path to the compout directory, etc.
RTL Design file set - design files grouped by HDL type should be provided.
Design options – these sets include such information as VHDL libraries to be compiled/used, macros definitions,
include directories, etc.
Memories set – is the file containing list of the memories to be analyzed by Builder.
The output is the file containing information on the instances hierarchical path in the RTL design. This file also
contains information on whether the particular memory is instantiated in the RTL design.
Builder “Extract Hierarchical Paths” options dumps the memory instances hierarchy into the user specified file.
Once the RTL design is read, the following line will output the memory instances:
subchip $tmp_tcl extract_instances existing_file_mem_list output_ext_mem
where,
existing_file_mem_list - is the file containing memories list to be analyzed.
output_ext_mem – is the output file containing the RTL design memory instantiations path.
5.1 Examples
In the output file all the memories used in the RTL design can be found. Per each memory instantiation the full
hierarchical path is provided.
6.1 Examples
The block diagram below represents an example on how the SMS project can be architected for the “encoder_top”
design.
encoder_top
(server)
deinterleaving
(processor)
wrap_S512x64_1
(wrapper)
down_sampling S512x64_MEM
(processor) (memory)
wrap_S512x64_2
(wrapper)
conversion
(processor) S512x64_MEM
(memory)
wrap_S1024x64
(wrapper)
encoder
(processor) S1024x64
(memory)
wrap_S256x64
(wrapper)
S256x64_MEM
(memory)
Here 3 processors are created named correspondingly to the partitioning provided in the section 3. “Test Scenario”.
“deinterleaving” and “down_sampling“ are the processors dedicated for the VHDL/Verilog/SVerilog mixed partitions,
and “conversion” is the processor dedicated for Verilog/Sverilog partition only. These 3 blocks will be designed as
separate SubChips/processor.
The processor “encoder” is designed to be added to the SoC level as flat. It’s dedicated for the S256_MEM memory
integration.
Note that S512x64_MEM memory is reused for the processors “deinterleaving” and “down_sampling“.
7 Integrate SoC/Sub-chip
Builder configuration RTL Design file set Design options SMS project
Once the RTL design has been read into Builder Database and SMS project is ready (section Read Design),
integration can be started. The integration can be carried out at two levels: SubChip and SoC.
The Subchip can be integrated into the other SubChips or SoC.
Note: After adding Wrappers, Top Wrapper should be added over if:
- SMS project contains shared Wrapper
- Memory is set to Wrapper side by side
Note: Default top level port names can be modified and tie-off values can be set up for test ports.
Note: During SMS addition to SubChip, Subchip level top connections should be specified for
IEEE1500ports.
Note: In case internally connected pins have to be visible as top pins, their top port mapping should be provided, e.g.
this rule affects clk_sms. This will allow Builder to correctly generate the constraints.
7.1 Examples
Please note that the same compout directory should be used in all the SubChips/SoC creation.
set tmp_tcl [workspace $wks_tcl add_library "deinterleave" -vhdl “deinterleave.vhd” “deinterleave _cfg.vhd” –sverilog
“S512x64_MEM.v” “common.v” –verilog “deinterleave.v”]
library $tmp_tcl store_design_lib deinterleave ./lib_deinterleave
library $tmp_tcl top_configuration_name " deinterleave_cfg"
library $tmp_tcl read
1. When defining the file set used to read a design, the files containing macro definitions should be provided
before the RTL files using those macros.
9.1 Examples
Builder
design.lst
design_sv.lst hier_names.txt UDS CPF
design_vhdl.lst
Manual change
is needed
10.2 hier_names.txt
This file contains the hierarchical path information of memory instances. This information is necessary for fault
injection mechanism.
10.3 <server_name>_uds.uds
SMS project contains the uds files, which is created during the components generation in the compout directory.
Builder can generate the updated uds file by using the compout data by adding SMS related sections. Also sections
for signals and sequence are updated according to the RTL design data.
Manual changes are required to be done in order to fix the TAP related input/output definition in uds files. The
changes should apply to the following ports definition: tdo, tdi, tck, tms, trstn. Also the sequences here are defined by
using these signals, which may need to be changed. Also please make sure that uds file doesn’t contain TAP related
signals defined as e.g.“input tck”.
10.5 hier_names_sms.txt
This file provides hierarchical path information of processor, wrapper and memory instances. This is used to show
SMS hierarchy view from the top in Yield Accelerator tool.