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

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

?? readme.txt

?? ddr verilog代碼,實現DDR內存控制
?? TXT
字號:
----------------------------------------------------------------------------
--
-- PROJECT         DDR-SDRAM Controller Core
--
-- AUTHOR          Markus Lemke
--                 markus@opencores.org
--                 www.array-electronics.de
--
-- DATE            $Date: 2003/03/19 06:53:31 $
--
-- ABSTRACT        Documentation File for the
--                 DDR SDRAM Controller Core
--
--
----------------------------------------------------------------------------
-- Copyright (C) 2002 Markus Lemke, www.array-electronics.de
--  
-- Everyone is permitted to copy and distribute  and  modify 
-- this  document  under  the  terms of the OpenIPCore Hardware
-- General  Public License "OHGPL" which can  be  read  in  the
-- file LICENSE.
--  
-- The  License  grants  you  the right to copy, modify  and
-- redistribute this file,  but only under  certain  conditions 
-- described in the License.  Among other things,  the  License
-- requires that  this  copyright  notice  and  the  associated
-- disclaimer  be preserved on  all copies.  Every copy of this
-- file must include a copy of the License, normally in a plain
-- ASCII text file named LICENSE.
--  
-- 
-- DISCLAIMER
-- 
-- THIS SOFTWARE  IS  PROVIDED  ``AS IS''  AND  WITHOUT ANY  
-- EXPRESS  OR  IMPLIED  WARRANTIES, INCLUDING, BUT NOT LIMITED 
-- TO, THE  IMPLIED  WARRANTIES OF  MERCHANTABILITY AND FITNESS
-- FOR A  PARTICULAR  PURPOSE.  IN NO EVENT SHALL THE AUTHOR OR 
-- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-- SPECIAL,  EXEMPLARY,  OR CONSEQUENTIAL  DAMAGES  (INCLUDING,
-- BUT NOT  LIMITED TO,  PROCUREMENT  OF  SUBSTITUTE  GOODS  OR 
-- SERVICES;  LOSS  OF  USE,  DATA,  OR  PROFITS;  OR  BUSINESS 
-- INTERRUPTION) HOWEVER CAUSED  AND ON ANY THEORY O LIABILITY,
-- WHETHER  IN CONTRACT, STRICT  LIABILITY, OR  TORT (INCLUDING 
-- NEGLIGENCE OR OTHERWISE)  ARISING IN ANY WAY OUT OF THE  USE 
-- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 
-- DAMAGE.                              
----------------------------------------------------------------------------

-- $Log: readme.txt,v $
-- Revision 1.1.2.2  2003/03/19 06:53:31  markus
-- Version 1.1: Bugfix User Interface,
-- simplified timing constraints
--
-- Revision 1.1.2.1  2003/01/08 14:58:27  markus
-- Initial Opencores Revision
--

Contents
---------

1. Files
2. Brief Introduction
3. Features
4. Functional Description
 4.1 Signals
 4.2 Clock Generation
 4.3 Commands
 4.4 User Adress Mapping
 4.5 Write Operation
 4.6 Read Operation
5. Core Configuration
6. Simulation
7. Hardware Implementation Notes
8. Extended DDR SDRAM Controller


1.) Files
----------
The DDR SDRAM Controller Core contains the following files:
  
 Synthesis : 
   
   ddr_sdr_conf_pkg.vhd
   reset.vhd
   ddr_dcm.vhd
   user_if.vhd
   ddr_sdr.vhd
   ddr_sdr.ucf
   
 Simulation :

   mt46v16m16.vhd
   tb.vhd

 and :
 
 readme.txt (this file)
 license
 

2.) Brief Introduction
-----------------------

DDR SDRAM Controller Core

-  has been designed for use in XILINX Virtex II FPGAs
-  works with DDR SDRAM Device MT46V16M16 without changes
-  may be easily adapted to any other DDR SDRAM device



3.) Features
-------------

-  up to 100 (133) MHz system clock frequency in -4 (-5) speed grade
-  BURST LENGTH : 2
-  CAS latency  : 2
-  Commands : NOP, READ, WRITE
-  Automatic, configurable Auto Refresh
-  Automatic precharge/activate when changing ROW/BANK
-  All main parameters are configurable
-  Unidirectional DQS signals (only for write operations)
-  Data mask signals not used


4.) Functional Description
---------------------------

4.1) Signals
-------------

      // Clock and RESET signals
      rst_n              | IN  |  external asynchronous reset, low active
      
      clk                | IN  |  system clock (e.g. 100MHz), from fpga pad

      sys_rst_qn         | OUT |  sync reset low active, released after DCMs are locked,
                                  may be used by other modules inside the FPGA
                            
      sys_clk_out        | OUT |  system clock, dcm output, may be used by other modules 
                                  inside the FPGA as global clock
                                  
      clk_fb             | IN  |  DCM feedback clock, must be external connected to ddr_sdr_clk !
      
      // User Interface signals
      cmd                | IN  |  User command: READ, WRITE, NOP
      cmd_vld            | IN  |  User command valid (if '1')
      addr               | IN  |  User address, contains (ROW & BANK & COL), see Address Mapping 
      busy_q             | OUT |  Controller busy flag, commands are ignored when active
      
      // Data Interface
      data_in            | IN  |  User input data (written to DDR SDRAM)
      data_req_q         | OUT |  User data request, controls input data flow
      data_out_q         | OUT |  User data output (read from DDR SDRAM)
      data_vld_q         | OUT |  data_out_q is valid when '1'

      // DDR SDRAM external signals
      sdr_clk            | OUT |  DDR SDRAM Clock
      sdr_clk_n          | OUT |  Inverted DDR SDRAM Clock
      cke_q              | OUT |  DDR SDRAM clock enable
      cs_qn              | OUT |  DDR SDRAM /chip select
      ras_qn             | OUT |  DDR SDRAM /ras
      cas_qn             | OUT |  DDR SDRAM /cas
      we_qn              | OUT |  DDR SDRAM /write enable
      dm_q               | OUT |  DDR SDRAM data mask bits, all set to "0"
      dqs_q              | OUT |  DDR SDRAM data strobe, used only for write operations
      ba_q               | OUT |  DDR SDRAM bank select
      a_q                | OUT |  DDR SDRAM address bus 
      data               | INOUT |  DDR SDRAM bidirectional data bus
                          
      // Status signals
      dcm_error_q        | OUT |  Indicates DCM Errors

      
4.2) Clock Generation
----------------------

The DDR SDRAM Controller Core uses 2 XILINX Virtex2 DCM's to generate
the clocks for the DDR SDRAM device and the core.

The phase shift of DCM 0 should be adjusted, depending an board delays.
Set variable ps in the function <func_phase_shift> to the appropriate value
(ddr_sdr.vhd)

The actual value of DCM 0 phase shift is optimized for use with the
INSIGHT Xilinx Virtex2 DDR Development Board.

NOTE: clk_fb must be externally connected to sdr_clk, otherwise the DCMs
      will not lock.

      
4.3) Commands
--------------

The following user commands are supported:

cmd   command name
---   ------------
0x0   NOP
0x1   READ
0x2   WRITE


4.4)  User Address Mapping
---------------------------

The address lines are mapped to the DDR SDRAM device address bits as follows:

addr = (row, bank, column)

with

row (DDR_ADDR_WIDTH - 1 : 0)
bank (DDR_BANK_WIDTH -1 : 0)
column (DDR_ADDR_WIDTH - 1 : 0)

MSB is on the left side, LSB on the right.

NOTE: A simple increment by 2 may not work for address generation in most cases. See the example.


EXAMPLE:

DDR SDRAM = MT46V16M16 ( 4 Meg x 16 x 4 banks)

DDR_ADDR_WIDTH =  13
DDR_BANK_WIDTH =  2

USER_ADDR_WIDTH = 2 x DDR_ADDR_WIDTH + DDR_BANK_WIDTH = 28

In this case, addr is configured to 28 bits width (but only 24 bits are used).

According to the DDR SDRAM data sheet, all 13 DDR SDRAM address-bits are used for
row addressing (A12 - A0), but only 9 bits are used for column addressing (A8 - A0). 

A10 is the auto precharge bit, A9, A11, and A12 are not used when the column address is applied.

Assuming the user address signal is 'user_addr(23 downto 0)' and the auto precharge bit is not used,
then address mapping is done as follows:

addr <= user_addr(23 downto 9) & "0000" & user_addr(8 downto 0);

        |   DDR ROW & BANK   | & |   DDR COLUMN ADDR          |


        
4.5)  WRITE Operation
----------------------
A write operation is requested at the user interface by applying the WRITE command
to cmd and setting cmd_vld ='1'.

This write operation is accepted with the rising edge of sys_clk and busy_q ='0'.

Write data flow is controller by data_req_q. Data at data_in is registered
exactly 2 clocks after data_req_q was set '1':

             ____      ____      ____      ____      ____      
clk        _/    \____/    \____/    \____/    \____/    \____
              _________
data_req_q __/         \_______________________________________
           ______________________ ____________ ________________
data_in    _________XXX__________|_data valid |______XXX_______


If there is a difference in the ROW or BANK, used during the last access,
the controller performs a PRECHARGE ALL, followed by an ACTIVATE command.
Otherwise, the write operation starts immediately.


4.6)  READ Operation
----------------------

A read operation is requested at the user interface by applying the READ command
to cmd and setting cmd_vld ='1'.

This read operation is accepted with the rising edge of sys_clk and busy_q ='0'.

Read data at data_out_q is valid exactly when data_vld_q='1':

             ____      ____      ____      ____      ____      
clk        _/    \____/    \____/    \____/    \____/    \____
                        _________
data_vld_q ____________/         \____________________________
           ____________ _________ ____________________________
data_out_q _____XXX____|_d valid |______XXX___________________


If there is a difference in the ROW or BANK, used during the last access,
the controller performs a PRECHARGE ALL, followed by an ACTIVATE command.
Otherwise, the read operation starts immediately.

NOTE: dqs signals are still not used for reading data.


5.)   Core Configuration
-------------------------

All core configuration is done by changing parameters in the following file:

ddr_sdr_conf_pkg.vhd

The given comments in this file should be sufficient to adapt the core
to different DDR SDRAM Memory devices.
Note, that the CAS Latency may not be changed, as well as the burst length.


6.)   Simulation
-----------------

A simple testbench is available to demonstrate write and read operations.

First of all, you should compile the XILINX library 'unisim' into a subdirectory
of your working directory.
This may be done as follows (you are in your working directory):

vlib unisim

vcom -87 -work unisim  <XilinxPath>\vhdl\src\unisims\unisim_vpkg.vhd
vcom -87 -work unisim  <XilinxPath>\vhdl\src\unisims\unisim_vcomp.vhd
vcom -87 -work unisim  <XilinxPath>\vhdl\src\unisims\unisim_vital.vhd

where <XilinxPath> is the path to your XILINX software, e.g. c:\m4_2is2
(this may take some minutes ..have a cup of coffee here...)

The next step is compilation of all source files into the library 'work'.

vlib work
vcom -93 ddr_sdr_conf_pkg.vhd reset.vhd ddr_dcm.vhd user_if.vhd ddr_sdr.vhd mt46v16m16.vhd tb.vhd

Now you can start simulation using the following commands in MODELSIM:

vsim -t ps tb
view wave
add wave *
run -all

Simulation time is about 132.000 ns

At first, a block of data words is written to the DDR SDRAM. You may change the
value of MAX_WORDS in tb.vhd for longer or shorter simulation.
After writing, the data is read back from the DDR SDRAM device and checked
for errors.
Simulation stops automatically if you have set the checkbox "Brake on Assertion -> FAILURE"
in MODELSIM simulator. This is no error !

Don't care about the two warnings 'MAXCLKPERIOD VIOLATION ON CLKFX'. This is because both
DCM's get a reset a short time after the simulation has been started.



7.)   Hardware Implementation Notes
------------------------------------

* Global clock pins (GCK) at the same device edge should be used for the following signals:
         
clk         e.g. B11
clk_fb      e.g. F13

*  All data IO's must use both INFFs, OUTFFs and one of the Tristate-FFs,
   resulting in the following mapper report (example):

| data<0>                            | IOB     | BIDIR     | SSTL2_I     |          |      | INFF1 
|                                    |         |           |             |          |      | INFF2 
|                                    |         |           |             |          |      | OUTDDR
|                                    |         |           |             |          |      | ENFF2 

*  The IOSTANDARD should be SSTL2. Note that you have to use the same IOSTANDARD for all
   IOB's within one IO-bank !!!
   
*  SLEWRATE of all outputs driving DDR SDRAM signals should be set to FAST

*  The IOB delay element of all input signals should be switched OFF, using NODELAY

*  A global period timespec and an additional timespec for the reset path is sufficient
   for the entire core implementation.
   You may copy these contraints as well as the IOB-constraints from the example UCF-File <ddr_sdr.ucf>
   
*  The DDR SDRAM Controller design is synthesizable with XILINX XST synthesis tool when using
   the following option : ... -equivalent_register_removal No

   
   
8.)   Extended DDR SDRAM Core
------------------------------

If you are looking for a more powerful DDR SDRAM Controller Core with
advanced features, such as

- Multiple data channels
- Dynamic burst length support (2,4,8)
- Support for data mask signals
- Automatic bank management with four banks
- Data transfer speed up to 400 MBytes/s

please visit our homepage :

www.array-electronics.de

or send me an e-mail :

markus.lemke@array-electronics.de

 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区黄视频 | 一本色道久久综合精品竹菊| 九一九一国产精品| 欧美aaaaa成人免费观看视频| 亚洲最新视频在线播放| 日韩毛片一二三区| 亚洲色图视频免费播放| 亚洲欧美一区二区久久 | 看国产成人h片视频| 免费成人在线播放| 久久国产精品99精品国产| 美国欧美日韩国产在线播放| 免费成人av在线播放| 久久66热re国产| 国产一区二区三区黄视频 | av电影在线不卡| 91免费看片在线观看| 欧美在线影院一区二区| 欧美视频中文字幕| 91精品国产91久久久久久最新毛片 | 99综合电影在线视频| 91丨porny丨最新| 欧美三电影在线| 日韩午夜在线播放| 国产亚洲一本大道中文在线| 国产欧美一区二区精品性色 | 午夜婷婷国产麻豆精品| 日本成人在线不卡视频| 精品一区二区三区影院在线午夜| 国产美女一区二区| 色噜噜久久综合| 91精品国产欧美一区二区18| 国产亚洲成av人在线观看导航| 国产精品午夜免费| 五月激情综合婷婷| 国产久卡久卡久卡久卡视频精品| av网站免费线看精品| 6080午夜不卡| 中文子幕无线码一区tr| 亚洲第一综合色| 国产河南妇女毛片精品久久久| 色综合中文综合网| 制服丝袜亚洲播放| 国产香蕉久久精品综合网| 亚洲人成网站精品片在线观看| 婷婷丁香激情综合| 粉嫩av亚洲一区二区图片| 欧美性生活一区| 久久精品水蜜桃av综合天堂| 一区二区高清免费观看影视大全| 另类欧美日韩国产在线| 色综合天天视频在线观看 | 一区二区三区免费网站| 精品一区精品二区高清| 在线看日本不卡| 久久久久国色av免费看影院| 亚洲国产va精品久久久不卡综合| 国产高清久久久| 91精品蜜臀在线一区尤物| 专区另类欧美日韩| 国内精品久久久久影院一蜜桃| 色老汉一区二区三区| 久久精品视频一区| 日本伊人午夜精品| 日本福利一区二区| 国产精品妹子av| 久久99九九99精品| 91.com视频| 樱花草国产18久久久久| 国产精品69久久久久水密桃| 欧美日韩黄视频| 亚洲男人的天堂av| 丁香激情综合国产| 欧美成人精品福利| 日韩影院在线观看| 91国偷自产一区二区开放时间| 精品成人a区在线观看| 五月婷婷综合在线| 色欧美片视频在线观看在线视频| 久久久青草青青国产亚洲免观| 亚洲福利国产精品| 91麻豆视频网站| 日本一区二区三区在线不卡| 麻豆国产精品777777在线| 欧美日韩国产精品成人| 亚洲精品国产无套在线观| 成人蜜臀av电影| 精品国产电影一区二区| 蜜臀久久99精品久久久画质超高清 | 91精品国产综合久久久久久漫画| 亚洲欧美一区二区三区孕妇| 成人app网站| 中文字幕免费在线观看视频一区| 国产一区二区三区免费播放| 日韩精品影音先锋| 久久99国内精品| 精品成人a区在线观看| 韩国毛片一区二区三区| 欧美大胆人体bbbb| 精品一区二区免费| 精品精品国产高清a毛片牛牛| 免费观看久久久4p| 欧美一卡二卡在线| 麻豆国产欧美日韩综合精品二区 | 久久久久国产免费免费 | 欧美精品一区二区三区四区 | 欧美片在线播放| 亚洲 欧美综合在线网络| 欧美精品亚洲一区二区在线播放| 亚洲一级电影视频| 6080国产精品一区二区| 日本特黄久久久高潮| 日韩一区二区三区四区| 麻豆91在线播放免费| 精品国精品国产尤物美女| 国产综合久久久久影院| 久久精品亚洲麻豆av一区二区| 国产精品亚洲午夜一区二区三区| 国产三级三级三级精品8ⅰ区| 国产成人精品一区二区三区四区 | 久久婷婷一区二区三区| 国产麻豆精品久久一二三| 欧美国产国产综合| 色天使色偷偷av一区二区| 亚洲电影激情视频网站| 欧美videossexotv100| 粉嫩av一区二区三区在线播放| 亚洲女爱视频在线| 91精品久久久久久久久99蜜臂| 久久99蜜桃精品| 国产精品五月天| 欧美日韩一区二区三区四区五区| 日本va欧美va精品发布| 久久久www成人免费毛片麻豆 | 欧美日韩在线免费视频| 偷拍日韩校园综合在线| 欧美电视剧在线看免费| 成人久久18免费网站麻豆| 一区二区三区不卡视频在线观看 | 日韩中文字幕不卡| 久久久三级国产网站| 91久久精品国产91性色tv| 日本三级亚洲精品| 亚洲国产成人自拍| 欧美又粗又大又爽| 黄一区二区三区| 亚洲一区二区不卡免费| 精品美女被调教视频大全网站| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩中文字幕亚洲一区二区va在线| 国产日韩欧美精品电影三级在线| 日本韩国精品一区二区在线观看| 精品综合免费视频观看| 亚洲乱码国产乱码精品精98午夜| 欧美成人一区二区三区片免费| 97se亚洲国产综合自在线不卡 | 欧美日韩国产首页在线观看| 国产精品一区在线观看你懂的| 一区二区三区.www| 久久久久97国产精华液好用吗| 精品视频999| 99精品视频在线观看| 六月丁香婷婷久久| 一区二区三区四区国产精品| www国产精品av| 3d动漫精品啪啪一区二区竹菊 | 久久一二三国产| 欧美日韩一区 二区 三区 久久精品| 精品亚洲国内自在自线福利| 亚洲一区在线观看免费观看电影高清| 久久精品亚洲精品国产欧美kt∨| 欧美肥胖老妇做爰| 在线观看国产一区二区| 粉嫩av一区二区三区粉嫩 | 7777精品伊人久久久大香线蕉经典版下载| 国产成人免费视频一区| 欧美aaaaaa午夜精品| 亚洲福利视频一区二区| 日韩一区在线看| 国产精品视频第一区| 久久人人爽爽爽人久久久| 在线综合视频播放| 欧美欧美欧美欧美| 欧洲色大大久久| 91在线视频播放地址| 国产成人av一区二区三区在线观看| 日韩精品乱码av一区二区| 一区二区三区中文字幕电影| 中文字幕国产一区| 国产亚洲成av人在线观看导航| 精品女同一区二区| 精品久久久久久久一区二区蜜臀| 91麻豆精品国产91久久久| 在线精品视频免费播放| 日本韩国精品在线| 色天天综合久久久久综合片| 91在线免费播放| a亚洲天堂av| www.日本不卡| 99热精品一区二区|