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

📄 ecp2_misc.vhd

📁 porting scintilla to qt
💻 VHD
📖 第 1 页 / 共 5 页
字号:
    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 bwa0_reg   : std_logic_vector(1 downto 0) := (others => '0');    SIGNAL bwa1_reg   : std_logic_vector(1 downto 0) := (others => '0');    SIGNAL bwb_reg    : std_logic_vector(1 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 last_clka_valid1 : std_logic := '0';    SIGNAL last_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');	 --write & read/write collision flags	 signal wr_a_wr_b_coll : std_logic := '0';	 signal wr_a_rd_b_coll : std_logic := '0';	 signal rd_a_wr_b_coll : std_logic := '0';	 --lower & upper collision addresses    signal dn_coll_addr, up_coll_addr : integer;    CONSTANT initval   : string(5120 downto 1) := (      initval_3f(3 to 82)&initval_3e(3 to 82)&initval_3d(3 to 82)&initval_3c(3 to 82)&      initval_3b(3 to 82)&initval_3a(3 to 82)&initval_39(3 to 82)&initval_38(3 to 82)&      initval_37(3 to 82)&initval_36(3 to 82)&initval_35(3 to 82)&initval_34(3 to 82)&      initval_33(3 to 82)&initval_32(3 to 82)&initval_31(3 to 82)&initval_30(3 to 82)&      initval_2f(3 to 82)&initval_2e(3 to 82)&initval_2d(3 to 82)&initval_2c(3 to 82)&      initval_2b(3 to 82)&initval_2a(3 to 82)&initval_29(3 to 82)&initval_28(3 to 82)&      initval_27(3 to 82)&initval_26(3 to 82)&initval_25(3 to 82)&initval_24(3 to 82)&      initval_23(3 to 82)&initval_22(3 to 82)&initval_21(3 to 82)&initval_20(3 to 82)&      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(18431 downto 0) := init_ram (initval);    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(ada_ipd(13), ada13, tipd_ada13);   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(adb_ipd(13), adb13, tipd_adb13);   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(13 downto (14 - ADDR_WIDTH_A));  adb_node <= adb_ipd(13 downto (14 - 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        csa_en <= '1';     ELSIF (csa_ipd = "101" and CSDECODE_A = "101") THEN        csa_en <= '1';     ELSIF (csa_ipd = "110" and CSDECODE_A = "110") THEN        csa_en <= '1';     ELSIF (csa_ipd = "111" and CSDECODE_A = "111") THEN        csa_en <= '1';     ELSE        csa_en <= '0';     END IF;  END PROCESS;  P2 : PROCESS(csb_ipd)  BEGIN     IF (csb_ipd = "000" and CSDECODE_B = "000") THEN        csb_en <= '1';     ELSIF (csb_ipd = "001" and CSDECODE_B = "001") THEN        csb_en <= '1';     ELSIF (csb_ipd = "010" and CSDECODE_B = "010") THEN        csb_en <= '1';     ELSIF (csb_ipd = "011" and CSDECODE_B = "011") THEN        csb_en <= '1';     ELSIF (csb_ipd = "100" and CSDECODE_B = "100") THEN        csb_en <= '1';     ELSIF (csb_ipd = "101" and CSDECODE_B = "101") THEN        csb_en <= '1';     ELSIF (csb_ipd = "110" and CSDECODE_B = "110") THEN        csb_en <= '1';     ELSIF (csb_ipd = "111" and CSDECODE_B = "111") THEN        csb_en <= '1';     ELSE        csb_en <= '0';     END IF;  END PROCESS;  P3 : PROCESS(dia_ipd)  BEGIN     CASE DATA_WIDTH_A IS       WHEN 1 =>        dia_node <= dia_ipd(11 downto 11);       WHEN 2 =>        dia_node <= (dia_ipd(1), dia_ipd(11));       WHEN 4 =>        dia_node <= dia_ipd(3 downto 0);        WHEN 9 =>        dia_node <= dia_ipd(8 downto 0);       WHEN 18 =>        dia_node <= dia_ipd;       WHEN 36 =>        dia_node <= dia_ipd;       WHEN others =>          NULL;     END CASE;  END PROCESS;  P4 : PROCESS(dib_ipd)  BEGIN     CASE DATA_WIDTH_B IS       WHEN 1 =>        dib_node <= dib_ipd(11 downto 11);       WHEN 2 =>        dib_node <= (dib_ipd(1), dib_ipd(11));       WHEN 4 =>        dib_node <= dib_ipd(3 downto 0);        WHEN 9 =>        dib_node <= dib_ipd(8 downto 0);       WHEN 18 =>        dib_node <= dib_ipd;       WHEN 36 =>        dib_node <= dib_ipd;       WHEN others =>          NULL;     END CASE;  END PROCESS;  diab_node <= (dib_ipd & dia_ipd);  P107 : PROCESS(clka_ipd)  BEGIN     IF (clka_ipd'event and clka_ipd = '1') THEN        IF ((g_reset = '0') or (rsta_ipd = '1')) THEN           clka_valid <= '0';        ELSE           IF (cea_ipd = '1') THEN              IF (csa_en = '1') THEN                 clka_valid <= '1', '0' after 0.2 ns;              ELSE                 clka_valid <= '0';              END IF;

⌨️ 快捷键说明

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