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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本项目使用的是cycloneIII的芯片,利用IP核生成了一个DDR2的控制器,但是再分配引脚的时候产生了如下问题,如
- ]. @4 d" l/ {        Error: The assigned location PIN U21 for DQ pin "mem_dq[0]" is not a legal location
6 V, f7 Z4 ~( W3 T! v                Info: There is no legal DQ location that supports 9 DQ pins
& J) E! P- t8 {! s0 [( s6 h此时才知道,利用ip核时候,输出引脚是需要分配到特定的引脚上面的,,,,' _2 @, L0 R# s. U0 a: O
这个倒是没有什么,对于仿真的人员而言,是可以修改的,但是我的程序是跑在自己设计的板子上面的,而且已经制作成功,所以修改引脚分配是木有用的,这才是欲哭无泪的地方啊!!!!/ [+ r7 Y! B+ M
针对于这种情况,有没有其他解决方案,而不是从新设计硬件PCB板的,求助!!!!!

该用户从未签到

2#
 楼主| 发表于 2012-6-22 17:29 | 只看该作者
自己顶一个吧!( S9 Y) E1 B8 R# S
法一:自己重新设计一个DDR控制器,这个比较难,而且时间不允许,放弃;如果走运的话,可以在网上找到别人贡献的DDR控制器,做一下修改可以的。根据本人经验,这个对于altera系列的来说,还真是少,有strrixt系列,但是cyclone系列那就比较悲剧了,大部分都是Xilinx的。全凭个人人品啦4 V# `* P5 D% _3 E
法二:重新设计PCB,这个是没有办法的,建议先配置DDR控制器,这样就可以根据FPGA来调整PCB,并且回想调整直到满意为止。* r+ ]/ p1 Q, D" R) o
6 L' L4 A( I+ d1 A
遗留问题:altera的IP核位宽只能设置为4,这个比较头疼,效率太低了,唉,,,,
) Z$ t& j5 L! H, I
9 b, S, k' |9 y1 X# _% a经验教训:下次做这种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,就这样循环下去?" n; d) n; w/ P" I) v/ e
" |$ Z6 F$ k7 V* L" m1 o! o) v6 c
module s4_7seg(clk,rst,8 G* S' l) ~5 n/ ~' E# Z7 e

) j" u- D5 Y! Y" v2 m   s0,s1,s2,s3,7 M+ n0 y5 K& }3 v. E. s8 q9 p
, \" K# R5 D- ~$ ~0 x1 }
   d0,d1,d2,d3,d4,d5,d6,d7
7 P* }- v  P) g- |' y5 j
: s" B% \% \7 n" |1 B! Q3 O  _) E' J5 }   );
: e% o( X* Y- n, d) \8 g! D/ N9 ~# _6 |) m
input      clk,rst       ;
3 p, {2 I, d& M. _7 f
; F! ~+ t: T8 U8 M& d+ w output     s0,s1,s2,s3   ;0 S7 g. P7 C# Y

3 w/ z7 e! J' M" z5 u$ S6 K output     d0,d1,d2,d3,d4,d5,d6,d7 ;
- d- ?4 c" {5 c8 s# b/ }# \8 N5 ]% _* |+ a9 [2 e+ ^7 c- j3 b
reg [2 :0 ] state ;
0 k3 c4 \- x7 ?
8 l8 B! Y2 r# \+ g reg [2 :0 ] sn ;
7 C! F4 t8 [, I; V* j) D: j. p* s& j" V0 |
reg [7 :0 ] data ;, V7 `- f1 {# h. U) q" c

$ p& v" f! k: ~* {# v reg [23:0 ] cnt ;( q, O, q+ x1 _# G* [" H+ z' V

4 A% G4 X- g7 W: I0 Q' I
" l/ A$ S+ G: m0 V0 L+ q4 F: o- Q
  P8 |/ Q0 l7 U2 Y+ t1 w1 k  u! G wire       s0,s1,s2,s3   ;2 L7 T4 S1 J( Q( H
/ u! Q# E2 D8 h9 m: y# R
wire       d0,d1,d2,d3,d4,d5,d6,d7 ; 7 a8 i# u) C1 S5 q/ h0 l0 ?
, S, R" s$ D$ S4 `
assign     {s3,s2,s1,s0} = sn ;
; ~1 Q6 d; F$ `1 S# _% k! K' N, Y, ^  M, O$ ]. z7 u" O! ?
assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;8 ?+ d0 ~8 f8 ^0 R4 R7 }

$ K* ^! _! B, V+ M( Z7 m$ Q always @ ( posedge clk )+ l0 A% o! o8 E' S4 \! t

, V) [, P" _4 c. f3 d' @  if( !rst )
6 {  T; w% a4 \  Z8 X- M
. q. ?( o8 v; x3 e3 q   cnt<=16'b0;
, J5 [( c3 D! S) v4 C8 p! g3 |# W2 u/ r
  else
& [; u- ]/ o! `% ^- S* L2 M6 q9 U
$ v% Q% M! @' |! n3 W   cnt<=cnt+3'b1;+ o. W1 n, B+ B& l
5 _3 [! P' H% b. D
wire clk_slow = cnt[24] ;# ~! t7 d' d( u% o3 v4 T
0 i# x( f% L% n: S7 A
always @ ( posedge clk_slow or negedge rst )
+ s9 O0 K$ J( l9 H1 ]* d
! ~9 j  N; ~) E  if( !rst ). T7 R; c( {' C
; N9 L' X/ l% Q( R0 `9 u
   state<=3'b000;+ h( Y* z" |- n! }
: J+ v+ t6 T4 D9 L* V8 {7 T* a
  else
4 P( a. H- b) A6 ]
2 W5 Z) @  ~7 U/ p3 e   state<=state+3'b001;
& x( H; R5 N: Q! b" a5 V/ K3 n  g- [4 Y
always @ ( posedge clk_slow or negedge rst )
5 [6 P% D; `& i4 C! E
1 N& h/ q4 K0 G3 K' B9 s  if( !rst )  n+ k' a* P6 I6 L" [& b
3 ^+ V8 _! |, _' I
   begin# w) d8 z: Y: j0 B$ O

$ c1 w$ B* L$ A  Z1 B* f    sn<=4'b0;
, R! y8 |7 w. O+ T
. Q2 j# c5 D4 _8 O; c8 b0 s9 a; J! N    data<=8'b0;
9 q9 Q4 F2 S) S
4 @+ U1 b/ ~5 V% K8 [   end
: ?, N" B8 X! s: P3 O; {4 ?& @3 ?. m/ u7 i1 ?% [2 f, d+ F% p! G+ @$ Q
  else5 l. P5 C! `  c  ^- f1 I
& N. b/ I. r8 o1 w! E  p7 U
   case(state)' q, d& y1 }/ \- P+ u1 V
$ C* _" Q0 p0 Q) U& P. {9 N( O
    3'b000:
! k. F% h% A, S. v) E
) F4 D( x2 S7 P/ p     begin( u! A: e7 T4 C
* `9 i0 z  t: ]& X6 `5 t
      sn<=4'b0001;
5 N6 O; Y( z1 {0 r# Y$ `, U9 z* }4 Z/ Y
      data<=8'b0110_0000; 4 e4 q7 x# N+ q/ J; q

: ]3 F% r: `: Z* F. o1 i. N     end: o7 ~8 P+ \  ]  ^4 D9 u" }0 i" f
3 @6 S$ u- K  I3 _2 b
    3'b001:
$ b1 X8 E! z$ Q$ x, G9 h' \. B& R" F; _7 g& I) M4 D7 S
     begin
3 u. Q- v& C& B1 V0 P3 i3 c$ r/ ~# z4 I( I( U
      sn<=4'b0010;
; V+ S2 i. r' o
- K4 N) W8 D" U. K! v. D! l% i      data<=8'b1101_1010;( Q% B7 l7 t0 I, H9 {
% K: m) t9 Y7 w4 y; I
     end
: H) J0 g* H1 j6 V( _1 _& ~' C6 U4 c2 ~. J: g# z4 j5 A# v* J9 u
    3'b010:  k& B  [9 w! Q6 c4 b
* A2 [, y7 r4 j( c  K; L, Z
     begin
9 k. c  W2 y& ]( c& L. i; o1 A" E3 p; q' h9 z; I4 _7 r
      sn<=4'b0100;# h! J& M: H. D8 }* L

) e+ K) `+ h3 G) d0 M6 @0 y, p      data<=8'b1111_0010;/ e% u' P( q: k3 f

: m" ~9 z+ ^0 F) J4 P' e     end
" Y2 Q: W" m' ~' F* q+ s
+ r6 @- g1 Q5 B% i! u, n    3'b011:
9 C0 ~  d! u5 w/ f1 [- F- @
8 e4 w. z0 Z3 U4 L; W# O     begin  ~* J3 u. z0 Q# B8 T4 G. e

0 @' A& r3 _. |& I; b8 X' j      sn<=4'b1000;# z6 v' n5 w& e. L& m

" Q$ |4 Z! Y8 T  ~9 c, G! {      data<=8'b0110_0110;
  l9 r. B7 [- h+ G2 E  v- [$ R
7 b5 q" j, p+ _     end( _/ W+ T" w: P# d* j' |
. ]7 J* P% M9 U3 E2 v/ B% a
      3'b100:2 y3 n9 t, U- L- R: D! t, E* w

  C  k. ]9 a4 Y/ T% R     begin
! Y8 f* }$ X9 h0 d0 B
/ ]% I$ u# o- F3 Q9 E4 O      sn<=4'b0001;  e8 P: j5 o& s6 E7 `
/ H! p/ h9 E0 s. c- l
      data<=8'b1011_0110;$ F% X+ p' r9 \  x7 ^. ^) o
% r; l2 V! P4 I5 G
     end
& J. Q; q% J# W  q$ v6 }4 _
; m7 B' K7 u, B! G    3'b101:
; ]$ q; t" y5 y7 f* b
- a% _; l, L- A$ z/ z, x5 l4 N     begin
/ J7 @' M- l! h; N! t; a; }3 A2 |4 d& B
      sn<=4'b0010;! L' X- R5 d! o6 [1 I. n. Z

: g) z9 M6 O2 v      data<=8'b1011_1110;
8 ?7 D" v' T4 ~" g5 w& n
$ z- m  j5 g9 B. f9 _0 I5 X2 T     end6 |) v* L. Y% J* v5 V2 z, m( H+ K/ Z

. S: w  d# c3 K- c, E$ l1 t    3'b110:
0 m' X6 H9 o: V  s( f$ q7 }5 h/ m9 q( r' @  d
     begin
: \& k& f! h3 n* E8 j2 ^7 x( Z! D6 e  B4 D- d; K$ a9 n' V
      sn<=4'b0100;% O! Z8 I; f7 l- s! y. V

% G! F6 y! n3 `% u1 Y$ C, [      data<=8'b1110_0000;
9 {# v' y) N, G( e) C0 e1 [' _7 a. ?5 S7 B' y$ V; I& a) }
     end  |0 j% c' |, \6 X; p. C8 x2 p3 w

/ t% B6 }% A- z$ i/ b+ B8 P    3'b111:
- m3 y2 i/ C+ W7 T" `# Y) U( t% p5 S
     begin  L6 @# [$ ]) K# j8 t

: E1 o7 u  \$ b% ~2 r! y6 r      sn<=4'b1000;; U3 S' N7 G2 ^$ s( D  v

0 N+ [3 y. M" ~6 D4 v      data<=8'b1111_1110;
! r2 M8 ^- D0 ~3 B' F1 p; M" o
1 ~4 J/ f& Z$ \5 b* p   9 z. [* o9 u- s4 ^* F

; W" R* f' |0 g* [0 p     end
9 S0 T% R, r) U" {: \) l$ W1 O% [0 @: ^1 c0 R0 f
   endcase
+ u) j6 s" I( P! ~6 U3 w) p3 e$ o3 w# n7 H* x' ^" n4 E' A
endmodule7 q: d5 B& D( _! L5 m
5 A1 H( U  _& V7 I. h+ C5 a% n$ c
这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?
* e" ]+ j0 l- O/ x. O& ^4 U6 M

该用户从未签到

6#
 楼主| 发表于 2012-7-18 09:12 | 只看该作者
huangzj 发表于 2012-7-13 08:35 4 \2 v! U: w! ~3 o) f% _( B1 ~
教训表明,你没有认真熟悉这款FPGA就使用错误的方案,
; g; j, B4 Q6 G5 u( i
确实,才开始入手这个东西,走了弯路

该用户从未签到

7#
 楼主| 发表于 2012-7-18 09:13 | 只看该作者
chenbingen 发表于 2012-7-15 15:33 ; p- r! G" Z4 ?8 f
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?
& [! S4 x/ l9 A  |! ~& W( Q$ X  r; E/ d' b. f
module s4_7seg(clk,rs ...
* x' k9 t2 ~3 K0 p
第四个数码管有问题!

该用户从未签到

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

该用户从未签到

9#
 楼主| 发表于 2012-7-20 11:47 | 只看该作者
绝。对 发表于 2012-7-19 09:21
' n! @% O/ K' D6 J! `硬件可能要重新设计了
+ X9 e6 n8 L6 ~. f
已经重新设计了- B' H" j5 ^/ D4 o' [! d
OK了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-21 04:16 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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