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

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

?? ddr.v

?? The xapp851.zip archive includes the following subdirectories. The specific contents of each subdi
?? V
?? 第 1 頁 / 共 4 頁
字號:
`ifdef FULL_MEM
            data = mem_array[addr];
`else
            begin : loop
                for (i = 0; i < mem_used; i = i + 1) begin
                    if (addr_array[i] === addr) begin
                        disable loop;
                    end
                end
            end
            if (i <= mem_used) begin
                data = mem_array[i];
            end
`endif
        end
    endtask

    // Burst Decode
    task Burst_Decode;
    begin

        // Advance Burst Counter
        if (Burst_counter < burst_length) begin
            Burst_counter = Burst_counter + 1;
        end

        // Burst Type
        if (Mode_reg[3] === 1'b0) begin                         // Sequential Burst
            Cols_temp = Cols_addr + 1;
        end else if (Mode_reg[3] === 1'b1) begin                // Interleaved Burst
            Cols_temp[2] =  Burst_counter[2] ^ Cols_brst[2];
            Cols_temp[1] =  Burst_counter[1] ^ Cols_brst[1];
            Cols_temp[0] =  Burst_counter[0] ^ Cols_brst[0];
        end

        // Burst Length
        if (burst_length === 2) begin
            Cols_addr [0] = Cols_temp [0];
        end else if (burst_length === 4) begin
            Cols_addr [1 : 0] = Cols_temp [1 : 0];
        end else if (burst_length === 8) begin
            Cols_addr [2 : 0] = Cols_temp [2 : 0];
        end else begin
            Cols_addr = Cols_temp;
        end

        // Data Counter
        if (Burst_counter >= burst_length) begin
            Data_in_enable = 1'b0;
            Data_out_enable = 1'b0;
            read_precharge_truncation = 4'h0;        end
        
    end
    endtask

    // Manual Precharge Pipeline
    task Manual_Precharge_Pipeline;
    begin
        // A10 Precharge Pipeline
        A10_precharge[0] = A10_precharge[1];
        A10_precharge[1] = A10_precharge[2];
        A10_precharge[2] = A10_precharge[3];
        A10_precharge[3] = A10_precharge[4];
        A10_precharge[4] = A10_precharge[5];
        A10_precharge[5] = A10_precharge[6];
        A10_precharge[6] = 1'b0;

        // Bank Precharge Pipeline
        Bank_precharge[0] = Bank_precharge[1];
        Bank_precharge[1] = Bank_precharge[2];
        Bank_precharge[2] = Bank_precharge[3];
        Bank_precharge[3] = Bank_precharge[4];
        Bank_precharge[4] = Bank_precharge[5];
        Bank_precharge[5] = Bank_precharge[6];
        Bank_precharge[6] = 2'b0;

        // Command Precharge Pipeline
        Cmnd_precharge[0] = Cmnd_precharge[1];
        Cmnd_precharge[1] = Cmnd_precharge[2];
        Cmnd_precharge[2] = Cmnd_precharge[3];
        Cmnd_precharge[3] = Cmnd_precharge[4];
        Cmnd_precharge[4] = Cmnd_precharge[5];
        Cmnd_precharge[5] = Cmnd_precharge[6];
        Cmnd_precharge[6] = 1'b0;

        // Terminate a Read if same bank or all banks
        if (Cmnd_precharge[0] === 1'b1) begin
            if (Bank_precharge[0] === Bank_addr || A10_precharge[0] === 1'b1) begin
                if (Data_out_enable === 1'b1) begin
                    Data_out_enable = 1'b0;
                    read_precharge_truncation = 4'hF;                end
            end
        end
    end
    endtask

    // Burst Terminate Pipeline
    task Burst_Terminate_Pipeline;
    begin
        // Command Precharge Pipeline
        Cmnd_bst[0] = Cmnd_bst[1];
        Cmnd_bst[1] = Cmnd_bst[2];
        Cmnd_bst[2] = Cmnd_bst[3];
        Cmnd_bst[3] = Cmnd_bst[4];
        Cmnd_bst[4] = Cmnd_bst[5];
        Cmnd_bst[5] = Cmnd_bst[6];
        Cmnd_bst[6] = 1'b0;

        // Terminate a Read regardless of banks
        if (Cmnd_bst[0] === 1'b1 && Data_out_enable === 1'b1) begin
            Data_out_enable = 1'b0;
        end
    end
    endtask

    // Dq and Dqs Drivers
    task Dq_Dqs_Drivers;
    begin
        // read command pipeline
        Read_cmnd [0] = Read_cmnd [1];
        Read_cmnd [1] = Read_cmnd [2];
        Read_cmnd [2] = Read_cmnd [3];
        Read_cmnd [3] = Read_cmnd [4];
        Read_cmnd [4] = Read_cmnd [5];
        Read_cmnd [5] = Read_cmnd [6];
        Read_cmnd [6] = 1'b0;

        // read bank pipeline
        Read_bank [0] = Read_bank [1];
        Read_bank [1] = Read_bank [2];
        Read_bank [2] = Read_bank [3];
        Read_bank [3] = Read_bank [4];
        Read_bank [4] = Read_bank [5];
        Read_bank [5] = Read_bank [6];
        Read_bank [6] = 2'b0;

        // read column pipeline
        Read_cols [0] = Read_cols [1];
        Read_cols [1] = Read_cols [2];
        Read_cols [2] = Read_cols [3];
        Read_cols [3] = Read_cols [4];
        Read_cols [4] = Read_cols [5];
        Read_cols [5] = Read_cols [6];
        Read_cols [6] = 0;

        // Initialize Read command
        if (Read_cmnd [0] === 1'b1) begin
            Data_out_enable = 1'b1;
            Bank_addr = Read_bank [0];
            Cols_addr = Read_cols [0];
            Cols_brst = Cols_addr [2 : 0];
            Burst_counter = 0;

            // Row Address Mux
            case (Bank_addr)
                2'd0    : Rows_addr = B0_row_addr;
                2'd1    : Rows_addr = B1_row_addr;
                2'd2    : Rows_addr = B2_row_addr;
                2'd3    : Rows_addr = B3_row_addr;
                default : $display ("At time %t ERROR: Invalid Bank Address", $time);
            endcase
        end

        // Toggle Dqs during Read command
        if (Data_out_enable === 1'b1) begin
            Dqs_int = 1'b0;
            if (Dqs_out === {DQS_BITS{1'b0}}) begin
                Dqs_out = {DQS_BITS{1'b1}};
            end else if (Dqs_out === {DQS_BITS{1'b1}}) begin
                Dqs_out = {DQS_BITS{1'b0}};
            end else begin
                Dqs_out = {DQS_BITS{1'b0}};
            end
        end else if (Data_out_enable === 1'b0 && Dqs_int === 1'b0) begin
            Dqs_out = {DQS_BITS{1'bz}};
        end

        // Initialize dqs for Read command
        if (Read_cmnd [2] === 1'b1) begin
            if (Data_out_enable === 1'b0) begin
                Dqs_int = 1'b1;
                Dqs_out = {DQS_BITS{1'b0}};
            end
        end

        // Read latch
        if (Data_out_enable === 1'b1) begin
            // output data
            read_mem({Bank_addr, Rows_addr, Cols_addr}, Dq_out);
            if (Debug) begin
                $display ("At time %t READ : Bank = %h, Row = %h, Col = %h, Data = %h", $time, Bank_addr, Rows_addr, Cols_addr, Dq_out);
            end
        end else begin
            Dq_out = {DQ_BITS{1'bz}};
        end
    end
    endtask

    // Write FIFO and DM Mask Logic
    task Write_FIFO_DM_Mask_Logic;
    begin
        // Write command pipeline
        Write_cmnd [0] = Write_cmnd [1];
        Write_cmnd [1] = Write_cmnd [2];
        Write_cmnd [2] = Write_cmnd [3];
        Write_cmnd [3] = 1'b0;

        // Write command pipeline
        Write_bank [0] = Write_bank [1];
        Write_bank [1] = Write_bank [2];
        Write_bank [2] = Write_bank [3];
        Write_bank [3] = 2'b0;

        // Write column pipeline
        Write_cols [0] = Write_cols [1];
        Write_cols [1] = Write_cols [2];
        Write_cols [2] = Write_cols [3];
        Write_cols [3] = {COL_BITS{1'b0}};

        // Initialize Write command
        if (Write_cmnd [0] === 1'b1) begin
            Data_in_enable = 1'b1;
            Bank_addr = Write_bank [0];
            Cols_addr = Write_cols [0];
            Cols_brst = Cols_addr [2 : 0];
            Burst_counter = 0;

            // Row address mux
            case (Bank_addr)
                2'd0    : Rows_addr = B0_row_addr;
                2'd1    : Rows_addr = B1_row_addr;
                2'd2    : Rows_addr = B2_row_addr;
                2'd3    : Rows_addr = B3_row_addr;
                default : $display ("At time %t ERROR: Invalid Row Address", $time);
            endcase
        end

        // Write data
        if (Data_in_enable === 1'b1) begin

            // Data Buffer
            read_mem({Bank_addr, Rows_addr, Cols_addr}, Dq_buf);

            // write negedge Dqs on posedge Sys_clk
            if (Sys_clk) begin
                if (!dm_fall[0]) begin
                    Dq_buf [ 7 : 0] = dq_fall [ 7 : 0];
                end
                if (!dm_fall[1]) begin
                    Dq_buf [15 : 8] = dq_fall [15 : 8];
                end
                if (~&dm_fall) begin
                    if (Debug) begin
                        $display ("At time %t WRITE: Bank = %h, Row = %h, Col = %h, Data = %h", $time, Bank_addr, Rows_addr, Cols_addr, Dq_buf[DQ_BITS-1:0]);
                    end
                end
            // write posedge Dqs on negedge Sys_clk
            end else begin
                if (!dm_rise[0]) begin
                    Dq_buf [ 7 : 0] = dq_rise [ 7 : 0];
                end
                if (!dm_rise[1]) begin
                    Dq_buf [15 : 8] = dq_rise [15 : 8];
                end
                if (~&dm_rise) begin
                    if (Debug) begin
                        $display ("At time %t WRITE: Bank = %h, Row = %h, Col = %h, Data = %h", $time, Bank_addr, Rows_addr, Cols_addr, Dq_buf[DQ_BITS-1:0]);
                    end
                end
            end

            // Write Data
            write_mem({Bank_addr, Rows_addr, Cols_addr}, Dq_buf);

            // tWR start and tWTR check
            if (Sys_clk && &dm_pair === 1'b0)  begin
                case (Bank_addr)
                    2'd0    : WR_chk0 = $time;
                    2'd1    : WR_chk1 = $time;
                    2'd2    : WR_chk2 = $time;
                    2'd3    : WR_chk3 = $time;
                    default : $display ("At time %t ERROR: Invalid Bank Address (tWR)", $time);
                endcase

                // tWTR check
                if (Read_enable === 1'b1) begin
                    $display ("At time %t ERROR: tWTR violation during Read", $time);
                end
            end
        end
    end
    endtask

    // Auto Precharge Calculation
    task Auto_Precharge_Calculation;
    begin
        // Precharge counter
        if (Read_precharge [0] === 1'b1 || Write_precharge [0] === 1'b1) begin
            Count_precharge [0] = Count_precharge [0] + 1;
        end
        if (Read_precharge [1] === 1'b1 || Write_precharge [1] === 1'b1) begin
            Count_precharge [1] = Count_precharge [1] + 1;
        end
        if (Read_precharge [2] === 1'b1 || Write_precharge [2] === 1'b1) begin
            Count_precharge [2] = Count_precharge [2] + 1;
        end
        if (Read_precharge [3] === 1'b1 || Write_precharge [3] === 1'b1) begin
            Count_precharge [3] = Count_precharge [3] + 1;
        end

        // Read with AutoPrecharge Calculation
        //      The device start internal precharge when:
        //          1.  Meet tRAS requirement
        //          2.  BL/2 cycles after command
        if ((Read_precharge[0] === 1'b1) && ($time - RAS_chk0 >= tRAS)) begin
            if (Count_precharge[0] >= burst_length/2) begin
                Pc_b0 = 1'b1;
                Act_b0 = 1'b0;
                RP_chk0 = $time;
                Read_precharge[0] = 1'b0;
            end
        end
        if ((Read_precharge[1] === 1'b1) && ($time - RAS_chk1 >= tRAS)) begin
            if (Count_precharge[1] >= burst_length/2) begin
                Pc_b1 = 1'b1;
                Act_b1 = 1'b0;
                RP_chk1 = $time;
                Read_precharge[1] = 1'b0;
            end
        end
        if ((Read_precharge[2] === 1'b1) && ($time - RAS_chk2 >= tRAS)) begin
            if (Count_precharge[2] >= burst_length/2) begin
                Pc_b2 = 1'b1;
                Act_b2 = 1'b0;
                RP_chk2 = $time;
                Read_precharge[2] = 1'b0;
            end
        end
        if ((Read_precharge[3] === 1'b1) && ($time - RAS_chk3 >= tRAS)) begin
            if (Count_precharge[3] >= burst_length/2) begin
                Pc_b3 = 1'b1;
                Act_b3 = 1'b0;
                RP_chk3 = $time;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品伊人久久久久av一坑| 色嗨嗨av一区二区三区| 色综合久久88色综合天天| 欧美一区二区三区公司| 中文字幕色av一区二区三区| 久久机这里只有精品| 欧美性videosxxxxx| 国产精品久99| 国产精品1024| 欧美精品一区二区久久婷婷| 亚洲bdsm女犯bdsm网站| 一本久久a久久精品亚洲| 久久精品这里都是精品| 日韩综合在线视频| 精品视频资源站| 亚洲欧美视频在线观看视频| 不卡一区二区中文字幕| 久久综合色播五月| 六月婷婷色综合| 在线综合视频播放| 亚洲午夜在线视频| 99久久精品免费| 日韩一区精品视频| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美中文字幕一区二区三区亚洲| 国产三级精品三级| 国产馆精品极品| 精品国产免费视频| 久久精品二区亚洲w码| 欧美精品在线一区二区| 日韩在线一区二区| 欧美日韩激情一区| 五月天一区二区三区| 欧美日韩在线播| 日韩激情视频网站| 日韩欧美在线影院| 精品在线免费观看| 久久久国产午夜精品| 国产成人亚洲综合a∨婷婷| 26uuu国产日韩综合| 亚洲一区二区3| 成人黄色av电影| 国产精品伦理在线| 99视频国产精品| 亚洲欧美色一区| 欧美久久久久久蜜桃| 美女诱惑一区二区| 国产免费成人在线视频| 99国产精品久久久久久久久久| 亚洲精选免费视频| 欧美色精品天天在线观看视频| 五月天中文字幕一区二区| 欧美sm极限捆绑bd| 99麻豆久久久国产精品免费优播| 亚洲视频一区二区在线观看| 欧美天堂亚洲电影院在线播放| 青青国产91久久久久久| 久久久蜜臀国产一区二区| 97se亚洲国产综合自在线| 亚洲国产欧美在线人成| 亚洲精品在线观看视频| 91麻豆精品在线观看| 国产成人自拍网| 成人理论电影网| 亚洲精品视频在线看| 91精品国产综合久久福利| 国产麻豆午夜三级精品| 综合在线观看色| 日韩区在线观看| 国产成人av在线影院| 又紧又大又爽精品一区二区| 日韩一二三区视频| 一本久久精品一区二区| 精彩视频一区二区三区| 日韩一区在线看| 亚洲精品一区二区三区四区高清| 99久久精品国产观看| 美女国产一区二区| 亚洲欧美激情一区二区| 欧美精品一区二区在线播放| 色8久久精品久久久久久蜜| 国产裸体歌舞团一区二区| 亚洲激情网站免费观看| 香蕉久久夜色精品国产使用方法| 久久夜色精品一区| 日韩精品亚洲一区| 国产伦精品一区二区三区免费迷| |精品福利一区二区三区| 日韩网站在线看片你懂的| 色欧美乱欧美15图片| 国产精品一区2区| 全部av―极品视觉盛宴亚洲| 樱桃国产成人精品视频| 国产精品嫩草影院com| 欧美变态tickle挠乳网站| 欧美日韩国产欧美日美国产精品| 99re这里只有精品视频首页| 国产精品一级片在线观看| 人人狠狠综合久久亚洲| 亚洲aⅴ怡春院| 自拍偷拍欧美精品| 一区二区中文字幕在线| 国产欧美在线观看一区| 久久久国产精华| 精品理论电影在线观看| 日韩精品一区二区三区在线观看| 欧美日韩一区二区欧美激情| 欧美天堂亚洲电影院在线播放| 99久久精品99国产精品| 黑人精品欧美一区二区蜜桃| 欧美午夜影院一区| 色综合天天综合色综合av| 国产成人av一区二区三区在线 | 国产日韩欧美电影| 国产调教视频一区| 欧美激情中文字幕一区二区| 国产三级精品三级在线专区| 国产欧美日本一区二区三区| 国产精品网站在线播放| 国产欧美一区二区精品性色超碰| 国产欧美va欧美不卡在线| 亚洲国产电影在线观看| ㊣最新国产の精品bt伙计久久| 中文字幕一区二区在线观看| 亚洲免费观看高清完整版在线观看 | 亚洲中国最大av网站| 一区二区三区视频在线看| 亚洲gay无套男同| 久久精品99久久久| 成人涩涩免费视频| 色婷婷国产精品综合在线观看| 精品福利在线导航| 懂色av噜噜一区二区三区av| 成人午夜短视频| 色综合亚洲欧洲| 91精品国产综合久久福利| 精品99一区二区| 国产精品人人做人人爽人人添| 中文字幕日韩欧美一区二区三区| 亚洲午夜久久久久久久久电影网 | 日本一区二区久久| 中文字幕亚洲成人| 五月天精品一区二区三区| 国产一区亚洲一区| 99在线精品观看| 欧美剧情电影在线观看完整版免费励志电影 | 在线观看中文字幕不卡| 日韩三级高清在线| 亚洲日本成人在线观看| 五月天中文字幕一区二区| 亚洲日本va午夜在线影院| 亚洲乱码国产乱码精品精98午夜 | 成人av午夜影院| 欧美日韩一区二区三区四区五区 | 国产成人免费视频一区| 色综合夜色一区| 日韩一区二区在线免费观看| 中文字幕成人在线观看| 天天综合网 天天综合色| 成人综合婷婷国产精品久久免费| 欧美日本高清视频在线观看| 亚洲国产高清aⅴ视频| 青青草视频一区| av亚洲精华国产精华精华| 日韩一区二区三区三四区视频在线观看 | 国产在线乱码一区二区三区| 一区二区三区高清在线| 日本免费在线视频不卡一不卡二| 成人97人人超碰人人99| 日韩欧美亚洲另类制服综合在线| 欧美国产日本韩| 久久精品99国产精品日本| 欧美揉bbbbb揉bbbbb| 国产精品色噜噜| 国产精品夜夜爽| 精品免费视频一区二区| 亚洲成av人片在线观看无码| 9i在线看片成人免费| 国产色综合久久| 九九在线精品视频| 91精品国产欧美一区二区 | 欧美区在线观看| 中文字幕亚洲在| 国产成人在线免费观看| 精品国精品自拍自在线| 日本欧美肥老太交大片| 欧美一区二区三区视频免费播放| 秋霞成人午夜伦在线观看| 成人动漫在线一区| 国产午夜精品一区二区三区嫩草 | 国产乱理伦片在线观看夜一区| 在线不卡一区二区| 亚洲自拍偷拍综合| 91激情五月电影| 亚洲免费大片在线观看| 91网站在线播放| 亚洲色图另类专区| 欧美综合久久久| 亚洲一区二区欧美激情| 欧美精品日韩综合在线|