VHDL Models For Memory And Busses 2003.01.03 구 본 진.

Slides:



Advertisements
Similar presentations
VHDL 8 Practical example
Advertisements

Chapter 5 Internal Memory
Computer Organization and Architecture
Microprocessor Dr. Rabie A. Ramadan Al-Azhar University Lecture 4.
H. Huang Transparency No.5-1 The 68HC11 Microcontroller Chapter 5: Operation Modes and Memory Expansion The 68HC11 Microcontroller Han-Way Huang Minnesota.
Programmable Interval Timer
SYSTEM CLOCK Clock (CLK) : input signal which synchronize the internal and external operations of the microprocessor.
The 8085 Microprocessor Architecture
ECE 353 Introduction to Microprocessor Systems Michael G. Morrow, P.E. Week 11.
Memory Basics. 8-1 Memory definitions Memory is a collection of cells capable of storing binary information. Two types of memory: –Random-Access Memory.
EECC341 - Shaaban #1 Lec # 19 Winter Read Only Memory (ROM) –Structure of diode ROM –Types of ROMs. –ROM with 2-Dimensional Decoding. –Using.
COMP3221: Microprocessors and Embedded Systems Lecture 23: Memory Systems (II) Lecturer: Hui Wu Session 2, 2005.
Chapter 9 Memory Basics Henry Hexmoor1. 2 Memory Definitions  Memory ─ A collection of storage cells together with the necessary circuits to transfer.
ENGIN112 L30: Random Access Memory November 14, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 30 Random Access Memory (RAM)
Chapter 10. Memory, CPLDs, and FPGAs
1 TK2633TK Microprocessor Architecture DR MASRI AYOB.
CS 151 Digital Systems Design Lecture 30 Random Access Memory (RAM)
Memory Devices Wen-Hung Liao, Ph.D..
1 EE365 Read-only memories Static read/write memories Dynamic read/write memories.
Microcomputer & Interfacing Lecture 2
Memory interface Memory is a device to store data
1 Part V: VHDL CODING. 2 Design StructureData TypesOperators and AttributesConcurrent DesignSequential DesignSignals and VariablesState Machines A VHDL.
ECE 353 Introduction to Microprocessor Systems Discussion 8.
Survey of Existing Memory Devices Renee Gayle M. Chua.
CMPUT 429/CMPE Computer Systems and Architecture1 CMPUT429 - Winter 2002 Topic5: Memory Technology José Nelson Amaral.
Chapter 14 Introduction to Microprocessors. 2 Microcomputer A self-contained computer system that consists of CPU (central processing unit), memory (RAM.
Chapter 5 Internal Memory. Semiconductor Memory Types.
Digital Design: An Embedded Systems Approach Using VHDL
HARDWARE ARCHITECTURE
University of Tehran 1 Interface Design Compute Memory Timing Omid Fatemi
Microprocessor-Based System. What is it? How simple can a microprocessor-based system actually be? – It must obviously contain a microprocessor otherwise.
Minimum System Requirements Clock Generator Memory Interfacing.
Memory System Unit-IV 4/24/2017 Unit-4 : Memory System.
Memory Devices May be classified as: Connections: ROM; Flash; SRAM;
Digital Logic Design Instructor: Kasım Sinan YILDIRIM
SEQUENTIAL CIRCUITS Component Design and Use. Register with Parallel Load  Register: Group of Flip-Flops  Ex: D Flip-Flops  Holds a Word of Data 
Lab 05 Sen Ma.
Memory Read only memory (ROM) – nonvolatile
Memory Cell Operation.
AT91 Memory Interface. 2 Features –Up to 8 programmable chip select lines –Remap Command allows dynamic exception vectors –Glue-less for both 8-bit and.
Feb. 26, 2001Systems Architecture I1 Systems Architecture I (CS ) Lecture 12: State Elements, Registers, and Memory * Jeremy R. Johnson Mon. Feb.
Module 11 Adapted By and Prepared James Tan © 2001.
Introduction to Microprocessors - chapter3 1 Chapter 3 The 8085 Microprocessor Architecture.
CDA 4253 FGPA System Design Xilinx FPGA Memories
Semiconductor Memory Types
Wnopp Memory device Introduction n Memory Cell n Memory Word n Byte n Capacity n Address n Read Operation n Write Operation n Access Time n Volatile.
Digital Circuits Introduction Memory information storage a collection of cells store binary information RAM – Random-Access Memory read operation.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 22 Memory Definitions Memory ─ A collection of storage cells together with the necessary.
Memory Systems 3/17/ Memory Classes Main Memory Invariably comprises solid state semiconductor devices Interfaces directly with the three bus architecture.
CS 1410 Intro to Computer Tecnology Computer Hardware1.
3/19/  Differentiate the class of memory  List the type of main memory  Explain memory architecture and operation  Draw memory map  Design.
Computer Architecture Chapter (5): Internal Memory
Digital Logic Design Alex Bronstein Lecture 3: Memory and Buses.
The 8085 Microprocessor Architecture
ECE 353 Introduction to Microprocessor Systems
Memory Systems 7/21/2018.
William Stallings Computer Organization and Architecture 8th Edition
William Stallings Computer Organization and Architecture 8th Edition
Memory Basics Chapter 8.
The 8085 Microprocessor Architecture
Memory Basics Chapter 7.
William Stallings Computer Organization and Architecture 8th Edition
디 지 털 시 스 템 설 계 UP2 Kit를 이용한 카운터 설계
(Sequential-Circuit Building Blocks)
Presentation transcript:

VHDL Models For Memory And Busses 구 본 진

Contents Static RAM Memory Simplified RAM model (6116 static memory) Timing model for a RAM Timing model for a microprocessor bus (Simplified 486 bus interface unit) Interfacing memory to a Microprocessor bus

Static RAM Memory RAM ( Random-Access Memory ) - Read-write memory. cf) ROM (Read-Only Memory) Static RAM - Data remains until power turned off. Control line function (active-low) - CS_b : chip select (memory read and write operation) - OE_b: output enable (memory output onto an external bus) - WE_b : write enable (data to be written to the RAM)

Simplified RAM Model Block Diagram of Static RAM Truth Table for Static RAM

6116 Static RAM Block Diagram of 6116 Static RAM -Store bit words (128 X 128) -11 address lines (A10-A4 : 128 rows) (A3-A0 : 8 columns)

Timing Model for a RAM(1) Read Cycle Timing

Timing Specifications Timing Specifications for Two Static CMOS RAMs

Timing Model for a RAM(2) Write Cycle Timing WE_b - controlled write cycle timing (OE_b = 0)

Timing Model for a RAM(3) Write Cycle Timing CS_b -controlled write cycle timing (OE_b = 0)

VHDL Timing Model for 6116 Static RAM(1) -- memory model with timing (OE_b=0) library ieee; use ieee.std_logic_1164. all ; library bitlib; use bitlib.bit_pack. all ; entity static_RAM is generic ( constant tAA: time := 120 ns; static CMOS RAM constant tACS:time := 120 ns; constant tCLZ:time := 10 ns; constant tCHZ:time := 10 ns; constant tOH:time := 10 ns; constant tWC:time := 120 ns; constant tAW:time := 105 ns; constant tWP:time := 70 ns; constant tWHZ:time := 35 ns; constant tDW:time := 35 ns; constant tDH:time := 0 ns; constant tOW:time := 10 ns); port (CS_b, WE_b, OE_b: in bit; Address: in bit_vector(7 downto 0); Data: inout std_logic_vector(7 downto 0) := ( others => 'Z')); end Static_RAM;

architecture SRAM of Static_RAM is type RAMtype is array (0 to 255) of bit_vector(7 downto 0); signal RAM1: RAMtype := ( others => ( others => '0')); begin RAM: process begin if (rising_edge(WE_b) and CS_b'delayed = '0') or (rising_edge(CS_b) and WE_b'delayed = '0') then RAM1(vec2int(Address'delayed)) <= to_bitvector(Data'delayed);--write if CS_b = ‘0’ then Data <= transport Data'delayed after tOW;--read back after write endif; if falling_edge(WE_b) and CS_b = '0' then--enter write mode Data <= transport "ZZZZZZZZ" after tWHZ; end if ; if CS_b'event and OE_b = '0' then if CS_b = '1' then Data <= transport "ZZZZZZZZ" after tCHZ;-- RAM is deselected elsif WE_b = '1' then --read Data <= "XXXXXXXX" after tCLZ; Data <= transport to_stdlogicvector(RAM1(vec2int(Address))) after tACS; end if ; if Address'event and CS_b ='0' and OE_b ='0' and WE_b ='1' then --read Data <= "XXXXXXXX" after tOH; Data <= transport to_stdlogicvector(RAM1(vec2int(Address))) after tAA; end if ; wait on CS_b, WE_b, Address; end process RAM; VHDL Timing Model for 6116 Static RAM(2)

check: process begin if CS_b’delayed = ‘0’ and NOW /= 0 ns then if address'event then assert (address'delayed'stable(tWC)) -- tRC = tWC assumed report "Address cycle time too short" severity WARNING; end if ; if rising_edge(WE_b) then assert (address'delayed'stable(tAW)) report "Address not valid long enough to end of write" severity WARNING; assert (WE_b'delayed'stable(tWP)) report "Write pulse too short" severity WARNING; assert (Data'delayed'stable(tDW)) report "Data setup time too short" severity WARNING; wait for tDH; assert (Data'last_event >= tDH) report "Data hold time too short" severity WARNING; end if ; wait on WE_b, address, CS_b; end process check; end SRAM; VHDL Timing Model for 6116 Static RAM(3)

Timing Model for a Microprocessor Bus(1) Microprocessor Bus Interface

Timing Model for a Microprocessor Bus(2) Data transfers between CPU and bus

Timing Model for a Microprocessor Bus(3) Data transfers between CPU and Bus

Simplified 486 Bus Interface Unit br = 1 and wr = 1 : request write cycle br = 1 and wr = 0 : request read cycle

SM Chart of Bus Interface Unit

Time Specifications 486 Setup and Hold Time Specifications 486 Bus Timing Specifications for Address and Data Changes

VHDL Model for 486 Bus Interface Unit(1)

VHDL Model for 486 Bus Interface Unit(2)

VHDL Model for 486 Bus Interface Unit(3)

VHDL Model for 486 Bus Interface Unit(4)

486 Bus Interface to Static RAM System

Time from clock high to address valid = t 6max = 12 ns Propagation delay through address decoder = t decode = 5 ns Propagation delay through memory controller = t mc = 5ns Memory access time = t ACS = 25ns (43258A-25) Data setup time for 486 bus = t 22 = 5 ns Total delay = 52ns If 486 bus clock rate 50MHz =>clock period = 20 ns, so, three clock periods are required to complete a read cycle

SM Chart for Memory Controller

-- Memory Controller for fast CMOS SRAM w/ one wait state entity memory_control is port ( clk, w_rb, ads_b, cs1: in bit; rdy_b, we_b, cs_b: out bit := '1'); end memory_control; architecture behave1 of memory_control is constant delay: time := 5 ns; signal state, nextstate: integer range 0 to 2; signal new_we_b, new_cs_b, new_rdy_b: bit := '1'; begin process (state,ads_b,w_rb,cs1) begin new_cs_b <= '1'; new_rdy_b <= '1'; new_we_b <= '1'; case state is when 0 => if ads_b = '0' and cs1 = '1' then nextstate <= 1; else nextstate <= 0; end if ; VHDL Code for Memory Controller(1)

when 1 => new_cs_b <= '0'; nextstate <= 2; when 2 => if w_rb = '1' then new_cs_b <= '1'; else new_cs_b <= '0'; end if ; new_rdy_b <= '0'; nextstate <= 0; end case ; end process ; process (clk) begin if clk = '1' then state <= nextstate; end if ; end process ; we_b <= not w_rb after delay; cs_b <= new_cs_b after delay; rdy_b <= new_rdy_b after delay; end behave1; VHDL Code for Memory Controller(2)

VHDL Code for Complete 486 Bus System with Static RAM (1)

VHDL Code for Complete 486 Bus System with Static RAM (2)

VHDL Code for Complete 486 Bus System with Static RAM (3)