亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mt48lc2m32b2_2.vhd

?? sdram controller in vhdl
?? VHD
?? 第 1 頁 / 共 4 頁
字號:
                Dq_dir <= "0000";
            END IF;
			
            -- Detect Read or Write Command
            IF Command(0) = READ OR Command(0) = READ_A THEN
                Bank := Bank_addr (0);
                Col := Col_addr (0);
                Col_brst := Col_addr (0);
                IF Bank_addr (0) = "00" THEN
                    Row := B0_row_addr;
                ELSIF Bank_addr (0) = "01" THEN
                    Row := B1_row_addr;
                ELSIF Bank_addr (0) = "10" THEN
                    Row := B2_row_addr;
                ELSE
                    Row := B3_row_addr;
                END IF;
                Burst_counter := 0;
                Data_in_enable := '0';
                Data_out_enable := '1';
            ELSIF Command(0) = WRITE OR Command(0) = WRITE_A THEN
                Bank := Bank_addr(0);
                Col := Col_addr(0);
                Col_brst := Col_addr(0);
                IF Bank_addr (0) = "00" THEN
                    Row := B0_row_addr;
                ELSIF Bank_addr (0) = "01" THEN
                    Row := B1_row_addr;
                ELSIF Bank_addr (0) = "10" THEN
                    Row := B2_row_addr;
                ELSE
                    Row := B3_row_addr;
                END IF;
                Burst_counter := 0;
                Data_in_enable := '1';
                Data_out_enable := '0';
            END IF;

            -- DQ (Driver / Receiver)
            Row_index := CONV_INTEGER (Row);
            Col_index := CONV_INTEGER (Col);
            IF Data_in_enable = '1' THEN
                IF Dqm /= "1111" THEN
                    -- Initialize memory
                    Init_mem (Bank, Row_index);
                    -- Load memory into buffer
                    IF Bank = "00" THEN
                        Dq_temp := Bank0 (Row_index) (Col_index);
                    ELSIF Bank = "01" THEN
                        Dq_temp := Bank1 (Row_index) (Col_index);
                    ELSIF Bank = "10" THEN
                        Dq_temp := Bank2 (Row_index) (Col_index);
                    ELSIF Bank = "11" THEN
                        Dq_temp := Bank3 (Row_index) (Col_index);
                    END IF;
                    -- Dqm operation
                    IF Dqm (0) = '0' THEN
                        Dq_temp (7 DOWNTO 0) := Dq_in (7 DOWNTO 0);
                    END IF;
                    IF Dqm (1) = '0' THEN
                        Dq_temp (15 DOWNTO 8) := Dq_in (15 DOWNTO 8);
                    END IF;
                    IF Dqm (2) = '0' THEN
                        Dq_temp (23 DOWNTO 16) := Dq_in (23 DOWNTO 16);
                    END IF;
                    IF Dqm (3) = '0' THEN
                        Dq_temp (31 DOWNTO 24) := Dq_in (31 DOWNTO 24);
                    END IF;
                    -- Write back to memory
                    IF Bank = "00" THEN
                        Bank0 (Row_index) (Col_index) := Dq_temp;
                    ELSIF Bank = "01" THEN
                        Bank1 (Row_index) (Col_index) := Dq_temp;
                    ELSIF Bank = "10" THEN
                        Bank2 (Row_index) (Col_index) := Dq_temp;
                    ELSIF Bank = "11" THEN
                        Bank3 (Row_index) (Col_index) := Dq_temp;
                    END IF;
                    -- Reset tWR counter
                    WR_chkp(CONV_INTEGER(Bank)) := NOW;
                    WR_counter(CONV_INTEGER(Bank)) := 0;
                END IF;
                -- Decode next burst address
                Burst_decode;
            ELSIF Data_out_enable = '1' THEN
			        IF Dqm_reg0 /= "1111" THEN
                    -- Initialize memory
                    Init_mem (Bank, Row_index);
                    -- Load memory into buffer
                    IF Bank = "00" THEN
                        Dq_temp := Bank0 (Row_index) (Col_index);
                    ELSIF Bank = "01" THEN
                        Dq_temp := Bank1 (Row_index) (Col_index);
                    ELSIF Bank = "10" THEN
                        Dq_temp := Bank2 (Row_index) (Col_index);
                    ELSIF Bank = "11" THEN
                        Dq_temp := Bank3 (Row_index) (Col_index);
                    END IF;
                    -- Dqm operation
                    IF Dqm_reg0 (0) = '0' THEN
                        Dq_out (7 DOWNTO 0) <= Dq_temp(7 DOWNTO 0);
                    	Dq_dir(0) <= '1';
					ELSE
                    	Dq_dir(0) <= '0';
					END IF;
                    IF Dqm_reg0 (1) = '0' THEN
                        Dq_out (15 DOWNTO 8) <= Dq_temp(15 DOWNTO 8);
                    	Dq_dir(1) <= '1';
					ELSE
                     	Dq_dir(1) <= '0';
					END IF;
                    IF Dqm_reg0 (2) = '0' THEN
                        Dq_out (23 DOWNTO 16) <= Dq_temp(23 DOWNTO 16);
                    	Dq_dir(2) <= '1';
					ELSE
                     	Dq_dir(2) <= '0';
					END IF;
                    IF Dqm_reg0 (3) = '0' THEN
                        Dq_out (31 DOWNTO 24) <= Dq_temp(31 DOWNTO 24);
                    	Dq_dir(3) <= '1';
					ELSE
                      	Dq_dir(3) <= '0';
					END IF;
                ELSE
                    Dq_out <= (OTHERS => 'Z');
                	Dq_dir <= "0000";
				END IF;
                Burst_decode;
            END IF;

            -- Write with AutoPrecharge Calculation
            --      The device start internal precharge when:
            --          1.  tWR cycles after command
            --      and 2.  Meet tRAS requirement
            --       or 3.  Interrupt by a Read or Write (with or without Auto Precharge)
            IF ((Auto_precharge(0) = '1') AND (Write_precharge(0) = '1')) THEN
                IF (((NOW - RAS_chk0 >= tRAS) AND
                   (((Burst_length_1 = '1' OR Write_burst_mode = '1' ) AND Count_precharge(0) >= 1 AND NOW - Count_time(0) >= tWRa)  OR
                     (Burst_length_2 = '1'                             AND Count_precharge(0) >= 2 AND NOW - Count_time(0) >= tWRa)  OR
                     (Burst_length_4 = '1'                             AND Count_precharge(0) >= 4 AND NOW - Count_time(0) >= tWRa)  OR
                     (Burst_length_8 = '1'                             AND Count_precharge(0) >= 8 AND NOW - Count_time(0) >= tWRa))) OR
                     (RW_interrupt_write(0) = '1' AND WR_counter(0) >= 1 AND NOW - WR_time(0) >= tWRa)) THEN
                    Auto_precharge(0) := '0';
                    Write_precharge(0) := '0';
                    RW_interrupt_write(0) := '0';
                    Pc_b0 := '1';
                    Act_b0 := '0';
                    RP_chk0 := NOW;
                    ASSERT FALSE REPORT "Start Internal Precharge Bank 0" SEVERITY NOTE;
                END IF;
            END IF;
            IF ((Auto_precharge(1) = '1') AND (Write_precharge(1) = '1')) THEN
                IF (((NOW - RAS_chk1 >= tRAS) AND
                   (((Burst_length_1 = '1' OR Write_burst_mode = '1' ) AND Count_precharge(1) >= 1 AND NOW - Count_time(1) >= tWRa)  OR
                     (Burst_length_2 = '1'                             AND Count_precharge(1) >= 2 AND NOW - Count_time(1) >= tWRa)  OR
                     (Burst_length_4 = '1'                             AND Count_precharge(1) >= 4 AND NOW - Count_time(1) >= tWRa)  OR
                     (Burst_length_8 = '1'                             AND Count_precharge(1) >= 8 AND NOW - Count_time(1) >= tWRa))) OR
                     (RW_interrupt_write(1) = '1' AND WR_counter(1) >= 1 AND NOW - WR_time(1) >= tWRa)) THEN
                    Auto_precharge(1) := '0';
                    Write_precharge(1) := '0';
                    RW_interrupt_write(1) := '0';
                    Pc_b1 := '1';
                    Act_b1 := '0';
                    RP_chk1 := NOW;
                END IF;
            END IF;
            IF ((Auto_precharge(2) = '1') AND (Write_precharge(2) = '1')) THEN
                IF (((NOW - RAS_chk2 >= tRAS) AND
                   (((Burst_length_1 = '1' OR Write_burst_mode = '1' ) AND Count_precharge(2) >= 1 AND NOW - Count_time(2) >= tWRa)  OR
                     (Burst_length_2 = '1'                             AND Count_precharge(2) >= 2 AND NOW - Count_time(2) >= tWRa)  OR
                     (Burst_length_4 = '1'                             AND Count_precharge(2) >= 4 AND NOW - Count_time(2) >= tWRa)  OR
                     (Burst_length_8 = '1'                             AND Count_precharge(2) >= 8 AND NOW - Count_time(2) >= tWRa))) OR
                     (RW_interrupt_write(2) = '1' AND WR_counter(2) >= 1 AND NOW - WR_time(2) >= tWRa)) THEN
                    Auto_precharge(2) := '0';
                    Write_precharge(2) := '0';
                    RW_interrupt_write(2) := '0';
                    Pc_b2 := '1';
                    Act_b2 := '0';
                    RP_chk2 := NOW;
                END IF;
            END IF;
            IF ((Auto_precharge(3) = '1') AND (Write_precharge(3) = '1')) THEN
                IF (((NOW - RAS_chk3 >= tRAS) AND
                   (((Burst_length_1 = '1' OR Write_burst_mode = '1' ) AND Count_precharge(3) >= 1 AND NOW - Count_time(3) >= tWRa)  OR
                     (Burst_length_2 = '1'                             AND Count_precharge(3) >= 2 AND NOW - Count_time(3) >= tWRa)  OR
                     (Burst_length_4 = '1'                             AND Count_precharge(3) >= 4 AND NOW - Count_time(3) >= tWRa)  OR
                     (Burst_length_8 = '1'                             AND Count_precharge(3) >= 8 AND NOW - Count_time(3) >= tWRa))) OR
                     (RW_interrupt_write(0) = '1' AND WR_counter(0) >= 1 AND NOW - WR_time(3) >= tWRa)) THEN
                    Auto_precharge(3) := '0';
                    Write_precharge(3) := '0';
                    RW_interrupt_write(3) := '0';
                    Pc_b3 := '1';
                    Act_b3 := '0';
                    RP_chk3 := NOW;
                END IF;
            END IF;
          END IF;
	END PROCESS;

    -- Clock timing checks
    Clock_check : PROCESS
        VARIABLE Clk_low, Clk_high : TIME := 0 ns;
        BEGIN
            WAIT ON Clk;
                IF (Clk = '1' AND NOW >= 10 ns) THEN
                    ASSERT (NOW - Clk_low >= tCL)
                        REPORT "tCL violation"
                        SEVERITY WARNING;
                    ASSERT (NOW - Clk_high >= tCK)
                        REPORT "tCK violation"
                        SEVERITY WARNING;
                    Clk_high := NOW;
                ELSIF (Clk = '0' AND NOW /= 0 ns) THEN
                    ASSERT (NOW - Clk_high >= tCH)
                        REPORT "tCH violation"
                        SEVERITY WARNING;
                    Clk_low := NOW;
                END IF;
    END PROCESS;

    -- Setup timing checks
    Setup_check : PROCESS
        BEGIN
            WAIT ON Clk;
                IF Clk = '1' THEN
                    ASSERT(Cke'LAST_EVENT >= tCKS)
                        REPORT "CKE Setup time violation -- tCKS"
                        SEVERITY WARNING;
                    ASSERT(Cs_n'LAST_EVENT >= tCMS)
                        REPORT "CS# Setup time violation -- tCMS"
                        SEVERITY WARNING;
                    ASSERT(Cas_n'LAST_EVENT >= tCMS)
                        REPORT "CAS# Setup time violation -- tCMS"
                        SEVERITY WARNING;
                    ASSERT(Ras_n'LAST_EVENT >= tCMS)
                        REPORT "RAS# Setup time violation -- tCMS"
                        SEVERITY WARNING;
                    ASSERT(We_n'LAST_EVENT >= tCMS)
                        REPORT "WE# Setup time violation -- tCMS"
                        SEVERITY WARNING;
                    ASSERT(Dqm'LAST_EVENT >= tCMS)
                        REPORT "Dqm Setup time violation -- tCMS"
                        SEVERITY WARNING;
                    ASSERT(Addr'LAST_EVENT >= tAS)
                        REPORT "ADDR Setup time violation -- tAS"
                        SEVERITY WARNING;
                    ASSERT(Ba'LAST_EVENT >= tAS)
                        REPORT "BA Setup time violation -- tAS"
                        SEVERITY WARNING;
                    ASSERT(Dq_in'LAST_EVENT >= tDS)
                        REPORT "Dq Setup time violation -- tDS"
                        SEVERITY WARNING;
                END IF;   
    END PROCESS;

    -- Hold timing checks
    Hold_check : PROCESS
        BEGIN
            WAIT ON Clk'DELAYED (tCKH), Clk'DELAYED (tCMH), Clk'DELAYED (tDH);
                IF Clk'DELAYED (tCKH) = '1' THEN
                    ASSERT(Cke'LAST_EVENT > tCKH)
                        REPORT "CKE Hold time violation -- tCKH"
                        SEVERITY WARNING;
                END IF;
                IF Clk'DELAYED (tCMH) = '1' THEN
                    ASSERT(Cs_n'LAST_EVENT > tCMH)
                        REPORT "CS# Hold time violation -- tCMH"
                        SEVERITY WARNING;
                    ASSERT(Cas_n'LAST_EVENT > tCMH)
                        REPORT "CAS# Hold time violation -- tCMH"
                        SEVERITY WARNING;
                    ASSERT(Ras_n'LAST_EVENT > tCMH)
                        REPORT "RAS# Hold time violation -- tCMH"
                        SEVERITY WARNING;
                    ASSERT(We_n'LAST_EVENT > tCMH)
                        REPORT "WE# Hold time violation -- tCMH"
                        SEVERITY WARNING;
                    ASSERT(Dqm'LAST_EVENT > tCMH)
                        REPORT "Dqm Hold time violation -- tCMH"
                        SEVERITY WARNING;
                END IF;
                IF Clk'DELAYED (tDH) = '1' THEN
                    ASSERT(Dq_in'LAST_EVENT > tDH)
                        REPORT "DQ Hold time violation -- tDH"
                        SEVERITY WARNING;
                END IF;
    END PROCESS;

END behave;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费看的电影| 精品国产一区二区三区不卡| 久久影院电视剧免费观看| 日本一区免费视频| 另类小说一区二区三区| 欧美另类变人与禽xxxxx| 亚洲天堂免费在线观看视频| 风间由美一区二区三区在线观看| 欧美草草影院在线视频| 日本vs亚洲vs韩国一区三区二区 | 色欲综合视频天天天| 国产亚洲成年网址在线观看| 久久丁香综合五月国产三级网站| 欧美一区二区三区在线| 久久精品国产久精国产| av在线一区二区| 成人午夜精品在线| 国产成人午夜高潮毛片| 国产调教视频一区| 国产成人高清在线| 日日夜夜精品视频免费| 欧美视频日韩视频在线观看| 亚洲一级二级在线| 91.成人天堂一区| 久久99精品久久只有精品| 精品久久久久av影院| 国产精品99精品久久免费| 精品久久久久av影院| 91首页免费视频| 一区二区激情小说| 777久久久精品| 国产成人免费高清| 中文字幕不卡三区| 欧美午夜理伦三级在线观看| 日本色综合中文字幕| 国产视频在线观看一区二区三区| 成人丝袜18视频在线观看| 亚洲男人的天堂av| 色综合一个色综合亚洲| 麻豆精品一二三| 国产色综合久久| 一本色道久久加勒比精品| 国模大尺度一区二区三区| 国产精品久久综合| 欧美色图在线观看| 粉嫩高潮美女一区二区三区| 亚洲自拍都市欧美小说| 91精品国产麻豆国产自产在线| 久久av资源站| 国产精品成人在线观看| 91麻豆精品久久久久蜜臀| 日韩福利视频网| 亚洲日穴在线视频| 欧美一区二区三区在线视频| 成人免费视频视频| 91精品中文字幕一区二区三区| 国产在线观看一区二区 | 久久精品人人做人人综合 | 国产老女人精品毛片久久| 亚洲色图.com| 欧美精品一区二区三区四区| 色94色欧美sute亚洲线路二| 蜜臀av一级做a爰片久久| 精品噜噜噜噜久久久久久久久试看 | 亚洲成人中文在线| 国产日韩精品久久久| 日韩欧美在线综合网| 91在线一区二区三区| 精品在线播放免费| 日韩高清电影一区| 亚洲在线观看免费| 国产精品美女久久久久久| 欧美在线视频全部完| 成人黄色av电影| 韩国欧美一区二区| 午夜成人免费视频| 性欧美疯狂xxxxbbbb| 日韩毛片精品高清免费| 久久久久国产免费免费 | 一区二区在线观看免费| 久久综合久久鬼色| 欧美精品乱码久久久久久按摩| 99久久99久久免费精品蜜臀| 成熟亚洲日本毛茸茸凸凹| 日本成人在线网站| 亚洲一区二区av电影| 国产精品久久久久久久第一福利| 久久无码av三级| 日韩欧美一区二区久久婷婷| 色悠久久久久综合欧美99| 一本到三区不卡视频| 99re热这里只有精品视频| 风间由美中文字幕在线看视频国产欧美| 国产中文一区二区三区| 六月丁香综合在线视频| 日本色综合中文字幕| 亚洲六月丁香色婷婷综合久久 | 午夜成人在线视频| 日本一区二区久久| 亚洲欧美综合色| 日韩美女精品在线| 亚洲精品乱码久久久久久黑人| 一区二区三区不卡视频在线观看| 亚洲欧美另类图片小说| 国产精品久久久久久久蜜臀| 欧美高清视频一二三区| 欧美成人vps| 精品国产乱码久久久久久久久| 精品久久久久一区二区国产| 国产亚洲短视频| 国产精品久久久久久久久图文区| 中文字幕日韩一区| eeuss国产一区二区三区| 欧美午夜在线观看| 91老司机福利 在线| 91免费看视频| 欧美日韩在线播放三区四区| 精品国产乱码久久久久久图片 | 国产精品久久久久久久久免费桃花 | 久久久www成人免费无遮挡大片| 欧美变态tickle挠乳网站| 依依成人精品视频| 亚洲欧美成人一区二区三区| 欧美国产精品中文字幕| 国产精品激情偷乱一区二区∴| 一区二区三区在线免费观看| 亚洲福利一区二区| 美女国产一区二区| 国产精品亚洲成人| 色伊人久久综合中文字幕| 欧美日高清视频| 久久先锋资源网| 亚洲一区免费观看| 久久av资源站| 91亚洲精品久久久蜜桃网站| 欧美综合一区二区| 成人激情av网| 欧美三级视频在线观看| 久久久国产综合精品女国产盗摄| 亚洲成人在线免费| 色综合天天综合| 国产午夜精品久久久久久免费视| 亚洲成人激情av| 99久久99久久精品国产片果冻| 欧美xxxxx裸体时装秀| 尤物在线观看一区| 成人亚洲一区二区一| 日韩精品最新网址| 婷婷国产在线综合| 色狠狠一区二区| 日韩理论电影院| 国产精品18久久久久久久久久久久| 欧美男人的天堂一二区| 亚洲青青青在线视频| 国产精品性做久久久久久| 精品免费日韩av| 日韩中文字幕亚洲一区二区va在线| 色婷婷综合久久久中文字幕| 国产精品污网站| 国产成人啪免费观看软件| 日韩精品一区在线观看| 日本91福利区| 日韩一二三区不卡| 日本系列欧美系列| 日韩一区二区三区av| 亚洲不卡一区二区三区| 欧美三级在线看| 香蕉成人伊视频在线观看| 91福利社在线观看| 一区二区在线免费观看| 欧洲一区二区三区在线| 亚洲女同一区二区| 日本韩国一区二区| 一区二区久久久久久| 欧美日韩精品电影| 午夜影院久久久| 91精品国产综合久久精品app| 日韩黄色小视频| 欧美一区二区三区电影| 久久国产日韩欧美精品| 2024国产精品| 国产精品1024久久| 国产精品久久久久久久久久久免费看 | 狠狠色伊人亚洲综合成人| 91精品在线免费观看| 麻豆一区二区三| 欧美成人video| 国产suv一区二区三区88区| 中文在线免费一区三区高中清不卡| 成人av动漫网站| 亚洲在线观看免费视频| 欧美一区2区视频在线观看| 蜜臀精品一区二区三区在线观看| 日韩精品中文字幕一区| 成人一区二区三区在线观看| 亚洲免费观看在线观看| 91精品国产综合久久精品图片| 国产在线视频一区二区| 亚洲色图欧美激情| 日韩一级欧美一级|