
1 -- Dual port RAM with enable on each port
2 -- Xilinx rams_14
3
4 library ieee;
5 use ieee.std_logic_1164.all;
6 use ieee.std_logic_unsigned.all;
7
8 entity dp_ram is
9 port(clk : in std_logic;
10 ena : in std_logic;
11 enb : in std_logic;
12 wea : in std_logic;
13 addra : in std_logic_vector(10 downto 0);
14 addrb : in std_logic_vector(10 downto 0);
15 dia : in std_logic_vector(7 downto 0);
16 doa : out std_logic_vector(7 downto 0);
17 dob : out std_logic_vector(7 downto 0)
18 );
19 end dp_ram;
20
21 architecture rtl of dp_ram is
22 type ram_type is array(2047 downto 0) of std_logic_vector(7 downto 0);
23 signal RAM : ram_type;
24 signal read_addra : std_logic_vector(10 downto 0);
25 signal read_addrb : std_logic_vector(10 downto 0);
26 begin
27
28 process(clk)
29 begin
30 if rising_edge(clk) then
31 if ena = '1' then
32 if wea = '1' then
33 RAM(conv_integer(addra)) <= dia;
34 end if;
35 read_addra <= addra;
36 end if;
37 if enb = '1' then
38 read_addrb <= addrb;
39 end if;
40 end if;
41 end process;
42
43 doa <= RAM(conv_integer(read_addra));
44 dob <= RAM(conv_integer(read_addrb));
45
46 end rtl;

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本