📄 ram_16w8b.vhd
字号:
--Behavioural model of a 16-word, 8-bit Random Access MemoryLIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY ram16x8 ISPORT(address : IN STD_LOGIC_VECTOR(3 DOWNTO 0);csbar, oebar, webar : IN STD_LOGIC;data : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ram16x8;ARCHITECTURE version1 OF ram16x8 ISBEGINPROCESS(address, csbar, oebar, webar, data)TYPE ram_array IS ARRAY (0 TO 15) OF BIT_VECTOR(7 DOWNTO 0);VARIABLE index : INTEGER := 0;VARIABLE ram_store : ram_array;BEGINIF csbar = '0' THEN--calculate address as an integerindex := 0;FOR i IN address'RANGE LOOPIF address(i) = '1' THENindex := index + 2**i;END IF;END LOOP;IF rising_edge(webar) THEN--write to ram on rising edge of write pulseram_store(index) := To_bitvector(data);ELSIF oebar = '0' THENdata <= To_StdlogicVector(ram_store(index));ELSEdata <= "ZZZZZZZZ";END IF;ELSEdata <= "ZZZZZZZZ";END IF;END PROCESS;END version1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -