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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

该用户从未签到

2#
 楼主| 发表于 2012-6-22 17:29 | 只看该作者
自己顶一个吧!" C* [0 Z& ~6 ]% D0 x2 b# M4 u
法一:自己重新设计一个DDR控制器,这个比较难,而且时间不允许,放弃;如果走运的话,可以在网上找到别人贡献的DDR控制器,做一下修改可以的。根据本人经验,这个对于altera系列的来说,还真是少,有strrixt系列,但是cyclone系列那就比较悲剧了,大部分都是Xilinx的。全凭个人人品啦7 c8 Y8 d3 V0 R4 v. g. V' o  p
法二:重新设计PCB,这个是没有办法的,建议先配置DDR控制器,这样就可以根据FPGA来调整PCB,并且回想调整直到满意为止。
; p" X6 [. d! k6 c& f
7 R4 K, V, I6 r  B6 j( f5 j* }遗留问题:altera的IP核位宽只能设置为4,这个比较头疼,效率太低了,唉,,,,, C- D0 S7 @% [2 ^
$ ]; |  ]& H' u6 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,就这样循环下去?  S& ]% N/ `+ _0 @* Z5 z0 z

5 b1 i$ j5 n$ x4 L. Q3 |' w, Omodule s4_7seg(clk,rst,4 \+ ^# C6 E3 Y- q6 {# R
4 y7 ?/ B% U" g" q/ G3 R' U* B
   s0,s1,s2,s3,0 n9 j' f0 i, J: P+ y5 b9 P
/ V# u$ h% G( s. p; @  p% m8 ~, P! T
   d0,d1,d2,d3,d4,d5,d6,d7
0 n$ w- P4 @/ p2 D+ R( M# R- ]" l
- X# ~/ |' q+ {$ {, ^' g   );- }( S6 z4 n3 H% v6 t( N

* {/ p: A. Y" p# y: y7 M4 o9 } input      clk,rst       ;: j  y6 d6 l' Y7 }/ O
% d+ g1 Z& a( C- q9 Z
output     s0,s1,s2,s3   ;8 C9 Q! u5 Q( M. _, @. R: E

' F" n1 |5 ?" N# M  @ output     d0,d1,d2,d3,d4,d5,d6,d7 ;" j( M1 Z6 Q0 s6 ^- n
7 q$ o; _: N' a# Q$ J# }1 ?: R/ E* H
reg [2 :0 ] state ;) s  c# p1 B8 W! k4 ~  @4 }
) r& J5 V$ z* h8 z/ M* M6 D3 N# Z9 k
reg [2 :0 ] sn ;
+ T( D' U; s+ r6 U2 ^9 S3 ~
; Z; r5 y- R3 |1 D7 S0 M+ h reg [7 :0 ] data ;
9 e8 T" }6 l/ _
6 p3 ]$ J2 H- V' I- w9 F& y! G reg [23:0 ] cnt ;3 @6 y% V' U% D" W( t3 @
% Z  {: ]  H. O6 p5 ~% I
, P+ [4 I, y, o$ Z& d/ ]. }& k

  L* H/ Z. A8 n6 O* G2 D, w. f wire       s0,s1,s2,s3   ;
8 U& m. C9 `) P/ o) o0 ]* X8 d! U2 k: `7 `/ V, G
wire       d0,d1,d2,d3,d4,d5,d6,d7 ;
- Q, O8 b% ?; A) j" T) n7 s0 R/ S" I+ h" U& L$ Y% `
assign     {s3,s2,s1,s0} = sn ;
- P/ ^  `; d3 q: P7 h
/ S; O% g# `0 U1 x- l9 I  h assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;6 D7 }. P0 l- v! \( R( l: l; J
0 W- o* k3 r& G/ e
always @ ( posedge clk )
$ I- `, s3 X, E2 Y  A* K' H7 R" M+ o1 B! V' X( K6 _+ o
  if( !rst )* v: A3 B3 \! c1 [. M; v

: J. p: ^! m7 ?' Y   cnt<=16'b0;
2 C- ?6 i8 A5 j" L6 d, @" l! o3 V: W" o- C" n
  else! O6 s) w& x* p! X' j! F! i
2 n2 E0 f' b; h1 F3 p5 [# {
   cnt<=cnt+3'b1;
* w" x9 v6 @& {; A5 ^
$ I) ]  w  k9 _( F; N1 _! H6 J/ ] wire clk_slow = cnt[24] ;
- ]' o& d. B3 D8 J- o# U  x8 d9 d$ e
always @ ( posedge clk_slow or negedge rst )
, a* ~3 C" |- N) p! q1 S) H' p4 [6 t/ K# I! h/ {
  if( !rst )6 Y! r' m4 {$ ~( v: o0 g

! `0 [5 s1 f  [6 Q   state<=3'b000;5 T+ R* t# G: A1 O/ {, Q

+ q+ [% s- z; s( o  S9 G! F& q/ G) r  else# B+ f, h( Y& f5 ?% {
0 W6 \0 p. ?% E+ B' V
   state<=state+3'b001;
2 R- H  M: z, N: ?7 }& c
5 @% V  J$ @: f& o  a& ^ always @ ( posedge clk_slow or negedge rst )
+ n4 w2 `7 q( |1 E6 S7 N4 J4 B8 s, k0 ?
  if( !rst )
! U# `4 A2 D$ x% \/ m
# `/ b* z, P% W, v# z   begin
4 h+ {9 K# O) e$ u' F
) z, i; n! l2 e2 H) F' }* h6 E    sn<=4'b0;
$ e" n$ o$ p* o' g% j* e- t! B
4 P% r6 Q1 N2 `$ W7 J    data<=8'b0;% F. u5 X7 C0 A! |! ?& P) X: J

3 M: O' R$ i% z5 \( V# Z   end
1 g6 Z9 S. c4 {4 x/ Y, E4 p9 K' O; C  F$ d* I- p& K7 w. N
  else
9 E" m9 @  I' l
" Z3 x' j5 O, C. R) j# _, W   case(state)$ u+ h! W8 }+ V) o1 r! {0 y; L

4 u) c9 l" ~; W5 V    3'b000:
6 |4 T* I2 ]/ _% i+ d# k8 [. o& `" q$ p/ h+ S% e
     begin
* |/ O9 U9 b% A( S$ I+ q
9 X* a, ]. y$ |' G6 u      sn<=4'b0001;
; T& ~4 u7 p6 b  ]5 }" O* b2 p. d5 O6 @3 Z6 {1 n
      data<=8'b0110_0000;
& V' G: x: m: R0 o! z' A
) }2 X5 E9 R! w- r* D     end) U/ C7 h' \! w; a( o6 k

, E5 `  ^5 o, O+ T1 R    3'b001:  w& o( n: B% {: G- Q( A, V
; m. t1 z0 P" P* u6 ]8 V/ z9 s
     begin3 d; f( Z4 l' j

$ {4 ?% i! {( ?, Q$ R$ M      sn<=4'b0010;
# o. Q4 r1 R- |0 n5 j
0 e% u! j1 r9 G8 e$ P      data<=8'b1101_1010;
; D. k0 @3 i/ Y4 Q: F2 @/ g1 K7 x! E1 i" z
     end
' u9 f" `! D; p& z5 b, u6 M; a) m  E
    3'b010:
' C- m" g6 U+ y& _. h
/ ^- K# M* J  ]5 A- _; V! G% k     begin$ J2 L2 ^- Y8 n( ~" c" m5 m

- g! d: f  j, P7 x  B. m2 C' P      sn<=4'b0100;. r1 q+ d; F6 }

; @/ k2 Z4 w7 ]8 R2 X+ |- B  U      data<=8'b1111_0010;1 @# p/ E% Y& F  H

/ d- ^6 V# r, ?& Q! Q     end
3 l: T9 O2 o* e- W; M& G( q
0 ^6 G. i' e5 Y& f$ v    3'b011:! ^/ W6 ~- L5 [  A( M% k

3 N+ B( r/ ]% K0 _  i     begin7 p/ D& a9 M$ Y2 j3 N, p6 g

! Y+ W5 C9 x/ n" Q( c, Z      sn<=4'b1000;; s- p* D4 ]" v* ?. _
" Y9 G/ E, m- Q- ~! a2 X
      data<=8'b0110_0110;  H# w( o+ g4 Y% o' Y& ~/ U

" _# w7 y! w; O- B0 [     end$ K, x7 d1 b0 ~( d" Q7 ^9 Z6 x

5 s. x5 i2 l8 w: Y      3'b100:# D; M' @! Q/ N2 U+ E
3 a/ O5 @0 O- @  v
     begin  l, J4 n7 d" t) I

6 W. T8 e7 F! ^4 F- v5 ^6 V8 ]' g      sn<=4'b0001;
4 y; x7 u/ N& L, V* o6 r+ F9 b0 F8 e! ^8 r1 T7 Y* l( N! i
      data<=8'b1011_0110;
# F" ?+ J* h" I$ y- p* ^" ^
3 A) _( P! p- ?( p. [     end7 \- b3 P5 c! v

) C/ B3 w! U+ c4 P    3'b101:# C& j7 W+ J, Z: v0 e

8 V" `2 e0 H6 f+ `$ k6 ~/ H     begin7 {# l9 J8 t; |, E$ a
6 E' ~0 P+ z0 y! [$ r, @% S; O5 o
      sn<=4'b0010;
8 s) ]' `' K% o9 n- ^- x  A' S+ B) \! Z( G; y, L: D
      data<=8'b1011_1110;# D- t' e, K" ~; L% a
( r" d) b) Q2 l! C" w2 B+ f* q
     end! L! X" a# T- [) m% |& G  p

  z1 L1 {- ]0 G. A    3'b110:
7 n/ {3 ]0 c) k8 d7 Z
# g' `+ d" J- P& a" D' E     begin
3 C( o' w* j: d+ `! |' Y4 t8 I
8 J& x  X% E2 q7 j7 P% ]+ Q      sn<=4'b0100;
, P# Y( W0 ~5 c  Q8 s; J9 g/ p% a
      data<=8'b1110_0000;4 X% p: B+ d6 S4 j" X7 g2 P

0 E7 P2 W1 H$ H& U     end. Z: G  `7 i- @% E: A
7 [1 T, ~9 s" Y/ K) u% ~
    3'b111:9 i. ?1 r  I4 `' A; V0 T$ G7 ^
4 q5 P- U' T7 v9 `$ M. }) ?0 O
     begin, G4 ~# a9 A$ _  _7 _. o* d% _

) L# x4 J8 \" e1 h) Q! [3 _      sn<=4'b1000;0 Z. t, A1 }$ x; f0 O% O& a5 @

: G, C6 y  l" [( \  k      data<=8'b1111_1110;# t5 E. ?& L/ x8 D& R: J- F

" f* i( q' z. w- [1 B7 h, [   
6 z. Z' R; M1 U6 e! m) m9 Z4 V3 L0 h- Z0 m% V3 B* A" U5 A1 n
     end  }8 w0 e; C5 R  [1 Z8 ?+ U  _

: C( h9 ]8 C2 X1 N2 L( z9 P   endcase" i8 d/ b8 x: e5 a& j; m. W0 F$ B
! b# I# U" A0 _
endmodule
- _5 x" }( P) n2 W. Z% j# _0 _# }, ^1 |0 Y5 D8 ^% }# r2 \- O( a
这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?0 v+ r" I8 k3 U3 k4 p

该用户从未签到

6#
 楼主| 发表于 2012-7-18 09:12 | 只看该作者
huangzj 发表于 2012-7-13 08:35 8 f" R0 @/ {0 N: C4 \' Z7 e( m
教训表明,你没有认真熟悉这款FPGA就使用错误的方案,

# w: a" B6 X" ]3 }4 ]- q2 S3 a确实,才开始入手这个东西,走了弯路

该用户从未签到

7#
 楼主| 发表于 2012-7-18 09:13 | 只看该作者
chenbingen 发表于 2012-7-15 15:33 7 ]! J9 T+ k' p& A. t8 c
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?8 Z/ G* B6 A8 {  m
5 [/ d. W6 _1 s3 E
module s4_7seg(clk,rs ...

/ @: @* z+ s  o+ [  Q- f第四个数码管有问题!

该用户从未签到

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

该用户从未签到

9#
 楼主| 发表于 2012-7-20 11:47 | 只看该作者
绝。对 发表于 2012-7-19 09:21 : @- r- _( S2 H. a
硬件可能要重新设计了

6 v# J/ F/ Y3 F* A7 z已经重新设计了& ?3 N3 h9 f% L; ^7 R
OK了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-20 15:58 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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