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

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

?? mt48lc1m16a1.vhd

?? Xilinx Sdram控制器VHDL源代碼
?? VHD
?? 第 1 頁 / 共 4 頁
字號:
            VARIABLE MRD_chk : INTEGER := 0;            VARIABLE RC_chk, RRD_chk  : TIME    := 0 ns;            VARIABLE RAS_chk0, RAS_chk1 : TIME := 0 ns;            VARIABLE RCD_chk0, RCD_chk1 : TIME := 0 ns;            VARIABLE RP_chk, RP_chk0, RP_chk1 : TIME := 0 ns;            VARIABLE WR_chk : Array2xI := (0 & 0);            -- Initialize empty rows            PROCEDURE Init_mem (Bank : BIT; Row_index : INTEGER) IS                VARIABLE i, j : INTEGER := 0;                BEGIN                    IF Bank = '0' THEN                        IF Bank0 (Row_index) = NULL THEN                        -- Check to see if row empty                            Bank0 (Row_index) := NEW ram_type;                  -- Open new row for access                            FOR i IN (2**col_bits - 1) DOWNTO 0 LOOP            -- Filled row with zeros                                FOR j IN (data_bits - 1) DOWNTO 0 LOOP                                    Bank0 (Row_index) (i) (j) := '0';                                END LOOP;                            END LOOP;                        END IF;                    ELSIF Bank = '1' THEN                        IF Bank1 (Row_index) = NULL THEN                            Bank1 (Row_index) := NEW ram_type;                            FOR i IN (2**col_bits - 1) DOWNTO 0 LOOP                                FOR j IN (data_bits - 1) DOWNTO 0 LOOP                                    Bank1 (Row_index) (i) (j) := '0';                                END LOOP;                            END LOOP;                        END IF;                    END IF;                END;                            -- Burst Counter            PROCEDURE Burst_decode IS                VARIABLE Col_int : INTEGER := 0;                VARIABLE Col_vec, Col_temp : BIT_VECTOR (col_bits - 1 DOWNTO 0) := (OTHERS => '0');                BEGIN                    -- Advance Burst Counter                    Burst_counter := Burst_counter + 1;                    -- Burst Type                    IF Mode_reg (3) = '0' THEN                        Col_int := TO_INTEGER(Col);                        Col_int := Col_int + 1;                        TO_BITVECTOR (Col_int, Col_temp);                    ELSIF Mode_reg (3) = '1' THEN                        TO_BITVECTOR (Burst_counter, Col_vec);                        Col_temp (2) := Col_vec (2) XOR Col_brst (2);                        Col_temp (1) := Col_vec (1) XOR Col_brst (1);                        Col_temp (0) := Col_vec (0) XOR Col_brst (0);                    END IF;                    -- Burst Length                    IF Burst_length_2 = '1' THEN                        Col (0) := Col_temp (0);                    ELSIF Burst_length_4 = '1' THEN                        Col (1 DOWNTO 0) := Col_temp (1 DOWNTO 0);                    ELSIF Burst_length_8 = '1' THEN                        Col (2 DOWNTO 0) := Col_temp (2 DOWNTO 0);                    ELSE                        Col := Col_temp;                    END IF;                    -- Burst Read Single Write                    IF Write_burst_mode = '1' AND Data_in_enable = '1' THEN                        Data_in_enable := '0';                    END IF;                    -- Data counter                    IF Burst_length_1 = '1' THEN                        IF Burst_counter >= 1 THEN                            IF Data_in_enable = '1' THEN                                Data_in_enable := '0';                            ELSIF Data_out_enable = '1' THEN                                Data_out_enable := '0';                            END IF;                        END IF;                    ELSIF Burst_length_2 = '1' THEN                        IF Burst_counter >= 2 THEN                            IF Data_in_enable = '1' THEN                                Data_in_enable := '0';                            ELSIF Data_out_enable = '1' THEN                                Data_out_enable := '0';                            END IF;                        END IF;                    ELSIF Burst_length_4 = '1' THEN                        IF Burst_counter >= 4 THEN                            IF Data_in_enable = '1' THEN                                Data_in_enable := '0';                            ELSIF Data_out_enable = '1' THEN                                Data_out_enable := '0';                            END IF;                        END IF;                    ELSIF Burst_length_8 = '1' THEN                        IF Burst_counter >= 8 THEN                            IF Data_in_enable = '1' THEN                                Data_in_enable := '0';                            ELSIF Data_out_enable = '1' THEN                                Data_out_enable := '0';                            END IF;                        END IF;                    END IF;                END;            BEGIN                WAIT ON Sys_clk;                    IF Sys_clk = '1' THEN                        -- Internal Command Pipeline                        Command(0) := Command(1);                        Command(1) := Command(2);                        Command(2) := Command(3);                        Command(3) := NOP;                        Col_addr(0) := Col_addr(1);                        Col_addr(1) := Col_addr(2);                        Col_addr(2) := Col_addr(3);                        Col_addr(3) := (OTHERS => '0');                        Bank_addr(0) := Bank_addr(1);                        Bank_addr(1) := Bank_addr(2);                        Bank_addr(2) := Bank_addr(3);                        Bank_addr(3) := '0';                        Bank_precharge(0) := Bank_precharge(1);                        Bank_precharge(1) := Bank_precharge(2);                        Bank_precharge(2) := Bank_precharge(3);                        Bank_precharge(3) := '0';                        A10_precharge(0) := A10_precharge(1);                        A10_precharge(1) := A10_precharge(2);                        A10_precharge(2) := A10_precharge(3);                        A10_precharge(3) := '0';                        -- Operation Decode                        IF Active_enable = '1' THEN                            Operation <= ACT;                        ELSIF Aref_enable = '1' THEN                            Operation <= A_REF;                        ELSIF Burst_term = '1' THEN                            Operation <= BST;                        ELSIF Mode_reg_enable = '1' THEN                            Operation <= LMR;                        ELSIF Prech_enable = '1' THEN                            Operation <= PRECH;                        ELSIF Read_enable = '1' THEN                            IF Addr(10) = '0' THEN                                Operation <= READ;                            ELSE                                Operation <= READ_A;                            END IF;                        ELSIF Write_enable = '1' THEN                            IF Addr(10) = '0' THEN                                Operation <= WRITE;                            ELSE                                Operation <= WRITE_A;                            END IF;                        ELSE                            Operation <= NOP;                        END IF;                        -- Dqm pipeline for Read                        Dqm_reg(0) := Dqm_reg(1);                        Dqm_reg(1) := TO_BITVECTOR(Dqm);                        -- Read or Write with Auto Precharge Counter                        IF Auto_precharge (0) = '1' THEN                            Count_precharge (0) := Count_precharge (0) + 1;                        END IF;                        IF Auto_precharge (1) = '1' THEN                            Count_precharge (1) := Count_precharge (1) + 1;                        END IF;                        -- tMRD Counter                        MRD_chk := MRD_chk + 1;                        -- tWR Counter                        WR_chk(0) := WR_chk(0) + 1;                        WR_chk(1) := WR_chk(1) + 1;                        -- Auto Refresh                        IF Aref_enable = '1' THEN                            -- Auto Refresh to Auto Refresh                            ASSERT (NOW - RC_chk >= tRC)                                REPORT "tRC violation during Auto Refresh"                                SEVERITY WARNING;                            -- Precharge to Auto Refresh                            ASSERT (NOW - RP_chk >= tRP)                                REPORT "tRP violation during Auto Refresh"                                SEVERITY WARNING;                            -- Banks must be idle before Refresh                            IF Pc_b1 = '0' OR Pc_b0 = '0' THEN                                ASSERT (FALSE)                                    REPORT "All banks must be Precharge before Auto Refresh"                                    SEVERITY WARNING;                            END IF;                            -- Record current tRC time                            RC_chk := NOW;                        END IF;                        -- Load Mode Register                        IF Mode_reg_enable = '1' THEN                            Mode_reg <= TO_BITVECTOR (Addr);                            IF (Pc_b0 /= '1' OR Pc_b1 /= '1') THEN                                ASSERT (FALSE)                                    REPORT "All bank must be Precharge before Load Mode Register"                                    SEVERITY WARNING;                            END IF;                            -- REF to LMR                            ASSERT (RC_chk >= tRC)                                REPORT "tRC violation during Load Mode Register"                                SEVERITY WARNING;                            -- LMR to LMR                            ASSERT (MRD_chk >= tMRD)                                REPORT "tMRD violation during Load Mode Register"                                SEVERITY WARNING;                            -- Record current tMRD time                            MRD_chk := 0;                        END IF;                        -- Active Block (latch Bank and Row Address)                        IF Active_enable = '1' THEN                            IF Ba = '0' AND Pc_b0 = '1' THEN                                Act_b0 := '1';                                Pc_b0 := '0';                                B0_row_addr := TO_BITVECTOR (Addr);                                RCD_chk0 := NOW;                                RAS_chk0 := NOW;                                -- Precharge to Active Bank 0                                ASSERT (NOW - RP_chk0 >= tRP)                                    REPORT "tRP violation during Activate Bank 0"                                    SEVERITY WARNING;                            ELSIF Ba = '1' AND Pc_b1 = '1' THEN                                Act_b1 := '1';                                Pc_b1 := '0';                                B1_row_addr := TO_BITVECTOR (Addr);                                RCD_chk1 := NOW;                                RAS_chk1 := NOW;                                -- Precharge to Active Bank 1                                ASSERT (NOW - RP_chk1 >= tRP)                                    REPORT "tRP violation during Activate Bank 1"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品资源网站| 国产欧美日韩激情| 久久蜜桃一区二区| 亚洲免费观看高清完整| 国产精品一卡二卡在线观看| 欧美三日本三级三级在线播放| 久久久综合网站| 首页亚洲欧美制服丝腿| 在线亚洲欧美专区二区| 国产精品二区一区二区aⅴ污介绍| 久久精品噜噜噜成人88aⅴ| 欧洲中文字幕精品| 亚洲精品免费播放| 成人看片黄a免费看在线| 欧美大尺度电影在线| 视频一区视频二区中文字幕| 在线区一区二视频| 一区二区在线看| 91一区二区在线观看| 国产精品免费久久久久| 国产麻豆精品一区二区| 精品人在线二区三区| 蜜臀99久久精品久久久久久软件| 欧美日韩精品二区第二页| 亚洲视频在线一区观看| 色婷婷久久久久swag精品| 1024成人网| 色综合中文字幕| 亚洲免费观看在线观看| 色综合久久综合网欧美综合网 | 国产成人福利片| 久久综合九色综合欧美98| 韩国女主播一区| 久久久激情视频| 大陆成人av片| 亚洲欧美日韩国产一区二区三区| 色综合视频一区二区三区高清| 亚洲精品视频免费看| 久久99精品国产91久久来源| 日韩欧美国产高清| 国产制服丝袜一区| 国产精品视频一二三| 色丁香久综合在线久综合在线观看| 自拍偷拍国产精品| 欧美日韩另类一区| 久久国产欧美日韩精品| 久久精品在线免费观看| 91麻豆123| 五月综合激情网| 2020国产精品| 99国内精品久久| 五月婷婷激情综合网| 欧美电影免费观看完整版| 国产精品1区2区| 一区二区三区丝袜| 欧美一区二区三区免费在线看| 免费不卡在线观看| 中文字幕国产一区| 在线中文字幕不卡| 国产专区欧美精品| 亚洲精品日韩综合观看成人91| 7777精品伊人久久久大香线蕉最新版 | 亚洲精品一区二区三区精华液 | 中文字幕综合网| 欧美三区在线视频| 国产一区中文字幕| 亚洲一区二区高清| 国产片一区二区三区| 91久久奴性调教| 国产精品亚洲专一区二区三区| 亚洲精品成人少妇| 国产日产欧美精品一区二区三区| 日本久久一区二区| 国产高清精品久久久久| 视频一区二区不卡| 亚洲欧美综合网| 精品国产一区二区三区久久影院| 91免费视频网址| 国产一区二区调教| 日韩不卡一二三区| 国产精品久久精品日日| 日韩免费一区二区| 777a∨成人精品桃花网| 91视视频在线直接观看在线看网页在线看| 日本伊人精品一区二区三区观看方式| 国产精品免费视频观看| 久久综合久久鬼色中文字| 欧美日韩午夜精品| 91亚洲精品久久久蜜桃网站| 国产精品中文字幕日韩精品| 日韩在线一区二区三区| 夜夜嗨av一区二区三区网页 | 欧美xxxxx牲另类人与| 欧美日本一区二区| 日本精品一级二级| av欧美精品.com| 国产成人亚洲综合色影视| 蜜桃久久精品一区二区| 日本成人超碰在线观看| 亚洲成人av福利| 亚洲一区免费在线观看| 亚洲精品免费视频| 亚洲美女在线一区| 亚洲三级电影全部在线观看高清| 国产欧美日本一区视频| 国产肉丝袜一区二区| 久久精品亚洲国产奇米99| www国产精品av| 久久久综合视频| 久久久久久久久久电影| 久久一二三国产| 国产婷婷色一区二区三区在线| 久久亚洲综合av| 国产亚洲成aⅴ人片在线观看| 精品成人免费观看| 国产亚洲精品bt天堂精选| 国产亚洲婷婷免费| 国产免费久久精品| 亚洲三级在线免费观看| 亚洲一线二线三线视频| 午夜视频在线观看一区二区 | 日韩精品一区二区三区在线 | 一区二区三区**美女毛片| 玉足女爽爽91| 午夜精品福利一区二区蜜股av | 国产大片一区二区| 成人福利视频在线| 日本乱人伦aⅴ精品| 欧美日韩一二三| 日韩三级伦理片妻子的秘密按摩| 2023国产精华国产精品| 国产精品久久影院| 亚洲国产精品一区二区www| 日韩精品1区2区3区| 韩国av一区二区三区| av亚洲精华国产精华精华| 欧美色图片你懂的| 精品国产91洋老外米糕| 中文无字幕一区二区三区| 亚洲理论在线观看| 秋霞影院一区二区| 成人国产在线观看| 制服丝袜一区二区三区| 国产三级久久久| 亚洲成人综合网站| 国产精品一区专区| 91黄色免费网站| 久久久久国产免费免费| 一区二区三区在线不卡| 国产一区中文字幕| 欧美日韩亚洲综合| 欧美国产精品一区二区| 午夜不卡av免费| 成人免费视频国产在线观看| 欧美福利一区二区| 国产精品毛片久久久久久| 日韩精品乱码av一区二区| 国产成人精品一区二| 欧美肥妇free| 亚洲欧洲成人精品av97| 另类专区欧美蜜桃臀第一页| 99精品国产99久久久久久白柏| 日韩午夜激情视频| 亚洲一卡二卡三卡四卡五卡| 国产成人精品一区二区三区四区 | 亚洲人成小说网站色在线| 极品销魂美女一区二区三区| 91免费观看视频| 久久蜜桃一区二区| 男女男精品网站| 欧美日韩精品一区二区| 亚洲人成影院在线观看| 成人综合婷婷国产精品久久 | 欧美另类videos死尸| 国产精品麻豆99久久久久久| 老司机精品视频导航| 欧美一区二区三区在线电影| 一区二区在线观看av| 成人av资源下载| 欧美国产日韩a欧美在线观看| 久久成人免费网| 7777精品久久久大香线蕉| 亚洲一区二区成人在线观看| 91麻豆视频网站| 亚洲欧洲日韩av| 成人黄色小视频在线观看| 欧美激情一区二区三区不卡 | 久久成人麻豆午夜电影| 91精品福利在线一区二区三区 | 国产精品一区二区视频| 精品奇米国产一区二区三区| 麻豆久久久久久| 日韩欧美国产不卡| 裸体一区二区三区| 日韩欧美第一区| 久久99精品久久久久久久久久久久 | 亚洲va韩国va欧美va| 在线影院国内精品| 亚洲成人一区在线| 欧美精品乱人伦久久久久久|