Forum: FPGA, VHDL & Verilog RAM read and write

Author: vhdl newbie (Company: none) (pranoy)
Posted on:

Rate this post
1 useful
not useful
library ieee;
use ieee.std_logic_1164.all;
--use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity SRAM is
Clock:in std_logic;
Enable:in std_logic;
Read:in std_logic;
Write:in std_logic;
Read_Addr:in std_logic_vector(4 downto 0);
Write_Addr: in std_logic_vector(4 downto 0);
Data_in: in std_logic_vector(3 downto 0);
Data_out: out std_logic_vector(3 downto 0));
end SRAM;

architecture behav of SRAM is
    type ram_type is array (0 to 31) of
    std_logic_vector(3 downto 0);
    signal tmp_ram:ram_type;
                if(clock'event and clock='1') then
                    if enable='1' then
                        if read='1' then
                        end if;
                    end if;
                end if;
            end process;
                    if(clock'event and clock='1') then
                        if enable='1' then
                            if write='1' then
                            end if;
                        end if;
                    end if;
                end process;
            end behav;

I got this code for RAM online.

When i run it in MODELSIM the writing takes a complete clock cycle(if 
clock starts with a +ve edge) and
reading takes 1 and 1/2 clock cycles(if clock starts with a +ve edge).

could anyone explain why is it so?

and also pls give me a way to make the read and write cycle within a 
single clock cycle.


Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [vhdl]VHDL code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]

Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.