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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sdram.v

?? 嵌入式系統(tǒng)實驗教程(一)中對應(yīng)的實驗內(nèi)容
?? V
?? 第 1 頁 / 共 2 頁
字號:
              end // 3'b000 
          
              3'b001: begin
                  i_state <= 3'b011;
                  i_cmd <= {{1{1'b0}},3'h2};
                  i_count <= 0;
                  i_next <= 3'b010;
              end // 3'b001 
          
              3'b010: begin
                  i_cmd <= {{1{1'b0}},3'h1};
                  i_refs <= i_refs + 1'b1;
                  i_state <= 3'b011;
                  i_count <= 3;
                  // Count up init_refresh_commands
                  if (i_refs == 3'h1)
                      i_next <= 3'b111;
                  else 
                    i_next <= 3'b010;
              end // 3'b010 
          
              3'b011: begin
                  i_cmd <= {{1{1'b0}},3'h7};
                  //WAIT til safe to Proceed...
                  if (i_count > 1)
                      i_count <= i_count - 1'b1;
                  else 
                    i_state <= i_next;
              end // 3'b011 
          
              3'b101: begin
                  i_state <= 3'b101;
              end // 3'b101 
          
              3'b111: begin
                  i_state <= 3'b011;
                  i_cmd <= {{1{1'b0}},3'h0};
                  i_addr <= {{2{1'b0}},1'b0,2'b00,3'h3,4'h0};
                  i_count <= 4;
                  i_next <= 3'b101;
              end // 3'b111 
          
              default: begin
                  i_state <= 3'b000;
              end // default
          
          endcase // i_state
        end
    end


  assign active_bank = {active_addr[21],active_addr[8]};
  assign csn_match = active_cs_n == f_cs_n;
  assign rnw_match = active_rnw == f_rnw;
  assign bank_match = active_bank == f_bank;
  assign row_match = {active_addr[20 : 9]} == {f_addr[20 : 9]};
  assign pending = csn_match && rnw_match && bank_match && row_match && !f_empty;
  assign cas_addr = f_select ? { {4{1'b0}},f_addr[7 : 0] } : { {4{1'b0}},active_addr[7 : 0] };
  // **** Main FSM ****
  always @(posedge clk or negedge reset_n)
    begin
      if (reset_n == 0)
        begin
          m_state <= 9'b000000001;
          m_next <= 9'b000000001;
          m_cmd <= 4'b1111;
          m_bank <= 2'b00;
          m_addr <= 12'b000000000000;
          m_data <= 16'b0000000000000000;
          m_dqm <= 2'b00;
          m_count <= 3'b000;
          ack_refresh_request <= 1'b0;
          f_pop <= 1'b0;
          oe <= 1'b0;
        end
      else 
        begin
          f_pop <= 1'b0;
          oe <= 1'b0;
          case (m_state) // synthesis parallel_case full_case
          
              9'b000000001: begin
                  //Wait for init-fsm to be done...
                  if (init_done)
                    begin
                      //Hold bus if another cycle ended to arf.
                      if (refresh_request)
                          m_cmd <= {{1{1'b0}},3'h7};
                      else 
                        m_cmd <= 4'b1111;
                      ack_refresh_request <= 1'b0;
                      //Wait for a read/write request.
                      if (refresh_request)
                        begin
                          m_state <= 9'b001000000;
                          m_next <= 9'b010000000;
                          m_count <= 0;
                          active_cs_n <= 1'b1;
                        end
                      else if (!f_empty)
                        begin
                          f_pop <= 1'b1;
                          active_cs_n <= f_cs_n;
                          active_rnw <= f_rnw;
                          active_addr <= f_addr;
                          active_data <= f_data;
                          active_dqm <= f_dqm;
                          m_state <= 9'b000000010;
                        end
                    end
                  else 
                    begin
                      m_addr <= i_addr;
                      m_state <= 9'b000000001;
                      m_next <= 9'b000000001;
                      m_cmd <= i_cmd;
                    end
              end // 9'b000000001 
          
              9'b000000010: begin
                  m_state <= 9'b000000100;
                  m_cmd <= {csn_decode,3'h3};
                  m_bank <= active_bank;
                  m_addr <= active_addr[20 : 9];
                  m_data <= active_data;
                  m_dqm <= active_dqm;
                  m_count <= 1;
                  m_next <= active_rnw ? 9'b000001000 : 9'b000010000;
              end // 9'b000000010 
          
              9'b000000100: begin
                  // precharge all if arf, else precharge csn_decode
                  if (m_next == 9'b010000000)
                      m_cmd <= {{1{1'b0}},3'h7};
                  else 
                    m_cmd <= {csn_decode,3'h7};
                  //Count down til safe to Proceed...
                  if (m_count > 1)
                      m_count <= m_count - 1'b1;
                  else 
                    m_state <= m_next;
              end // 9'b000000100 
          
              9'b000001000: begin
                  m_cmd <= {csn_decode,3'h5};
                  m_bank <= f_select ? f_bank : active_bank;
                  m_dqm <= f_select ? f_dqm  : active_dqm;
                  m_addr <= cas_addr;
                  //Do we have a transaction pending?
                  if (pending)
                    begin
                      //if we need to ARF, bail, else spin
                      if (refresh_request)
                        begin
                          m_state <= 9'b000000100;
                          m_next <= 9'b000000001;
                          m_count <= 2;
                        end
                      else 
                        begin
                          f_pop <= 1'b1;
                          active_cs_n <= f_cs_n;
                          active_rnw <= f_rnw;
                          active_addr <= f_addr;
                          active_data <= f_data;
                          active_dqm <= f_dqm;
                        end
                    end
                  else 
                    begin
                      //correctly end RD spin cycle if fifo mt
                      if (~pending & f_pop)
                          m_cmd <= {csn_decode,3'h7};
                      m_state <= 9'b100000000;
                    end
              end // 9'b000001000 
          
              9'b000010000: begin
                  m_cmd <= {csn_decode,3'h4};
                  oe <= 1'b1;
                  m_data <= f_select ? f_data : active_data;
                  m_dqm <= f_select ? f_dqm  : active_dqm;
                  m_bank <= f_select ? f_bank : active_bank;
                  m_addr <= cas_addr;
                  //Do we have a transaction pending?
                  if (pending)
                    begin
                      //if we need to ARF, bail, else spin
                      if (refresh_request)
                        begin
                          m_state <= 9'b000000100;
                          m_next <= 9'b000000001;
                          m_count <= 1;
                        end
                      else 
                        begin
                          f_pop <= 1'b1;
                          active_cs_n <= f_cs_n;
                          active_rnw <= f_rnw;
                          active_addr <= f_addr;
                          active_data <= f_data;
                          active_dqm <= f_dqm;
                        end
                    end
                  else 
                    begin
                      //correctly end WR spin cycle if fifo empty
                      if (~pending & f_pop)
                        begin
                          m_cmd <= {csn_decode,3'h7};
                          oe <= 1'b0;
                        end
                      m_state <= 9'b100000000;
                    end
              end // 9'b000010000 
          
              9'b000100000: begin
                  m_cmd <= {csn_decode,3'h7};
                  //Count down til safe to Proceed...
                  if (m_count > 1)
                      m_count <= m_count - 1'b1;
                  else 
                    begin
                      m_state <= 9'b001000000;
                      m_count <= 0;
                    end
              end // 9'b000100000 
          
              9'b001000000: begin
                  m_state <= 9'b000000100;
                  m_addr <= {12{1'b1}};
                  // precharge all if arf, else precharge csn_decode
                  if (refresh_request)
                      m_cmd <= {{1{1'b0}},3'h2};
                  else 
                    m_cmd <= {csn_decode,3'h2};
              end // 9'b001000000 
          
              9'b010000000: begin
                  ack_refresh_request <= 1'b1;
                  m_state <= 9'b000000100;
                  m_cmd <= {{1{1'b0}},3'h1};
                  m_count <= 3;
                  m_next <= 9'b000000001;
              end // 9'b010000000 
          
              9'b100000000: begin
                  m_cmd <= {csn_decode,3'h7};
                  //if we need to ARF, bail, else spin
                  if (refresh_request)
                    begin
                      m_state <= 9'b000000100;
                      m_next <= 9'b000000001;
                      m_count <= 1;
                    end
                  else //wait for fifo to have contents
                  if (!f_empty)
                      //Are we 'pending' yet?
                      if (csn_match && rnw_match && bank_match && row_match)
                        begin
                          m_state <= f_rnw ? 9'b000001000 : 9'b000010000;
                          f_pop <= 1'b1;
                          active_cs_n <= f_cs_n;
                          active_rnw <= f_rnw;
                          active_addr <= f_addr;
                          active_data <= f_data;
                          active_dqm <= f_dqm;
                        end
                      else 
                        begin
                          m_state <= 9'b000100000;
                          m_next <= 9'b000000001;
                          m_count <= 1;
                        end
              end // 9'b100000000 
          
              // synthesis translate_off
          
              default: begin
                  m_state <= m_state;
                  m_cmd <= 4'b1111;
                  f_pop <= 1'b0;
                  oe <= 1'b0;
              end // default
          
              // synthesis translate_on
          endcase // m_state
        end
    end


  assign rd_strobe = m_cmd[2 : 0] == 3'h5;
  //Track RD Req's based on cas_latency w/shift reg
  always @(posedge clk or negedge reset_n)
    begin
      if (reset_n == 0)
          rd_valid <= {3{1'b0}};
      else 
        rd_valid <= (rd_valid << 1) | { {2{1'b0}}, rd_strobe };
    end


  // Register dq data.
  always @(posedge clk or negedge reset_n)
    begin
      if (reset_n == 0)
          za_data <= 0;
      else if (1)
          za_data <= zs_dq;
    end


  // Delay za_valid to match registered data.
  always @(posedge clk or negedge reset_n)
    begin
      if (reset_n == 0)
          za_valid <= 0;
      else if (1)
          za_valid <= rd_valid[2];
    end


  assign cmd_code = m_cmd[2 : 0];
  assign cmd_all = m_cmd;

//synthesis translate_off
//////////////// SIMULATION-ONLY CONTENTS
  assign txt_code = (cmd_code == 3'h0)? 24'h4c4d52 :
    (cmd_code == 3'h1)? 24'h415246 :
    (cmd_code == 3'h2)? 24'h505245 :
    (cmd_code == 3'h3)? 24'h414354 :
    (cmd_code == 3'h4)? 24'h205752 :
    (cmd_code == 3'h5)? 24'h205244 :
    (cmd_code == 3'h6)? 24'h425354 :
    (cmd_code == 3'h7)? 24'h4e4f50 :
    24'h424144;

  assign CODE = &(cmd_all|4'h7) ? 24'h494e48 : txt_code;

//////////////// END SIMULATION-ONLY CONTENTS

//synthesis translate_on


endmodule

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级精品视频在线观看| 久久久www免费人成精品| 色综合久久久久网| 成人app软件下载大全免费| 国产一区二区三区不卡在线观看 | 欧美色图在线观看| 91美女视频网站| 一本色道综合亚洲| 色婷婷综合久色| 91啦中文在线观看| 欧美视频你懂的| 在线观看国产91| 欧美日韩国产经典色站一区二区三区 | 最新国产の精品合集bt伙计| 国产精品国产精品国产专区不蜜| 国产精品全国免费观看高清 | 国产精品久久久久7777按摩| 国产精品国产自产拍在线| |精品福利一区二区三区| 亚洲特级片在线| 亚洲综合一二区| 偷拍一区二区三区四区| 免费成人在线影院| 久久99久久精品欧美| 黄页视频在线91| 粉嫩在线一区二区三区视频| 91亚洲精华国产精华精华液| 欧美婷婷六月丁香综合色| 91精品国产麻豆国产自产在线 | 亚洲一级在线观看| 美腿丝袜亚洲三区| 国产成人免费视| 91久久精品一区二区二区| 欧美日韩午夜精品| 精品国产乱子伦一区| 国产精品三级av在线播放| 亚洲一区二区三区四区在线免费观看 | 麻豆成人在线观看| 成人久久久精品乱码一区二区三区 | 国产一区二区在线看| 成人福利视频网站| 欧美日韩在线电影| 精品成a人在线观看| 亚洲女性喷水在线观看一区| 三级一区在线视频先锋 | 91国内精品野花午夜精品| 欧美人与禽zozo性伦| ww久久中文字幕| 亚洲人成伊人成综合网小说| 免费在线成人网| youjizz久久| 欧美一级视频精品观看| 国产精品不卡一区二区三区| 日一区二区三区| 成人国产一区二区三区精品| 欧美亚洲综合网| 精品久久国产97色综合| 一区二区三区不卡在线观看| 国产一区二区不卡在线| 欧美色男人天堂| 国产精品免费视频一区| 美女一区二区视频| 在线观看中文字幕不卡| 欧美韩国一区二区| 蜜桃精品视频在线观看| 色哟哟国产精品免费观看| 久久一区二区视频| 日韩avvvv在线播放| 91美女蜜桃在线| 久久久蜜臀国产一区二区| 亚洲综合色区另类av| 国产成人小视频| 日韩一级二级三级| 一区二区视频在线| 国产成a人亚洲精品| 日韩一区二区在线看| 亚洲欧美色综合| 成人免费观看视频| 久久久久久9999| 日本美女视频一区二区| 欧美亚洲免费在线一区| 中文字幕中文在线不卡住| 国内精品视频一区二区三区八戒| 欧美一区二区三区免费观看视频| 亚洲色图欧洲色图| 成人午夜电影网站| 久久久久久久久久美女| 久久精品国产**网站演员| 欧美精品一二三| 亚洲一卡二卡三卡四卡| 色系网站成人免费| 亚洲免费观看高清在线观看| 懂色av一区二区三区免费观看| 欧美变态tickle挠乳网站| 日韩av中文字幕一区二区三区| 欧洲av在线精品| 亚洲乱码国产乱码精品精98午夜| 成人动漫视频在线| 欧美国产国产综合| 成人小视频在线| 欧美经典三级视频一区二区三区| 狠狠色丁香久久婷婷综合丁香| 欧美xxxxx牲另类人与| 毛片av中文字幕一区二区| 欧美一区二区三区免费在线看 | 91精品国产免费久久综合| 亚洲国产成人91porn| 欧美午夜视频网站| 亚洲一区二区五区| 欧美精选午夜久久久乱码6080| 五月婷婷久久综合| 在线成人av影院| 男人的天堂亚洲一区| 精品久久久久久久久久久久久久久 | 日韩久久一区二区| 91色视频在线| 亚洲欧美日韩电影| 色av一区二区| 亚洲.国产.中文慕字在线| 欧美福利一区二区| 麻豆精品在线播放| 国产三级一区二区三区| 高清视频一区二区| 尤物在线观看一区| 欧美日韩国产小视频在线观看| 日韩电影在线免费观看| 精品美女被调教视频大全网站| 国产成人av网站| 亚洲精品videosex极品| 欧美精品免费视频| 国产一区福利在线| 亚洲欧美激情视频在线观看一区二区三区| 91精品福利视频| 麻豆久久一区二区| 1024成人网| 欧美一区二区三区在线| 国产一区二区视频在线| 1024成人网| 91精品国产综合久久久久久| 国产在线一区二区综合免费视频| 国产精品网站在线观看| 在线观看免费亚洲| 国产乱妇无码大片在线观看| 亚洲欧洲精品天堂一级| 在线播放日韩导航| 国产999精品久久| 亚洲午夜在线电影| 久久久久久久久久久电影| 91在线视频播放地址| 丝袜国产日韩另类美女| 国产欧美日韩一区二区三区在线观看| 91视频免费看| 国内精品嫩模私拍在线| 亚洲午夜精品久久久久久久久| 久久青草欧美一区二区三区| 欧美中文字幕一区二区三区 | 日韩一区二区三免费高清| 成+人+亚洲+综合天堂| 日本特黄久久久高潮| 国产欧美一区二区精品性色 | 精品成a人在线观看| 一本色道**综合亚洲精品蜜桃冫| 日韩avvvv在线播放| 亚洲柠檬福利资源导航| 欧美r级电影在线观看| 色天使久久综合网天天| 激情久久久久久久久久久久久久久久| 亚洲一区二区三区视频在线播放| 久久人人97超碰com| 欧美人与禽zozo性伦| 91同城在线观看| 国产精品一区一区| 捆绑变态av一区二区三区| 亚洲猫色日本管| 国产精品日日摸夜夜摸av| 精品精品欲导航| 91精品欧美福利在线观看| 色噜噜狠狠色综合中国| 国产91精品入口| 美女视频黄久久| 天天综合网天天综合色| 一区二区在线免费观看| 一区二区三区在线不卡| 中日韩av电影| 久久精品在线免费观看| 欧美成人女星排行榜| 欧美高清视频在线高清观看mv色露露十八 | 久久se精品一区二区| 石原莉奈一区二区三区在线观看| 亚洲精品视频在线看| 国产精品电影院| 国产亚洲欧美中文| 精品99久久久久久| 日韩欧美另类在线| 制服丝袜av成人在线看| 欧美亚洲另类激情小说| 欧美在线一二三| 色悠悠亚洲一区二区| 色婷婷一区二区三区四区| 91在线高清观看|