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

📄 orca_ecmem.vhd

📁 free hardware ip core about sparcv8,a soc cpu in vhdl
💻 VHD
📖 第 1 页 / 共 5 页
字号:
        tipd_ada11 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada10 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada9 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada8 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada7 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada6 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada5 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada4 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada3 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada2 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada1 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ada0 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia17 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia16 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia15 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia14 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia13 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia12 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia11 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia10 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia9  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia8  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia7  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia6  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia5  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia4  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia3  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia2  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia1  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dia0  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_clka  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_cea  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_wea : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_csa0 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_csa1 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_csa2 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_rsta : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb12 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb11 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb10 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb9 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb8 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb7 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb6 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb5 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb4 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb3 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb2 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb1 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_adb0 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib17 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib16 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib15 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib14 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib13 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib12 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib11 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib10 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib9  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib8  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib7  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib6  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib5  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib4  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib3  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib2  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib1  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_dib0  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_clkb  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_ceb  : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_web : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_csb0 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_csb1 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_csb2 : VitalDelayType01 := (0.0 ns, 0.0 ns);        tipd_rstb : VitalDelayType01 := (0.0 ns, 0.0 ns);        -- propagation delays        -- setup and hold constraints        -- pulse width constraints        tperiod_clka            : VitalDelayType := 0.001 ns;        tpw_clka_posedge        : VitalDelayType := 0.001 ns;        tpw_clka_negedge        : VitalDelayType := 0.001 ns;        tperiod_clkb            : VitalDelayType := 0.001 ns;        tpw_clkb_posedge        : VitalDelayType := 0.001 ns;        tpw_clkb_negedge        : VitalDelayType := 0.001 ns);   PORT(        dia0, dia1, dia2, dia3, dia4, dia5, dia6, dia7, dia8            : in std_logic := 'X';        dia9, dia10, dia11, dia12, dia13, dia14, dia15, dia16, dia17    : in std_logic := 'X';        ada0, ada1, ada2, ada3, ada4, ada5, ada6, ada7, ada8            : in std_logic := 'X';        ada9, ada10, ada11, ada12                                       : in std_logic := 'X';        cea, clka, wea, csa0, csa1, csa2, rsta                         : in std_logic := 'X';        dib0, dib1, dib2, dib3, dib4, dib5, dib6, dib7, dib8            : in std_logic := 'X';        dib9, dib10, dib11, dib12, dib13, dib14, dib15, dib16, dib17    : in std_logic := 'X';        adb0, adb1, adb2, adb3, adb4, adb5, adb6, adb7, adb8            : in std_logic := 'X';        adb9, adb10, adb11, adb12                                       : in std_logic := 'X';        ceb, clkb, web, csb0, csb1, csb2, rstb                         : in std_logic := 'X';        doa0, doa1, doa2, doa3, doa4, doa5, doa6, doa7, doa8            : out std_logic := 'X';        doa9, doa10, doa11, doa12, doa13, doa14, doa15, doa16, doa17    : out std_logic := 'X';        dob0, dob1, dob2, dob3, dob4, dob5, dob6, dob7, dob8            : out std_logic := 'X';        dob9, dob10, dob11, dob12, dob13, dob14, dob15, dob16, dob17    : out std_logic := 'X'  );      ATTRIBUTE Vital_Level0 OF dp8ka : ENTITY IS TRUE;END dp8ka ;-- ARCHITECTURE body --ARCHITECTURE V OF dp8ka IS    ATTRIBUTE Vital_Level0 OF V : ARCHITECTURE IS TRUE;--SIGNAL DECLARATIONS----    SIGNAL ada_ipd   : std_logic_vector(12 downto 0) := (others => '0');    SIGNAL dia_ipd   : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL clka_ipd  : std_logic := '0';    SIGNAL cea_ipd   : std_logic := '0';    SIGNAL wrea_ipd  : std_logic := '0';    SIGNAL csa_ipd   : std_logic_vector(2 downto 0) := "000";    SIGNAL rsta_ipd  : std_logic := '0';    SIGNAL adb_ipd   : std_logic_vector(12 downto 0) := "XXXXXXXXXXXXX";    SIGNAL dib_ipd   : std_logic_vector(17 downto 0) := "XXXXXXXXXXXXXXXXXX";    SIGNAL clkb_ipd  : std_logic := '0';    SIGNAL ceb_ipd   : std_logic := '0';    SIGNAL wreb_ipd  : std_logic := '0';    SIGNAL csb_ipd   : std_logic_vector(2 downto 0) := "000";    SIGNAL rstb_ipd  : std_logic := '0';    SIGNAL csa_en    : std_logic := '0';    SIGNAL csb_en    : std_logic := '0';    SIGNAL g_reset   : std_logic := '0';    CONSTANT ADDR_WIDTH_A : integer := data2addr_w(DATA_WIDTH_A);     CONSTANT ADDR_WIDTH_B : integer := data2addr_w(DATA_WIDTH_B);     CONSTANT new_data_width_a : integer := data2data_w(DATA_WIDTH_A);     CONSTANT new_data_width_b : integer := data2data_w(DATA_WIDTH_B);     CONSTANT div_a    : integer := data2data(DATA_WIDTH_A);     CONSTANT div_b    : integer := data2data(DATA_WIDTH_B);     SIGNAL dia_node   : std_logic_vector((new_data_width_a - 1) downto 0) := (others => '0');    SIGNAL dib_node   : std_logic_vector((new_data_width_b - 1) downto 0) := (others => '0');    SIGNAL ada_node   : std_logic_vector((ADDR_WIDTH_A - 1) downto 0) := (others => '0');    SIGNAL adb_node   : std_logic_vector((ADDR_WIDTH_B - 1) downto 0) := (others => '0');    SIGNAL diab_node  : std_logic_vector(35 downto 0) := (others => '0');    SIGNAL rsta_int   : std_logic := '0';    SIGNAL rstb_int   : std_logic := '0';    SIGNAL rsta_reg   : std_logic := '0';    SIGNAL rstb_reg   : std_logic := '0';    SIGNAL reseta     : std_logic := '0';    SIGNAL resetb     : std_logic := '0';    SIGNAL dia_reg    : std_logic_vector((new_data_width_a - 1) downto 0) := (others => '0');    SIGNAL dib_reg    : std_logic_vector((new_data_width_b - 1) downto 0) := (others => '0');    SIGNAL ada_reg    : std_logic_vector((ADDR_WIDTH_A - 1) downto 0);    SIGNAL adb_reg    : std_logic_vector((ADDR_WIDTH_B - 1) downto 0);    SIGNAL diab_reg   : std_logic_vector(35 downto 0) := (others => '0');    SIGNAL wrena_reg  : std_logic := '0';    SIGNAL clka_valid : std_logic := '0';    SIGNAL clkb_valid : std_logic := '0';    SIGNAL clka_valid1 : std_logic := '0';    SIGNAL clkb_valid1 : std_logic := '0';    SIGNAL wrenb_reg  : std_logic := '0';    SIGNAL rena_reg   : std_logic := '0';    SIGNAL renb_reg   : std_logic := '0';    SIGNAL rsta_sig   : std_logic := '0';    SIGNAL rstb_sig   : std_logic := '0';    SIGNAL doa_node   : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL doa_node_tr   : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL doa_node_wt   : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL doa_node_rbr   : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL dob_node   : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL dob_node_tr   : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL dob_node_wt   : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL dob_node_rbr   : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL doa_reg    : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL dob_reg    : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL doab_reg   : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL doa_int    : std_logic_vector(17 downto 0) := (others => '0');    SIGNAL dob_int    : std_logic_vector(17 downto 0) := (others => '0');    CONSTANT initval   : string(2560 downto 1) := (      initval_1f(3 to 82)&initval_1e(3 to 82)&initval_1d(3 to 82)&initval_1c(3 to 82)&      initval_1b(3 to 82)&initval_1a(3 to 82)&initval_19(3 to 82)&initval_18(3 to 82)&      initval_17(3 to 82)&initval_16(3 to 82)&initval_15(3 to 82)&initval_14(3 to 82)&      initval_13(3 to 82)&initval_12(3 to 82)&initval_11(3 to 82)&initval_10(3 to 82)&      initval_0f(3 to 82)&initval_0e(3 to 82)&initval_0d(3 to 82)&initval_0c(3 to 82)&      initval_0b(3 to 82)&initval_0a(3 to 82)&initval_09(3 to 82)&initval_08(3 to 82)&      initval_07(3 to 82)&initval_06(3 to 82)&initval_05(3 to 82)&initval_04(3 to 82)&      initval_03(3 to 82)&initval_02(3 to 82)&initval_01(3 to 82)&initval_00(3 to 82));    SIGNAL MEM       : std_logic_vector(9215 downto 0) := init_ram (initval, DATA_WIDTH_A, DATA_WIDTH_B);    SIGNAL j         : integer := 0;BEGIN   -----------------------   -- input path delays   -----------------------   WireDelay : BLOCK   BEGIN   VitalWireDelay(ada_ipd(0), ada0, tipd_ada0);   VitalWireDelay(ada_ipd(1), ada1, tipd_ada1);   VitalWireDelay(ada_ipd(2), ada2, tipd_ada2);   VitalWireDelay(ada_ipd(3), ada3, tipd_ada3);   VitalWireDelay(ada_ipd(4), ada4, tipd_ada4);   VitalWireDelay(ada_ipd(5), ada5, tipd_ada5);   VitalWireDelay(ada_ipd(6), ada6, tipd_ada6);   VitalWireDelay(ada_ipd(7), ada7, tipd_ada7);   VitalWireDelay(ada_ipd(8), ada8, tipd_ada8);   VitalWireDelay(ada_ipd(9), ada9, tipd_ada9);   VitalWireDelay(ada_ipd(10), ada10, tipd_ada10);   VitalWireDelay(ada_ipd(11), ada11, tipd_ada11);   VitalWireDelay(ada_ipd(12), ada12, tipd_ada12);   VitalWireDelay(dia_ipd(0), dia0, tipd_dia0);   VitalWireDelay(dia_ipd(1), dia1, tipd_dia1);   VitalWireDelay(dia_ipd(2), dia2, tipd_dia2);   VitalWireDelay(dia_ipd(3), dia3, tipd_dia3);   VitalWireDelay(dia_ipd(4), dia4, tipd_dia4);   VitalWireDelay(dia_ipd(5), dia5, tipd_dia5);   VitalWireDelay(dia_ipd(6), dia6, tipd_dia6);   VitalWireDelay(dia_ipd(7), dia7, tipd_dia7);   VitalWireDelay(dia_ipd(8), dia8, tipd_dia8);   VitalWireDelay(dia_ipd(9), dia9, tipd_dia9);   VitalWireDelay(dia_ipd(10), dia10, tipd_dia10);   VitalWireDelay(dia_ipd(11), dia11, tipd_dia11);   VitalWireDelay(dia_ipd(12), dia12, tipd_dia12);   VitalWireDelay(dia_ipd(13), dia13, tipd_dia13);   VitalWireDelay(dia_ipd(14), dia14, tipd_dia14);   VitalWireDelay(dia_ipd(15), dia15, tipd_dia15);   VitalWireDelay(dia_ipd(16), dia16, tipd_dia16);   VitalWireDelay(dia_ipd(17), dia17, tipd_dia17);   VitalWireDelay(clka_ipd, clka, tipd_clka);   VitalWireDelay(wrea_ipd, wea, tipd_wea);   VitalWireDelay(cea_ipd, cea, tipd_cea);   VitalWireDelay(csa_ipd(0), csa0, tipd_csa0);   VitalWireDelay(csa_ipd(1), csa1, tipd_csa1);   VitalWireDelay(csa_ipd(2), csa2, tipd_csa2);   VitalWireDelay(rsta_ipd, rsta, tipd_rsta);   VitalWireDelay(adb_ipd(0), adb0, tipd_adb0);   VitalWireDelay(adb_ipd(1), adb1, tipd_adb1);   VitalWireDelay(adb_ipd(2), adb2, tipd_adb2);   VitalWireDelay(adb_ipd(3), adb3, tipd_adb3);   VitalWireDelay(adb_ipd(4), adb4, tipd_adb4);   VitalWireDelay(adb_ipd(5), adb5, tipd_adb5);   VitalWireDelay(adb_ipd(6), adb6, tipd_adb6);   VitalWireDelay(adb_ipd(7), adb7, tipd_adb7);   VitalWireDelay(adb_ipd(8), adb8, tipd_adb8);   VitalWireDelay(adb_ipd(9), adb9, tipd_adb9);   VitalWireDelay(adb_ipd(10), adb10, tipd_adb10);   VitalWireDelay(adb_ipd(11), adb11, tipd_adb11);   VitalWireDelay(adb_ipd(12), adb12, tipd_adb12);   VitalWireDelay(dib_ipd(0), dib0, tipd_dib0);   VitalWireDelay(dib_ipd(1), dib1, tipd_dib1);   VitalWireDelay(dib_ipd(2), dib2, tipd_dib2);   VitalWireDelay(dib_ipd(3), dib3, tipd_dib3);   VitalWireDelay(dib_ipd(4), dib4, tipd_dib4);   VitalWireDelay(dib_ipd(5), dib5, tipd_dib5);   VitalWireDelay(dib_ipd(6), dib6, tipd_dib6);   VitalWireDelay(dib_ipd(7), dib7, tipd_dib7);   VitalWireDelay(dib_ipd(8), dib8, tipd_dib8);   VitalWireDelay(dib_ipd(9), dib9, tipd_dib9);   VitalWireDelay(dib_ipd(10), dib10, tipd_dib10);   VitalWireDelay(dib_ipd(11), dib11, tipd_dib11);   VitalWireDelay(dib_ipd(12), dib12, tipd_dib12);   VitalWireDelay(dib_ipd(13), dib13, tipd_dib13);   VitalWireDelay(dib_ipd(14), dib14, tipd_dib14);   VitalWireDelay(dib_ipd(15), dib15, tipd_dib15);   VitalWireDelay(dib_ipd(16), dib16, tipd_dib16);   VitalWireDelay(dib_ipd(17), dib17, tipd_dib17);   VitalWireDelay(clkb_ipd, clkb, tipd_clkb);   VitalWireDelay(wreb_ipd, web, tipd_web);   VitalWireDelay(ceb_ipd, ceb, tipd_ceb);   VitalWireDelay(csb_ipd(0), csb0, tipd_csb0);   VitalWireDelay(csb_ipd(1), csb1, tipd_csb1);   VitalWireDelay(csb_ipd(2), csb2, tipd_csb2);   VitalWireDelay(rstb_ipd, rstb, tipd_rstb);   END BLOCK;   GLOBALRESET : PROCESS (purnet, gsrnet)    BEGIN      IF (GSR =  "DISABLED") THEN         g_reset <= purnet;      ELSE         g_reset <= purnet AND gsrnet;      END IF;    END PROCESS;  rsta_sig <= rsta_ipd or (not g_reset);  rstb_sig <= rstb_ipd or (not g_reset);--   set_reset <= g_reset and (not reset_ipd);  ada_node <= ada_ipd(12 downto (13 - ADDR_WIDTH_A));  adb_node <= adb_ipd(12 downto (13 - ADDR_WIDTH_B));-- chip select A decode  P1 : PROCESS(csa_ipd)  BEGIN     IF (csa_ipd = "000" and CSDECODE_A = "000") THEN        csa_en <= '1';     ELSIF (csa_ipd = "001" and CSDECODE_A = "001") THEN        csa_en <= '1';     ELSIF (csa_ipd = "010" and CSDECODE_A = "010") THEN        csa_en <= '1';     ELSIF (csa_ipd = "011" and CSDECODE_A = "011") THEN        csa_en <= '1';     ELSIF (csa_ipd = "100" and CSDECODE_A = "100") THEN

⌨️ 快捷键说明

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