找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

EDA365欢迎您!

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

x
本项目使用的是cycloneIII的芯片,利用IP核生成了一个DDR2的控制器,但是再分配引脚的时候产生了如下问题,如
1 M& O# p- S! V+ n        Error: The assigned location PIN U21 for DQ pin "mem_dq[0]" is not a legal location
- Z' E$ S' N5 Q7 C+ D9 s! i8 k                Info: There is no legal DQ location that supports 9 DQ pins( x$ p9 s3 V# v* J4 s
此时才知道,利用ip核时候,输出引脚是需要分配到特定的引脚上面的,,,,# m6 D" a  W) o( ]
这个倒是没有什么,对于仿真的人员而言,是可以修改的,但是我的程序是跑在自己设计的板子上面的,而且已经制作成功,所以修改引脚分配是木有用的,这才是欲哭无泪的地方啊!!!!; [$ @. i+ N2 e$ n7 K, ]
针对于这种情况,有没有其他解决方案,而不是从新设计硬件PCB板的,求助!!!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
2#
 楼主| 发表于 2012-6-22 17:29 | 只看该作者
自己顶一个吧!8 `/ g  I) J1 F! G' u. A( C8 [# `+ d
法一:自己重新设计一个DDR控制器,这个比较难,而且时间不允许,放弃;如果走运的话,可以在网上找到别人贡献的DDR控制器,做一下修改可以的。根据本人经验,这个对于altera系列的来说,还真是少,有strrixt系列,但是cyclone系列那就比较悲剧了,大部分都是Xilinx的。全凭个人人品啦
$ i: p; m8 u! Z7 P. q法二:重新设计PCB,这个是没有办法的,建议先配置DDR控制器,这样就可以根据FPGA来调整PCB,并且回想调整直到满意为止。
6 l" n, o( X; }6 T* o0 t' y4 ]0 K' x! P0 |  h( \2 h
遗留问题:altera的IP核位宽只能设置为4,这个比较头疼,效率太低了,唉,,,,
; J! M0 x9 L6 w, G1 C
) r0 F' ], {* B' s2 u经验教训:下次做这种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,就这样循环下去?/ Y3 a1 S8 B1 z* ?9 z* i; c, Z$ W
5 t7 t9 n5 ^- h+ T$ T7 \
module s4_7seg(clk,rst,: J) U: M  G; W, w+ t
# V0 {# E" ?$ |) K2 {; N: m
   s0,s1,s2,s3,
0 t, D8 @/ V0 o, Q3 r9 h3 {- z* w; y( e0 c/ i3 p4 C
   d0,d1,d2,d3,d4,d5,d6,d7
1 M7 O5 P: g! G  v" C, ?) v) P
0 a) h; `% ^; U$ r& C: H2 q   );
+ _" A! ]& n  x9 ]1 a+ O* t) [; k  N9 f& V7 i' w+ i
input      clk,rst       ;
) O+ J) J7 k0 \
! E& G& V* w! \ output     s0,s1,s2,s3   ;! \1 u# b: O2 r# U& T

, ~4 r$ |. u2 j3 ? output     d0,d1,d2,d3,d4,d5,d6,d7 ;- |/ Y( w+ R6 L
  V( H' K' n* H! p5 x; Q
reg [2 :0 ] state ;
7 o$ p" I  I1 Y4 ]3 N! ]( S$ D8 ?  L: ]4 U
reg [2 :0 ] sn ;
8 V5 f9 j5 n- b7 R! h9 C% y* E, V( V& ~0 V9 t/ F" g# y
reg [7 :0 ] data ;
1 I6 r( w! P, t1 s2 d2 }5 r9 |; Z# }
reg [23:0 ] cnt ;
' d5 S1 Y9 t1 M% x6 N  r& Q; Q
7 f, i' C4 F; R& n! f
/ b- p  m% L8 H' X2 D
' ^$ x3 r5 }7 T" [ wire       s0,s1,s2,s3   ;
: Z/ C7 }9 J8 Z/ G( {6 B! h0 z# N, K+ X9 q* V5 [) ?
wire       d0,d1,d2,d3,d4,d5,d6,d7 ; / b0 Z0 r+ j) n, F( P6 `( s

; h  i& J% G6 c  Q7 g: F assign     {s3,s2,s1,s0} = sn ;
* J9 j; q. [- o9 r1 m* C5 P1 @. B$ y' l
assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;: D* r/ }' G. [( F

2 W* {7 w' A9 o; d0 y) i  T always @ ( posedge clk )
2 }1 k6 C5 T& p& z2 M) \
; s+ S" v: Z, g& ?4 R  if( !rst )
1 p7 z5 O- m! I, a* T
4 u+ Q  w* x$ U   cnt<=16'b0;
) b7 Q- I% |7 U# f+ r2 |
5 ]; ^7 Y. K7 F* |- G4 C1 `# F  else
/ v, p+ C, s( W, ^" Z! u  R5 J
4 D2 u" c  ?9 q' S+ X   cnt<=cnt+3'b1;5 U+ X( _3 I3 [3 o
; F/ |# ?7 A+ r* W. [, Z
wire clk_slow = cnt[24] ;( X. J( i8 k" I: c
& E( y- E1 f0 q8 v8 x: k! V( k
always @ ( posedge clk_slow or negedge rst )5 N, i5 b( L$ T' u6 j5 w0 ]" }
+ ~$ W; ~1 r; n4 r5 _' K
  if( !rst )
+ U7 l; l; I) b9 Q! W' W% [; o
' q) [! @! l% T3 w   state<=3'b000;
1 V2 o1 q* }7 ^7 t5 ~
* @4 M: q% N1 B8 p% S; ]. {  else
$ v, ~0 M9 m$ Z* w
9 F, i; t# I0 N! H" A   state<=state+3'b001;% I+ H% i$ x( W1 d1 D: `& u

, D8 v; @6 P5 y  m9 Z always @ ( posedge clk_slow or negedge rst )
! q- c' h+ Z5 V! @5 b) \8 q1 |$ \1 D/ f5 v: X4 R4 G
  if( !rst )! @$ o- M" b% Z- E+ l2 n
9 U' i  e9 ^* y  T  D/ v- B
   begin
0 l( \9 p2 e% Z2 q, E5 r$ J1 R8 t- D, F) ?
    sn<=4'b0;
2 W! e/ Q1 w; g; y
' a( p6 c/ g! Z4 m    data<=8'b0;
' C0 a. J/ L& f8 U4 y
7 c+ |# j$ W8 Z/ Q: q" K5 }   end
' P* _* E% ^) u, {' z4 h9 X0 \3 o7 s2 H: }( V; V" F. `
  else) S) i: m. }3 p' }4 w( z, ~! y

* h9 G9 L# a3 f6 v8 }   case(state)
; d  D% X5 t# T1 H0 y! q' n, Z: P0 `7 g  V0 q8 v/ ~% U
    3'b000:- _# T- |% X/ y8 Z& Z* A7 _6 F
2 A! S' B9 G4 ?3 f  u4 N7 |4 \
     begin1 S5 w( |4 Q* P" g4 S

& \2 f: `: x1 }0 R. X. |      sn<=4'b0001;
' i1 e) j2 ]; x5 Y! ?! h
, _+ D9 D, v  J3 f0 k      data<=8'b0110_0000;
/ X) G* x" {& v! i$ a: N0 s( z6 C# m
     end  x# S. M: C( R7 _7 x" Q

! B0 v4 ]: b9 |! U4 C0 N, Z8 J    3'b001:5 z" f, C4 z7 v' @( Q$ a; ~5 K

0 O* F0 T0 Q; u/ d     begin- j' v; n: C0 w, ]) q
+ [; {( L2 K6 z, Q3 q
      sn<=4'b0010;* ]4 l% y' E+ I4 O$ B

  o+ O  Q% i  d0 v7 c; l      data<=8'b1101_1010;4 X  [: B" k$ V" R6 g

; ^9 L9 \8 G- C+ ]     end
# V; Y5 S0 [9 `& x' j- G5 E6 B* {
7 p7 S+ b& k2 a: _/ W    3'b010:
# S4 e0 L9 Q% F
, D- }- O- n5 U4 A5 M7 X1 e     begin7 S3 r& S: h/ G) [  x. [5 K: Q
9 z; C0 F5 ~$ }  N/ W" @5 `! ]2 c' u3 V
      sn<=4'b0100;
# ?, I  B6 K& j. s: I" w
4 U3 j  s2 d' D+ L! ~: a      data<=8'b1111_0010;
: K+ ^6 W" f% u' _
/ _2 V7 o8 U4 l     end% O( w6 F& }( f5 e' b5 F  h

% f: Y2 X$ U! B0 x3 M    3'b011:
. e1 |" |7 c- B, A% U5 r; |$ G
# m9 f; i: P4 c' x% H     begin8 ^. i" h' h) j1 @* d4 ?/ o& x2 D# y
- d2 u2 w' _7 G, f6 b, {
      sn<=4'b1000;
" D" H2 L# U$ b3 m& x; R$ A9 C- e9 ^9 t; p
      data<=8'b0110_0110;+ |) M+ D  A/ a8 O) `

+ J7 a* Q4 C$ ^! j# a# R     end
# f; ~; U; N! e" B  [1 A& [7 Z* }' h0 [8 l
      3'b100:; K4 s  P: G3 I3 j4 A4 s- W

% f- C; |2 V! d. e0 Q: t+ s     begin
/ u* g+ X6 |' N) N% k( l% s1 g- i9 c6 p+ Y$ k" v) r
      sn<=4'b0001;
. e! d9 A( y1 O4 P; I! n
6 @7 r0 i' q: s9 {      data<=8'b1011_0110;' X) p9 Q5 N' n! B
& k$ D  H, ~. {3 e, x
     end' t* e- ^, r( I8 Z2 i( A! e( x. n4 ?

1 g+ g8 ^2 c# Y    3'b101:
" c7 \/ U# e2 H# O% ~
$ C% y: L& p; ~- x     begin
5 f5 ~' X/ c4 }7 f
. g) X0 X+ C2 h& }' J' S      sn<=4'b0010;
' O; s" b% y3 V. `3 e5 v
' T+ Y% n5 m  q  R$ F      data<=8'b1011_1110;
5 _* A& w. k- J* N. t! t- I' j3 ~3 W" }5 W9 S' }
     end# u- M3 p. B9 k+ {
" z& A% q" ?/ G
    3'b110:
) _+ w1 T0 k* y0 k/ a+ F* {( N0 Q7 r. I7 U
     begin
! i0 b5 j/ m9 G5 o1 N. _* G# b' h
      sn<=4'b0100;
. d- ?9 B+ P% }
& W# _+ r3 E4 M5 |9 \$ _/ E: x$ D      data<=8'b1110_0000;
! c3 H. L" ~* A4 j$ K( L
1 @# a; v% M$ c; u$ w) ~     end4 z7 G( T7 z; j- z

* m2 L, M3 r1 d    3'b111:/ o; U8 A5 \7 y0 `* y  T
# Y- a1 u' q, b% R
     begin
6 u) o' ^# _: w: q3 y* [8 _2 m' `' @( m) L3 ], @6 l
      sn<=4'b1000;. e4 T1 z# }& t- I/ g# F( c

4 B2 p7 D! L9 f3 E- J% B$ Y" T0 B      data<=8'b1111_1110;
; c5 E, x( J+ J7 O
9 k) f, v) e$ m$ I   
# n* Q/ V, f9 j; {3 @( n" ^# h1 o" {3 Q0 p* a. d0 t* M
     end
' x$ f+ _% u9 _4 `/ q& l0 e! }2 S" B( J+ S) ~7 \
   endcase
3 T4 S5 K6 s* U
5 q8 R1 {4 T1 o, S% d& S8 Y% Fendmodule( p0 w) s' M+ a

, R- i6 G2 l6 z( M这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?
7 G4 n% _7 e5 B

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
6#
 楼主| 发表于 2012-7-18 09:12 | 只看该作者
huangzj 发表于 2012-7-13 08:35
! F# S8 K& ?) n" u- r教训表明,你没有认真熟悉这款FPGA就使用错误的方案,

: a" y  ^% `, d5 U8 M确实,才开始入手这个东西,走了弯路

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
7#
 楼主| 发表于 2012-7-18 09:13 | 只看该作者
chenbingen 发表于 2012-7-15 15:33 8 M* A( R1 y3 H7 O% x1 n
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?
; A6 E& I4 z" u. T5 i' _. ?3 L
! n- H% M1 F2 G  ~module s4_7seg(clk,rs ...

  h- S6 C/ c; f; y+ d  Q8 b第四个数码管有问题!

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
0 O5 d2 B0 \' I硬件可能要重新设计了

! B7 D% F! r" \$ c已经重新设计了
1 p- I0 W  W" H  D" ]0 L/ aOK了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-28 06:09 , Processed in 0.063572 second(s), 38 queries , Gzip On.

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

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

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