【问题标题】:Simulating VHDL Modelsim Dual-port RAM with 2 Clocks用 2 个时钟模拟 VHDL Modelsim 双端口 RAM
【发布时间】:2020-05-25 19:27:46
【问题描述】:

我需要有关具有 2 个时钟的双端口 RAM 的测试台的帮助,其中地址 A(写入)与 CLK A 同步,地址 B(读取)与 CLK B 同步。 这是ModelSim中的代码:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_unsigned.all;


entity RAM is 
port(
    d_in    : in 
   std_logic_vector(7 downto 
    0);
    ADDRA   : in 
    std_logic_vector(2 downto 
    0);
    ADDRB   : in 
    std_logic_vector(2 downto 
    0);
    WEA     : in std_logic ;
    REA  : in std_logic ;
    CLKA    : in std_logic ;
    CLKB    : in std_logic ;
    d_out   : out std_logic_vector(7 downto 0)
);

 end RAM ;
 Architecture behav of RAM is

type Memory is ARRAY(7 downto 0) of std_logic_vector(7 downto 0);
signal mem : Memory;

BEGIN

process(CLKA)
begin
    if(rising_edge(CLKA)) then 
        if(WEA = '1') then
            mem(to_integer(signed(ADDRA))) <= d_in;
        end if;
    end if;
end process;

    process(CLKB)
begin
    if(rising_edge(CLKB)) then
        if ( REA = '1') then
          d_out <= mem(to_integer(signed(ADDRB))) ;
    end if;
    end if;
end process;
end behav ;

我一直在尝试通过不同的策略制作测试台文件,但它一直无法正常工作,并且不断给我错误。

【问题讨论】:

  • How to Askit never worked properly and keeps giving me errors 对于一个看不见的测试台的问题陈述有点含糊。

标签: vhdl ram modelsim test-bench


【解决方案1】:

RAM 寻址应该是无符号的。

  mem(to_integer(unsigned(ADDRA))) <= d_in;

   d_out <= mem(to_integer(unsigned(ADDRB))) ;

对于带符号寻址,b"111" 的地址输入将对应于二进制补码整数 -1 而不是 7

编辑: 我在这里做了一个非常简单的工作测试台:https://www.edaplayground.com/x/2Mq7

【讨论】:

  • 评论或...(有什么问题?)
  • @user1155120 对不起,我不明白你的评论。你是不是暗示我不应该因为问题不完美而试图提供帮助?
  • OP 要么隐含地要求对双端口 RAM 的测试台实现的引用,要么希望有人会写一个(在 Stackoverflow 上没有)。请参阅How to Answer 部分回答好问题',是问题on-topic
  • 由于memory 类型被定义为ARRAY(7 downto 0),因此使用有符号还是无符号并不重要。事实上,该设计会因超出范围致命而崩溃。如此处所示:edaplayground.com/x/2Mq7 我同意我没有回答隐含的问题。但是现在我已经为 OP 做了一个工作示例,所以也许他得到了他想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 2020-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多