⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ram.vhd.bak

📁 It is the code for implementing the project titled "The Reconfigurable Instruction Cell Array(IEEE 2
💻 BAK
字号:
LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;use ieee.numeric_std.all-- use altera_mf library for RAM block--LIBRARY altera_mf;--USE altera_mf.ALL;-- use packageUSE work.procmem_definitions.ALL;ENTITY ram ISGENERIC (adrwidth : positive := ram_adrwidth;datwidth : positive := ram_datwidth;ramfile : string := ramfile_std -- initial RAM content-- in IntelHEX Format);PORT (address : IN std_logic_vector(ram_adrwidth-1 DOWNTO 0);data : IN std_logic_vector(ram_datwidth-1 DOWNTO 0);inclock : IN std_logic; -- used to write data in RAM cellswren_p : IN std_logic;q : OUT std_logic_vector(ram_datwidth-1 DOWNTO 0));END ram;ARCHITECTURE rtl OF ram ISTYPE MEM IS ARRAY(0 TO (2**ram_adrwidth)-1) OF std_logic_vector(ram_datwidth-1 DOWNTO0);SIGNAL ram_block : MEM;SIGNAL read_address_reg : std_logic_vector(ram_adrwidth-1 DOWNTO 0);BEGINPROCESS (inclock)BEGINIF rising_edge(inclock) THENIF (wren_p = '1') THENram_block(to_integer(unsigned(address))) <= data;END IF;-- address is registered at rising edge-- not used, because asynchronous data output is needed for MIPS design--read_address_reg <= address;END IF;END PROCESS;-- registered address is used for synchronous data output--q <= ram_block(to_integer(unsigned(read_address_reg)));-- asynchronous memory output (needed for MIPS design according to [PaHe98])-- address is unregisteredq <= ram_block(to_integer(unsigned(address)));END rtl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -