52
Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Embed Size (px)

Citation preview

Page 1: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 1

Unit 5 Programmable Logic and Storage Devices –RAMs and FPGAs

Page 2: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 2

Unit 5-1 Static Random Access Memory (SRAM)

Page 3: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 3

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Reason for using random access memory (RAM) Computers and other digital systems perform operations that

retrieve, manipulate, transform and store data Read only memories (ROMs) can not dynamically store data Registers support fast and random storage, but cannot be

used for mass storage because they are implemented with FFs and occupy too much physical area

RAM is faster and occupies less area than a register file Most RAMs are volatile- the information vanishes after

power is removed from the device There are two types of RAMs: static and dynamic

Dynamic RAMs need refresh and static RAMs don’t

Page 4: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 4

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Basic static RAM (SRAM) structureWord EN

Bit

_lin

e_N

Bit

_lin

e

cellCell_N

Word EN

Bit

_lin

e_N

Bit

_lin

e

Page 5: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 5

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

module SRAM1 (data_out, data_in, CS_N,WE_N);    output data_out;     input data_in;    input CS_N, WE_N;

wire data_out = (CS_N==0) ? (WE_N==0) ? data_in : data_out : 1’bz;endmodule 

Level-sensitive Verilog models of RAMs

A 32K 8 SRAM

data_outCS

WE

data_in

CSWEOE

MuxMux

Demux

D_IN

D_OUT

CSWEOE

MuxMux

Demux

D_IN

D_OUT

CSWEOE

MuxMux

Demux

D_IN

D_OUT

CSWEOE

MuxMux

Demux

D_IN

D_OUT

CSWEOE

MuxMux

Demux

D_IN

D_OUT

CSWEOE

MuxMux

Demux

D_IN

D_OUT

CSWEOE

MuxMux

Demux

D_IN

D_OUT

CSWEOE

MuxMux

Demux

D_IN

D_OUT

Decoder

data_in

data_out

Page 6: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 6

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Basic static RAM (SRAM) structure

A 16K SRAM

module SRAM2 (data, CS_N,WE_N,OE_N);    output data_out;     input CS_N, WE_N,OE_N;

wire latch_out = ((CS_N==0) && (WE_N==0)&&(OE_N==1)) ? data : latch_out;

assign data = ((CS_N==0) && (WE_N==1)&&(OE_N==0)) ? latch_out : 1’bz;

endmodule 

data

CS

OE

WE

Column Input/OutputColumn Input/Output

AA1010

AA99

AA00

AA33

AA22

AA11

AA00 DD7 7 DD6 6 DD5 5 DD44DD3 3 DD2 2 DD1 1 DD00

Page 7: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 7

Unit 5-3 Altera FPGA Architecture

Page 8: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 8

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Architecture of Stratix Logic array blocks (LABs) :

10 logic elements (LEs) in each LAB Memory block structures

512 RAM: simple dual-port memory blocks (512 +parity =576) M4K RAM: true dual-port memory blocks (4K + parity =4608) M-RAM: true dual-port memory blocks (512K+parity=589,824)

DSP blocks 9×9- or 18×18- or 36×36-bit multiplier with add and subtraction 18-bit input shift registers

I/O element (IOE) : contains a bidirectional I/O buffer and six registers Supports single-ended, differential I/O standards and external

memory devices such as DDR-SDRAM

Page 9: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 9

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 10: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 10

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Logic elements (LE) : the smallest unit of logics in the Stratix architecture each of which contains : A four-input LUT A programmable register :

can be configured for D, T, JK and SR FFs Asynchronous data,

Support single bit addition and subtraction

Page 11: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 11

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 12: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 12

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 13: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 13

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 14: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 14

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 15: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 15

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 16: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 16

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 17: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 17

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 18: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 18

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 19: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 19

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Single-Clock SRAM without read-through-write behavior

module ram_infer (q, a, d, we, clk);output reg [7:0] q;input [7:0] d;input [6:0] a;input we, clk;reg [7:0] mem [127:0];always @ (posedge clk) beginif (we)mem[a] <= d;q <= mem[a]; // q doesn't get d in this clock cycleendendmodule

clk

we

a A0 A1 A3

d d(A0)+ d(A1)+ d(A3)+

q d(A1)d(A0)

A2

d(A2)+

d(A2)

Page 20: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 20

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Single-Clock SRAM with read-through-write behavior

module ram_infer (q, a, d, we, clk);output [7:0] q;input [7:0] d;input [6:0] a;input we, clk;reg [6:0] read_add;reg [7:0] mem [127:0];always @ (posedge clk) beginif (we)mem[a] <= d;read_add <= a;endassign q = mem[read_add];endmodule

clk

we

a A0 A1 A3

d d(A0)+ d(A1)+ d(A3)+

q d(A1)+d(A0)+

A2

d(A2)+

d(A2)+

Page 21: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 21

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 22: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 22

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 23: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 23

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 24: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 24

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 25: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 25

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 26: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 26

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 27: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 27

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 28: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 28

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 29: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 29

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 30: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 30

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 31: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 31

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 32: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 32

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 33: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 33

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 34: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 34

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 35: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 35

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 36: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 36

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Page 37: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 37

Unit 5-4 Model Simulation Library

Page 38: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 38

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Choose a working directory that you want to store the compiled Choose a working directory that you want to store the compiled Libraries Libraries

Page 39: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 39

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Create a new library for the compiled libraryCreate a new library for the compiled library

Page 40: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 40

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Create the library named:stratix_atoms

Repeat the above two procedures For the following two librariesaltera_mf 220model

Page 41: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 41

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Compile the Compile the stratix_atomsstratix_atoms

Library Library

Page 42: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 42

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Choose the Choose the stratix_atoms.vstratix_atoms.v

filefile

Page 43: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 43

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Notice the difference fromNotice the difference from

Map the stratix_atoms Map the stratix_atoms to the compiled stratix_atomsto the compiled stratix_atoms

librarylibrary

Page 44: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 44

Unit 5-5 Simulation with Altera mega-functions

Page 45: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 45

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Load Altera_mflibrary

Page 46: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 46

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Load Altera_mf

Then you are done

Page 47: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 47

Unit 5-5 Post Layout Simulation

Page 48: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 48

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Specify options for Generating output filesFor modelsimFile name : *.vo

Page 49: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 49

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Import top-level Test bench andtop-level design*.vo only

Page 50: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 50

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Load Stratix_atomslibrary

Page 51: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 51

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Load Stratix_atomslibrary

Page 52: Department of Communication Engineering, NCTU 1 Unit 5 Programmable Logic and Storage Devices – RAMs and FPGAs

Department of Communication Engineering, NCTU 52

Digital CAS Unit 5 : SRAMs and FPGAs Sau-Hsuan Wu

Notice!! the Instance name of the top-level design, not its module nameNotice!! the Instance name of the top-level design, not its module name

Load *.sdo fileFrom the SDFOption andapply it to the Top-level design