Fast, Asynchronous SRAM

Slides:



Advertisements
Similar presentations
Arbitrary Waveform Discussion 5.5 Example 34.
Advertisements

Edge-Triggered D Flip-Flops Discussion D4.2 Example 26.
Latches and Flip-Flops
1 VLSI DESIGN USING VHDL Part II A workshop by Dr. Junaid Ahmed Zubairi.
Ring Counter Discussion D5.3 Example 32. Ring Counter if rising_edge(CLK) then for i in 0 to 2 loop s(i)
Generic Multiplexers: Parameters Discussion D2.5 Example 8.
Decoders and Encoders Lecture L4.2. Decoders and Encoders Binary Decoders Binary Encoders Priority Encoders.
A Simple Microcontroller VHDL Tutorial R. E. Haskell and D. M. Hanna T6: VHDL State Machines.
Logic Design Fundamentals - 3 Discussion D3.2. Logic Design Fundamentals - 3 Basic Gates Basic Combinational Circuits Basic Sequential Circuits.
Registers VHDL Tutorial R. E. Haskell and D. M. Hanna T2: Sequential Logic Circuits.
Data Stack Lecture 8.2 A VHDL Forth Core for FPGAs: Sect. 3.
Integer Square Root.
Simple Sequential Circuits in VHDL. Contents Sequential circuit examples: - SR latch in dataflow style - D flip-flop in behavioral style - shift register.
Return Stack Lecture 8.4 A VHDL Forth Core for FPGAs: Sect. 5.
Single-Cycle Instructions VHDL Tutorial R. E. Haskell and D. M. Hanna T5: VHDL ROM.
FPGAs and VHDL Lecture L12.1. FPGAs and VHDL Field Programmable Gate Arrays (FPGAs) VHDL –2 x 1 MUX –4 x 1 MUX –An Adder –Binary-to-BCD Converter –A Register.
Counters Discussion D5.3 Example 33. Counters 3-Bit, Divide-by-8 Counter 3-Bit Behavioral Counter in Verilog Modulo-5 Counter An N-Bit Counter.
Lab 6 Program Counter and Program ROM Mano & Kime Sections 7-1 – 7-6.
The FC16 Forth Core Lab 7 Module F4.1. Lab 7 Hex OpcodeNameFunction 0000NOP No operation 0001DUP Duplicate T and push data stack. N
4-to-1 Multiplexer: case Statement Discussion D2.3 Example 6.
Return Stack Lecture L7.3. A 32 x 16 Stack Same as used in the Data Stack in Lab 7.
FPGAs and VHDL Lecture L13.1 Sections 13.1 – 13.3.
Finite State Machines Discussion D8.1 Example 36.
Latches and Flip-Flops Discussion D4.1 Appendix J.
7-Segment Displays Digilent Spartan 3 Board Discussion DS-4.2.
Programming Example Lecture 8.6 A VHDL Forth Core for FPGAs: Sect. 7.
Registers Lab 5 Mano and Kime Sections 5-2, 5-3, 5-7.
LCD Display DIO2 Board CPLD. DIO2 Board CPLD Interface LCD Display.
RS-232 Port Lecture L9.3. Loop feedback RS-232 voltage levels: +5.5 V (logic 0) -5.5 V (logic 1)
Data Stack Instructions Lab 7. Data Stack WHYP Data Stack Instructions DUP( n -- n n ) SWAP( a b -- b a ) DROP( a -- ) OVER( a b -- a b a ) ROT( a.
4-Bit Binary-to-BCD Converter: case Statement
Shift Registers Discussion D5.2 Example Bit Shift Register qs(3) qs(2) qs(1) qs(0) if rising_edge(CLK) then for i in 0 to 2 loop s(i) := s(i+1);
Other WC16 Instructions Lecture L7.4. OpcodeNameFunctionNumber of Clock Cycles Fetch the byte at address T in RAM and load it into T1 Fetch.
Random-Access Memory Distributed and Block RAM Discussion D10.3 Example 41.
4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register.
1 Part V: VHDL CODING. 2 Design StructureData TypesOperators and AttributesConcurrent DesignSequential DesignSignals and VariablesState Machines A VHDL.
ENG241 Digital Design Week #8 Registers and Counters.
Main Project : Simple Processor Mini-Project : 3-bit binary counter (using 7400 series) Memory By Oluwayomi B. Adamo.
2’s Complement 4-Bit Saturator Discussion D2.8 Lab 2.
8-bit Microprocessor Design
CPE 626 The SystemC Language – VHDL, Verilog Designer’s Guide Aleksandar Milenkovic Web:
 Seattle Pacific University EE Logic System DesignCounters-1 Shift Registers DQ clk DQ DQ ShiftIn Q3Q3 Q2Q2 DQ Q1Q1 Q0Q0 A shift register shifts.
CEC 220 Digital Circuit Design VHDL in Sequential Logic Wednesday, March 25 CEC 220 Digital Circuit Design Slide 1 of 13.
Controllers ENGIN 341 – Advanced Digital Design University of Massachusetts Boston Department of Engineering Dr. Filip Cuckov.
July 2, 2001Systems Architecture I1 Systems Architecture II (CS 282) Lab 3: State Elements, Registers, and Memory * Jeremy R. Johnson Monday July 2, 2001.
Lecture 11 Xilinx FPGA Memories Part 2
Prime Numbers Lecture L6.1 Sieve of Eratosthenes.
Registers and Counters Discussion D8.1. Logic Design Fundamentals - 3 Registers Counters Shift Registers.
Combinational logic circuit
LAB #6 Sequential Logic Design (Flip Flops, Shift Registers)
Main Project : Simple Processor Mini-Project : Vending Machine Memory
Registers and Counters
Part III: SYSTEM DESIGN
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
Algorithmic State Machine (ASM) Charts: VHDL Code & Timing Diagrams
VHDL Hierarchy in XILINX
مدار های ترکیبی دیکدر لامپ های هفت قسمتی یکی از دیکدر هایی که اغلب به کار برده می شود،دیکدر 4 به 7 برای تبدیل کد bcd به کد هفت بیتی برای لامپ های seven.
Case Study Memory Controller مرتضي صاحب الزماني.
A Data Stack CoreGen Discussion 12.1.
ECE 545 Lecture 17 RAM.
A Greatest Common Divisor (GCD) Processor
Fibonacci Sequence Lecture L4.1 Lab 3.
Modeling of Circuits with a Regular Structure
DIO2 Board Projects.
Fast, Asynchronous SRAM
Data Stack and Return Stack
Modeling of Circuits with Regular Structure
Return Stack Lab 8.
디 지 털 시 스 템 설 계 UP2 Kit를 이용한 카운터 설계
(Sequential-Circuit Building Blocks)
Presentation transcript:

Fast, Asynchronous SRAM Lecture L9.1

buff3.vhd en input output library IEEE; use IEEE.STD_LOGIC_1164.all; entity buff3 is generic (width:positive); port( input : in STD_LOGIC_vector(width-1 downto 0); en : in STD_LOGIC; output : out STD_LOGIC_vector(width-1 downto 0) ); end buff3; architecture buff3 of buff3 is begin output <= input when en = '1' else (others => 'Z'); input output

RAM Module

WHYP words to read and write data to memory ! ( data addr -- ) \ “store” data at addr @ ( addr – data ) \ “fetch” data from addr

! ( data addr -- ) \ “store” data at addr when store => cs <= '0'; oe <= '1'; pinc <= '0'; if ccycle = 1 then we <= '0'; else tload <= '1'; nload <= '1'; tsel <= "111"; nsel <= "01"; dpop <= '1'; end if;

Add to wc16_control MultiCC: process (clk, clr, current_state) begin if clr = '1' then ccycle <= "000001"; elsif (clk'event and clk = '1') then if current_state = exec then ccycle <= ccycle + 1; else end if; end process MultiCC;

In wc16_control add…. Store (!) when exec => -- execute instr without fetching next one if (icode = X"010E" or icode = X"010F") and ccycle < 3 then next_state <= exec; elsif (icode = X"0110" or icode = X"0111") and ccycle < 8 then --elsif icode = X"Code_for_multi-cycle" -- and ccycle < Num_cc_to_exec then -- next_state <= exec; else next_state <= fetch; -- go to fetch state end if;

@ ( addr – data ) \ “fetch” data from addr when RAMfetch => -- read RAM in E1 tload <= '1'; tsel <= "100"; cs <= '0'; oe <= '0';

\ Test of ram @ and ! HEX : main ( -- ) 1234 5 BEGIN waitB0 OVER OVER ! DUP @ DIG! SWAP 1+ SWAP 1+ AGAIN ;

\ Test of ram @ and ! HEX : main ( -- ) 1234 5 BEGIN waitB0 JMP, --0 X"0002", --1 LIT, --2 X"1234", --3 LIT, --4 X"0005", --5 JB0HI, --6 X"0006", --7 JB0LO, --8 X"0008", --9 over, --a over, --b store, --c dup, --d RAMfetch, --e digstore, --f swap, --10 plus1, --11 swap, --12 plus1, --13 JMP, --14 X"0006", --15 X"0000" --16 \ Test of ram @ and ! HEX : main ( -- ) 1234 5 BEGIN waitB0 OVER OVER ! DUP @ DIG! SWAP 1+ SWAP 1+ AGAIN ;