OpenCores
URL https://opencores.org/ocsvn/copyblaze/copyblaze/trunk

Subversion Repositories copyblaze

[/] [copyblaze/] [trunk/] [copyblaze/] [sw/] [tools/] [asm/] [pBlazASM/] [pBlazMRG/] [template.vhd] - Rev 2

Compare with Previous | Blame | View Log

 
 
{begin template}
--
-- Definition of a dual port ROM for KCPSM3 program defined by {name}.psm
--
-- Generated by {tool} at {timestamp}. 
--
-- Standard IEEE libraries
--
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
 
-- The Unisim Library is used to define Xilinx primitives. It is also used during
-- simulation. The source can be viewed at %XILINX%\vhdl\src\unisims\unisim_VCOMP.vhd
 
library unisim;
use unisim.vcomponents.all;
 
entity {name} is
	port (     
		clk : in std_logic ;
 
		address : in std_logic_vector( 9 downto 0 ) ;
		instruction : out std_logic_vector( 17 downto 0 ) ;
 
		scrpad_address : in std_logic_vector( 7 downto 0 ) ;
		scrpad_rdata : out std_logic_vector( 7 downto 0 ) ;
		scrpad_wdata : in std_logic_vector( 7 downto 0 ) ;
		scr_pad_we : in std_logic
	) ;
end {name} ;
 
architecture structural of {name} is
--
-- Attributes to define ROM contents during implementation synthesis. 
-- The information is repeated in the generic map for functional simulation
--
	attribute INIT_00 : string; 
	attribute INIT_01 : string; 
	attribute INIT_02 : string; 
	attribute INIT_03 : string; 
	attribute INIT_04 : string; 
	attribute INIT_05 : string; 
	attribute INIT_06 : string; 
	attribute INIT_07 : string; 
	attribute INIT_08 : string; 
	attribute INIT_09 : string; 
	attribute INIT_0A : string; 
	attribute INIT_0B : string; 
	attribute INIT_0C : string; 
	attribute INIT_0D : string; 
	attribute INIT_0E : string; 
	attribute INIT_0F : string; 
	attribute INIT_10 : string; 
	attribute INIT_11 : string; 
	attribute INIT_12 : string; 
	attribute INIT_13 : string; 
	attribute INIT_14 : string; 
	attribute INIT_15 : string; 
	attribute INIT_16 : string; 
	attribute INIT_17 : string; 
	attribute INIT_18 : string; 
	attribute INIT_19 : string; 
	attribute INIT_1A : string; 
	attribute INIT_1B : string; 
	attribute INIT_1C : string; 
	attribute INIT_1D : string; 
	attribute INIT_1E : string; 
	attribute INIT_1F : string; 
	attribute INIT_20 : string; 
	attribute INIT_21 : string; 
	attribute INIT_22 : string; 
	attribute INIT_23 : string; 
	attribute INIT_24 : string; 
	attribute INIT_25 : string; 
	attribute INIT_26 : string; 
	attribute INIT_27 : string; 
	attribute INIT_28 : string; 
	attribute INIT_29 : string; 
	attribute INIT_2A : string; 
	attribute INIT_2B : string; 
	attribute INIT_2C : string; 
	attribute INIT_2D : string; 
	attribute INIT_2E : string; 
	attribute INIT_2F : string; 
	attribute INIT_30 : string; 
	attribute INIT_31 : string; 
	attribute INIT_32 : string; 
	attribute INIT_33 : string; 
	attribute INIT_34 : string; 
	attribute INIT_35 : string; 
	attribute INIT_36 : string; 
	attribute INIT_37 : string; 
	attribute INIT_38 : string; 
	attribute INIT_39 : string; 
	attribute INIT_3A : string; 
	attribute INIT_3B : string; 
	attribute INIT_3C : string; 
	attribute INIT_3D : string; 
	attribute INIT_3E : string; 
	attribute INIT_3F : string; 
	attribute INITP_00 : string;
	attribute INITP_01 : string;
	attribute INITP_02 : string;
	attribute INITP_03 : string;
	attribute INITP_04 : string;
	attribute INITP_05 : string;
	attribute INITP_06 : string;
	attribute INITP_07 : string;
--
-- Attributes to define ROM contents during implementation synthesis.
--
	attribute INIT_00 of Code_ROM  : label is "{INIT_00}";
	attribute INIT_01 of Code_ROM  : label is "{INIT_01}";
	attribute INIT_02 of Code_ROM  : label is "{INIT_02}";
	attribute INIT_03 of Code_ROM  : label is "{INIT_03}";
	attribute INIT_04 of Code_ROM  : label is "{INIT_04}";
	attribute INIT_05 of Code_ROM  : label is "{INIT_05}";
	attribute INIT_06 of Code_ROM  : label is "{INIT_06}";
	attribute INIT_07 of Code_ROM  : label is "{INIT_07}";
	attribute INIT_08 of Code_ROM  : label is "{INIT_08}";
	attribute INIT_09 of Code_ROM  : label is "{INIT_09}";
	attribute INIT_0A of Code_ROM  : label is "{INIT_0A}";
	attribute INIT_0B of Code_ROM  : label is "{INIT_0B}";
	attribute INIT_0C of Code_ROM  : label is "{INIT_0C}";
	attribute INIT_0D of Code_ROM  : label is "{INIT_0D}";
	attribute INIT_0E of Code_ROM  : label is "{INIT_0E}";
	attribute INIT_0F of Code_ROM  : label is "{INIT_0F}";
	attribute INIT_10 of Code_ROM  : label is "{INIT_10}";
	attribute INIT_11 of Code_ROM  : label is "{INIT_11}";
	attribute INIT_12 of Code_ROM  : label is "{INIT_12}";
	attribute INIT_13 of Code_ROM  : label is "{INIT_13}";
	attribute INIT_14 of Code_ROM  : label is "{INIT_14}";
	attribute INIT_15 of Code_ROM  : label is "{INIT_15}";
	attribute INIT_16 of Code_ROM  : label is "{INIT_16}";
	attribute INIT_17 of Code_ROM  : label is "{INIT_17}";
	attribute INIT_18 of Code_ROM  : label is "{INIT_18}";
	attribute INIT_19 of Code_ROM  : label is "{INIT_19}";
	attribute INIT_1A of Code_ROM  : label is "{INIT_1A}";
	attribute INIT_1B of Code_ROM  : label is "{INIT_1B}";
	attribute INIT_1C of Code_ROM  : label is "{INIT_1C}";
	attribute INIT_1D of Code_ROM  : label is "{INIT_1D}";
	attribute INIT_1E of Code_ROM  : label is "{INIT_1E}";
	attribute INIT_1F of Code_ROM  : label is "{INIT_1F}";
	attribute INIT_20 of Code_ROM  : label is "{INIT_20}";
	attribute INIT_21 of Code_ROM  : label is "{INIT_21}";
	attribute INIT_22 of Code_ROM  : label is "{INIT_22}";
	attribute INIT_23 of Code_ROM  : label is "{INIT_23}";
	attribute INIT_24 of Code_ROM  : label is "{INIT_24}";
	attribute INIT_25 of Code_ROM  : label is "{INIT_25}";
	attribute INIT_26 of Code_ROM  : label is "{INIT_26}";
	attribute INIT_27 of Code_ROM  : label is "{INIT_27}";
	attribute INIT_28 of Code_ROM  : label is "{INIT_28}";
	attribute INIT_29 of Code_ROM  : label is "{INIT_29}";
	attribute INIT_2A of Code_ROM  : label is "{INIT_2A}";
	attribute INIT_2B of Code_ROM  : label is "{INIT_2B}";
	attribute INIT_2C of Code_ROM  : label is "{INIT_2C}";
	attribute INIT_2D of Code_ROM  : label is "{INIT_2D}";
	attribute INIT_2E of Code_ROM  : label is "{INIT_2E}";
	attribute INIT_2F of Code_ROM  : label is "{INIT_2F}";
	attribute INIT_30 of Code_ROM  : label is "{INIT_30}";
	attribute INIT_31 of Code_ROM  : label is "{INIT_31}";
	attribute INIT_32 of Code_ROM  : label is "{INIT_32}";
	attribute INIT_33 of Code_ROM  : label is "{INIT_33}";
	attribute INIT_34 of Code_ROM  : label is "{INIT_34}";
	attribute INIT_35 of Code_ROM  : label is "{INIT_35}";
	attribute INIT_36 of Code_ROM  : label is "{INIT_36}";
	attribute INIT_37 of Code_ROM  : label is "{INIT_37}";
	attribute INIT_38 of Code_ROM  : label is "{INIT_38}";
	attribute INIT_39 of Code_ROM  : label is "{INIT_39}";
	attribute INIT_3A of Code_ROM  : label is "{INIT_3A}";
	attribute INIT_3B of Code_ROM  : label is "{INIT_3B}";
	attribute INIT_3C of Code_ROM  : label is "{INIT_3C}";
	attribute INIT_3D of Code_ROM  : label is "{INIT_3D}";
	attribute INIT_3E of Code_ROM  : label is "{INIT_3E}";
	attribute INIT_3F of Code_ROM  : label is "{INIT_3F}";
	attribute INITP_00 of Code_ROM : label is "{INITP_00}";
	attribute INITP_01 of Code_ROM : label is "{INITP_01}";
	attribute INITP_02 of Code_ROM : label is "{INITP_02}";
	attribute INITP_03 of Code_ROM : label is "{INITP_03}";
	attribute INITP_04 of Code_ROM : label is "{INITP_04}";
	attribute INITP_05 of Code_ROM : label is "{INITP_05}";
	attribute INITP_06 of Code_ROM : label is "{INITP_06}";
	attribute INITP_07 of Code_ROM : label is "{INITP_07}";
 
	signal addra : std_logic_vector( 10 downto 0 ) ;
begin
	--Instantiate the Xilinx primitive for a block RAM
	Code_ROM: RAMB16_S9_S18
		--synthesis translate_off
		generic map ( 
			INIT_00 => X"{INIT_00}",
			INIT_01 => X"{INIT_01}",
			INIT_02 => X"{INIT_02}",
			INIT_03 => X"{INIT_03}",
			INIT_04 => X"{INIT_04}",
			INIT_05 => X"{INIT_05}",
			INIT_06 => X"{INIT_06}",
			INIT_07 => X"{INIT_07}",
			INIT_08 => X"{INIT_08}",
			INIT_09 => X"{INIT_09}",
			INIT_0A => X"{INIT_0A}",
			INIT_0B => X"{INIT_0B}",
			INIT_0C => X"{INIT_0C}",
			INIT_0D => X"{INIT_0D}",
			INIT_0E => X"{INIT_0E}",
			INIT_0F => X"{INIT_0F}",
			INIT_10 => X"{INIT_10}",
			INIT_11 => X"{INIT_11}",
			INIT_12 => X"{INIT_12}",
			INIT_13 => X"{INIT_13}",
			INIT_14 => X"{INIT_14}",
			INIT_15 => X"{INIT_15}",
			INIT_16 => X"{INIT_16}",
			INIT_17 => X"{INIT_17}",
			INIT_18 => X"{INIT_18}",
			INIT_19 => X"{INIT_19}",
			INIT_1A => X"{INIT_1A}",
			INIT_1B => X"{INIT_1B}",
			INIT_1C => X"{INIT_1C}",
			INIT_1D => X"{INIT_1D}",
			INIT_1E => X"{INIT_1E}",
			INIT_1F => X"{INIT_1F}",
			INIT_20 => X"{INIT_20}",
			INIT_21 => X"{INIT_21}",
			INIT_22 => X"{INIT_22}",
			INIT_23 => X"{INIT_23}",
			INIT_24 => X"{INIT_24}",
			INIT_25 => X"{INIT_25}",
			INIT_26 => X"{INIT_26}",
			INIT_27 => X"{INIT_27}",
			INIT_28 => X"{INIT_28}",
			INIT_29 => X"{INIT_29}",
			INIT_2A => X"{INIT_2A}",
			INIT_2B => X"{INIT_2B}",
			INIT_2C => X"{INIT_2C}",
			INIT_2D => X"{INIT_2D}",
			INIT_2E => X"{INIT_2E}",
			INIT_2F => X"{INIT_2F}",
			INIT_30 => X"{INIT_30}",
			INIT_31 => X"{INIT_31}",
			INIT_32 => X"{INIT_32}",
			INIT_33 => X"{INIT_33}",
			INIT_34 => X"{INIT_34}",
			INIT_35 => X"{INIT_35}",
			INIT_36 => X"{INIT_36}",
			INIT_37 => X"{INIT_37}",
			INIT_38 => X"{INIT_38}",
			INIT_39 => X"{INIT_39}",
			INIT_3A => X"{INIT_3A}",
			INIT_3B => X"{INIT_3B}",
			INIT_3C => X"{INIT_3C}",
			INIT_3D => X"{INIT_3D}",
			INIT_3E => X"{INIT_3E}",
			INIT_3F => X"{INIT_3F}",    
			INITP_00 => X"{INITP_00}",
			INITP_01 => X"{INITP_01}",
			INITP_02 => X"{INITP_02}",
			INITP_03 => X"{INITP_03}",
			INITP_04 => X"{INITP_04}",
			INITP_05 => X"{INITP_05}",
			INITP_06 => X"{INITP_06}",
			INITP_07 => X"{INITP_07}"		
		)
		--synthesis translate_on
 
		port map ( 
			-- instruction ROM size
			DIB => "0000000000000000",
			DIPB => "00",
 
			DOB => instruction( 15 downto 0 ),
			DOPB => instruction( 17 downto 16 ),
 
			ADDRB => address,
 
			ENB => '1',
			WEB => '0',
			SSRB => '0',
			CLKB => clk,
 
			-- scratch pad size
			DIA => scrpad_wdata,
			DIPA => "0",
 
			DOA => scrpad_rdata,
			DOPA => open,
 
			ADDRA => addra,
 
			ENA => '1',
			WEA => scr_pad_we,
			SSRA => '0',
			CLKA => clk
		) ; 
	addra <= "111" & scrpad_address ;
end structural ;
 
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.