Line 1... |
Line 1... |
--------------------------------------------------------------------------------
|
----------------------------------------------------------------------
|
|
---- operand_dp ----
|
|
---- ----
|
|
---- This file is part of the ----
|
|
---- Modular Simultaneous Exponentiation Core project ----
|
|
---- http://www.opencores.org/cores/mod_sim_exp/ ----
|
|
---- ----
|
|
---- Description ----
|
|
---- 4 x 512 bit dual port ram for the operands ----
|
|
---- 32 bit read and write for bus side and 512 bit read and ----
|
|
---- write for multiplier side ----
|
|
---- ----
|
|
---- Dependencies: none ----
|
|
---- ----
|
|
---- Authors: ----
|
|
---- - Geoffrey Ottoy, DraMCo research group ----
|
|
---- - Jonas De Craene, JonasDC@opencores.org ----
|
|
---- ----
|
|
----------------------------------------------------------------------
|
|
---- ----
|
|
---- Copyright (C) 2011 DraMCo research group and OPENCORES.ORG ----
|
|
---- ----
|
|
---- This source file may be used and distributed without ----
|
|
---- restriction provided that this copyright statement is not ----
|
|
---- removed from the file and that any derivative work contains ----
|
|
---- the original copyright notice and the associated disclaimer. ----
|
|
---- ----
|
|
---- This source file is free software; you can redistribute it ----
|
|
---- and/or modify it under the terms of the GNU Lesser General ----
|
|
---- Public License as published by the Free Software Foundation; ----
|
|
---- either version 2.1 of the License, or (at your option) any ----
|
|
---- later version. ----
|
|
---- ----
|
|
---- This source is distributed in the hope that it will be ----
|
|
---- useful, but WITHOUT ANY WARRANTY; without even the implied ----
|
|
---- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ----
|
|
---- PURPOSE. See the GNU Lesser General Public License for more ----
|
|
---- details. ----
|
|
---- ----
|
|
---- You should have received a copy of the GNU Lesser General ----
|
|
---- Public License along with this source; if not, download it ----
|
|
---- from http://www.opencores.org/lgpl.shtml ----
|
|
---- ----
|
|
----------------------------------------------------------------------
|
|
----------------------------------------------------------------------
|
-- This file is owned and controlled by Xilinx and must be used --
|
-- This file is owned and controlled by Xilinx and must be used --
|
-- solely for design, simulation, implementation and creation of --
|
-- solely for design, simulation, implementation and creation of --
|
-- design files limited to Xilinx devices or technologies. Use --
|
-- design files limited to Xilinx devices or technologies. Use --
|
-- with non-Xilinx devices or technologies is expressly prohibited --
|
-- with non-Xilinx devices or technologies is expressly prohibited --
|
-- and immediately terminates your license. --
|
-- and immediately terminates your license. --
|
Line 23... |
Line 67... |
-- appliances, devices, or systems. Use in such applications are --
|
-- appliances, devices, or systems. Use in such applications are --
|
-- expressly prohibited. --
|
-- expressly prohibited. --
|
-- --
|
-- --
|
-- (c) Copyright 1995-2009 Xilinx, Inc. --
|
-- (c) Copyright 1995-2009 Xilinx, Inc. --
|
-- All rights reserved. --
|
-- All rights reserved. --
|
--------------------------------------------------------------------------------
|
----------------------------------------------------------------------
|
-- You must compile the wrapper file operand_dp.vhd when simulating
|
-- You must compile the wrapper file operand_dp.vhd when simulating
|
-- the core, operand_dp. When compiling the wrapper file, be sure to
|
-- the core, operand_dp. When compiling the wrapper file, be sure to
|
-- reference the XilinxCoreLib VHDL simulation library. For detailed
|
-- reference the XilinxCoreLib VHDL simulation library. For detailed
|
-- instructions, please refer to the "CORE Generator Help".
|
-- instructions, please refer to the "CORE Generator Help".
|
|
|
-- The synthesis directives "translate_off/translate_on" specified
|
-- The synthesis directives "translate_off/translate_on" specified
|
-- below are supported by Xilinx, Mentor Graphics and Synplicity
|
-- below are supported by Xilinx, Mentor Graphics and Synplicity
|
-- synthesis tools. Ensure they are correct for your synthesis tool(s).
|
-- synthesis tools. Ensure they are correct for your synthesis tool(s).
|
|
|
LIBRARY ieee;
|
|
USE ieee.std_logic_1164.ALL;
|
library ieee;
|
|
use ieee.std_logic_1164.ALL;
|
-- synthesis translate_off
|
-- synthesis translate_off
|
Library XilinxCoreLib;
|
library XilinxCoreLib;
|
-- synthesis translate_on
|
-- synthesis translate_on
|
ENTITY operand_dp IS
|
|
|
|
|
entity operand_dp is
|
port (
|
port (
|
clka: IN std_logic;
|
clka : in std_logic;
|
wea: IN std_logic_VECTOR(0 downto 0);
|
wea : in std_logic_vector(0 downto 0);
|
addra: IN std_logic_VECTOR(5 downto 0);
|
addra : in std_logic_vector(5 downto 0);
|
dina: IN std_logic_VECTOR(31 downto 0);
|
dina : in std_logic_vector(31 downto 0);
|
douta: OUT std_logic_VECTOR(511 downto 0);
|
douta : out std_logic_vector(511 downto 0);
|
clkb: IN std_logic;
|
clkb : in std_logic;
|
web: IN std_logic_VECTOR(0 downto 0);
|
web : in std_logic_vector(0 downto 0);
|
addrb: IN std_logic_VECTOR(5 downto 0);
|
addrb : in std_logic_vector(5 downto 0);
|
dinb: IN std_logic_VECTOR(511 downto 0);
|
dinb : in std_logic_vector(511 downto 0);
|
doutb: OUT std_logic_VECTOR(31 downto 0));
|
doutb : out std_logic_vector(31 downto 0)
|
END operand_dp;
|
);
|
|
end operand_dp;
|
|
|
ARCHITECTURE operand_dp_a OF operand_dp IS
|
|
|
architecture operand_dp_a of operand_dp is
|
-- synthesis translate_off
|
-- synthesis translate_off
|
component wrapped_operand_dp
|
component wrapped_operand_dp
|
port (
|
port (
|
clka: IN std_logic;
|
clka : in std_logic;
|
wea: IN std_logic_VECTOR(0 downto 0);
|
wea : in std_logic_vector(0 downto 0);
|
addra: IN std_logic_VECTOR(5 downto 0);
|
addra : in std_logic_vector(5 downto 0);
|
dina: IN std_logic_VECTOR(31 downto 0);
|
dina : in std_logic_vector(31 downto 0);
|
douta: OUT std_logic_VECTOR(511 downto 0);
|
douta : out std_logic_vector(511 downto 0);
|
clkb: IN std_logic;
|
clkb : in std_logic;
|
web: IN std_logic_VECTOR(0 downto 0);
|
web : in std_logic_vector(0 downto 0);
|
addrb: IN std_logic_VECTOR(5 downto 0);
|
addrb : in std_logic_vector(5 downto 0);
|
dinb: IN std_logic_VECTOR(511 downto 0);
|
dinb : in std_logic_vector(511 downto 0);
|
doutb: OUT std_logic_VECTOR(31 downto 0));
|
doutb : out std_logic_vector(31 downto 0)
|
|
);
|
end component;
|
end component;
|
|
|
-- Configuration specification
|
-- Configuration specification
|
for all : wrapped_operand_dp use entity XilinxCoreLib.blk_mem_gen_v3_3(behavioral)
|
for all : wrapped_operand_dp use entity XilinxCoreLib.blk_mem_gen_v3_3(behavioral)
|
generic map(
|
generic map(
|
Line 120... |
Line 170... |
c_has_ena => 0,
|
c_has_ena => 0,
|
c_use_byte_web => 0,
|
c_use_byte_web => 0,
|
c_use_byte_wea => 0,
|
c_use_byte_wea => 0,
|
c_rst_priority_b => "CE",
|
c_rst_priority_b => "CE",
|
c_rst_priority_a => "CE",
|
c_rst_priority_a => "CE",
|
c_use_default_data => 0);
|
c_use_default_data => 0
|
|
);
|
-- synthesis translate_on
|
-- synthesis translate_on
|
BEGIN
|
begin
|
-- synthesis translate_off
|
-- synthesis translate_off
|
U0 : wrapped_operand_dp
|
U0 : wrapped_operand_dp
|
port map (
|
port map (
|
clka => clka,
|
clka => clka,
|
wea => wea,
|
wea => wea,
|
Line 135... |
Line 186... |
douta => douta,
|
douta => douta,
|
clkb => clkb,
|
clkb => clkb,
|
web => web,
|
web => web,
|
addrb => addrb,
|
addrb => addrb,
|
dinb => dinb,
|
dinb => dinb,
|
doutb => doutb);
|
doutb => doutb
|
|
);
|
-- synthesis translate_on
|
-- synthesis translate_on
|
|
|
END operand_dp_a;
|
end operand_dp_a;
|
|
|
|
|
No newline at end of file
|
No newline at end of file
|