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)
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 3 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
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 4 Basic static RAM (SRAM) structure Word EN Bit_line_N Bit_line cell Cell_N Word EN Bit_line_N Bit_line
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 5 module SRAM1 (data_out, data_in, CS_N,WE_N); outputdata_out; inputdata_in; inputCS_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_out CS WE data_in CS WE OE Mux Demux D_IN D_OUT CS WE OE Mux Demux D_IN D_OUT CS WE OE Mux Demux D_IN D_OUT CS WE OE Mux Demux D_IN D_OUT CS WE OE Mux Demux D_IN D_OUT CS WE OE Mux Demux D_IN D_OUT CS WE OE Mux Demux D_IN D_OUT CS WE OE Mux Demux D_IN D_OUT Decoder data_in data_out
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 6 Basic static RAM (SRAM) structure A 16K SRAM module SRAM2 (data, CS_N,WE_N,OE_N); outputdata_out; inputCS_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/Output A 10 A 9 A 0 A3A3A2A2A1A1A0A0A3A3A2A2A1A1A0A0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0
Department of Communication Engineering, NCTU 7 Unit 5-3 Altera FPGA Architecture
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 8 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
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 9
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 10 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
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 11
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 12
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 13
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 14
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 15
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 16
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 17
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 18
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 19 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]; (posedge clk) begin if (we) mem[a] <= d; q <= mem[a]; // q doesn't get d in this clock cycle end endmodule clk we a A0A0 A1A1 A3A3 d d(A 0 ) + d(A 1 ) + d(A 3 ) + q d(A 1 ) d(A 0 ) A2A2 d(A 2 ) + d(A 2 )
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 20 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]; (posedge clk) begin if (we) mem[a] <= d; read_add <= a; end assign q = mem[read_add]; endmodule clk we a A0A0 A1A1 A3A3 d d(A 0 ) + d(A 1 ) + d(A 3 ) + q d(A 1 ) + d(A 0 ) + A2A2 d(A 2 ) +
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 21
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 22
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 23
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 24
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 25
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 26
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 27
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 28
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 29
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 30
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 31
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 32
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 33
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 34
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 35
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 36
Department of Communication Engineering, NCTU 37 Unit 5-4 Model Simulation Library
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 38 Choose a working directory that you want to store the compiled Libraries
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 39 Create a new library for the compiled library
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 40 Create the library named: stratix_atoms Repeat the above two procedures For the following two libraries altera_mf 220model
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 41 Compile the stratix_atomsLibrary
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 42 Choose the stratix_atoms.vfile
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 43 Notice the difference from Map the stratix_atoms to the compiled stratix_atoms library
Department of Communication Engineering, NCTU 44 Unit 5-5 Simulation with Altera mega-functions
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 45 Load Altera_mf library
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 46 Load Altera_mf Then you are done
Department of Communication Engineering, NCTU 47 Unit 5-5 Post Layout Simulation
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 48 Specify options for Generating output files For modelsim File name : *.vo
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 49 Import top-level Test bench and top-level design *.vo only
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 50 Load Stratix_atoms library
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 51 Load Stratix_atoms library
Digital CASUnit 5 : SRAMs and FPGAsSau-Hsuan Wu Department of Communication Engineering, NCTU 52 Notice!! the Instance name of the top-level design, not its module name Load *.sdo file From the SDF Option and apply it to the Top-level design