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

FPGA引脚分配问题(DDR2控制器)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-6-19 10:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
本项目使用的是cycloneIII的芯片,利用IP核生成了一个DDR2的控制器,但是再分配引脚的时候产生了如下问题,如: I- D# b# E; D+ A; [
        Error: The assigned location PIN U21 for DQ pin "mem_dq[0]" is not a legal location' z  Q9 u# V: P2 Z" J
                Info: There is no legal DQ location that supports 9 DQ pins$ }+ g! Z% H8 d' ~$ {: @
此时才知道,利用ip核时候,输出引脚是需要分配到特定的引脚上面的,,,,
9 n5 k/ v. J8 F这个倒是没有什么,对于仿真的人员而言,是可以修改的,但是我的程序是跑在自己设计的板子上面的,而且已经制作成功,所以修改引脚分配是木有用的,这才是欲哭无泪的地方啊!!!!
: M. ^0 N; j2 f针对于这种情况,有没有其他解决方案,而不是从新设计硬件PCB板的,求助!!!!!

该用户从未签到

2#
 楼主| 发表于 2012-6-22 17:29 | 只看该作者
自己顶一个吧!
3 Q( C- h2 G5 t# P法一:自己重新设计一个DDR控制器,这个比较难,而且时间不允许,放弃;如果走运的话,可以在网上找到别人贡献的DDR控制器,做一下修改可以的。根据本人经验,这个对于altera系列的来说,还真是少,有strrixt系列,但是cyclone系列那就比较悲剧了,大部分都是Xilinx的。全凭个人人品啦, E+ [4 R& o7 o
法二:重新设计PCB,这个是没有办法的,建议先配置DDR控制器,这样就可以根据FPGA来调整PCB,并且回想调整直到满意为止。* j) ]+ |& _, s
- {6 b$ R2 [# b$ S9 E
遗留问题:altera的IP核位宽只能设置为4,这个比较头疼,效率太低了,唉,,,,1 Y& g& `9 R; u/ Y7 f. b

# [& Z7 N& y/ A. K- }) Q经验教训:下次做这种IP核的时候,一定要完全软件配置完成,包括引脚配置,这样可以降低成本!减少弯路

该用户从未签到

3#
 楼主| 发表于 2012-6-22 17:31 | 只看该作者
另外还有个问题是,我使用的是cycloneIII系列的板子,发现居然引脚输出支持的只有167MHZ,而不是配置时候推荐的200MHZ,无语了,估计这个与电平标准有关,不过我试过SSTL_18,一样问题,木有办法

该用户从未签到

4#
发表于 2012-7-13 08:35 | 只看该作者
教训表明,你没有认真熟悉这款FPGA就使用错误的方案,

该用户从未签到

5#
发表于 2012-7-15 15:33 | 只看该作者
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?
$ k# B7 q# U  n- A) v2 g8 _0 M+ Y2 E, y
module s4_7seg(clk,rst,0 c' I; l+ {4 C! G0 @

1 ^7 i! y+ G5 l3 D. I/ r( y" a4 o7 o   s0,s1,s2,s3,# Z2 [6 o- X- S+ [
% C1 w1 K' K$ |* a% i+ T/ D* O* t2 D
   d0,d1,d2,d3,d4,d5,d6,d7
5 Z" h2 n) V3 E* y. i
& h1 G& _8 j, X6 E5 j. p& X3 M# L  i- S   );
* h$ l# d/ u* R( h$ U# B3 b; P- v0 m4 {5 @
input      clk,rst       ;5 p. ]/ a  w1 V- p) O/ g
) `: I! I, |4 F9 ~( Q3 U6 Q
output     s0,s1,s2,s3   ;5 D* A: ?$ k( L4 b/ N
5 }) D& Y& ?$ `1 V
output     d0,d1,d2,d3,d4,d5,d6,d7 ;8 l1 S7 H# V1 l& k, |1 h5 k7 R& Z

. p. c3 M( |. T8 H4 }& q6 } reg [2 :0 ] state ;
' T; ?: U: e+ P2 u" z7 Y0 T9 g/ v* @6 c
reg [2 :0 ] sn ;+ V4 ^+ @' N0 ^9 n; z7 a( V

: V7 n/ {( F5 v  P' Q reg [7 :0 ] data ;0 `( t9 ~4 W/ M8 v& T# k

- u6 b* W! m1 ~ reg [23:0 ] cnt ;
. {4 e- h! q  s
9 h3 n, |7 ?# V& G& l
+ D, L, i# C& T  }6 N
4 h7 y+ ^# `/ G4 c, i, @ wire       s0,s1,s2,s3   ;
$ u4 L* O" k; h6 l( W
! x) o: G% E$ N( b, E$ J! o9 d) f wire       d0,d1,d2,d3,d4,d5,d6,d7 ; # c# w) H) E2 w: B6 q0 ^: Z

9 l8 G3 _+ ?* A% ]* D assign     {s3,s2,s1,s0} = sn ;
& b! o( [8 s9 _& u' S$ O2 o9 z  M" A2 F" n" ^) P
assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;
, S. r  c' R$ Y  z8 k
' w, a( Y, Z3 p* h0 t# X1 D* K always @ ( posedge clk )7 A; O( x/ c( W6 f  ^% D) ]" }) i$ W
9 s' A2 ]1 q8 Q, y( _
  if( !rst )6 w: {) Y" H# r

7 ?' z" U' ^% W$ p) ]) {   cnt<=16'b0;$ r5 y) s. A! y$ x9 ?! z

9 I) r& U, R9 b  z7 Y# Z+ E! y  S  else
0 I& k) w9 H; `( K+ V3 a1 }) a2 B! N/ ]
   cnt<=cnt+3'b1;# m# s6 W5 l5 }- v; Z

" w- s) T; a9 c- Y1 i wire clk_slow = cnt[24] ;
5 W( H  M$ A7 N6 A( ]. G! b! r3 ?& ^
" N$ W& a* [9 J. p! I4 n always @ ( posedge clk_slow or negedge rst )
# v2 l' d* B1 Z! p- U$ [, O" d; A! Y2 F! n8 [5 [
  if( !rst )
2 U2 Y% U2 m: r/ e# t4 r, u" D+ K" w  c, y" W
   state<=3'b000;% Y. m+ k: R: n/ a" n
/ Q0 s9 K( M" @, F4 ^" P! h4 v
  else
/ q6 [) M2 F6 N" j/ W
' Z- L) E6 R) T6 S% l5 r3 @   state<=state+3'b001;
1 w9 I, _9 J5 v; F' ~5 S. D! S7 Y  H/ u
always @ ( posedge clk_slow or negedge rst )0 |7 ?0 i$ y+ L! R( Z3 ?: {% t! q/ H

: o. K, I* A% k7 F$ \  if( !rst )
0 F+ I0 T5 |7 j* ^' c
  \( S# F2 I9 X+ ~. `+ e) j   begin
  k/ m- V% y4 n9 \9 o8 ]
6 o+ m8 N9 |1 `    sn<=4'b0;4 P/ z2 k8 ~* ?3 B5 z' f3 R

" f) Z& O$ }1 E( d6 a7 f* A6 `    data<=8'b0;5 z- H  _# n& y5 Z2 d/ z2 H
7 c2 Y  I% t# E' O
   end
5 X$ r' ]3 |0 l  c* m% N% M- y
2 Q' T% ^8 |+ m3 f' [6 [7 v+ q% z  else+ O1 `9 ]: ]! n; S. t. n, b9 i. a1 X! t

7 {. }  M. i# Q- A% f   case(state)' e& ~* h; H1 k9 o
  q) p0 E" w# k; `+ k
    3'b000:  e8 _4 j" d7 x9 f
: T) p9 l% F/ g# h& I
     begin0 O1 b- S4 n: D( p# y6 o3 e

4 s) O0 F& _& W7 f8 C/ J      sn<=4'b0001;
% I+ v/ s5 n7 x0 ~% o- w" |. d8 I. o) R$ T
      data<=8'b0110_0000; , T% R) ?4 |0 R; N; @# `$ _6 p" r, @
- {! x& c, I1 p# z9 _
     end& y' w; n; ?4 }+ j- J2 Y
  o2 X+ p# O2 z5 G" F1 j' V
    3'b001:% l& u* a, p: l

1 |1 v" K1 i8 s* x, T     begin" `7 X. u0 J  O

, c! @3 m# ?3 c* T7 U* |& A+ Z' D: y      sn<=4'b0010;+ h+ i( y, S0 `5 e" L
# g; F6 K2 U: Q3 G0 p- \) H8 C
      data<=8'b1101_1010;
; T3 u8 @, L$ v- Q+ p1 M" g9 b0 w( W6 V4 A8 O
     end" U( m) r. Q$ f4 C& s# Z7 O( k" V
; C9 a& r: L6 z
    3'b010:
: E4 ]& c( p  Y+ n% T8 g2 w4 T* W$ p/ S6 I
     begin+ r3 H* [; r% k
  P0 E7 d: k; x9 @0 ]  i7 _/ r
      sn<=4'b0100;0 ^/ L3 ~4 N: }5 a; e

& y" F/ t% ]/ b' y2 {9 x; C1 A      data<=8'b1111_0010;
# h; W5 q. E3 J# s$ P2 g, K: w% x/ O* V1 f
     end
0 i) Y& U) G( _- v$ }2 _+ y6 s0 o6 Z4 {9 L! X
    3'b011:& l% j2 l, h- j3 W8 k, o

2 {6 Z7 |% L: Y, i" l     begin
. E- M7 W. o* B- c. z% E" P
7 ]/ h7 o4 u1 C& I      sn<=4'b1000;- y3 x) U+ b+ D1 n
: E9 l1 a8 A( C  `- g
      data<=8'b0110_0110;, s4 ^% W/ o" V% O$ b% |
6 F9 O$ O& g9 d
     end- K' @$ }! K1 Q" Z0 C2 k

& E3 |! F  C, b; R4 Q; j7 t      3'b100:
+ j" Z, b+ M( ^0 G. P: e# f9 K
+ ]' w$ B" d3 x% M" s, N* W     begin$ J2 R/ ?$ U2 E( N: k

! }. I8 `  I7 b& ^9 d+ a      sn<=4'b0001;+ D  ?; _9 q/ H+ k) W8 w: O

6 L: s# a0 }7 K: i3 c1 v      data<=8'b1011_0110;( o9 q2 e$ e3 K, S

+ j' F. _* I. j9 ?' k: @5 w     end" w9 C. q# P5 u
/ |# n! M1 d# {' ]
    3'b101:, c+ M0 _" V1 \! Y: L7 g
2 O+ B- ]5 n' ~+ V$ ]. z1 |* j; {
     begin
, a6 h+ c8 Z6 O+ G. L1 S# s0 n* L9 n# X" W
      sn<=4'b0010;1 J. H. B0 G9 Q) E4 R

3 r1 y5 S! ?6 E! Y      data<=8'b1011_1110;1 a6 l5 A" L$ U: S+ n
% j5 K9 t& V% W" E: ?6 K
     end
: m; w5 z4 m3 Z2 ^7 h$ D
3 g5 v, {+ B9 j0 {/ T" @    3'b110:  S4 W: s" O6 t$ |# l
: Z% c. b7 B; I* q& a
     begin
% ]' h4 C# E5 x; B0 [% G0 u- f4 r2 D) D0 l5 i' _
      sn<=4'b0100;
7 [! J  V; [, q4 b! Y. J  Z# i( T% E9 u/ p; A
      data<=8'b1110_0000;, Z& M* Z; D. ?" A2 m
# ?8 C/ J0 R+ m! @
     end7 ~9 F' x/ D$ k5 [7 Z

4 I' u- G  t1 O    3'b111:
2 P- m' e* `" r2 W+ j) ~4 [* g+ f" R  p, r* o, ]
     begin5 A, Q/ K0 Q0 W' p4 k

5 Q- ^/ ^( r2 L* w. K: Z2 l* K      sn<=4'b1000;6 i  ]% w6 E1 P* Z( S- Z+ F7 V, }! ?
+ d2 ?0 p: O6 n4 B6 |& b
      data<=8'b1111_1110;
/ w' v, |" j" M) L0 o- v# B( A
* t% u- \* l. D! O   
! `) y  `6 H( f" Y) E" ~5 }6 o0 i
     end; T. z: F3 q8 M3 V/ P- Y& }8 ^7 O6 e

6 Y! {% ~5 l8 [6 B. f' d" V) T   endcase
! U7 W+ S$ q# t8 C7 I; l9 I# ]4 p" j9 j9 v4 c7 m8 G) S% U
endmodule
1 M. X. r6 u) R& `
4 {8 g# L" X" B7 l4 m- Q这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?) |( s! V9 G1 A- R7 J

该用户从未签到

6#
 楼主| 发表于 2012-7-18 09:12 | 只看该作者
huangzj 发表于 2012-7-13 08:35
) v" P' M3 M) o# V! Y$ G' t教训表明,你没有认真熟悉这款FPGA就使用错误的方案,
: n2 C" v: b& t, p
确实,才开始入手这个东西,走了弯路

该用户从未签到

7#
 楼主| 发表于 2012-7-18 09:13 | 只看该作者
chenbingen 发表于 2012-7-15 15:33 8 H1 ]( Y3 T# \5 Y1 g2 l' M
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?
& K$ F1 O* L8 w9 k( {6 N3 I2 @8 M
module s4_7seg(clk,rs ...
4 B! Y, U  J5 g3 u& ^
第四个数码管有问题!

该用户从未签到

8#
发表于 2012-7-19 09:21 | 只看该作者
硬件可能要重新设计了

该用户从未签到

9#
 楼主| 发表于 2012-7-20 11:47 | 只看该作者
绝。对 发表于 2012-7-19 09:21
* u1 L7 I" G' b) s3 T5 J硬件可能要重新设计了

9 d8 ]  \6 ?" n/ {已经重新设计了
$ B9 ^! H7 g% O0 c' X! [OK了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-30 09:05 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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