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

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

?? command.v

?? SDRAM控制器Verilog員代碼
?? V
?? 第 1 頁 / 共 3 頁
字號:
                
                if ((do_reada == 1) | (do_writea == 1))          //若內部讀命令do_reada或內部寫命令do_writea有效(此時將首先發出ACTIVATE命令),則
                begin
                        if (SC_RC == 1)                          // Set the shift register,根據SC_RC的值設置讀寫移位寄存器。若SC_RC == 1,則do_rw置位,即在內部命令do_reada或do_writea有效后(即發出ACTIVATE命令后)1個時鐘周期可觸發讀寫操作
                                do_rw <= 1;
                        else if (SC_RC == 2)                     //若SC_RC == 2,則讀寫移位寄存器rw_shift賦初值為1,只有進行一次右移操作,do_rw才會置位,因此在內部命令do_reada或do_writea有效后(即發出ACTIVATE命令后)2個時鐘周期才會觸發讀寫操作
                                rw_shift <= 1;
                        else if (SC_RC == 3)                     //若SC_RC == 3,則讀寫移位寄存器rw_shift賦初值為2,只有進行兩次右移操作,do_rw才會置位,因此在內部命令do_reada或do_writea有效后(即發出ACTIVATE命令后)3個時鐘周期才會觸發讀寫操作
                                rw_shift <= 2;
                end
                else                                             //否則內部讀寫命令都無效,則對讀寫移位寄存器rw_shift進行向右移位操作,最高位補0,最低位進入do_rw
                begin
                        rw_shift[2:0] <= rw_shift[3:1];          // perform the shift operation
                        rw_shift[3]   <= 0;
                        do_rw         <= rw_shift[0];
                end 
        end
end              

// This always block generates the command acknowledge, CM_ACK, signal.
// It also generates the acknowledge signal, REF_ACK, that acknowledges
// a refresh request that was generated by the internal refresh timer circuit.
//這個always塊產生命令確認信號CM_ACK,也產生刷新請求確認信號REF_ACK(該刷新請求由內部刷新定時器電路產生),輸出給control_interface模塊。
//(時鐘信號CLK上升沿)
always @(posedge CLK or negedge RESET_N) 
begin

        if (RESET_N == 0) 
        begin
                CM_ACK   <= 0;
                REF_ACK  <= 0;
        end
        
        else
        begin
                if (do_refresh == 1 & REF_REQ == 1)                   // Internal refresh timer refresh request 若內部命令do_refresh且內部刷新請求有效,則刷新請求確認信號REF_ACK置位
                        REF_ACK <= 1;
                else if ((do_refresh == 1) | (do_reada == 1) | (do_writea == 1) | (do_precharge == 1)   // externa  commands否則若其他一些內部命令有效,則命令確認信號CM_ACK置位
                         | (do_load_mode))
                        CM_ACK <= 1;
                else                                                  //否則若沒有任何內部命令和內部刷新請求有效,則這兩個確認信號清除
                begin
                        REF_ACK <= 0;
                        CM_ACK  <= 0;
                end
        end
end 
                    






// This always block generates the address, cs, cke, and command signals(ras,cas,wen)
// 這個always塊產生控制SDRAM需要的一些信號address, cs, cke, and command signals(ras,cas,wen),輸出給頂層模塊sdr_sdram,用來控制SDRAM
//(時鐘信號CLK上升沿)
always @(posedge CLK ) begin
        if (RESET_N==0) begin                          //復位將這些控制信號全部清除
                SA    <= 0;
                BA    <= 0;
                CS_N  <= 1;
                RAS_N <= 1;
                CAS_N <= 1;
                WE_N  <= 1;
                CKE   <= 0;
        end
        else begin                                     //否則,
                CKE <= 1;                              //CKE置位,以使能SDRAM的時鐘信號

// Generate SA 產生SA、BA、CS_N	
                if (do_writea == 1 | do_reada == 1)    // ACTIVATE command is being issued, so present the row address 若內部ACTIVATE命令有效,則將行地址送SA
                        SA <= rowaddr;
                else
                        SA <= coladdr;                 // else alway present column address否則總是列地址送SA
                if ((do_rw==1) | (do_precharge))       //若讀寫觸發信號有效或內部命令do_precharge有效,則將SC_PM取反賦給SA[10]。若SC_PM==0(即正常模式),則SA[10]取1;對讀寫命令而言,自動precharge有效;對precharge命令而言,所有bank都執行precharge。若SC_PM==1(即頁寫入訪問模式),則SA[10]取0;對讀寫命令而言,自動precharge無效,若要讀SDRAM中的不同行,需由用戶發出precharge命令來關閉相應bank,之后再讀;對precharge命令而言,只有被BA選中的bank才執行precharge命令。
                        SA[10] <= !SC_PM;              // set SA[10] for autoprecharge read/write or for a precharge all command
                                                       // don't set it if the controller is in page mode.           
                if (do_precharge==1 | do_load_mode==1)
                        BA <= 0;                       // Set BA=0 if performing a precharge or load_mode command 若內部命令do_precharge 或do_load_mode有效,則bank選擇地址賦0(根據手冊,BA1/BA0 must be issued 0/0 in the mode register set)。而對precharge命令而言,若SC_PM==1,BA取0將設置bank0執行precharge命令;若SC_PM==0,BA的設置不起作用,所有bank都執行precharge命令。
                else
                        BA <= bankaddr[1:0];           // else set it with the appropriate address bits 否則bank選擇地址bankaddr[1:0]賦給BA
		
                if (do_refresh==1 | do_precharge==1 | do_load_mode==1)
                        CS_N <= 0;                                    // Select both chip selects if performing
                else                                                  // refresh, precharge(all) or load_mode  若內部命令do_refresh、do_precharge、do_load_mode有效,則片選信號位都有效,即兩個SDRAM都選中
                begin
                        CS_N[0] <= SADDR[`ASIZE-1];                   // else set the chip selects based off of the
                        CS_N[1] <= ~SADDR[`ASIZE-1];                  // msb address bit  否則CS_N[0]取地址線最高位,CS_N[1]取地址線最高位的反,即地址線最高位用作SDRAM片選信號線
                end


//Generate the appropriate logic levels on RAS_N, CAS_N, and WE_N
//depending on the issued command.
//根據執行的命令產生合適的RAS_N, CAS_N, and WE_N信號,輸出給頂層模塊sdr_sdram,用來控制SDRAM,參看SDRAM手冊
		
                if (do_refresh==1) begin                        // Refresh(刷新,包括隱藏的刷新請求和刷新命令): S=00, RAS=0, CAS=0, WE=1
                        RAS_N <= 0;
                        CAS_N <= 0;
                        WE_N  <= 1;
                end
                else if ((do_precharge==1) & ((oe4 == 1) | (rw_flag == 1))) begin      // burst terminate if write is active突發終止操作
                        RAS_N <= 1;                                                    // 若在oe4有效(即輸出已經使能,已經開始寫操作)或rw_flag標志為讀(已經發出讀內部命令)時,do_precharge內部命令有效,則執行突發終止操作??(Burst Termination命令不是只能終止讀操作么?如果是終止讀寫操作就應該用precharge命令呀?)
                        CAS_N <= 1;
                        WE_N  <= 0;
                end
                else if (do_precharge==1) begin                 // Precharge All(Precharge命令): S=00, RAS=0, CAS=1, WE=0
                        RAS_N <= 0;
                        CAS_N <= 1;
                        WE_N  <= 0;
                end
                else if (do_load_mode==1) begin                 // Mode Write(載入模式命令load_mode): S=00, RAS=0, CAS=0, WE=0
                        RAS_N <= 0;
                        CAS_N <= 0;
                        WE_N  <= 0;
                end
                else if (do_reada == 1 | do_writea == 1) begin  // Activate(激活命令): S=01 or 10, RAS=0, CAS=1, WE=1
                        RAS_N <= 0;
                        CAS_N <= 1;
                        WE_N  <= 1;
                end
                else if (do_rw == 1) begin                      // Read/Write(讀寫命令): S=01 or 10, RAS=1, CAS=0, WE=0 or 1
                        RAS_N <= 1;
                        CAS_N <= 0;
                        WE_N  <= rw_flag;
                end
                else begin                                      // No Operation(空操作命令): RAS=1, CAS=1, WE=1  沒有以上內部命令時,給出空操作命令
                        RAS_N <= 1;
                        CAS_N <= 1;
                        WE_N  <= 1;
                end
        end 
end

endmodule

















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜在线影院| 国产精品久久久久9999吃药| 一区二区三区中文在线| 91免费观看国产| 看电影不卡的网站| 国产精品久久久久桃色tv| 91在线精品秘密一区二区| 免费成人在线观看| 亚洲黄色尤物视频| 中文字幕av一区二区三区免费看| 成人app在线观看| 日本在线观看不卡视频| 依依成人综合视频| 国产精品国产三级国产普通话99 | 免费在线看成人av| 亚洲女厕所小便bbb| 制服.丝袜.亚洲.中文.综合| 高清不卡一二三区| 亚洲一区二区三区免费视频| 国产精品视频第一区| 欧美一级日韩免费不卡| 91在线观看成人| 美女久久久精品| 蜜臀av在线播放一区二区三区| 日本一区二区三区在线不卡| 欧美日韩国产在线观看| 国产sm精品调教视频网站| 香蕉av福利精品导航| 中文字幕永久在线不卡| 精品国产伦一区二区三区观看方式 | 亚洲第一二三四区| 久久久91精品国产一区二区三区| 欧美午夜电影在线播放| 91婷婷韩国欧美一区二区| 国产一区二区三区不卡在线观看 | 亚洲女同女同女同女同女同69| 久久精品亚洲国产奇米99| 国产日韩精品一区二区三区| 中文字幕亚洲电影| 亚洲人成网站在线| 一区二区三区在线高清| 久久精品国产免费| 亚洲综合在线第一页| 丝袜a∨在线一区二区三区不卡| 亚洲男同性视频| 天天综合天天综合色| 中文字幕不卡在线观看| 日韩av不卡一区二区| 在线观看欧美黄色| 欧美精品一区男女天堂| 男女性色大片免费观看一区二区| 制服丝袜亚洲网站| 日韩视频免费直播| 亚洲色图一区二区| 麻豆精品在线观看| 成人免费高清在线观看| 在线观看不卡一区| 久久一夜天堂av一区二区三区| 国产亚洲制服色| 亚洲一二三四在线| 色噜噜狠狠成人中文综合| 欧美三级视频在线播放| 成人欧美一区二区三区视频网页 | 欧美国产精品一区二区三区| 蜜臀av一区二区| 欧美午夜精品久久久久久孕妇| 久久久美女毛片| 久久精品国产网站| 国产亚洲一本大道中文在线| 国产成人激情av| 欧美三级蜜桃2在线观看| 欧美成人性福生活免费看| 高清国产午夜精品久久久久久| 亚洲成av人片在线观看| 国产色一区二区| 99精品视频一区| 日本中文字幕一区| 久久久久国产精品麻豆| 国产精品白丝av| 国产精品久久久久久久久图文区| 色偷偷88欧美精品久久久| 水野朝阳av一区二区三区| 国产午夜精品美女毛片视频| 91麻豆国产福利在线观看| 三级影片在线观看欧美日韩一区二区| 2023国产精华国产精品| 精久久久久久久久久久| 亚洲免费在线观看| 日韩视频中午一区| 99久久精品国产网站| 日韩精品欧美成人高清一区二区| 精品区一区二区| 色偷偷88欧美精品久久久| 国产精一品亚洲二区在线视频| 亚洲国产精品久久不卡毛片 | 欧美一级日韩不卡播放免费| 成人av网站在线| 激情欧美一区二区| 另类中文字幕网| 日本不卡123| 天天色 色综合| 亚洲一二三级电影| 欧美一区二区二区| 国产专区综合网| 午夜欧美视频在线观看| 国产精品初高中害羞小美女文| 高清成人免费视频| 国产呦精品一区二区三区网站| 国产精品每日更新| 久久精品一区二区三区不卡| 日韩一区二区在线看片| 日韩精品一区二| 337p日本欧洲亚洲大胆精品| 精品99999| 国产丝袜欧美中文另类| 久久你懂得1024| 中文字幕一区二区三区精华液| 国产日韩欧美a| 中文字幕一区av| 午夜欧美2019年伦理| 青青草国产精品97视觉盛宴| 久久不见久久见免费视频7| 国产一区二区女| 波多野结衣在线aⅴ中文字幕不卡| 91浏览器在线视频| 欧美丝袜丝nylons| 日韩欧美国产三级电影视频| 中文字幕二三区不卡| 性欧美疯狂xxxxbbbb| 韩国女主播一区二区三区| 一本色道久久加勒比精品| 欧美日韩精品一区二区三区蜜桃 | 国产99精品在线观看| 99re成人在线| 26uuuu精品一区二区| 亚洲最新在线观看| 成人性生交大片免费看中文网站| 欧美日韩久久不卡| 亚洲视频一区二区免费在线观看| 日本三级韩国三级欧美三级| 91丝袜高跟美女视频| 久久久国产综合精品女国产盗摄| 奇米影视在线99精品| 日本高清免费不卡视频| 国产精品久久久久久户外露出| 首页国产丝袜综合| 91在线小视频| 亚洲视频免费在线| 成人av电影在线播放| 中文字幕在线免费不卡| 成av人片一区二区| 国产精品色婷婷| 成人三级在线视频| 国产丝袜美腿一区二区三区| 懂色av一区二区在线播放| 久久婷婷综合激情| 国产福利一区二区三区视频在线| 精品日韩在线一区| 国产成人一区二区精品非洲| 精品国产免费人成电影在线观看四季 | 国产永久精品大片wwwapp| 欧美日韩精品一区二区三区| 亚洲一区视频在线| 日韩精品一区二区在线观看| 国产成人免费视频一区| 欧美国产综合一区二区| 99国产精品久久久| 日韩不卡在线观看日韩不卡视频| 欧美日韩一区二区三区四区| 日一区二区三区| 久久久精品综合| 欧洲av一区二区嗯嗯嗯啊| 激情小说欧美图片| 亚洲美女一区二区三区| 精品国产免费视频| 色综合网色综合| 蜜臀久久久99精品久久久久久| 国产日韩精品一区二区三区在线| 欧美午夜精品一区二区三区 | 国产一区二区三区精品视频| 亚洲国产一区视频| 亚洲久本草在线中文字幕| 欧美成人精品高清在线播放| 欧美四级电影在线观看| 成人一区在线看| 粉嫩在线一区二区三区视频| 日本视频一区二区| 日韩国产高清影视| 亚洲免费高清视频在线| 国产精品电影一区二区| 久久亚洲免费视频| 欧美变态tickle挠乳网站| 精品污污网站免费看| 欧美日韩国产a| 欧美群妇大交群的观看方式| 91丨九色丨蝌蚪丨老版| 色视频欧美一区二区三区| 91福利视频网站| 欧美日韩一区二区三区在线看 | 91污在线观看|