0% found this document useful (0 votes)
117 views

Lec05 Introduction To Macros and SRAM Lint

Section 1 discusses macros and intellectual property (IP). Hard IP refers to memory blocks whose design and layout is fixed. Section 2 describes the behavior and usage of hard IP memory blocks. It explains that SRAM has faster access than DRAM but less density. The document provides an example of how to generate a 600-word, 8-bit memory block and discusses the necessary number of address and data pins. Section 2 concludes with an overview of memory compiler tools for generating memory netlists, layouts and models from specifications.

Uploaded by

yanjia8161100
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
117 views

Lec05 Introduction To Macros and SRAM Lint

Section 1 discusses macros and intellectual property (IP). Hard IP refers to memory blocks whose design and layout is fixed. Section 2 describes the behavior and usage of hard IP memory blocks. It explains that SRAM has faster access than DRAM but less density. The document provides an example of how to generate a 600-word, 8-bit memory block and discusses the necessary number of address and data pins. Section 2 concludes with an overview of memory compiler tools for generating memory netlists, layouts and models from specifications.

Uploaded by

yanjia8161100
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 48

Introduction to Macros and SRAM

NYCU-EE IC LAB Spring-2022

Lecturer: Yu-Wei Lu
Outline

Section 1 Macro
(Intellectual property, IP)

Section 2 Hard IP: Memory


Behavior
Usage

2
Outline

Section 1 Macro
(Intellectual property, IP)

Section 2 Hard IP: Memory


Behavior
Usage

3
Introduction to Intellectual Property
Intellectual Property (IP) core
What: IP is a design of a logic function that specifies how the elements are interconnected
// e.g. square root
Why: A designer can develop more quickly by applying IPs
How: IPs may be licensed to another party
Soft macro(IP): Synthesizable RTL
Portable and Editable

Unpredictable in terms of performance, timing, area, or power

IP protection risks
Firm macro(IP): Netlist format
Performance optimization under a specific fabrication technology

Need not synthesizing (sometimes time wasting)


Hard macro(IP): Hardware (LEF, GDS2 file format)
Specifies the physical pathways and wiring ( proved under specific tech.)

Moving, rotating, flipping freedom but can't touch the interior (APR)

4
Imagine that your design is for cellphone screen processing
Assume the resolution is 1920*1080, 24 bits per pixel
50M registers!!

Cellphone becomes large and power-consuming!

size power

5
Outline

Section 1 Macro
(Intellectual property, IP)

Section 2 Hard IP: Memory


Behavior
Usage

6
Memory Hierarchy

Register

SRAM
On chip
Off chip
DRAM

Disk

7
AMD Ryzen ZEN3

8
Memory
SRAM 6T SRAM
Read and Write Data only
Memory has less area than register
Memory is slower than register
Only one address can be accessed in the same
time (single port SRAM vs. dual port )

Single port SRAM I/O Description

Memory

9
SRAM Logic Table

OEN is a tri-state
buffer

Considering CLK Out enable Out disable


skew, Enable Chip enable Chip disable
Chip at least one Read Write

cycle before use


High-Z

10
Signal example

Write data 1 Write data 2 Read data


In address 1 In address 2 from address 1

Write finish Write finish Read finish


Q changed Q changed Q changed

WEN (write enable negative):


0 -> write
1 -> read

11
Appendix-Write and read in order

Write Read

12
Appendix-Write and read in order
A D A D A D A D
0 X 0 8 0 8 0 8
1 X 1 X 1 1 1 1
2 X 2 X 2 X 2 d
3 X 3 X Write
3 X 3 X Read

13
Design Tips
To avoid critical path causing timing violation
Add registers after the hard macro
Use enable signal to control output register to avoid reading unknown value
If a memory macro is used in your design, the timescale should
be set according to the timescale specified by memory file
Be aware of features and characteristics of hard macro before you
use it in your design

[ Behavior Simulation ]

comb Memory Reg comb

Only do when it is critical path


[ Gate-level Simulation ]

comb Memory comb

No need reg when it is not critical path

14
Memory generation example

Example :
Number of Words : 600
Number of Bits : 8

1. How many bits of input pins are needed?


2. How many bits of address are needed?

15
Memory generation example

Example :
Number of Words : 600
Number of Bits : 8

1. How many bits of input pins are needed?


2. How many bits of address are needed?

Answer :
D [7:0]
Q [7:0]
A [9:0]

16
Memory Compiler
NYCU-EE IC LAB Spring-2022

Lecturer: Yu-Wei Lu
Outline

Section 1 GUI

Section 2 Script

18
Memory Compiler GUI steps

Step 1. Execute Xlaunch


https://sourceforge.net/projects/xming/

Step 2. Check No Access Control


Step 3. Press Next or Yes for all other pages

2.

1.

ICLAB NCTU Institute of Electronics 19


Memory Compiler GUI steps
Step 4. Log in linux01.ee.nctu.edu.tw

Step 5. Connect to ee08


Using ssh to connect the server, which is
%ssh mem@ee08.ee.nctu.edu.tw pw: mem

in your account in other server

20
Memory Compiler GUI steps
Step 6: create your own directory
$ mkdir your_own_name (ex: iclabxxx)
$ cd your_own_name (ex: iclabxxx)

Step 7. run the following commands


$ setenv DISPLAY 140.113.x.x:0
$ /RAID2/EDA/memory/CBDK018_UMC_Artisan/orig_lib/aci/ra1sh_1/bin/ra1sh

IP must be 140.113.x.x
Press Y to allow requested access to the X server

ICLAB NCTU Institute of Electronics 21


Memory Compiler Interface

(1)

(2)

22
Memory Compiler Parameter

Instance Name : memory name


Number of Words : number of entry for the designed memory
Number of Bits : number of bits for every entry
Frequency <MHz> : memory working frequency
Ring Width : power line width
Multiplexer Width : 4-to-1, 8-to-1, 16-to-1 multiplexer
Top Metal Layer : the highest level of metal can be used in memory

23
Memory Compiler

Memory Architectures

24
Memory Compiler

Example :
32 words, 2bit , Multiplexer Width = 8

64 words, 2bit , Multiplexer Width = 16

Hint: change multiplexer width to make footprint close to square.


(

25
Memory Compiler

Spec. PostScript Datasheet : data sheet (*.ps) (use ps2pdf for .pdf)
ASCII datatable : parameter table (*.dat)
For Verilog model : behavior model be synthesized)
designer
Synopsys model : library for synthesis & APR (*.lib)
For LVS Netlist : used for LVS
APR
GDSII Layout : layout file

(2)

26
Outline

Section 1 GUI

Section 2 Script

27
SRAM generation in this course
Step 1. Log in linux??.ee.nctu.edu.tw

Step 2. Connect to ee08


Using ssh to connect the server, which is
%ssh mem@ee08.ee.nctu.edu.tw pw: mem

28
SRAM generation in this course
Step 3. Copy the directory /template and name on your own
% cp -r template your_own_name (ex: iclabxxx)

Step 4. Generate the memory you need in your directory


% cd your_own_name (ex:iclabxxx)
% ./01_mem_gen.sh RAISH 256 33 16 200

29
SRAM generation in this course
Step 5. Copy the directory back to your account
$scp -r <your_mem_dir> <your_account>@linux01.ee.nctu.edu.tw:.

30
SRAM generation in this course

Step 6. Generate db file

Step 7. Match the syntax of v file

31
Use library compiler to generate
.db files from .lib files
Step 6. Generate (*.db) from (*.lib) for (xx.tcl) usage

Invoke Synopsys
% lc_shell

Once inside lc_shell, execute the following Synopsys commands


lc_shell> read_lib xxx.lib
lc_shell> write_lib -format db USERLIB -output xxx.db
Note: Name of (*.lib) and (*.db) must be the same.

Exit lc_shell
lc_shell> exit

After generating the Synopsys model (*.db), one can generate SDF

32
Match the syntax of *.v file to SDF
Step 7. Match the syntax

Specify the setup time and hold time by replacing


$setuphold(posedge CLK &&& re_data_flag,D[9], 1.000, 0.500, NOT_D9);
to
$setuphold(posedge CLK &&& re_data_flag,posedge D[9], 1.000, 0.500, NOT_D9);
$setuphold(posedge CLK &&& re_data_flag,negedge D[9], 1.000, 0.500, NOT_D9);

Specify the delay of io paths by replacing


(CLK => Q[0])=(1.000, 1.000, 0.500, 1.000, 0.500, 1.000);
to
(posedge CLK => (Q[0]:1'bx))=(1.000, 1.000, 0.500, 1.000, 0.500, 1.000);

Note
Input part includes CEN, WEN, A, and D
Output part includes CLK to Q, and OEN to Q

33
Step6, 7 command with a single command

Step 6, 7 can be done with a single command.

Take care not to perform the same action twice.


(ex: manually changed an run the command again)

If you do wrong, you should redo from generating the memory.

Command: ./02_lib_gen_syntax_match.sh

With this command, the db file will be generated and .v file


will be changed automatically

34
Move files
Step 8. After you get .db file and .v file, put them to Exercise/04_MEM folder.

Step 9. Edit the file_list.f in /01_RTL/ folder.


For example

Then you can use them to run behavior simulation and synthesis.

35
Remind!

When using IP, information in lib file belong to certain module


name, so modifying module name in v file is forbidden.

can not modify

36
JasperGold Superlint
NYCU-EE IC LAB Spring-2022

Lecturer: Yu-Wei Lu
Outline

Overview

Choose Configure Checks

Import Design File

Setup the Clock and Reset

Extract and Prove Superlint Checks

38
Overview
Superlint combines traditional RTL linting and formal analysis,
deriving rich property-based functional checks from the RTL
automatically.

Superlint includes comprehensive lint and DFT checks.

Two modes of superlint


Command line mode (batch mode)
Graphic User Interface(GUI) mode: user-friendly!!

39
Overview (cont.)
Invoke JasperGold Superlint:
By command % jg superlint &

40
Choose Configure Checks
Configure Checks to Run
Using the Application -> Configure Superlint Checks
Or press the button

Choose the configuration, then press OK

41
Import Design File

Analyze the Design


Using the Design -> Analyze RTL
Or press the button

Choose language
Choose the design
(Import other (.v) files used in your design e.g. RA1SH.v)

42
If using DesignWare IP
bbox_m XXXX

Elaborate

43
Setup the clock and Reset

Setup the Clock


press the button

Right click the clock signal


and choose declare clock

44
Setup the clock and Reset (cont.)

Setup the Reset


press the button

Type in the reset signal

45
Extract and Prove Superlint Checks

Press the Button

46
Extract and Prove Superlint Checks

Then you can see the violation messages

Line corresponding to the


violation is highlighted in
Violation messages view the source code

Proof summary

47
Extract and Prove Superlint Checks

Check the violation description

Double click the violation


message to view the
information

48

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy