找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

EDA365欢迎您!

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

x
本项目使用的是cycloneIII的芯片,利用IP核生成了一个DDR2的控制器,但是再分配引脚的时候产生了如下问题,如
$ z7 ]5 G  w/ h5 h+ A; U        Error: The assigned location PIN U21 for DQ pin "mem_dq[0]" is not a legal location
$ a: q: Z% i& e4 J$ X3 K6 H+ Z$ P                Info: There is no legal DQ location that supports 9 DQ pins
  q* T' K% \1 i& f& ~0 q- [9 V% w/ _此时才知道,利用ip核时候,输出引脚是需要分配到特定的引脚上面的,,,,: z8 a2 I5 O* U5 S, k
这个倒是没有什么,对于仿真的人员而言,是可以修改的,但是我的程序是跑在自己设计的板子上面的,而且已经制作成功,所以修改引脚分配是木有用的,这才是欲哭无泪的地方啊!!!!1 {0 B. T* O* e
针对于这种情况,有没有其他解决方案,而不是从新设计硬件PCB板的,求助!!!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
9#
 楼主| 发表于 2012-7-20 11:47 | 只看该作者
绝。对 发表于 2012-7-19 09:21 : B: j' S# U" P, o0 ~6 M
硬件可能要重新设计了

; w0 o6 Q* Q2 c6 Y; r1 D已经重新设计了
& F0 I- l' _( TOK了

11

主题

62

帖子

399

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
7#
 楼主| 发表于 2012-7-18 09:13 | 只看该作者
chenbingen 发表于 2012-7-15 15:33 6 h' S$ a. Y6 Y8 V% u
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?
0 f* s) n% U8 ^* |) o7 t2 C7 f+ ^6 B$ y" [4 Y4 g
module s4_7seg(clk,rs ...
( v8 S' \. ^$ x/ G+ g2 `
第四个数码管有问题!

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
6#
 楼主| 发表于 2012-7-18 09:12 | 只看该作者
huangzj 发表于 2012-7-13 08:35 $ |; F8 O  f' \6 B  j
教训表明,你没有认真熟悉这款FPGA就使用错误的方案,
+ D- ~2 _2 Y2 L
确实,才开始入手这个东西,走了弯路

0

主题

2

帖子

1

积分

初级新手(9)

Rank: 1

积分
1
5#
发表于 2012-7-15 15:33 | 只看该作者
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?
1 X% }7 w: d; T0 L3 P( s) g1 O3 @7 V( d
module s4_7seg(clk,rst,/ A- L" h+ L9 t/ q" ]8 Y
- {- G( O6 N1 a& X' |
   s0,s1,s2,s3,7 `# I/ R# H# D' o- F3 f

' q8 k; U/ j4 R9 \" c7 P   d0,d1,d2,d3,d4,d5,d6,d7
9 L2 U( }3 D$ j) f: X+ L6 c3 V( v2 s, q5 I  V8 [! W4 l# D  N
   );) q4 B- q9 }0 b: y* z( _# b( N2 @

: |/ e( \9 C* q  q. y, Y input      clk,rst       ;
# B0 R7 _& |% x! }8 F+ K7 h
* G" |8 f. g/ O output     s0,s1,s2,s3   ;
  G. A" |) j  G$ n! F/ Z3 r/ x
/ F: K. G4 T) B+ {7 L( Z output     d0,d1,d2,d3,d4,d5,d6,d7 ;
6 O& X: F8 V; B: @
2 |6 T) o1 T* w9 ?1 ]- S$ U* A+ z reg [2 :0 ] state ;+ ]7 n; ~4 ^" O$ w

/ `, @# q2 O1 }, q! p reg [2 :0 ] sn ;) T9 h5 j$ P% Q

$ S  n  w* E# ]* F, M$ G: k reg [7 :0 ] data ;
# h8 |7 ]* l- {7 [7 i% d$ W7 v( h5 y! {$ w  f
reg [23:0 ] cnt ;
( O2 W5 N- s& S. t1 f- g+ K
3 C  z+ H- ?8 N7 w7 `' G, {; O ) m" L1 M3 }* z5 N; h( a! }! ^2 Y

6 k/ g3 a6 m+ ~% | wire       s0,s1,s2,s3   ;
3 `+ c$ _% ]+ Q9 m9 }# s  y
/ Z" B: z( P- E2 v! `- U1 } wire       d0,d1,d2,d3,d4,d5,d6,d7 ;
+ _* l4 J3 V" H% H2 w/ p4 m: J1 h# N
, |9 q$ b1 Q0 G4 f8 |5 D assign     {s3,s2,s1,s0} = sn ;
; [. M  S  q0 {3 @/ F+ V* @6 X4 N9 o
assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;6 ^/ g3 d6 x4 c  R+ j

5 M! k% t3 a$ E always @ ( posedge clk )
5 |+ a; _, u( s  B: E! e+ B, d; s' g1 U
  if( !rst )2 D/ d2 n* |+ o& c+ x. k7 g

* B( @7 z: L3 A9 F; I   cnt<=16'b0;
4 f+ m( [) j6 V1 n6 O
; C+ X' T3 E) w5 b! ]1 {  else, s, V7 G2 Q, m% n$ ~

( k! q# x& @1 Y   cnt<=cnt+3'b1;
6 a& x& Z- H& W$ p. T% p0 g+ o7 k* Y1 t* E
wire clk_slow = cnt[24] ;% y/ T* ?( X$ x' _
. y! k. w5 O4 z/ `
always @ ( posedge clk_slow or negedge rst )
5 _  k' [" ]& i. z, Z2 v$ B  B" s2 ]
  if( !rst )& J9 B& \$ ^( Q& e

) _+ r1 J9 T) R0 \% ]  ]- l   state<=3'b000;( F3 \( q' N- {
  d) z4 U+ r$ Q; A& L! g
  else
3 t" o" S  P' y; A
- [6 D$ Y8 A+ J" O; G, k   state<=state+3'b001;
6 G- ~6 @' t( [% }2 m- \! I/ M; _! I9 F" T" ]9 a) q+ o
always @ ( posedge clk_slow or negedge rst )8 a( o0 W9 S4 E0 z- I

( \( v9 }! @- J, v+ D5 t7 _! {' Y  if( !rst )
1 @) |2 b5 j! }) O3 ~8 F0 v5 H+ D" J8 T( N* p+ c- |
   begin
- W& D% c; m2 a% B6 y- O
7 n5 t+ r; s  r: ?& {    sn<=4'b0;
. Y5 a5 P8 o# S" G0 c9 U
4 R/ Z$ u( U; B    data<=8'b0;2 g5 k' ?9 F/ L1 k+ M0 M: |  n7 `
& e2 B* n  Z# j  b
   end4 S7 a- I# T$ p0 ^# B. m
3 s. v% P! K5 b9 m0 G
  else; T/ U4 R# Q4 A' ~

7 r$ u: c# |6 S! }" E; P   case(state)
) I3 k; k: X9 i- G5 x* k% j
" X1 u( P. q( ?6 p. @, t    3'b000:  B: i; J7 m0 Y, M" G

+ W/ F% D3 n5 h+ `( N     begin
  k& }$ j/ |4 C
+ D; c6 x, g, T: P# y4 E      sn<=4'b0001;$ L; ]8 I) L* ?) Z& L
" ^6 W6 x: j+ [% D5 F* T
      data<=8'b0110_0000; ! p/ u; C- s: K
( v& P5 H2 i$ u; I0 h" C
     end
9 p" {: m3 k# l/ [* }8 o, K1 a* D- Q1 g( Z
    3'b001:
# m4 M8 [* d) J- s/ c0 Q5 r# k% ]6 Q0 N( P" d& {# i9 ]
     begin
" {$ l/ U* L$ V! k5 ^( o* M& a* X+ s- p2 a7 O
      sn<=4'b0010;8 P% Y/ l) [' M& b) \0 q0 X/ u6 P
& v( C0 A, h7 v- s" X+ d$ l
      data<=8'b1101_1010;+ r% \6 O, Z4 l! k0 Z0 G' ^
" k7 y5 i/ H) {8 I9 ?
     end
+ Q  V4 |% m8 r- ~+ j5 |* F. `
4 z5 E8 |% Q% @    3'b010:
9 |. X" j# X7 C+ `! c6 U# a4 s1 h4 h: k0 w1 F2 u. M8 P" y
     begin
' [: g+ c/ x% o: m3 F; z8 U
/ V8 l' j6 P) T  `. @. a      sn<=4'b0100;
" D2 U) \; C3 b5 U: n: [
. n3 L% v& A' i0 [3 M! V      data<=8'b1111_0010;9 y" [3 D* O. [' A/ t
! w6 Y4 W/ ]# I3 d7 z
     end
% z7 G' u$ v* d3 F* t* g+ @* d  `
    3'b011:
0 y9 W- a7 h3 u  K( `1 U4 `' ^8 H2 c4 Q: u: ~- w& u
     begin* w% K( }* D% B; M% I3 y

% Y& r0 w, Y! O" t9 U+ q- \; n! H% `- l      sn<=4'b1000;
- B) b2 y% L5 S2 O3 v, P0 u1 O2 `* t3 }' R/ ?$ T7 n
      data<=8'b0110_0110;
; x9 F1 J6 `1 I% R/ \6 n8 N
+ A% z7 K! D+ @6 f) l! ?; A     end+ E! E3 v# Y  O1 W, i% u7 \
3 T5 Y# t. q; c4 W# [' u
      3'b100:/ L) ?* r  i5 u2 N- P$ }2 }
8 r& T2 |0 o; j8 m& {
     begin
! `; ?( @4 @8 i5 O' `; {
# @2 }! n1 v6 R3 D      sn<=4'b0001;
# X' S( h4 l& o0 c
6 \1 t/ k. A  @2 w; S      data<=8'b1011_0110;
4 `- y4 A) s6 L2 b7 m2 z3 y, y- ]6 y; o, }
     end7 i! k2 l5 d; N9 v9 u

7 U7 ?. z* i$ @) o  \! h    3'b101:2 a! Y' Q. A  `4 u  h2 g" B

) J2 I7 ~6 o/ b5 r! O0 U! f     begin
, t0 J  N1 [- O2 ?/ Y9 m2 [8 q1 u; S: h1 W8 R& F/ u
      sn<=4'b0010;6 c% w4 q- T) P+ P

3 t" @* Y& ]+ S1 w      data<=8'b1011_1110;* W! q3 h2 a+ `' d( F; ~

. }* E! E4 ?) k, _! }     end
6 X  v( d* l5 Z6 G) @/ y0 ?0 d4 N
. y2 ?* H5 m% S6 i    3'b110:
0 m' t6 d2 ~. i$ O$ ]% G+ E2 |# T: o  p$ O% w6 R* S/ j
     begin
- E& ^$ s) x0 T. V6 ?" I- U8 V) }, F: ?/ ^  u: @
      sn<=4'b0100;
" z6 b4 l4 q9 b2 `  p9 `& T- O5 @) r$ j" t
      data<=8'b1110_0000;
- ]% L8 d4 j5 ^0 g2 K! Z8 H" ~8 ?: @8 I0 h& ~8 g, [
     end. a, ^5 i; l( f4 I8 w; C% z

  o2 q) ]1 H+ ]3 }, L0 g    3'b111:
1 A* K5 W9 X$ g' q9 F
% C) R; c: a9 ?9 w5 \" u1 r     begin( J1 r1 X- X0 _6 O# f. t

+ a' J6 l8 m. j8 V      sn<=4'b1000;! M) o7 C  V- n0 k, ^

! A  v9 X+ s! M+ n8 G5 `      data<=8'b1111_1110;
7 C) \  k0 R9 ^# h! ?4 t
3 t, d0 X8 H* J! T$ V2 `4 f% Z  ~   
2 G( s3 {* A& g' H2 W. t* i$ Z7 m7 l
     end  W7 m4 j/ g2 K$ V* M1 y+ |% Q

: b  F6 H: g6 z' P   endcase
# H8 |0 e2 a/ L9 y4 _  ?- N
6 w$ v! U4 ]1 M. b7 K/ uendmodule  N- ?- C5 l3 M& _

( r# M6 w* Z0 P2 _* R1 N这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?
" F) R0 I0 p/ c$ p0 R- p2 _% y

2

主题

321

帖子

147

积分

二级会员(20)

Rank: 2Rank: 2

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

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

15

主题

80

帖子

260

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
260
2#
 楼主| 发表于 2012-6-22 17:29 | 只看该作者
自己顶一个吧!; `8 @8 {5 V0 O2 E
法一:自己重新设计一个DDR控制器,这个比较难,而且时间不允许,放弃;如果走运的话,可以在网上找到别人贡献的DDR控制器,做一下修改可以的。根据本人经验,这个对于altera系列的来说,还真是少,有strrixt系列,但是cyclone系列那就比较悲剧了,大部分都是Xilinx的。全凭个人人品啦* V% R) W2 m& x+ T- ^9 e+ S
法二:重新设计PCB,这个是没有办法的,建议先配置DDR控制器,这样就可以根据FPGA来调整PCB,并且回想调整直到满意为止。' r; O! E; i1 p3 N% U" w% e
/ `1 T3 P" h- _8 X2 b- H) ^* `
遗留问题:altera的IP核位宽只能设置为4,这个比较头疼,效率太低了,唉,,,,2 B& w' u0 R. a% i
  ^7 \1 c2 W3 [/ t
经验教训:下次做这种IP核的时候,一定要完全软件配置完成,包括引脚配置,这样可以降低成本!减少弯路
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-19 06:52 , Processed in 0.062609 second(s), 39 queries , Gzip On.

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

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

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