📄 ram_xilinx.vhd
字号:
----------------------------------------------------------------------- TITLE: Random Access Memory for Xilinx-- AUTHOR: Steve Rhoads (rhoadss@yahoo.com)-- DATE CREATED: 11/06/05-- FILENAME: ram_xilinx.vhd-- PROJECT: Plasma CPU core-- COPYRIGHT: Software placed into the public domain by the author.-- Software 'as is' without warranty. Author liable for nothing.-- DESCRIPTION:-- Implements the RAM for Spartan 3 Xilinx FPGA---- Compile the MIPS C and assembly code into "text.exe".-- Run convert.exe to change "text.exe" to "code.txt" which-- will contain the hex values of the opcodes.-- Next run "ram_image ram_xilinx.vhd code.txt ram_image.vhd",-- to create the "ram_image.vhd" file that will have the opcodes-- correctly placed inside the INIT_00 => strings.-- Then include ram_image.vhd in the simulation/synthesis.---------------------------------------------------------------------library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_misc.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;use work.mlite_pack.all;library UNISIM;use UNISIM.vcomponents.all;entity ram is generic(memory_type : string := "DEFAULT"); port(clk : in std_logic; enable : in std_logic; write_byte_enable : in std_logic_vector(3 downto 0); address : in std_logic_vector(31 downto 2); data_write : in std_logic_vector(31 downto 0); data_read : out std_logic_vector(31 downto 0));end; --entity ramarchitecture logic of ram isbegin RAMB16_S9_inst0 : RAMB16_S9 generic map (INIT_00 => X"000000000000000000000000000000000000000000000000000000000c080400",INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000") port map ( DO => data_read(31 downto 24), DOP => open, ADDR => address(12 downto 2), CLK => clk, DI => data_write(31 downto 24), DIP => ZERO(0 downto 0), EN => enable, SSR => ZERO(0), WE => write_byte_enable(3)); RAMB16_S9_inst1 : RAMB16_S9 generic map (INIT_00 => X"000000000000000000000000000000000000000000000000000000000d090501",INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000",INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -