找回密码
 注册
关于网站域名变更的通知
查看: 6095|回复: 6
打印 上一主题 下一主题

DCM使用详解

[复制链接]
  • TA的每日心情
    开心
    2025-12-19 15:13
  • 签到天数: 39 天

    [LV.5]常住居民I

    跳转到指定楼层
    1#
    发表于 2010-3-11 09:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    本文翻译自Using Digital Clock Managers (DCMs) in Spartan-3 FPGAs
    # y1 X* N5 y# j) Y2 jDCM主要功能2 z: ^$ a* U3 Z7 Q  y2 Q; P
    1. 分频倍频:DCM可以将输入时钟进行multiply或者divide,从而得到新的输出时钟。
    . M$ C( m2 K5 ?$ Z4 s1 p6 N9 Q2. 去skew:DCM还可以消除clock的skew,所谓skew就是由于传输引起的同一时钟到达不同地点的延迟差。
    0 @: g! u& ]  l, B& C5 O: A3. 相移:DCM还可以实现对输入时钟的相移输出,这个相移一般是时钟周期的一个分数。- q* z4 b6 w: W+ V4 i& X
    4. 全局时钟:DCM和FPGA内部的全局时钟分配网络紧密结合,因此性能优异。: t3 ~" U  u, C$ o$ w. O1 `
    5. 电平转换:通过DCM,可以输出不同电平标准的时钟。
      f3 w! e, n8 E2 D0 SDCM的特点与能力(Spartan-3系列为例)
    • 数量:4 DCM / FPGA(也有例外)
      7 }" H3 b1 t* ]/ o: T. T-- 应该够用了
    • 数字频率综合器输入(CLKIN):1-280MHz
    • 延迟锁相环输入(CLKIN):18-280MHz
    • 时钟输入源(CLKIN):- U# M/ o% R6 Z/ L& t! g
        Global buffer input pad
      4 O- i/ U! n5 e1 ~0 \  Global buffer output
        l5 C: W3 r3 _3 ~! e4 U, y' @  General-purpose I/O (no deskew)' p) p! |4 R. _
        Internal logic (no deskew)( a' ]$ R. l1 d7 w
      -- 上面最后两个分别是外部的普通IO口和内部的逻辑,没有deskew,所以时钟质量不会很好。
    • 频率综合器输出(CLKFX、CLKFX180):是CLKIN的M/D倍,其中
      - C' r5 c" r  \ M=2..328 _% _/ V5 [% E
      D=1..32  c. S# t7 y4 }% p' I
      -- 这样看来最大能倍频32倍,最小能16分频。
    • 时钟dividor输出(CLKDV):是CLKIN的下列分频: C+ u  k& K) [1 t2 F5 W
        1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 9, 10, 11, 12, 13, 14, 15, or 16
      2 }$ m3 }& M3 f-- 发现没有,最大的分频也是16。不过能支持半分频,比用频率综合器方便。
    • 倍频输出(CLK2X、CLK2X180):CLKIN的2倍频
    • 时钟conditioning、占空比调整:这个对所有时钟输出都施加,占空比为50%。
    • 1/4周期相移输出(CLK0/90/180/270):是CLKIN的1/4周期相移输出。
    • 半周期相移输出(CLK0/180、CLK2X/180、CLKFX/180):相差为180度的成对时钟输出。
    • 相移精度:最高精度为时钟周期的1/256。
    • 时钟输出:9个% C, S# q2 E# L5 _$ L
        到全局时钟网的时钟输出:最多9个中的4个
      " S6 Z. i& W" p; l* L/ n2 L  到General purpose互联:最多9个
      6 n+ F  G2 o, I  k  到输出脚:最多9个
      0 W  o( k  m4 Y7 T/ n-- 可见9个时钟输出可以随意链接内部信号或者外部输出,但是进入全局时钟网的路径最多只有4个。
    5 U+ k- C! ]" v$ U
    DCM的位置在哪?
    1 N! j/ M' F9 m, s1 O
    我们以Spartan3系列为例。0 K( J: Z% J! N" Q
    FPGA看上去就是一个四方形。最边缘是IO pad了。
    3 O' _+ e  `9 M0 d3 H. E除去IO pad,内部还是一个四方形。/ q* M; B( ?. d% g1 J
    四个角上各趴着一个DCM。
    - m3 T, i& u& q/ i& x: Q0 W上边缘和下边缘中间则各趴着一个全局Buffer的MUX。
    6 v: c1 p& s( T( I$ U这样的好处是四个DCM的输出可以直接连接到全局Buffer的入口。6 w7 p& w' X$ t6 ^# g, v% k
    下面是手绘简图,很丑是吧,呵呵。
    2 X9 G' |' i6 d9 i3 ~- ?( S 7 Z  Z2 Z# z+ Z# b5 D! t

    % W" E0 |$ T9 U1 ?DCM是全局时钟网络可选的一部分, H: m. ^' b( G' N/ e
    一般,时钟通过一个“全局输入buffer”和“全局时钟buffer” 进入全局时钟网络。如下所示
    & ^& o9 A) u9 N; G% p' r& n( hGCLK --->( IBUFG ---> BUFG) ---> low skew global clock network
      g/ n6 `1 w" ]( |在需要的时候,DCM也成为全局时钟网络的一环。
    & ~3 l) w6 i4 b4 r% F! |& W
    $ d( K+ f& k0 g" S# P 8 B' d, V6 t+ M& [" m
    DCM 内部构成一览8 ^+ T& g5 Z" o: l; }6 X2 s7 _; B6 z
    1. DLL 延迟锁定环
    ( G0 X2 U+ x9 r1 X5 c4 j; F    说是延迟锁定环,但是我觉得叫做延迟补偿环更加贴切。因为DLL的主要功能是消除输入时钟和输出时钟之间的延迟,使得输入输出在外部看来是透明连接。
    9 w$ M) B; N2 ?. d- o- Y    实现这种功能的原理是:DLL通过输出时钟CLK0或者CLK2X观察实际的线路延迟,然后在内部进行补偿。
    7 k: g+ h% @; x/ c# l, j8 f7 x" f    一句话,DLL的核心功能是无延迟。
    1 a1 N/ `5 z* c6 |    DLL的输出是CLK0, CLK90, CLK180, CLK270, CLK2X, CLK2X180, 和 CLKDV。
    / L0 y! c4 s0 c' Q, V: S8 Z+ x- h- ^! H" d. k0 U* c. K
    2. DFS 数字频率综合
    0 \" y+ D; f" y, r    DFS的主要功能是利用CLKIN合成新的频率。
    - B8 q5 i6 f! W3 _    合成的参数是:M(multiplier)和 D(divisor)。通过MD的组合实现各种倍频和分频。
    5 W) k& L3 R9 l. m% \5 L  X    如果不使用DLL,则DFS的合成频率和CLKIN就不具有相位关系,因为没有延迟补偿,相位就不再同步。
    ! A3 a1 L3 S7 ?, {0 B" U1 I, x, Y
    ) q% A8 [% R+ M2 o! a3. PS 相位偏移
    ! [' U  w* {  |    注意这个相位偏移不是DLL中输出CLK90/180/270用的。这个PS可以令DCM的所有9个输出信号都进行相位的偏移。偏移的单位是CLKIN的一个分数。
    % R$ Z. u8 ~9 h( ?- d( @) `    也可以在运行中进行动态偏移调整,调整的单位是时钟的1/256。
    8 H1 C7 a  {% Q这个功能我们平时不常用。: N+ C  y7 j2 ?* {! I2 v6 z0 d
    * h0 y! Q2 O# W6 J( g
    4. 状态逻辑" N  V5 H  i* Y( }* ^
        这个部分由 LOCKED 信号和 STATUS[2:0] 构成。LOCKED信号指示输出是否和CLKIN同步(同相)。STATUS则指示DLL和PS的状态。 ' u4 g, R! R6 n* s* \
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ) z5 m/ V+ \5 j$ ?; v& K
    ) w* k9 b8 O% P" t8 H: M/ U8 B9 v& H/ yDCM_BASE ! |, @4 [7 o- w' }
    DCM_BASE是基本数字时钟管理模块的缩写,是相位和频率可配置的数字锁相环电路,常用于FPGA系统中复杂的时钟管理。如果需要频率和相位动态重配置,则可以选用DCM_ADV原语;如果需要相位动态偏移,可使用DCM_PS原语。DCM系列原语的RTL结构如图3-8所示。) j) d% S+ ^$ X+ A& A% C8 G
    模块接口信号的说明如表3-8所列。 0 _  h* \) C$ |# a6 E/ Y' S7 Z
    1 f$ r! x2 E- R1 V' D' h7 c
    DCM_BASE组件可以通过Xilinx的IP Wizard向导产生,也可以直接通过下面的例化代码直接使用。其Verilog的例化代码模板为: 9 M2 U( A% h" _( k3 z
    7 }8 _$ M8 |6 W- z$ z) _
    // DCM_BASE: 基本数字时钟管理电路(Base Digital Clock Manager Circuit)
    4 h, ?7 a3 S6 X* G, r) H; [// 适用芯片:Virtex-4/5
    # L4 o9 V6 Z" ^3 F, S// Xilinx HDL库向导版本,ISE 9.1
    # t/ Y  Q& o( n8 Y; \) I+ bDCM_BASE #( 2 n- I  F1 P, O7 p- k# P
    .CLKDV_DIVIDE(2.0),
    ! ^2 Y8 z# T$ k' u# T// CLKDV分频比可以设置为: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5 . s0 \# ~3 |6 R9 ~8 x
    // 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0 , ^$ f/ d  q9 z5 G. J# Z
    .CLKFX_DIVIDE(1), // Can be any integer from 1 to 32 6 T# A- d) E( b% g* S# S
    // CLKFX信号的分频比,可为1到32之间的任意整数
    ' E2 y. b* ~4 [: V.CLKFX_MULTIPLY(4),
      c! V; N: k. i+ p9 s8 p* ~1 s" Z// CLKFX信号的倍频比,可为2到32之间的任意整数 : ?  O; t* u" O3 L' W' W1 I
    .CLKIN_DIVIDE_BY_2("FALSE"), ; ^, w; s+ a$ a$ M, x
    // 输入信号2分频的使能信号,可设置为TRUE/FALSE # Z. l1 q) @( Z- q7 Q8 p
    .CLKIN_PERIOD(10.0), % v- y3 V' E5 Z- f& ^8 q1 K  B
    // 指定输入时钟的周期,单位为ns,数值范围为1.25~1000.00。
    & c0 I3 |/ |- a.CLKOUT_PHASE_SHIFT("NONE"),
    & r4 [, `9 F& \% A$ s9 `2 G6 V, s5 r# F// 指定移相模式,可设置为NONE或FIXED
    ( H# `0 y/ T% b  H% I; y.CLK_FEEDBACK("1X"), 3 M, u$ k" T7 ^$ P( ?3 @
    // 指定反馈时钟的频率,可设置为NONE、1X或2X。相应的频率关系都是针对CLK0而言的。 ( L; B9 D/ a/ A% V: J" f( }4 ~
    .DCM_PERFORMANCE_MODE("MAX_SPEED"), 2 t/ q1 n) C1 A1 f7 v) y
    // DCM模块性能模式,可设置为 MAX_SPEED 或 MAX_RANGE
    $ ^/ V6 A/ o$ {3 A2 [.DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), 5 F- ]7 m! T  F5 m/ Q
    // 抖动调整,可设置为源同步、系统同步或0~15之间的任意整数 & O7 g, ^: i- Y% S- M
    .DFS_FREQUENCY_MODE("LOW"), - \2 f+ v' t1 ^
    // 数字频率合成模式,可设置为LOW或HIGH 两种频率模式
    + ?' L- P: X- S7 d1 N% U" e.DLL_FREQUENCY_MODE("LOW"),
    5 B& a. n" N) {) [0 `, h% a4 V// DLL的频率模式,可设置为LOW、HIGH或HIGH_SER : v+ Q& a6 v& X. h: e* b- s0 s
    .DUTY_CYCLE_CORRECTION("TRUE"),
    , Z5 G% Q, B( U+ y  |% A0 k// 设置是否采用双周期校正,可设为TRUE或FALSE
    8 E/ |- z5 Z2 r.FACTORY_JF(16'hf0f0), ; ~: A1 b# P6 y% v9 h& N
    // 16比特的JF因子参数
    6 ?# \0 s# c- A3 J8 O.PHASE_SHIFT(0), * R7 u( E3 n* F0 @0 h
    // 固定相移的数值,可设置为 -255 ~ 1023之间的任意整数
      ]3 i; f7 U# j4 c.STARTUP_WAIT("FALSE") ) T4 G4 k; g3 v0 O4 ]
    // 等DCM锁相后再延迟配置DONE管脚,可设置为TRUE/FALSE ! z! P0 D' K" p+ h1 Z' I: c6 A
    ) DCM_BASE_inst ( 7 K, o( |1 O, _9 I3 S/ C5 i! w
    .CLK0(CLK0), // 0度移相的DCM时钟输出
    5 Y0 G$ i4 C/ u8 v: T5 N- u.CLK180(CLK180), // 180度移相的DCM时钟输出
    ' d# z% B7 X9 ]- ?8 V" o! X, L, Q, k1 C.CLK270(CLK270), // 270度移相的DCM时钟输出
    : `, j/ U* T) m+ O4 A.CLK2X(CLK2X), // DCM模块的2倍频输出   C0 y# E7 N3 b' y
    .CLK2X180(CLK2X180), // 经过180度相移的DCM模块2倍频输出
    6 c- s- K; z7 s0 n& E1 _9 I.CLK90(CLK90), // 90度移相的DCM时钟输出
    % ^* b* F% m3 A5 e/ U" O.CLKDV(CLKDV), // DCM模块的分频输出,分频比为CLKDV_DIVIDE 2 S( A" ?# H' P0 f) C1 v
    .CLKFX(CLKFX), // DCM合成时钟输出,分频比为(M/D) - C' F/ q7 [$ g* K, w* k3 W
    .CLKFX180(CLKFX180), // 180度移相的DCM合成时钟输出 3 @# U8 D: K3 x  e& q+ _
    .LOCKED(LOCKED), // DCM锁相状态输出信号 5 `( j$ C8 f0 I" B' t- x
    .CLKFB(CLKFB), // DCM模块的反馈时钟信号
    8 X$ _) r' ~4 @# ]' O1 l5 m4 h.CLKIN(CLKIN), // DCM模块的时钟输入信号
    " t/ j6 X: [6 h4 p+ Q.RST(RST) // DCM 模块的异步复位信号
    0 e$ H% A, v5 |# f3 S8 F);
    6 Q. M1 H* n4 M- Z. I* y4 |// 结束DCM_BASE模块的例化过程
    7 w1 I" _% C8 l; C在综合结果分析时,DCM系列原语的RTL结构如图3-36所示。 ! r2 e+ `6 i7 i$ f) q2 x. i( L8 h
    & p3 ]2 k# a3 c! o
    图3-36 DCM模块的RTL级结构示意图 ) C& N; s  _7 S9 y4 C7 z* F" M
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
    : V% k$ S+ O2 i7 R6 B8 M6 PSpartan-3 DCM的兼容性
    ' a+ O! d' n- F) p9 ~
        S3 的DCM和 Virtex-II 以及pro的DCM 功能基本相同。但是S3 DCM的技术属于3代技术,因此在抗噪性能、相移能力方面有进一步提高。(客观的说,对我们的普通应用,不是特别重要。)
    ) R* ~8 A/ p# f    但是和Spartan-2系列相比,有很大改进。S2系列不叫DCM叫DLL,可见DFS和PS等功能完全是新加入的,所以S2系列其实除了二倍频几乎没有倍频和分频能力。从这点来讲,S3真的是用起来很爽了。  * K& J8 `" s3 `/ p
    * N5 H! ]% m& \, q
    DCM 输入时钟的限制' ~% j% s9 e7 H4 R" M) }  ~
       
    和所有物理器件一样,DCM的工作范围也是受限的。由于DLL和DFS的要求各不相同,因此DCM的输入频率的限制也视乎是否同时使用DLL和DFS还是单独使用其中之一。如果同时使用,则取限制较严格者作为整个DCM系统的限制。我们来看两者的独立限制。/ ?6 }, w' T/ O7 f+ m+ v% R$ z7 T8 g1 n

    2 u% H6 A5 {, z0 g1 Z% \4 Y0 t    呵呵,这部分内容不用记哦,需要的时候查一下软件或者手册就可以了。只要明白“CLKIN输入频率有限制,而且DLL、DFS同时使用时取其严格者” 这些道理就可以了。' Q( j3 R, A8 _9 H  |1 {# N
        除了时钟限制之外,对于时钟的质量也有一定限制,主要有3个:% N6 @# ^4 M* O, i9 e
    1. CLKIN cycle-to-cycle jitter:约束了前后两个CLKIN周期的差异;7 r, z2 u* _# G
    2. CLKIN period jitter:约束了100万个cycle中最大周期和最小周期之间的差异;4 p, h; J  E6 o- e: {
    3. CLKFB path delay variation:约束了从外部进来的反馈回路的延迟波动,这种延迟波动在概念上其实和jitter如出一辙。3 w6 K) L; @8 y0 u! l/ p: ]% j
    具体数值请查手册,知道有这么回事就可以了。
    % K. ?$ k; m. ]; ]3 i5 ILOCKED信号的行为方式$ E$ T! ^3 @, H3 |3 m" P( |
    LOCKED信号用于指示整个DCM系统已经和CLKIN同步,从LOCKED信号有效开始,输出时钟才可以使用,在此之前,输出时钟可能会处于各种复杂的不稳定状态。我们来看一下LOCKED信号的行为状态机。3 [+ g! ~/ ^1 W
    FPGA配置:
    ; Q, J: K/ y2 x! ?% ^3 V' m    if (CLKIN已经稳定) next_state = 判断同步;
    " C8 \2 W* t6 Z2 D: j& v; q    else                         next_state = RST_DCM;. |  I. F8 p5 {4 k+ G9 U
    判断同步:# n" E' V5 t& m8 E4 p
        if (已经同步)          next_state = 判断同步;
    , c6 ?8 \( m+ H+ `" q    else                         next_state = 同步失败;
    / }5 `  k+ U% h: P同步失败:                    next_state = RST_DCM;$ t; t5 V: _8 d, {- v- [* k* a5 b
    RST_DCM:                  next_state = FPGA配置;
    0 Q! _. ^% Y5 v2 J
    * \- E* K$ J; x; M- `- l( e现在来看看各个状态下的输出。2 R5 t  N6 L# {

    ' I. ~& W$ r7 r6 Hcase (state)
    5 o8 l0 j4 j% v( l9 K) J3 e* a    FPGA配置: LOCKED = 0;
    ) Z. Q6 ~! q7 r8 W5 D; E5 R    判断同步:   LOCKED = 1;
      Z, v8 r/ h, [' a2 `. t  Q    同步失败:   LOCKED = 0;
    0 U: o4 T  |- _' u    RST_DCM:LOCKED = 0;3 M! w+ w' q! r0 Z
    endcase
    ) j0 ~* @$ C3 ~( X5 R7 KRST 信号——重启锁定# f! }% j3 j$ `, g
       
    RST信号用于在时钟不稳定或者失去锁定时,将DCM的相关功能重置,从而重新启动锁定追踪。
    6 @9 J  `" W5 l( O; M5 |6 P! o    作为一个输入信号,RST无法被DCM自身置位,因此需要我们的应用设计来控制这个RST信号,否则需将其接地。1 a; k4 D' \: o4 C5 W& G0 w
        置位RST会将延迟tap的位置置0,因此可能会产生glitch或者是duty cycle 发生变化,另外相位偏移也会重置回到默认值。
    $ i* i" T( [4 z' H: r" fDCM 生成向导  }. C7 U# S6 R6 }" Q
    安装了ISE就能得到一系列accessories。利用其中的Architecture Wizard 我们可以生成DCM模块。生成的DCM将产生3种输出:
    , g* P" n2 V  ^4 _( U9 V+ W1. 一个例化了DCM的逻辑综合文件(采用生产商特定格式的VHDL / Verilog)$ C5 `# B0 h0 n' u0 ]
    2. 一个UCF文件控制特定实现3 ~" B* _6 g2 @* A$ Z
    3. 所有其他用户设置都保存到XAW(Xilinx Architecture Wizard)文件中。: t  c( }4 a6 j- K
    " f1 ?! a1 w! N9 n; v  W. o& L
    接下来描述一下向导使用步骤。
    : S% Q. j  u' O6 Q8 n* |1. 从ISE或者Arch wizard中启动界面;+ i" B  A0 o. v1 H6 s4 l4 I1 T0 O2 `
    2. 第一个页面做基本配置:路径、XAW文件名、VHDL / Verilog选择、综合工具、FPGA型号;
    % Q+ X$ L  _1 a* u1 a/ e6 l  r3. 进行General setup,一看就明白,不细说,注意一下几点:
    6 ]5 ^+ @2 |0 W, u# D; v8 Y    - CLKIN source 如果选 external 则 DCM 的 CLKIN 会自动连接到 IBUFG。
    ( N) r4 ^& I' a    - Feedback如果选 internal 则反馈来自 BUFG。
    ' W9 J+ h' t' K1 z3 R0 y  z  o4. 高级设置
    ( s  {, u9 n: k9 ^7 e, L    - 选择FPGA的配置过程是否包含DCM的锁定,如果是,则配置完成信号DONE将在LOCKED信号有效后方能有效。
    3 `" F. D- B/ f) [% `; _9 z0 \7 ]    - 选择CLKIN是否要除2。由于DCM的输入频率有限,对于过高的输入时钟通过除2使之可用。' E- C2 z0 j9 B6 Q. X+ u
        - Deskew调整,这个选项建议在咨询xilinx工程师后再使用。
    4 D1 W$ S5 v4 z* Z5. 时钟输出口 Buffer 设置
    1 p0 e6 N, }8 z+ T$ G7 V8 H    - 默认情况下所有输出口都链接 BUFG 全局时钟网络入口3 t" N8 Z  {: @6 |" F5 G
        - 由于全局时钟网络的入口有限,用户可以定制时钟输出口连接到其他类型的Buffer
    5 p7 g$ g$ u# \, Q: U7 h       - Global Buffer:进入全局时钟网络的入口Buffer,共有4个,简称BUFG
    / e- V! ~7 d2 c       - Enabled Buffer:还是上面的4个全局时钟Buffer,但是配置为有使能信号控制,简称BUFGCE/ l* p# L) A3 z" K
           - Clock MUX:还是上面的4个全局时钟Buffer,但是配置为 2-to-1 MUX类型,由S信号控制选出,简称BUFGMUX. r- r% @  K6 W7 L2 }5 ]
           - Low skew line:没有buffer了,只能使用 skew 比较小的连线5 i" r: H: ^! E( T
           - Local Routing:连到本地,skew的要求不是很严格! D/ O8 `' V- G5 S/ f+ ?# o: f( G
           - None:禁止输出6 g/ r, j% f" h
        - 对于Enabled Buffer类型和Clock Mux类型,需要指定En口的名字
    0 o2 }9 i% v% v9 ?    - 需要为输出时钟信号指定名字或者使用默认
    7 ?3 Q4 N0 ^% V6. 设置DFS* T7 ?- O) T6 p0 |2 P( N! r
        - 设置目标输出频率,然后按calculate,自动生成 M/D 值和 Jitter 值3 ?0 k9 ^. F% D, y
        - 或者手动设置 M/D 值,然后按calculate,自动生成频率和 Jitter 值5 K9 w! d8 T6 H4 v( L+ B1 y
    7. 最后输出所需的3种文件。

    该用户从未签到

    2#
    发表于 2014-7-22 19:20 | 只看该作者
    太棒了,感谢分享

    该用户从未签到

    4#
    发表于 2015-7-21 17:45 | 只看该作者
    感謝分享~~这么好的东西没人气,太没天理了

    该用户从未签到

    5#
    发表于 2015-7-21 17:55 | 只看该作者
    D=1..32,  5 I9 {  {7 B! Y0 u) Q' H: L
    -- 这样看来最大能倍频32倍,最小能16分频。) d: P; c6 k0 }0 S; g) @" P# U
    这个16从哪来?

    该用户从未签到

    6#
    发表于 2015-7-31 09:11 | 只看该作者
    感谢分享哦。

    该用户从未签到

    7#
    发表于 2015-8-14 19:13 | 只看该作者
    多谢楼主的无私分享
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2026-4-19 00:13 , Processed in 0.109375 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表