Chip123 科技應用創新平台

標題: free DRAM controller~~~ MIG [打印本頁]

作者: tommywgt    時間: 2007-7-24 12:23 PM
標題: free DRAM controller~~~ MIG
Software Support . f5 v* g  `5 |3 @0 G
- All MIG designs have been tested with ISE 9.1.01i and Synplicity 8.6.03i. 4 e- C: o  ]# v6 k' o& d

3 T6 [# K) p, w: D/ s9 \7 l7 CPlatform Support 4 u0 X# g$ S# S' K2 s
- Microsoft Windows XP (32 bit)
, L, ?3 c# r, Y. L( j8 O8 ?6 \' D9 F+ n
Device Support
2 p, [( f3 W6 e2 U* |$ C- n- All currently available Virtex-5, Virtex-4, Spartan-3, Spartan-3A, and Spartan-3E FPGAs are supported.
1 U7 W8 x4 Y% o3 d8 \- ^
  D; Q3 w) G$ b; A' RNew Features
/ ]! H; Z# e8 K0 [: sGeneral New Features and Changes & d  k) g$ D  b) E7 C
- Supports "Create New Memory Part" for all the designs. 7 N/ b% X4 H! {( e7 W
- DDR and DDR2 SDRAM designs for Spartan-3A. : ^$ p" b4 D& f+ X7 f* g' B
- DDR SDRAM is supported for Virtex-5.
. K% a- \, B: ^- VHDL is supported for Virtex-5 DDR2 SDRAM and QDR II SRAM.
/ a. g0 O8 U$ E4 x6 Q; p/ R3 _- MIG now pops up the design notes specific to the generated design. % ~  x& N! e, D" \
- Supports Pin Out compatibility with MIG 1.5 and MIG 1.6 for Spartan-3 and Spartan-3E designs. 7 C4 B" K: ^3 u: @, X3 D
- ECC check box changed to Combo box to support Pipelined and Un-pipelined modes.
1 ]7 p6 i5 z; _' S9 s4 l3 P$ x, \- Support differential and nondifferential strobes for Spartan-3A DDR2 and Virtex-4 DDR2.
% Z& y* \" o; \. v1 f- Pops up an information note if user selects the invalid data width or unsupported data width for a particular FPGA of Spartan-3/-3E/-3A.
& [$ m8 l# {' a- Generates a script file for running MIG designs through Project Navigator GUI. This is supported only when the flow vendor is "XST".
7 c+ Q' X9 f5 f3 Z- Default setting "DCI for Address and Control " is changed to "unChecked".
$ W, D- P% ~! z) b- Frequency slider is changed to editable box in the GUI.
* s" l8 I. Y2 k# v6 m/ w% p& [2 N- Supports only alphanumeric characters and underscore ('_') for the module name and also for the New Name in Edit Signal Names. 9 |% e1 p, b4 B  z( u" [7 r
- Removed console window when running MIG through CORE Generator. - x# z1 d7 \: ?7 d9 `
- WASSO table (Set Advanced Options) accepts only numeric characters.
* \9 l* f1 g+ k* R# F: L% {- The maximum frequency for Spartan-3, -5 is set to 133 MHz if the data width is greater than 32. % `& s  t; X  ?: A' D
- Provided web links for all XAPPs in the docs folder of the designs. ! Q; W9 {7 D  g& R$ V! m9 ]
- Provided link to Data Sheet instead of Log Sheet in the output window. 8 C5 x! C2 k# p
- Support of Constraint "CONFIG PROHIBIT" while reading the ucf in the reserve pins window.
4 T8 T7 s/ Y  `4 i- WASSO limits the number of pins to be used in a bank per controller. For example in multi controller design, if WASSO is set to 10 in a bank, tool allocates 10 pins for each controller in that bank. 8 C1 R! Q! v1 r) R
- The designs are independent of the memory part package; hence, the package part of the memory component name is replaced with XX or XXX, where XX or XXX indicates don't care condition.
; `  J" D) t# R) C! v8 `4 S
, O/ K( L% T! `$ Z, Z& GVirtex-5 New Features and Changes
1 F9 `1 \* p- |/ U0 tDDR2 SDRAM , w6 q+ K$ x0 m+ d: R: s8 h
- New controller with several high-performance features. All the features are described in detail in the Application Notes.
' @0 u, {  K' `) e: C5 a- Enhanced data calibration algorithms for higher reliability.
+ T' z- z# O3 j. P- Bank Management feature is supported.
5 F/ J/ h  V6 C# R6 S- Supports VHDL. 1 f8 ?" _5 |( Z/ y# J
- The user is no longer required to always set address A10 (and skip this bit in their memory space) when issuing a command to the controller in order to prevent an auto-precharge from occurring on the DDR2 bus. The controller now always forces this bit to 0 on the DDR2 bus, and the memory space presented to the user is now linear. " |1 ~9 F* D9 |$ N) o
- The User Interface bus has been modified. The command (read/write) is now presented on a separate bus from the address. See the MIG User's Guide for a definition of the User I/F bus.
+ T( m$ e3 P3 T# v/ ^8 r- Several enhancements have been made to the pin allocation algorithms. Due to this, the pin outs will be different between MIG1.7 and previous versions. 0 s$ S* B# O2 X  i# R/ c' B4 ?  Y5 V* Y
a. Increased efficiency when DCI is not used. MIG will now allocate VRP and VRN pins for other signals. 0 S; @* g. F, b* @- v, U3 t# @
b. WASSO is applied to all the memory interface signals.
3 R5 P6 m/ _( D2 b' q4 Q( o$ Cc. Signals such as "Error" outputs are not part of the WASSO count. 1 C0 @2 V$ S+ _- t5 P# |& R

( P. w. p. `1 u6 ?& W% R% g* G: mDDR SDRAM
" o/ P& k! z& ]( \& Y" I* ^. h9 c- This is a new design for MIG. Supports Verilog and VHDL. 6 R% }0 s5 t/ Z7 w0 f$ f
- Bank Management feature is supported. & P; ~- S' O$ b# z! E- m+ O
- The user is no longer required to always set address A10 (and skip this bit in their memory space) when issuing a command to the controller in order to prevent an auto-precharge from occurring on the DDR bus. The controller now always forces this bit to 0 on the DDR bus and the memory space presented to the user is now linear.
; _/ S5 N4 F& h( q% f; \# k
4 d6 b& e3 c3 }6 ~: N3 AQDRII SRAM / I6 S' [2 r8 u
- Added support for VHDL.
* B/ i" a& a% J6 X( g0 o1 J  K" P- Added support for 72-bit designs. 8 ?' l, i* i  Q! s! F8 t
- Added first level of calibration. This includes a dummy write of 1's and 0's to the memory. This pattern helps to calibrate for the CQ/Q delay.
7 X! s# S; G, j, x- Moved the pattern generation to the phy_write module. This was in the test_data_gen in MIG 1.6 ' B9 [  g9 P0 T/ w) A
- A user_qr_valid signal is now being generated to the backend. This signal helps generate the User_qen_n signal to the read data FIFOs. The MIG 1.6 code used the user_qr_empty from all the read data FIFOs. This change was done for timing reasons.
: T3 L2 t, r2 z4 m% [- Several enhancements have been made to the pin allocation algorithms. Due to this, the pin outs will be different between MIG v1.7 and previous versions.
* O/ y; G9 u7 a7 z0 ka. Increased efficiency when DCI is not used. MIG will now allocate VRP and VRN pins for other signals. , v$ H1 S  w0 _$ K1 W! d( |( q( M
b. WASSO is applied to the output signals only. ( N: t% d9 v0 n% R

9 Y& K# X* G' Z: |# Q, S% S, E4 yVirtex-4 New Features and Changes
( d# F! L" l' RDDR2 SDRAM Direct Clocking 8 O1 L( F+ V5 y2 l7 N/ I" D
- Calibration logic now centers and deskews each bit of data. This change improves the frequency performance of the design. % A7 a( O3 r# c! H: i% n  Y
- Independent clock pins are generated for each load in deep designs. This change reduces the load on clock pins.
% D, Z' ^- \% h- t$ X- There is a new option for the user to select the reset polarity. This option is in the parameter file. The parameter reset_active_low can be changed for active high reset. By default, this is set to 1.
4 N% [6 x' ?6 Q) W/ Z+ r, m- ECC check box changed to combo box to support Pipelined and Un-pipelined ECC options. 0 u7 w2 z2 I" A5 `
- DQS# Enable, burst type and ODT of 50 ohm are selectable from GUI through Mode registers. 8 q: e" v+ z, D- C, [! K+ y
- Removed all TIGs in UCF. The reset signal is now registered in every module.
/ N( d; g7 `2 s, j7 p. _; ?- The IDELAY module now uses CLK0, instead of CLK50. CLK0 is used for the refresh counter. Previously, a divide clock was used for refresh logic. 9 _& D. L+ d& F* V. ^
- SYS_RESET_IN changed to SYS_RESET_IN_N, to follow standard convention for active low signal.
- \: I' o& B& X4 [( h+ S- Removed XC_PROPS. The "defparams" that are defined for simulation will now work for both XST and Synplicity.   y# X/ W6 ~, _2 A2 I# g% B# C
- Replaced `defines with localparams for Verilog.
6 |; d( W6 r$ t, g4 d  c6 |- Read enable in the pattern calibration logic is now generated after comparing two positive edge data and two negative edge data. This removes any spurious read enables. ) K; G# N: ~0 C5 ?' y1 s# @
- Several state machines now use "One-Hot Encoding".
5 z2 i5 t' h! b- Reset generation logic has been modified to make it synchronous with DCM Lock and DCM output clocks.
) q6 O1 Y/ ?7 Y: o# e. [$ T- Signal INIT_DONE is brought to top module.
* p; |3 e0 _3 _, K- Removed the UniSim primitive components declaration from VHDL modules.
: s3 @$ ~# H% P9 l- We now support all multiples of 8-bit data widths even for x16 memory devices.
! t+ k  k- y4 V6 n; C6 x. b- We support memory devices of speed grades -3 and -667.
  I3 m: _$ G/ @+ I- Several enhancements have been made to the pin allocation algorithms. Due to this, the pin outs will be different between MIG v1.7 and previous versions. + X/ I3 h8 v/ {) s. H6 K
a. Increased efficiency when DCI is not used. MIG will now allocate VRP and VRN pins for other signals.
( Q( }$ ^: e% r( G( sb. WASSO is applied to all the memory interface signals. ! m  g" m( S# ~; g
c. Signals such as "Error" outputs are not part of the WASSO count. 8 p' W. ~" j/ D' y# e( a
& R( L7 R1 N5 a% f. z- q" ^
DDR2 SDRAM SERDES Clocking 1 q( d5 B4 G+ G, d4 _5 O% `
- Implemented a new calibration. This new algorithm reduces the DCM utilization and improves the timing analysis. More details are described in the application note. 2 P# p4 E0 t3 k0 i% e  p$ [$ d
- There is a new option for the user to select the reset polarity. This option is in the parameter file. The parameter reset_active_low can be changed for active high reset. By default, this is set to 1. ) N% }$ p2 e4 k/ Y5 ^
- Support for ODT.
# ?3 c( p1 b! |9 a2 Z" s% m$ W! V! c% D- DQS# Enable is selectable from GUI through Mode registers. 7 e' S! J3 D: p4 y- \
- Removed all TIGs in UCF. The reset signal is now registered in every module. ! z) P4 `# M7 h; Y4 i
- The IDELAY module now uses CLK0, instead of CLK50. CLK0 is used for the refresh counter. Previously, a divide clock was used for refresh logic. 9 |* E8 M6 e6 i4 w
- SYS_RESET_IN changed to SYS_RESET_IN_N, to follow standard convention for active low signal. & Z2 [/ v# R" g6 z8 F4 {( U
- Removed XC_PROPS. The "defparams" that are defined for simulation will now work for both XST and Synplicity. / ~( m1 t, n9 V- C% D9 U5 ~6 Y
- Replaced `defines with localparams for Verilog. 3 X- Q) P- ?6 B
- Reset generation logic has been modified to make it synchronous with DCM Lock and DCM output clocks.
: X/ ]) b/ y$ G  K- Removed the UniSim primitive components declaration from VHDL modules. $ h. [/ Q1 H  J0 w" i% h/ g) r) ?
- We now support all multiples of 8-bit data widths even for x16 memory devices. 0 e" i8 M) w/ P+ ]. \/ f* u' ]- D
- Signal INIT_COMPLETE is brought to top module.
+ B, q3 m" V  g6 O- Memory devices of speed grades -5E and -40E are now supported.
$ j) m8 A2 e2 z% V9 x( b8 h- Several enhancements have been made to the pin allocation algorithms. Due to this, the pin outs will be different between MIG v1.7 and previous versions. . c4 \. [/ X5 l4 h5 }3 m, a0 j( t
a. Increased efficiency when DCI is not used. MIG will now allocate VRP and VRN pins for other signals. ) V- c; F1 W/ {0 l
b. WASSO is applied to all the memory interface signals.
$ {6 H  x; _- u- Zc. Signals such as "Error" outputs are not part of the WASSO count. % ]# ^: X5 U2 K5 g7 [( \

- T& ~* T7 Y8 \DDR SDRAM
* j' R% z' x# R' Y- There is a new option for the user to select the reset polarity. This option is in the parameter file. The parameter reset_active_low can be changed for active high reset. By default, this is set to 1.
! o0 O# D" y' [# G+ U- Removed all TIGs in UCF. The reset signal is now registered in every module.
0 F  q2 w1 y9 E, M, ?- The IDELAY module now uses CLK0, instead of CLK50. CLK0 is used for the refresh counter. Previously, a divide clock was used for refresh logic.
: C' s; T. I2 i2 d- U- SYS_RESET_IN changed to SYS_RESET_IN_N, to follow standard convention for active low signal. $ o' t0 s! [" t# y# H) i
- Removed XC_PROPS. The "defparams" that are defined for simulation will now work for both XST and Synplicity.
# x* s8 k& ]" f8 I- Replaced `defines with localparams for Verilog.
! ~+ l2 @2 A$ `: ]/ B- Read enable in the pattern calibration logic is now generated after comparing two positive edge data and two negative edge data. This removes any spurious read enables.
" F: M4 n9 I) z3 c- Modified the reset generation logic to make it synchronous with DCM Lock and DCM output clocks. * x# C( M" C( K- X
- Removed the UniSim primitive components declaration from VHDL modules.
, K- D7 O- `' x9 F7 G8 a- G6 ~- We now support all multiples of 8-bit data widths even for x16 memory devices. , K/ [8 J9 ?2 y, Y
- The signal "init_done" is now a port in the top module. , x+ k# X0 ], w! q: J5 P
- Several enhancements have been made to the pin allocation algorithms. Due to this, the pin outs will be different between MIG v1.7 and previous versions.
7 W" ]8 ?) y0 m" X# x% ?a. Increased efficiency when DCI is not used. MIG will now allocate VRP and VRN pins for other signals. 8 O% z: w: ?- ^6 N: Z. t6 F
b. WASSO is applied to all the memory interface signals.
2 M9 ?0 `7 Y. K6 p" ^9 e( Cc. Signals such as "Error" outputs are not part of the WASSO count. 0 E) ?3 X/ C3 b9 o5 Y+ [; v

* v9 J; _2 n1 {/ t  sRLDRAM II - N% @  C& U+ b+ u. d8 v. y  S5 f8 m
- There is a new option for the user to select the reset polarity. This option is in the parameter file. The parameter reset_active_low can be changed for active high reset. By default, this is set to 1.
, l9 q, E2 ]. F2 v8 `- Removed all TIGs in UCF. The reset signal is now registered in every module. 4 A9 P; [6 W' Y/ ^
- The design now uses CLK0, instead of CLK50 and div16clk.
% W: z6 e* g5 D, ~  E: _- CLK200 is changed to differential clocks in mem_interface_top module (Design top). 7 G' G& F1 w8 a  f5 l
- The signal sysReset is changed to sysReset_n, to follow standard convention for active low signal. ; |0 \0 f: H& b% |. ^% u
- Removed unused parameters from the parameter file.
; ~8 p! Q# ~8 _! Q2 G$ s- Removed XC_PROPS. The "defparams" that are defined for simulation will now work for both XST and Synplicity. / W! H5 R. l* O% z# m+ v
- Replaced `defines with localparams for Verilog.
8 G5 a7 N9 p  v7 O! M! l5 [- Modified the reset generation logic to make it synchronous with DCM Lock and DCM output clocks.
, l9 g" d! e8 v" l. @. G- Removed the UniSim primitive components declaration from VHDL modules. , u# _& T3 M0 z: S. N4 p
- The signal "INIT_DONE" is now a port in the top module.
$ ~1 F: @* v6 E  v- Test bench: The bank address sequence in backend_rom has been modified so that generation sequence starts with bank 0,1,.....,6,7. The command generation in the testbench is also pipelined for BL = 2,4,8.
0 u3 P" {- ~/ U- P! _- Replaced "tac" with "Q to data output" instead of "Q to any data output" in the timing spread sheets.
! L% t! D+ s: T5 b- The INITCNT that was hard coded in rld_rst module is parameterized according to frequency by adding a new parameter "INITCNT" in parameter file.
" J/ |; e. W: ]  N8 X- Several enhancements have been made to the pin allocation algorithms. Due to this, the pin outs will be different between MIG v1.7 and previous versions. - s* r8 f7 W+ d- R9 F
a. Increased efficiency when DCI is not used. MIG will now allocate VRP and VRN pins for other signals.
4 o7 r. y7 D) Z) }b. WASSO count is applied on output signals only for SIO memory types. * F( `0 j* S7 j: d# d4 d
c. QVLD, which is an input signal, is included in WASSO count for CIO memory types. This is the limitation of the current tool.
% _) c. h% [7 E( e
  J5 d1 Z; d- G0 w4 \& b1 GQDRII SRAM 1 |5 f% B$ i0 M* f
- There is a new option for the user to select the reset polarity. This option is in the parameter file. The parameter reset_active_low can be changed for active high reset. By default, this is set to 1. ' M2 R3 p" j! Z( B0 f
- Timing for the signal USER_QEN_n has been changed - it is one cycle late. A register for this signal has moved from the controller to the user logic.
( x0 t) ^! a9 F7 h% M( M- Supports generation of designs with out DCM.
: |% h( ^& T' f* J5 j: D- Part CY7C1526AV18-250BZC has been removed from Memory part list and added the CY7C1526V18-250BZC.
4 B+ r% X( r& H; U: H9 g- Removed all TIGs in UCF. The reset signal is now registered in every module.
1 d0 i) T/ C% o8 Z3 E- The IDELAY module now uses CLK0, instead of CLK50. CLK0 is used for the refresh counter. Previously, a divide clock was used for refresh logic. % A" _7 T! X) Y6 A' x
- Removed XC_PROPS. The "defparams" that are defined for simulation will now work for both XST and Synplicity. 2 `9 A/ l6 P7 U4 Q# H0 v
- Replaced `defines with localparams for Verilog.
- v7 k! D; P; x5 H: V) e7 s- Modified the reset generation logic to make it synchronous with DCM Lock and DCM output clocks. . l0 d8 |' X9 K* F
- Removed the UniSim primitive components declaration from VHDL modules. & c. S' @" y  Q& f% T) p$ h
- The signal "DLY_CAL_DONE" is now a port in the top module.
. O$ k0 J  G6 h( o4 S8 l0 B- The IO Standard generated for system signals are LVCMOS18. Users can change this as applicable. 8 F# \3 a3 Y. K
- Added support for DDR Byte writes.
8 T3 c, l% ~0 V8 T) T- Several enhancements have been made to the pin allocation algorithms. Due to this, the pin outs will be different between MIG v1.7 and previous versions. / {! ^" S" g3 w0 j8 w! l% G% w
a. Increased efficiency when DCI is not used. MIG will now allocate VRP and VRN pins for other signals.
- l  }7 [; Z" eb. WASSO is applied to the output signals only.
7 k  O1 n1 ~+ i4 G9 \; Ec. K/K# clocks, which are outputs, are not included in WASSO count. This is a limitation of the current tool. - S  \3 A% F- U$ m

6 D7 [5 a: Y; t  R) ?" I8 V2 ^: NDDRII SRAM
( f7 W! {) V6 L1 Y- There is a new option for the user to select the reset polarity. This option is in the parameter file. The parameter reset_active_low can be changed for active high reset. By default, this is set to 1.
. h7 P3 E, ?& p3 K- Timing for the signal USER_QEN_n has been changed -- it is one cycle late. A register for this signal has moved from the controller to the user logic.
* U% [5 w5 \0 s2 g- Supports generation of designs with out DCM. 5 Y$ @8 y0 L5 I' E& P1 }
- Part CY7C1526V18-250BZC has been removed from Memory Parts list.
" U" w, R7 J3 n6 b: j- Removed all TIGs in UCF. The reset signal is now registered in every module.
) t8 ^& \  H8 Y4 @* Q- o- The IDELAY module now uses CLK0, instead of CLK50. CLK0 is used for the refresh counter. Previously, a divide clock was used for refresh logic. 4 ^% m4 k- h& X4 y
- Removed XC_PROPS. The "defparams" that are defined for simulation will now work for both XST and Synplicity. ' [% k; Z6 H8 Y5 Y
- Replaced `defines with localparams for Verilog.
! B/ i0 I! Y# P: }# h- x* F- Modified the reset generation logic to make it synchronous with DCM Lock and DCM output clocks. - E1 }, i& i5 \" Q
- Removed the UniSim primitive components declaration from VHDL modules.
: b* l' c! }0 R- The signal "DLY_CAL_DONE" is now a port in the top module.
% j) D: [' a+ n. l# i& X- The IO Standard generated for system signals are LVCMOS18. Users can change this as applicable.
3 }6 y- M. `  x" t- Added support for DDR Byte writes.
& U# z( h. Z  p$ k- Several enhancements have been made to the pin allocation algorithms. Due to this, the pin outs will be different between MIG v1.7 and previous versions. + z% {/ |* t$ d! ^
a. Increased efficiency when DCI is not used. MIG will now allocate VRP and VRN pins for other signals.
. O: L  Y9 d- i9 w5 x% p# c' K" nb. WASSO is applied to all the memory interface signals. 0 f! {7 F9 H8 @$ G, l
c. Signals such as "Error" outputs are included in WASSO count.
作者: tommywgt    時間: 2007-7-24 12:28 PM
太長的東東沒人想看吧!
) Q2 u, _$ Q5 |; e
1 D# n/ }' ~  ^% p總而言之, 這是一個由Xilnx提供的free IP, 用來控制memory用的, 目前都拿來接DDR/DDR2 SDRAM比較多
0 L7 h" f- c2 D3 M. D" a; h  O8 ~- X7 ]" s. ~2 L! b+ E8 p6 M
很好用哦
作者: steall74220    時間: 2008-5-14 06:08 PM
請問我現在用CORE產生出來的MIG是直接燒在板子上使用嗎??
作者: tommywgt    時間: 2008-5-19 12:32 AM
基本上是的
7 F7 V2 P' K# k0 v% M$ Y+ x5 B# {5 w9 T
實際上當然要跟你自己的設計整合一起才會動
作者: anita66    時間: 2009-3-17 06:36 PM
沒有載點呀??這是說明文章而已嗎??我想要下free IP呀??
作者: qwe11197    時間: 2009-6-21 03:45 PM
剛剛看了一下簡介
- E, S, w3 b' h! m7 P' b感覺蠻好用的軟體
1 V& r: D, `- d5 S5 f: R9 G1 C/ y( y結果沒有載點真可惜
  a4 z5 p* ^8 O! C6 m! \1 t自己去搜尋一下好了!!




歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/) Powered by Discuz! X3.2