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

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

?? asram_core.v

?? 這是一個MIPS架構的開發的CPU軟核OR2000
?? V
字號:
// =============================================================================//                           COPYRIGHT NOTICE// Copyright 2004 (c) Lattice Semiconductor Corporation// ALL RIGHTS RESERVED// This confidential and proprietary software may be used only as authorised by// a licensing agreement from Lattice Semiconductor Corporation.// The entire notice above must be reproduced on all authorized copies and// copies may only be made to the extent permitted by a licensing agreement from// Lattice Semiconductor Corporation.//// Lattice Semiconductor Corporation        TEL : 1-800-Lattice (USA and Canada)// 5555 NE Moore Court                            408-826-6000 (other locations)// Hillsboro, OR 97124                     web  : http://www.latticesemi.com/// U.S.A                                   email: techsupport@latticesemi.com// =============================================================================///                        FILE DETAILS// Project          : Async SRAM Controller// File             : asram_core.v// Title            : Asynchronous SRAM Controller// Dependencies     : asram_params.v// Description      : Implements the logic to interface async SRAM with Wishbone//                    bus.// =============================================================================//                        REVISION HISTORY// Version          : 1.0// Author           : Frank Xie// Mod. Date        : Jun 27, 2005// Changes Made     : Initial Creation//// =============================================================================`ifndef ASRAM_CORE_FILE `define ASRAM_CORE_FILE`include "timescale.v"// `timescale 1ns/100ps// `include "system_conf.v"module asram_core #(parameter SRAM_DATA_WIDTH = 32,                    parameter SRAM_ADDR_WIDTH = 18,                    parameter READ_LATENCY = 1,                    parameter WRITE_LATENCY = 1                    )  (// Clock and reset   clk_i,   rst_i,   // Wishbone side interface   cti_i,   bte_i,   addr_i,   dat_i,   sel_i,   we_i,   stb_i,   cyc_i,   ack_o,   dat_o,   // SRAM side interface   sram_addr,   sram_data_in,   sram_data_out,   sram_csn,   sram_be,   sram_wen,   sram_oen);   parameter                  SRAM_CYCLE     = 32/SRAM_DATA_WIDTH;   parameter                  SRAM_BE_WIDTH  = SRAM_DATA_WIDTH/8;   //////////////////////////////////////////////////////////////////////////////                              //clock and reset inputs   input                      clk_i;   input                      rst_i;   //Wishbone side interface   input [2:0]                cti_i;   input [1:0]                bte_i;   input [31:0]               addr_i;   input [31:0]               dat_i;   input [3:0]                sel_i;   input                      we_i;   input                      stb_i;   input                      cyc_i;   output                     ack_o;   output [31:0]              dat_o;   //SRAM side interface   output [SRAM_ADDR_WIDTH-1:0] sram_addr;   output                       sram_csn;   output [SRAM_BE_WIDTH-1:0]   sram_be;   output                       sram_wen;   output                       sram_oen;   input [SRAM_DATA_WIDTH-1:0]  sram_data_in;   output [SRAM_DATA_WIDTH-1:0] sram_data_out;   ///////////////////////////////////////////////////////////////////////////   // Internal registers and wires              reg [31:0] dat_o;   reg [2:0]             main_sm;    reg                   ack_o;   reg                   sram_wen;   reg [3:0]             read_latency_cnt;   reg [3:0]             write_latency_cnt;   reg [2:0]             cycle;   wire                  sram_data_width_32 = (SRAM_DATA_WIDTH == 32 ? 1 : 0);   wire                  sram_data_width_16 = (SRAM_DATA_WIDTH == 16 ? 1 : 0);   wire                  sram_data_width_8  = (SRAM_DATA_WIDTH == 8  ? 1 : 0);   wire [31:0]           sram_addr_cls;   reg [31:0]            sram_addr_bst;   reg                   we_bst,rd_bst ;   wire 		 burst_enabled = 1;    `define IDLE    3'b000 `define READ1   3'b001 `define READ2   3'b010 `define READ3   3'b011 `define RD_BST  3'b100 `define WRITE1  3'b101 `define WRITE2  3'b110 `define WRITE3  3'b111   // Main State Machine which controls the WishBone and SRAM interface   always @ (posedge rst_i or posedge clk_i) begin      if (rst_i) begin         main_sm <=  `IDLE;         read_latency_cnt  <=  READ_LATENCY;         write_latency_cnt <=  WRITE_LATENCY;         dat_o <=  0;         cycle <= 0;         sram_wen  <=  1'b1;         ack_o     <=  1'b0;         we_bst    <= 0;         rd_bst    <= 0;         sram_addr_bst <= 0;           end else begin         case (main_sm)           `IDLE: begin              if (cyc_i && stb_i && ~ack_o)                if (we_i) begin                               ack_o <= 1'b0;                   sram_wen     <=  1'b0;                   write_latency_cnt <=  WRITE_LATENCY;                   main_sm      <=  `WRITE1;                   rd_bst       <= 0;                                 // classic cycle or single cycle or data width < 32                   if (cti_i == 3'b000 || cti_i == 3'b111 || !sram_data_width_32) begin                      we_bst        <= 1'b0;                                        sram_addr_bst <= 0;                                        end else begin                      sram_addr_bst <= addr_i[SRAM_ADDR_WIDTH-1:0];                                         we_bst        <= 1'b1;                                     end                   // classic cycle or if data width < 32                end else if (cti_i == 3'b000 || cti_i == 3'b111 || !sram_data_width_32) begin                    we_bst <= 1'b0;                   rd_bst <= 0;                   sram_addr_bst     <= 0;                                    read_latency_cnt  <=  READ_LATENCY - 1; `ifdef NO_READ_WAIT                   main_sm <=  `READ2;                   if (sram_data_width_32)                     ack_o <=  1'b1;                   else                     ack_o <=  1'b0;                   dat_o[SRAM_DATA_WIDTH - 1 : 0] <=  sram_data_in; `else                   main_sm <=  `READ1;                   ack_o <=  1'b0; `endif                end else begin                  // burst read cycle                   main_sm      <= `RD_BST;                   ack_o        <= 1'b0;                   we_bst       <= 1'b0;                   rd_bst       <= 1'b1;                   sram_addr_bst<= addr_i[SRAM_ADDR_WIDTH-1:0];                               read_latency_cnt  <=  READ_LATENCY - 1;                end              else begin                 main_sm <=  `IDLE;                 sram_wen <= 1'b1;                 ack_o <=  1'b0;                  we_bst <= 1'b0;                      		 rd_bst <= 1'b0;              end              cycle <= SRAM_CYCLE;              dat_o <=  0;           end           `READ1: if (read_latency_cnt != 4'b0000)             read_latency_cnt <=  read_latency_cnt - 1;           else begin              main_sm <=  `READ2;              ack_o <= (cycle == 1) ? 1'b1 : 1'b0;              if (sram_data_width_32)                dat_o <= sram_data_in;              if (sram_data_width_16) begin                 if (cycle == 1) dat_o[31:16] <= sram_data_in;                 else dat_o[15:0] <= sram_data_in;              end              if (sram_data_width_8) begin                 if (cycle == 4) dat_o[7:0] <= sram_data_in;                 else if (cycle == 3) dat_o[15:8] <= sram_data_in;                 else if (cycle == 2) dat_o[23:16] <= sram_data_in;                 else dat_o[31:24] <= sram_data_in;              end           end           `READ2: begin              ack_o <=  1'b0;              main_sm <=  `READ3;              read_latency_cnt <=  READ_LATENCY;              if (cycle == 1)                cycle <= SRAM_CYCLE;              else                cycle <= cycle - 1; end           `READ3: begin              if (cycle != SRAM_CYCLE) begin `ifdef NO_READ_WAIT                 if (sram_data_width_32)                   dat_o <= sram_data_in;                 if (sram_data_width_16) begin                    if (cycle == 1) dat_o[31:16] <= sram_data_in;                    else dat_o[15:0] <= sram_data_in;                 end                 if (sram_data_width_8) begin                    if (cycle == 3) dat_o[15:8] <= sram_data_in;                    else if (cycle == 2) dat_o[23:16] <= sram_data_in;                    else if (cycle == 1) dat_o[31:24] <= sram_data_in;                 end                 ack_o <= (cycle == 1) ? 1'b1 : 1'b0;                 main_sm <=  `READ2; `else                 main_sm <=  `READ1;                 ack_o <=  1'b0; `endif              end              else if (cyc_i & stb_i) begin                 read_latency_cnt  <=  READ_LATENCY; `ifdef NO_READ_WAIT                 main_sm <=  `READ2;                 if (SRAM_DATA_WIDTH == 32)                   ack_o <=  1'b1;                 else                   ack_o <=  1'b0;                 dat_o[SRAM_DATA_WIDTH - 1 : 0] <=  sram_data_in; `else                 main_sm <=  `READ1;                 ack_o <=  1'b0; `endif                 cycle <= SRAM_CYCLE;              end else begin                 main_sm <=  `IDLE;                 ack_o <=  1'b0;               end           end           `RD_BST: begin                if (read_latency_cnt == 0) begin                            dat_o         <= sram_data_in;                 ack_o         <= 1'b1;                 sram_addr_bst <= sram_addr_bst + 4; // always four because 32 bit array                                  if (cti_i == 3'b111) begin                    main_sm <= `IDLE;                 end else begin                    read_latency_cnt <= READ_LATENCY - 1;                    main_sm <= `RD_BST;                              end               end else begin                 ack_o         <= 1'b0;                 read_latency_cnt <= read_latency_cnt - 1;                 main_sm       <= `RD_BST;                             end            end           `WRITE1: begin              if (write_latency_cnt == 0) begin                           ack_o <=  (cycle == 1) ? 1'b1 : 1'b0;                 main_sm  <= `WRITE2;                                   sram_addr_bst <= sram_addr_bst + 4; // always four because 32 bit array                                  if (we_bst) begin                    if (cti_i == 3'b111) begin                       sram_wen <=  1'b1;                       we_bst   <= 0;                                      end                 end else begin                    sram_wen <=  1'b1;                 end               end else begin                 ack_o    <=  1'b0;                 sram_wen <=  1'b0;                 write_latency_cnt <=  write_latency_cnt - 1;               end           end           `WRITE2: begin              ack_o <=  1'b0;              if (cycle != 1) begin                 cycle <= cycle - 1;                 main_sm <=  `WRITE1;                 write_latency_cnt <=  WRITE_LATENCY + 1;              end else begin                 cycle <= SRAM_CYCLE;                 main_sm <=  `IDLE;              end           end         endcase      end   end   assign  sram_addr_cls = (cyc_i && (SRAM_CYCLE == 1)) ? {addr_i[31:2],2'b00} :                           (cyc_i && (SRAM_CYCLE == 2) && (cycle == 2)) ? {addr_i[31:2],2'b00} :                           (cyc_i && (SRAM_CYCLE == 2) && (cycle == 1)) ? {addr_i[31:2],2'b10} :                           (cyc_i && (SRAM_CYCLE == 4) && (cycle == 4)) ? {addr_i[31:2],2'b00} :                           (cyc_i && (SRAM_CYCLE == 4) && (cycle == 3)) ? {addr_i[31:2],2'b01} :                           (cyc_i && (SRAM_CYCLE == 4) && (cycle == 2)) ? {addr_i[31:2],2'b10} :                           (cyc_i && (SRAM_CYCLE == 4) && (cycle == 1)) ? {addr_i[31:2],2'b11} :                           0;   assign  sram_addr = ((rd_bst | we_bst) ? sram_addr_bst : sram_addr_cls);   assign  sram_oen  = ~(stb_i && cyc_i && ~we_i);   assign  sram_csn  = ~(stb_i && cyc_i);   assign  sram_be   = ((SRAM_CYCLE == 1)) ? ~sel_i :           ((SRAM_CYCLE == 2) && (cycle == 2)) ? ~sel_i[1:0] :           ((SRAM_CYCLE == 2) && (cycle == 1)) ? ~sel_i[3:2] :           ((SRAM_CYCLE == 4) && (cycle == 4)) ? ~sel_i[0] :           ((SRAM_CYCLE == 4) && (cycle == 3)) ? ~sel_i[1] :           ((SRAM_CYCLE == 4) && (cycle == 2)) ? ~sel_i[2] :           ((SRAM_CYCLE == 4) && (cycle == 1)) ? ~sel_i[3] : {4'b111};   assign  sram_data_out = (sram_data_width_32 ? dat_i :                            (sram_data_width_16 ? ((cycle == 2) ? dat_i[15:0] : dat_i[31:16]) :                             ((cycle == 4) ? dat_i[7:0] :                              (cycle == 3) ? dat_i[15:8] :                              (cycle == 2) ? dat_i[23:16] :                              (cycle == 1) ? dat_i[31:24] : 0)));endmodule`endif // ASRAM_CORE_FILE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月天一区二区| 国产精品久久久久久一区二区三区| 亚洲国产精品高清| 日韩精品成人一区二区在线| 成人av在线观| 久久精品免费在线观看| 久久国产综合精品| 欧美高清一级片在线| 亚洲福利一区二区三区| 91亚洲精品久久久蜜桃网站| 欧美激情综合在线| 国产91色综合久久免费分享| 久久久国产精华| 国产成人精品三级麻豆| 国产亚洲综合av| 成人午夜在线视频| 欧美激情一区二区三区全黄| 粉嫩欧美一区二区三区高清影视| 精品国内二区三区| 国产精品中文字幕欧美| 亚洲国产成人在线| 91一区二区三区在线观看| 国产精品久久久久久久久免费樱桃 | 日韩精品自拍偷拍| 黄色日韩网站视频| 国产一区二区三区不卡在线观看 | 91福利资源站| 亚洲欧美欧美一区二区三区| 91在线国内视频| 一区二区三区在线视频免费观看| 色婷婷久久一区二区三区麻豆| 亚洲男同性恋视频| 5月丁香婷婷综合| 国产在线麻豆精品观看| 国产精品久久久久影视| 欧美三片在线视频观看| 国产麻豆视频精品| 亚洲欧美日韩成人高清在线一区| 欧美欧美欧美欧美| 国产麻豆精品一区二区| 中文字幕在线视频一区| 欧美三级在线看| 懂色中文一区二区在线播放| 亚洲一区二区三区中文字幕| 日韩欧美中文一区二区| 99r国产精品| 六月丁香婷婷色狠狠久久| 亚洲人成小说网站色在线| 日韩欧美国产精品一区| 一本一道久久a久久精品| 免费精品视频在线| ●精品国产综合乱码久久久久| 欧美一区二区久久久| 日本乱人伦aⅴ精品| 国产69精品久久久久毛片 | 在线观看免费成人| 国产成人在线视频免费播放| 天堂资源在线中文精品| 中文字幕在线观看不卡| 欧美成人猛片aaaaaaa| 欧美婷婷六月丁香综合色| 成人性生交大片免费看中文 | 欧美系列亚洲系列| 懂色av一区二区夜夜嗨| 久草精品在线观看| 日韩精品一级中文字幕精品视频免费观看 | 国产成人免费视频| 久久国产尿小便嘘嘘尿| 日韩高清在线电影| 亚洲电影在线播放| 亚洲制服丝袜在线| 亚洲与欧洲av电影| 亚洲一区二区综合| 亚洲国产一区二区三区青草影视| 成人免费一区二区三区在线观看| 国产日韩欧美麻豆| 国产视频亚洲色图| 国产欧美一区二区在线观看| www激情久久| 欧美激情在线看| 国产精品伦一区| 亚洲精品国产无套在线观| 亚洲日本成人在线观看| 午夜欧美一区二区三区在线播放| 婷婷开心久久网| 国产精品一卡二卡在线观看| 99re热视频精品| 欧美日韩一区二区电影| 制服丝袜在线91| 久久免费视频色| 一区av在线播放| 久久精品国内一区二区三区| 国产一区二区三区在线观看精品| av不卡在线播放| 欧美久久高跟鞋激| 国产亚洲精品中文字幕| 亚洲国产精品久久人人爱| 毛片av一区二区| 成人精品鲁一区一区二区| 欧美伊人精品成人久久综合97| 91精品国产色综合久久不卡电影| 久久久久久毛片| 亚洲五月六月丁香激情| 国产精品一二三| 制服丝袜中文字幕亚洲| 国产精品丝袜久久久久久app| 亚洲综合在线电影| 国产一区日韩二区欧美三区| 日本国产一区二区| 久久久久久久久久电影| 亚洲成人av中文| 99v久久综合狠狠综合久久| 日韩女同互慰一区二区| 亚洲欧美二区三区| 白白色 亚洲乱淫| 欧美大胆人体bbbb| 亚洲va欧美va国产va天堂影院| 处破女av一区二区| 久久久国产午夜精品| 免费在线观看一区二区三区| 欧美日韩一级二级| 亚洲综合一二区| 色视频成人在线观看免| 国产精品三级视频| 国产成人99久久亚洲综合精品| 欧美成人a∨高清免费观看| 午夜精品久久久久久久蜜桃app | 亚洲欧洲国产日本综合| 国产电影一区二区三区| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲视频在线观看三级| 成人av高清在线| 日韩理论电影院| 一本色道久久综合精品竹菊| 亚洲欧美激情视频在线观看一区二区三区 | 蜜桃视频免费观看一区| 欧美一区二区三区日韩视频| 琪琪久久久久日韩精品| 欧美一卡2卡三卡4卡5免费| 蜜臀精品久久久久久蜜臀| 日韩久久免费av| 成人sese在线| 亚洲综合在线视频| 日韩午夜精品视频| 风间由美一区二区av101 | 成人免费高清视频| 136国产福利精品导航| 欧美午夜视频网站| 美国毛片一区二区| 成人免费在线播放视频| 欧美另类z0zxhd电影| 国产一区二区三区精品视频 | 国产精品影视天天线| 中文字幕一区二区三区在线不卡| 91在线你懂得| 经典一区二区三区| 亚洲美女在线国产| 精品福利在线导航| 一本一本大道香蕉久在线精品 | 亚洲综合成人在线| 高清国产午夜精品久久久久久| 欧美成人福利视频| 一本色道久久综合狠狠躁的推荐| 日韩在线一区二区三区| 国产精品久久久久久久久免费丝袜| 在线免费观看不卡av| 国产在线国偷精品免费看| 亚洲成人一区在线| 国产亚洲午夜高清国产拍精品 | 久久亚洲免费视频| 欧美美女视频在线观看| aa级大片欧美| 国产精品资源在线看| 日日夜夜免费精品| 亚洲天天做日日做天天谢日日欢| 日韩欧美亚洲另类制服综合在线 | 国产精品看片你懂得| 欧美成人欧美edvon| 69av一区二区三区| 欧美日韩黄视频| 一本高清dvd不卡在线观看| 国产成人午夜片在线观看高清观看| 日本成人在线网站| 性欧美疯狂xxxxbbbb| 亚洲一区二区在线免费看| 亚洲激情六月丁香| 亚洲精品成人精品456| 最新日韩在线视频| 日韩美女啊v在线免费观看| 国产视频在线观看一区二区三区| 2020日本不卡一区二区视频| 欧美xxx久久| 国产丝袜美腿一区二区三区| 久久精品网站免费观看| 国产人久久人人人人爽| 亚洲国产精品t66y| 日韩毛片一二三区| 一区二区三区精品| 亚洲高清一区二区三区| 青娱乐精品视频在线|