找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1568|回复: 8
打印 上一主题 下一主题

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

[复制链接]

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

EDA365欢迎您!

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

x
本项目使用的是cycloneIII的芯片,利用IP核生成了一个DDR2的控制器,但是再分配引脚的时候产生了如下问题,如
! ~7 G7 v8 z- r0 x        Error: The assigned location PIN U21 for DQ pin "mem_dq[0]" is not a legal location
% D0 y2 E+ W& R% q                Info: There is no legal DQ location that supports 9 DQ pins. K* J, H8 k& o
此时才知道,利用ip核时候,输出引脚是需要分配到特定的引脚上面的,,,,2 t0 ]" G, |9 M2 c6 X
这个倒是没有什么,对于仿真的人员而言,是可以修改的,但是我的程序是跑在自己设计的板子上面的,而且已经制作成功,所以修改引脚分配是木有用的,这才是欲哭无泪的地方啊!!!!
+ A" N' V4 v6 `  d3 a( R9 ?针对于这种情况,有没有其他解决方案,而不是从新设计硬件PCB板的,求助!!!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
2#
 楼主| 发表于 2012-6-22 17:29 | 只看该作者
自己顶一个吧!
. {* [( t3 @3 W1 f1 y0 H8 K, ?1 f法一:自己重新设计一个DDR控制器,这个比较难,而且时间不允许,放弃;如果走运的话,可以在网上找到别人贡献的DDR控制器,做一下修改可以的。根据本人经验,这个对于altera系列的来说,还真是少,有strrixt系列,但是cyclone系列那就比较悲剧了,大部分都是Xilinx的。全凭个人人品啦6 B6 f) v+ w8 E# i
法二:重新设计PCB,这个是没有办法的,建议先配置DDR控制器,这样就可以根据FPGA来调整PCB,并且回想调整直到满意为止。. C0 `/ f9 G$ g0 g4 c2 s

$ c0 R( U5 p* I/ t遗留问题:altera的IP核位宽只能设置为4,这个比较头疼,效率太低了,唉,,,,
- R4 K7 h! v6 B: i" }2 ^! a# T; h. L4 Q9 f2 t
经验教训:下次做这种IP核的时候,一定要完全软件配置完成,包括引脚配置,这样可以降低成本!减少弯路

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

2

主题

321

帖子

147

积分

二级会员(20)

Rank: 2Rank: 2

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

0

主题

2

帖子

1

积分

初级新手(9)

Rank: 1

积分
1
5#
发表于 2012-7-15 15:33 | 只看该作者
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?
3 e/ v3 o- D- U9 |: W: p( h' Z" u4 W6 G# @2 R+ b
module s4_7seg(clk,rst,
; y. R6 |  t7 I) j4 y2 f4 c+ n; |) @  K' f% [
   s0,s1,s2,s3,
* R* t6 e0 @* |2 Q* G2 R3 _5 V' q  M) P
   d0,d1,d2,d3,d4,d5,d6,d7
" ~- s/ H( R3 v2 s, A8 c# g3 K: W; t
   );
9 r4 n3 B3 v+ s4 \8 ?' m: s8 w8 X# g; A
input      clk,rst       ;3 `3 ^: t( Q& \! l9 ?
6 v3 c6 ~/ O0 M/ X
output     s0,s1,s2,s3   ;5 L3 B- T# `& M0 Y* |, _3 {

, |8 Q* w% Z1 c3 D* O% x output     d0,d1,d2,d3,d4,d5,d6,d7 ;& Y7 g1 H1 Y, Y2 _$ |$ C% O0 {1 V6 ~

& j7 i& A/ e$ e+ {( F reg [2 :0 ] state ;
! Z3 U# w4 {# ?+ w3 l% R( ]  T' C) C: x0 j/ }/ W
reg [2 :0 ] sn ;
4 [- O2 ^3 S0 r, L- W
5 o  ?5 e" v% D3 R/ P7 O5 A& c reg [7 :0 ] data ;% Y8 A1 \* n& t. a/ M% W; V( q

( L; C$ E8 {. `: B reg [23:0 ] cnt ;. X3 ]7 [/ Q* U: d" y

. d# ?3 G) n/ P- e2 ~' G+ T8 M3 S
/ X3 I! N; V* s* Y) n
3 _% w1 x, l& |! [1 l: X6 r/ ^ wire       s0,s1,s2,s3   ;
$ ]0 r$ F; W* O; Y1 g) O
) W1 [: @) K& ]6 |5 e wire       d0,d1,d2,d3,d4,d5,d6,d7 ;
! s8 y8 k6 q- ~2 e
& J4 u7 y# L; f. E8 p7 m( b4 s assign     {s3,s2,s1,s0} = sn ;: N5 x5 [8 F% j0 b- M
1 r  D1 X; H# r7 H
assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;
+ \7 `1 m9 m' S" K3 W% D+ \1 t: R0 J& o9 F
always @ ( posedge clk )
' j. D/ `0 Q- N  F5 U, |# d. Z( `1 i: f6 g" X! K$ L
  if( !rst )
, r: f+ N! H8 o$ ]4 r* D+ U  Y! i# F# R0 A! t8 {4 K$ ^
   cnt<=16'b0;& Z+ T  H  ]8 A  b6 W% Y+ {
+ A1 G* P" m- S$ s; Y( s# y. J
  else
: z2 T0 _. @6 e$ F4 C2 {5 F0 M
6 J2 ]* t6 t- Y. e' z( h   cnt<=cnt+3'b1;
% y. g4 Y9 I0 w/ E3 j7 q& ^* N+ I
wire clk_slow = cnt[24] ;
* z7 m7 B. U8 t8 e, ?. n. V; \0 ~: R3 d$ r( n
always @ ( posedge clk_slow or negedge rst ): A! Y% W& p; R# ~( u  K6 v% p
" ^) @1 S9 b9 X8 I
  if( !rst )$ F! [) j* p/ H( }6 g9 w

) s9 K0 d* @3 ?* J: `$ Z7 b: c$ c   state<=3'b000;$ @& Q# a  q# \: ]
& V+ i4 F4 c& r8 x
  else( A# @# G6 E( r  F- o$ {( u* ?

7 k& G+ P  c( z8 e   state<=state+3'b001;
  r$ u( B" y2 p7 U
8 T" R* N( Q5 D- A- ?  N* b6 Q; l+ o always @ ( posedge clk_slow or negedge rst )( |# `2 T: Z5 n0 @
" n3 b5 Y9 k1 S5 x: y, P9 B( S  E
  if( !rst )
9 ^: s" b+ y  O1 c
) A0 k, C" `9 c/ n+ x# y1 Z   begin
" d+ y. T* I) c$ @( Y- w6 b6 |' {, |4 F+ u9 y
    sn<=4'b0;
4 r% F- |' a1 a& w; {+ z% f1 r
3 e9 x4 H% n' @9 X5 k    data<=8'b0;9 c3 ^: j% q4 t
/ b" j, n4 @) x/ h7 Y; ^
   end
, c* }& Q8 B) Y. _9 v
4 I) @" f9 c' z) u/ D/ H) k' p  else
0 M" ]# Z& `7 J
# |  _+ i* K2 Y7 j# k" P4 W   case(state)/ h4 k9 @) p" k5 g0 e

+ P% n$ ^6 F+ e1 G* \# R    3'b000:
5 c- \2 {( a8 [, w& o& H3 H2 Q( c* r/ Z9 [9 k- z
     begin# a- O4 g3 T* s3 y  {3 y8 Q& M8 V
. _) A! F; `$ R2 M
      sn<=4'b0001;
4 u2 g& q# g, J+ m; y
# l5 |; ], y5 h& n' a( B/ x      data<=8'b0110_0000;
( Z  G2 x' W/ x. L
) N( w. l, l! y6 ?     end8 z6 I. c' W4 e0 ^5 J# V# W9 E. {
1 a9 b5 m0 D9 U* C) ]: r
    3'b001:9 ^$ u1 }& J% w# d8 s) k

1 j, T& f0 |% [9 X     begin
7 Y* B* ?( k; B/ k7 \. H
0 }  q5 s" T' ^/ y0 S2 t- S      sn<=4'b0010;
" o2 ^! @* t# e. {8 h* Q# T( k
! g: k0 U) R* D1 J+ L0 t9 u      data<=8'b1101_1010;
7 F4 ?" m, [4 m/ x8 V
6 P# z/ ]/ F& Q5 w7 v1 T4 n, O     end( `9 j3 E2 |) D$ R

7 ?& `0 |8 X4 N4 u    3'b010:" j/ ]6 l, u# a: y
7 h, A& ]" g9 Y  ^9 W
     begin3 [6 V; M" q; k  g; v% |0 c, g

3 w- Q/ q  n: E' Y, E      sn<=4'b0100;
3 q1 G7 Q6 u3 E! B) l# t7 h
+ `& F+ r7 y7 T( d1 `# T& |      data<=8'b1111_0010;, ^7 L) h) x+ x

' Y; U1 v: a* A+ I* e0 G     end
$ M8 J" y* H- _. N, J3 S
+ A0 k+ S* ]/ |9 \+ g    3'b011:
) K4 f  \# V# ]2 H9 P
9 v  h$ g+ K. l3 m     begin; s/ p, r9 E2 ~# M& {0 j0 k) h
5 t8 B! S# q! Q  b
      sn<=4'b1000;
+ U- \) o' i3 ]$ d( F: j! m2 a! ~: }
! j% O  |# F  Q9 l) l: l      data<=8'b0110_0110;" U5 j7 P; ?2 x$ R
! n0 w' \8 p( K# F; H( _5 h
     end
& W) C7 c/ y$ Y4 ^* o) T* t( a) ]' O/ M. M- T
      3'b100:& n9 v# y3 X& ^& t" s% f

" Z! Y4 U& W) e5 B     begin
, T; a4 v& S: P7 d! J# K
0 D5 x& {9 g$ j  L6 u! C& ]8 ~      sn<=4'b0001;* T& q& n% l- f& Y3 L

; s+ V% @4 R; e1 q3 w& C      data<=8'b1011_0110;7 @$ e7 ^! M" h: |
6 p4 n1 [4 l5 H, t' R$ O1 F% z
     end% }5 [) O7 ]6 a! V

  d( u- t: C. k: M; {3 M+ E    3'b101:
( W0 E- k+ p8 D: o0 W4 a7 }( M4 P8 F' T  R. k
     begin
4 E! F3 R! M. q  b0 z* P) d9 e$ m! K) @
      sn<=4'b0010;
- F' b& _  K- W8 b+ X1 w9 d. a( u- P) f) W8 M6 T; ~
      data<=8'b1011_1110;2 K% [' M6 M& E! v
6 Z, z5 K$ I8 x$ z# X" z  S. u- P$ d
     end
8 I( @  _: _3 A" d9 w& Z2 s) C2 D8 l$ `6 V* k: Q& U
    3'b110:3 W: D% A- [. g. q/ J

% k: `/ W2 v2 e2 V     begin
0 t8 P1 |' n' b# Y6 @& A0 f/ n1 G* ^2 f% c1 m' l( A8 z/ \3 ]! b
      sn<=4'b0100;
: H* ?" U* m+ S0 L$ C
4 B3 L) Q0 M" g- H4 G7 n      data<=8'b1110_0000;9 Y6 F  t3 z0 \$ Z7 \3 U1 s7 B: @
9 \) {( T4 ]" L
     end! ?" C- m1 v+ t! I" c; b

/ n; N* B& X9 o  |  m' g7 S    3'b111:8 q4 v& A, s! K$ j' j% k0 `; n

" X: j) N- N8 `7 ]     begin- F3 [) z" I4 E) C  s9 D2 N
+ T# W# [5 x+ E
      sn<=4'b1000;
# }6 v# m+ E$ ~9 J! H  A# F; k6 R/ l7 a2 W7 w, V6 X, W' c
      data<=8'b1111_1110;3 y; h& A6 l3 N* i

; I2 ?* m7 b4 N5 y: ~   3 C+ G% F" e6 n

6 L, A; z3 p$ O) p; n     end" O- e" V* r) c; q" D7 W
/ W  [$ _% f- l
   endcase  ?' h! ]5 b- {
8 ^3 Q, ^# m: k
endmodule
$ h( V5 G: s& F1 T' a1 i2 N  X  E7 _6 C  N3 w% S7 s6 M
这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?' A) o+ ^( b" E& S) v7 d, n

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
6#
 楼主| 发表于 2012-7-18 09:12 | 只看该作者
huangzj 发表于 2012-7-13 08:35 1 V& K* R1 }2 V6 ^
教训表明,你没有认真熟悉这款FPGA就使用错误的方案,
9 [2 i/ P) C9 f
确实,才开始入手这个东西,走了弯路

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
7#
 楼主| 发表于 2012-7-18 09:13 | 只看该作者
chenbingen 发表于 2012-7-15 15:33
- U7 g+ m$ w( s- E, zverilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?; f! ^3 m5 f" s! i
; e& ?5 h# P. F, E1 n
module s4_7seg(clk,rs ...

4 l7 q5 V! _% Q/ D& L" M第四个数码管有问题!

11

主题

62

帖子

399

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
9#
 楼主| 发表于 2012-7-20 11:47 | 只看该作者
绝。对 发表于 2012-7-19 09:21
8 A0 l4 l- m' G/ f, B! B. f+ O硬件可能要重新设计了

; c4 R& b5 o8 E7 |$ S, a已经重新设计了  c, C0 y, L! V+ G! b; J1 ^* G
OK了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-28 04:36 , Processed in 0.065543 second(s), 39 queries , Gzip On.

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

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

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