Professional Documents
Culture Documents
Authorized licensed use limited to: Indraprastha Institute of Information Technology. Downloaded on January 15,2021 at 18:31:39 UTC from IEEE Xplore. Restrictions apply.
increased by few times. flexible and extensile software design which will enable
These examples show that scaling of memory is possible implementation of different memory types and technology
to automate and there are various variables that can be nodes with no or little modification of program itself.
provided to users to configure: memory array size, number
A. Capabilities and user interface
of banks, size of multiplexors, etc.
For each supported memory type GMC generates
Buffers (wordline drivers)
Open Access[6] layout view,
GDSII layout data,
SPICE netlist,
parasitic extracted SPF netlist,
LEF views,
Verilog and VHDL model,
NLDM and CCS timing and power libraries,
DRC/LVS verification reports.
Multiplexor The GMC is implemented as a command line tool which
takes as argument user configuration file (fig. 4) based on
which compilation is performed.
Fig. 2. Memory banking and multiplexing
SRAM4x16.config
B. Existing memory compilers
mem_type=dual_32
There are few implementations of industrial memory word_count=16
compilers. For most of the compilers the output formats word_bits=4
resemble the list of file types usually created by normal instance_name=SRAM4x16d
design process: layout and netlist views, Verilog/VHDL
do_layout=1
models, timing and power models and datasheet [7-10].
do_spice=1
Common user defined variables are: word size, defining how
many bits one record contains, address width, defining do_gds=1
number of words, multiplexing ratio (none, 2, 4, 8, etc.), do_logic=1
banking mode (none, 2, 4, 8, etc.) [8,9]. As for the structure do_lib_ccs=1
of the compiler, separate generator (assembler) structures are do_lib_nldm=1
used (fig. 3) which take as input architecture templates do_drc=1
together with memory design components and generate do_lvs=1
respective views [7,10]. do_lef=1
Parameters Layout
Netlister
Layout
Assembler
Datasheet
generator
Delay
Calculation components generating different views of SRAMs. These
Layout
components are: layout and netlist generators, logic model
generator and characterization, physical verification,
Fig. 3. Memory compiler structure example parasitic extraction and LEF generation modules. Layout and
In most of the implementations [8, 10] scripting languages netlist generation components are described below as
such as TCL are used for software control and architecture examples of GMC implementation.
template creation. Layout generation is the process that generates layout of
SRAM out of a set of leaf cells. Leaf cells are: bitcell,
II. GENERIC MEMORY COMPILER read/write circuits, decoders, timing controller, etc.
Layout generation was created around tiling placement
The main goal of GMC development was providing concept [8]. Thus most of the leaf cells are designed to
software capable of compiling different types of SRAMs connect by abutment. Generation (or tiling) process consist
with different parameters, being free from intellectual of the following steps:
property restrictions. Also, as both the tool and memories Placement of cells,
should be free from IP restrictions it was targeted on 90nm
L-Shape routing of not-abutted connections,
and 32/28nm abstract technologies available to universities
Power network synthesis,
through Synopsys University Programs [5,6]. These
technologies are already supported by respective iPDKs and Generation of I/O pins.
EDKs. Thus another goal of GMC implementation was Generation (or tiling) process is based on relations defined
between different leaf cells that the layout is constructed of
90
Authorized licensed use limited to: Indraprastha Institute of Information Technology. Downloaded on January 15,2021 at 18:31:39 UTC from IEEE Xplore. Restrictions apply.
(fig. 5). Some of the leaf cells are fixed to absolute template using $c{variable_name} syntax. In addition,
coordinates while location of others is defined relative to arithmetic operations on these and Verilog preprocessor
others, and depending on some parameters, for example, variables are allowed inside “`define” statements. The
memory size NxM, final layout could be generated. variables defined in this way can be used to replace any text
N inside the file when written surrounded by ticks “``”. Thus
names of modules could also be modified according to
requirements (fig. 7 ). Another important extension is ability
to do multiple instantiations on single line using instance
Place right of decoder, multiplication factors “#<number of instances>” syntax.
Place on top of control, align to its bottom, and
repeat N times on right
M Such statement places multiple instances of the same type
align to its right, and
repeat M times on top and M times on top when Verilog template is expanded to SPICE. In addition
based on the width of the wires connected to the pins of the
instance they could connect to multi-bit buses one by one, or
be shortened to a single bit wire. An example of this feature
is shown in the fig. 7., where pins “a” of instances of
“leaf_cell” are shortened to connect to a single-bit wire
Place control
“singlebit_b, while pins “b” are connected to separate bits of
at point (0,0) Place below bitcell, align
to its left, and repeat N
bus “multibit_a”.
times on right
B. Extensibility
Fig. 5. Layout tiling example
GMC was designed to be easily extensible which means
In the implementation of GMC such relationship is new memory types and technology nodes could be added to
defined in terms of layout template script in TCL language the system. This is required as the goal was to support 90nm
(fig. 6). and 32/28nm existing abstract technologies [4-6] as well as
create_cell my_cell other technologies that will be used in the future. Similarly,
place_condition my_cell i1 box_a absolute 0 0 support for different types of SRAMs can be added.
set_attribute my_cell.i1 mirror x
set_attribute my_cell.i1 columns 1 Extensibility of the GMC was achieved by implementation
set_attribute
set_attribute
my_cell.i1
my_cell.i1
rows 1
rotation 90 of plugin-based design, where technology node and memory
place_condition my_cell i2 box_b relative top-right i1
architecture related data are separated into independent
set_attribute my_cell.i2 offset-left 20 plugins and are included together with GMC distribution
place_condition my_cell i3 box_c overlay right-top i2 (fig. 8). While GMC is a standalone generating designs of
set_attribute
set_attribute
my_cell.i3 offset-top 20
my_cell.i4 mirror y
available memory plugins based on technology plugins.
Fig. 6. Layout tiling template example
91
Authorized licensed use limited to: Indraprastha Institute of Information Technology. Downloaded on January 15,2021 at 18:31:39 UTC from IEEE Xplore. Restrictions apply.
memory plugin design requires parameterization of existing custom memory configurations.
memory designs and their representation in the formats
required by the GMC. IV. AVAILABILITY AND DEPLOYMENT
saed32nm.cfg The Synopsys GMC is readily available through Synopsys
target_tech
arch_verilog
=
=
saed32
./d_dual_32/cells.v
University Programs for all eligible universities and
lib_spice = ./d_dual_32/cells.sp customers.
lib_lef = ./d_dual_32/cells_dual.lef
power_pins = VDD,VSS GMC was used in the design of Synopsys ARC 600
gds_path
ref_lib_path
=
=
./d_dual_32/dual.gds
./d_dual_32/sram_dual_ref_oa embedded processor for 32/28nm abstract technology[4] at
ref_lib = 32nm_lib
Synopsys Armenia Educational Department[4-6]. Memories
#timing generated with GMC complemented the set of memories
curve_path = ./common_32/curve.txt
libtemp_dir = ./common_32 included in the SAED 32/28nm EDK[4] and were used
libdata = ./common_32
libdata_bot_path = ./common_32 together with it. Also, the tool has been used in more than 25
libdata_head_path =
libdata_cases =
./common_32
max_0d95_125,typ_1d05_m40
universities around the world with positive feedback.
Fig. 9. Generic Memory Compiler plugin configuration example V. CONCLUSION
E. Current version Educational software for automatic generation of SRAMs
Synopsys GMC was built to be used with University Tool based on user-supplied configuration was developed. The
Bundle that includes licenses for a comprehensive suite of software is developed to be free from intellectual property
Synopsys EDA tools. The University Tool Bundle is restrictions and is provided to universities include in
provided to the universities through Synopsys University Synopsys University Programs. GMC is developed to be
Programs. GMC works closely with Synopsys custom design highly extensible to include new memory types and
flow tools to generate output data, for example Custom technology nodes in the future. Memories generated with
Designer layout capture tool is used for generation of Open GMC were successfully used in complex configurable
Access layout view of the SRAM. Some of the data, such as designs together with SAED EDKs and proved help in
Verilog and VHDL models are generated directly by GMC educational designs.
REFERENCES
(fig. 10).
[1] D. Flynn, T. Wood, Ph. Dworsky, V. Melikyan, E. Babayan. Teaching
IC Design with the ARM Cortex-M0 DesignStart Processor and
User Config File
Synopsys 90nm Educational Design Kit // Proceedings of the
Interdisciplinary Engineering Design Education (IEDEC) Conference,
Plugins Generic Memory Compiler Santa Clara, CA, USA, March 4-5, 2013.-P.36-38
User interface Custom Designer [2] C. Valderrama, J. Laurent, P. Possa. "Convergence in reconfigurable
2 port
LP 1 port
embedded systems.", 17th IEEE International Conference on
Tiling Placer / L-shape IC Validator
router Electronics, Circuits, and Systems (ICECS), IEEE, 2010, pp. 1144-
1 port
LP 2 port Power Network
1147.
StarRC
Synthesizer [3] K. Lampaert. "Implementing high-performance, low-power embedded
32/28n
m 90nm Netlister Library Compiler processors: Challenges and solutions: Designer track." Computer-
Aided Design (ICCAD), 2012 IEEE/ACM International Conference
Model/Timing
generator
on. IEEE, 2012.
[4] R. Goldman, K. Bartleson, T. Wood, V. Melikyan, E. Babayan,
Synopsys’ Low Power Design Educational Platform // Proceedings of
Memory data the 9th European Workshop on Microelectronics Education (EWME
2012), Grenoble, France, 2012.-P.23-26
Fig. 10. Generic Memory Compiler system [5] R. Goldman, K. Bartleson, T. Wood, K. Kranen, C. Cao, V. Melikyan,
G. Markosyan, "Synopsys' open educational design kit: capabilities,
GMC contains plugins with the following capabilities. deployment and future," IEEE International Conference on
Memories are generated for SAED 32/28nm and Microelectronic Systems Education, 2009, pp. 20-24
SAED 90nm abstract technologies. [6] R. Goldman, K. Bartleson, T. Wood, K. Kranen, C. Cao, V. Melikyan,
4 types of memories are supported "Synopsys’ Interoperable Process Design Kit," European Workshop
on Microelectronics Education, 2010
x Dual port SRAMs [7] H. Homayoun, S. Avesta, J. Gaudiot, A. Veidenbaum. "Reducing
x Single port SRAMs Power in All Major CAM and SRAM-Based Processor Units via
x Low power dual port SRAMs Centralized, Dynamic Resource Size Management." Very Large Scale
Integration (VLSI) Systems, IEEE Transactions on 19, no. 11, pp.
x Low power single port SRAMs 2081-2094, 2011
Number of words for memory is limited to be one of [8] G. Harling. "A DRAM Compiler for fully optimized memory
the following values: instances." IEEE International Workshop on Memory Technology,
Design and Testing, IEEE, 2001, pp. 3-8
x 16, 32, 64, 128, 256 for dual port memories [9] Y. Xu, G. Zhiqiang, H. Xiangqing. "A flexible embedded SRAM IP
x 16, 32, 64, 128, for single port memories compiler." IEEE International Symposium on Circuits and Systems,
2007, pp. 785-787.
D. Supporting documentation [10] Zy. Zhang, Ch. Chia-Cheng, and Jian-Bin Zheng. "A 90-nm CMOS
embedded low power SRAM compiler." IEEE 8th International
In addition to the software Synopsys also provides user Conference on, IEEE, 2009. Pp. 625 - 628
guide and step-by step tutorial to be used as a starting point [11] Wu, Sheng, et al. "A 65nm embedded low power SRAM compiler."
for university users. Also software distribution includes IEEE 13th International Symposium on Design and Diagnostics of
demo examples of memory configurations that could be Electronic Circuits and Systems (DDECS), 2010. IEEE, 2010. pp.
123-124
compiled out-of-the-box to test GMC operation and prepare
92
Authorized licensed use limited to: Indraprastha Institute of Information Technology. Downloaded on January 15,2021 at 18:31:39 UTC from IEEE Xplore. Restrictions apply.