首页 文章

VHDL RAM 256x8位

提问于
浏览
0

我需要为256x8位RAM编写VHDL代码 . 我将使用双向总线来管理读写,但我想我可以使用原理图文件来做到这一点 . 我需要的是创建RAM内存作为一个组件,但我有点挣扎,因为我得到几个代码10818错误 . 任何帮助,将不胜感激 .

RAM内存应该有一个data_io端口(7 downto 0 std_logic_vector),一个地址端口(7 downto 0 std_logic_vector),以及oe,we和clk端口(我猜所有的std_logic?)

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY MyRAM IS 
PORT(CLOCK,WE,OE:IN STD_LOGIC;
ADDR:IN STD_LOGIC_VECTOR (7 DOWNTO 0);
D_IO: INOUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ENTITY;

ARCHITECTURE RTL OF MyRAM IS
TYPE RAM_12 IS ARRAY (0 TO 255)OF STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL RAM_PTR:RAM_12;
BEGIN
PROCESS(CLOCK)
BEGIN
IF RISING_EDGE(CLOCK) THEN
RAM_PTR(CONV_INTEGER(ADDR))<=D_IO;
ELSE 
D_IO<=RAM_PTR(CONV_INTEGER(ADDR));
END IF;
END PROCESS;
END RTL;

1 回答

  • 0

    我假设你想要这个可合成的......

    您不能直接在FPGA中使用双向总线 . 芯片里面没有 . 如果您正确编写代码,则可以使用三态信号来推断有线和/或有线或驱动程序的集合 .

    但是,这些都无法帮助您使用RAM . 如果要推断设备内部的RAM,则必须与可用的实际RAM块对应 . 它们将具有单独的数据总线,用于写入数据以及读取数据 . 检查您正在使用的综合工具的帮助文件(可能是Quartus for Altera,除非您使用的是其他第三方工具) . 将会有一个关于推断RAM块的部分,它将向您展示要使用的确切编码样式 .

相关问题