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

FPGA的实践错误——请教

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-3 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
本帖最后由 天夜魅 于 2019-9-3 15:15 编辑
7 q- U0 h1 C9 Z& V& f1 @  E4 z) F: j. N9 w# _# c& Z
    本人FPGA初学者一枚,近期在做项目时,出现以下情况,希望各路大神能够解惑谢谢!!!
1 b4 p0 Y" G( p, h& i7 F+ i: }
, `5 Y  z& c( _% v4 c本次主要制作一个16个并排的LED跑马灯:
- q2 d+ c8 t. V. ?/ _, w1,异步复位,复位时为全亮。
: N5 E$ T) k2 [; N2,4种模式(pat)00——左循环,01——右循环,10——交叉闪烁,11——全亮全灭闪烁* t! ]; X; y6 M$ Z. _( \
3,4个阶段的速度等级。& Q& W! Z! j$ g6 a- f. G

) j+ \! R* y  |1 k出现问题:; G, a0 u/ z) ^: q& @& l
图片出不来了,问题在一楼
7 S6 h1 Y: ?( w* u
/ A& L' ?, j1 A* e' F  Q* P( D+ X3 X" \8 I

0 o. v( Y  \' `3 ~' u- F# _FGPA代码如下:0 M- Z1 I8 C8 u
1,主模块:+ M6 [' n. r' W4 K: S
) f, F7 e% i2 I% @  f
module more_light(rst,clk,pat,spe,light);
* N, X! [0 _4 G/ c- e    ' x; r- b' z8 r6 O. l! D
    input rst,clk;
% v3 W5 ]- U: a9 {    input [1:0] pat;  |% X& n! L- M  u' {- G
    input [1:0] spe;# Z" ?5 s- t+ X9 g/ g' G  y9 I5 J
    output [15:0]light;
1 Y7 D; m) o& _, N5 }) [# T    reg [15:0]light;
. A" K7 h4 M; q* |& p' i    //wire andout1,andout2,andout3,andout4;/ v& l: v& u5 I! _
    wire out1,out2,out3,out4;
, _* E9 b/ Z8 D; h2 X( O   
( g7 a8 J& i- ?    5 M- L. O( N$ K3 z; L9 {: I
    /*and u1(!pat[1],!pat[0],andout1);
/ \0 s' N: \; X$ o, A5 ]    and u2(!pat[1],pat[0],andout2);4 L4 R) f1 k7 E+ [& O" G
    and u3(pat[1],!pat[0],andout3);# }/ h8 o( |- F3 p1 z/ t
    and u4(pat[1],pat[0],andout4);*/
* [( }9 r+ E) O    /*assign andout1=(~pat[1])&(~pat[0]);
2 ^$ y* [2 [2 H7 C" f" d    assign andout2=(~pat[1])&(pat[0]);4 _1 ]& _& j# X2 @, ?6 Q0 _
    assign andout3=(pat[1])&(~pat[0]);. X2 B1 r/ K" F: W. z5 w
    assign andout4=(pat[1])&(pat[0]);*/! P( P0 S  y! K& m& D2 D
    ! r# E4 w2 \9 L1 }" o. {8 Q
    shift_reg1 u5(.rst(rst),.clk(clk),.out(out1));. j0 }' A% n: R" P; X: u4 V0 f
    shift_reg2 u6(.rst(rst),.clk(clk),.out(out2));
8 J9 R4 W) T- @3 n% C& X    shift_reg3 u7(.rst(rst),.clk(clk),.out(out3));
' ^' B$ P  k' U7 ]  Y    //shift_reg4 u8(.rst(andout4),.clk(clk),.out(out4));    , F7 l, g9 ^. E9 m. u
    5 _  {+ t  e  i( O& }1 I$ X+ T
    always @(rst,pat,spe)
! U9 s7 K0 \7 v+ G        if(!rst)2 t( y( z- q- p) j4 Y' r3 E) ^$ A
            light <= 16'b1111_1111_1111_1111;# N. i4 m; x* p2 z0 q3 Z% C
        else
% g  \+ u9 X* L+ E        if(pat==2'b00)
9 F" ?  W/ z2 W                case(spe)
/ N8 a+ R  e8 v% {' a) o                    2'b00:     #10 light=out1;
* b8 x' U+ E/ q$ ^* _$ l                    2'b01:    #20 light=out1;& D  D; l! x5 p. S: X7 d
                    2'b10:    #40 light=out1;3 f' K5 d) k7 u& z
                    2'b11:    #80 light=out1;5 n$ }3 {1 G8 [- E4 s
                endcase. O' Y/ Q% [2 p  W* w  T
        else
/ G- B9 [0 E, u# d8 A2 ~        if(pat==2'b01)
# \. L) k0 Y0 n                case(spe)
. N& c" y) o+ {                    2'b00:     #10 light=out2;5 L6 S( q6 F3 d4 S
                    2'b01:    #20 light=out2;, v# h' u$ H  S5 I* n0 h( R) H# I
                    2'b10:    #40 light=out2;
4 c' V4 d  }$ H6 ]                    2'b11:    #80 light=out2;
: L$ \. d, v5 E; ^0 T' e                endcase
# p2 Y* s8 B) |8 d" H7 i: A, u        else
* \  s2 o0 K' b        if(pat==2'b10) . I8 u6 j: z' j; C
                case(spe)4 l& w7 G& u+ ?  x% N# A+ G
                    2'b00:     #10 light=out3;
2 J# q# a. X) l, P                    2'b01:    #20 light=out3;
& U4 j( _" H0 C                    2'b10:    #40 light=out3;
5 _* n2 V! H$ ?  f! ^# x: ~                    2'b11:    #80 light=out3;& v, x, ]) z+ a# S7 {
                endcase, ^$ ?& A4 K  e
        else / e  `% @! e+ V' M6 r( d4 |, X
        if(pat==2'b11)            
# C1 k1 q0 h. W0 h                case(spe)
' O  i. i1 P9 b( \+ N1 C" [2 R                    2'b00:     #10 light=~light;( _) l' k! }9 n
                    2'b01:    #20 light=~light;0 I. f7 i  k# Q. r  P* a1 t
                    2'b10:    #40 light=~light;
4 b# J+ D3 u$ P2 c; t, m- d$ S0 j                    2'b11:    #80 light=~light;
! K% S' c4 y$ h. f  r                endcase8 k1 w0 |3 ]# S/ e

7 b9 I7 F% {) y! |endmodule   
8 w4 I" ~% K( S4 }8 f0 u0 z, m! d. e; i  O. W! a
7 ]; t  m. J6 E# d* p8 V
( ?/ a+ \+ w# P( x& A
2分模块:1 V3 U3 [; w* C) ]  g- j
1.1
! w) U8 v; z' e* @/ u
& d. T* K& k& |/ H% w! E1 pmodule shift_reg1(rst,clk,out);6 F' w  i3 b8 n/ w
, d: o) n1 n0 E# n% n, I
    input rst,clk;
' A$ ]2 f+ V: m7 X    output [15:0]out;, y6 i1 q! R+ U3 d. g
    reg [15:0]out;" F; Q& I" S1 r: O, {1 H
   
7 H/ \6 P. J+ m" @    always @ (posedge clk,negedge rst)
( \; j$ n$ w7 {9 R. t* b        * W2 E* t% {7 w
            if (!rst)
+ e+ e6 n4 u, O0 C% G                out=16'b0000_0000_0000_0001;' B" v7 U  a5 H4 M/ u2 [
            else
( R6 M/ O1 ~) u5 n                out={out[14:0],out[15]};( d# E! m6 f, k' M$ O
        7 V5 p9 u1 Y( @( D& L
endmodule
" N) D, G. N$ A" x4 V' i8 }7 H: c8 p" S' R
! |, o% A! S, I! D3 U' x
1.2, N% e+ {9 J" N8 q! O3 _  }' b
module shift_reg2(rst,clk,out);6 v: j" l' n1 L* E% z

2 {) }! l' x2 ?* K/ `% k1 S! v    input rst,clk;
7 m5 j. h- X" h( j, f1 z+ i    output [15:0]out;
! i- b4 {+ r# u, j4 i    reg [15:0]out;
* q( ~  g' x9 U( P* a   
0 a! j/ e& ^9 c8 v* F9 y    always@(posedge clk,negedge rst)
+ Z, Q8 D. D" I/ j7 _6 {        if (!rst)
4 \& b+ Q" i2 O  a6 s  Z% _            out=16'b1000_0000_0000_0000;
$ d1 z8 M8 E* }8 w, C        else 9 L) T3 w: R  |2 [
            out={out[15:1],out[0]};0 N2 J. ?* M3 V- U8 K
            
$ r1 p- W0 q4 K9 j" h- l/ Vendmodule - q3 Q8 K0 \" j" C! Q$ N) m: K- F
- B! o1 `! k. e2 j3 C) l. r

" l8 j" h" h. U0 o* O0 t" t" o9 a1.3! m& u2 k$ o6 T4 z, D7 b0 _
module shift_reg3(rst,clk,out);' Z' }6 H7 v" Z! c
0 `5 n  C; {0 w3 g
    input rst,clk;9 N3 E5 K' F2 U5 G
    output [15:0]out;$ o  |6 N5 A  D- J' e% ?
    reg [15:0]out;
0 V, d, H+ {" m- y    - k+ Q6 N3 \+ u4 k3 R* F1 w9 Z
    always@(posedge clk,negedge rst)
  J$ w  z+ E( M" q/ J* @        if (!rst)
$ Q; X# W9 Q4 h4 p4 q. `            out=16'b1010_1010_1010_1010;; a" o  k2 C" _& {& d- ~- o
        else
# `' T, ?" I$ _6 V3 @" @8 T            out={out[15:1],out[0]};9 E* p$ T; J* q/ u  G
            
, T5 |+ W" g  Z9 k- Wendmodule
3 G- F1 _/ {/ X* [) m& g& q% E
! Y  p6 o* R! X5 p9 M
7 q6 n! m1 b$ h6 [# i

该用户从未签到

2#
 楼主| 发表于 2019-9-3 15:14 | 只看该作者
% r0 I: S6 \( {8 s* p
*** Fatal Error: Stack Overflow
' R8 K3 Y) X; |; xModule: quartus_map.exe: ^, t) s; A- D1 x
Stack Trace:. q9 T3 p( ^& F  S, g2 ~3 t
    0x18955: MLS_INTERFACE::clean_up + 0x15cb5 1 {' X. P3 y+ {- ?
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
, c* U* v0 E' S4 B  M    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
; I4 }8 a- c& p3 Y; `! s. x, s    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ( W' h. t  z1 F+ e# f" q5 f1 `* o
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 9 `  C* ~3 @6 i" L1 i  x. G0 K! m& C
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def - k8 `6 b% o8 p8 k- J- @( F
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def   P+ e6 {% u* U& B  L# Q
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
6 Y2 Q  j: Q/ y! z    0x18a8f: MLS_INTERFACE::clean_up + 0x15def & L5 S) z9 f2 h/ s
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
! v$ y6 f' S" _( T3 ^2 \    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
, U& R8 T9 c; m# c, k    0x18a8f: MLS_INTERFACE::clean_up + 0x15def : N/ j* ?% e+ a4 z( ]
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 5 b6 Y; B  A+ W) W0 }9 H# j) G! a
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
4 E* A( _- p, s0 a" W    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
1 x. k; a( r- m    0x18a8f: MLS_INTERFACE::clean_up + 0x15def + M  W2 y& R9 @# L$ w
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
+ a$ ^6 i$ ]* Y  Y; m    0x18a8f: MLS_INTERFACE::clean_up + 0x15def : n7 Z8 Y- |* B
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ; G0 P8 Q) l6 I; l! ~
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 0 q* R, }% T' {9 p3 [3 H
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
$ O$ ~8 H# f3 Q# H    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
0 U; B6 q0 u: l0 N    0x18a8f: MLS_INTERFACE::clean_up + 0x15def " T1 L4 a5 @0 c8 F' s6 n' w3 h
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
$ p% v9 P! }1 ^3 ~3 u    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
* x8 H- ~/ }4 C1 G7 p7 R: j: h$ I    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 4 r. x1 W, B# _5 g% a
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def % H) y8 @# a# j- I! S  S" p* r0 ^
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
$ L/ X9 k4 Y# L% m, I. f    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ) P/ ?/ n+ e) ^3 u) ]7 U+ E  g0 D! \
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
4 i0 q, @" ?- @* i" U3 C0 ]    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ; N; B) B7 L" m. o1 y- p
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 6 z. v! ?7 H- F: p
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 5 E- H' M% h6 T% |8 ^/ P+ v, C4 c" E
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
) A% Z2 P5 R8 ]" l+ F: B    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
$ T: a/ b8 ~* e) N: w% T4 K    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ( [0 {$ Y9 B7 {$ q& [. p6 q
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 7 Y2 G0 w7 L3 x% e2 K5 r) r
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 9 K3 o$ {6 R1 H/ N  }
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
9 W& ]* V1 C# @$ [4 ]    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 8 N7 y% L9 i- `$ K2 n
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 0 z: i  N8 x# u3 m' m3 g
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
  S+ m4 j" v6 r7 g1 c( Q" H( x    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
7 \% [3 B% z( C, w    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 3 q, _9 f$ F  i1 r
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def $ {; Y7 k5 p( g5 V3 z
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
4 T+ a: _- E  W5 J    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
, c- j- c# g" Q" b  H/ q- f    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 7 Y9 X5 |; d3 i+ |& ^# o
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
2 {1 k9 P8 k" Y0 N, l; X  c. m    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 1 Y( @2 m- \/ z
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
" o; ^8 [, B$ ^! U( y    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
( N. }% Q0 c# c* |5 r* u$ f1 Z    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
4 l  |4 Z7 W2 c' A4 V  m    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
4 U* B9 k! d0 I& p    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
+ e% T' W1 a5 Y+ e! S8 L4 A    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
" r, S+ f3 M+ m( z. k" _7 O% P6 U    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 9 s0 v4 I% x; D( C
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def   R+ G6 H+ i( a9 ^- X7 H
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
8 s' v. c0 y/ N    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 6 S; C# s: ^. r( r
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
& {. m- a# u9 \' |: ]% i    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ) G: n; U. k7 w8 W. G
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def + m. A' L' D/ W! Y8 y5 W; u$ P8 o: u2 ]
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
# j) `' D  W8 T    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
2 S6 U& s2 u$ x5 P6 G# [6 f9 K    0x18a8f: MLS_INTERFACE::clean_up + 0x15def " G; R/ M# \" N- S
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def % Y, i3 }- U9 H3 D; r6 T" }8 a) a5 C
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def - a8 y4 @" x; y6 W8 _, c' }
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ; T: I2 A1 N0 t
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 1 x/ p4 l: H0 Q1 E: G$ H) M" @# x
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ' T, ^/ l% W) \2 P  }8 c6 C* o$ b
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def $ k; I+ T9 ~" L6 G/ Q* r1 I
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
  ?7 g3 v: }6 n$ B    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 3 Q. e3 \2 W1 T" D: u4 M3 J6 {
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ; z: Q# _; F  V5 v% R* ~! A* c$ M
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ! l: r; j2 O  G2 n) D- h( ?
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ) t- [6 J: `5 A& p. G
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
2 l( m) Y% r& z9 M) B: N7 M; H    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 2 @  r" F5 h1 }2 E4 |. F8 D
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def % |3 a5 S) ^! y( [4 t3 l
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def + @" z0 y2 d0 k8 v
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
" @& p0 V1 o& U' {6 E. H, q2 \    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
- q2 e5 Z& A5 O" I# r) Y$ {    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
# d, d, w+ f4 X6 U. Z5 \; }7 e    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
' s* V  ?7 k5 Z! F% [    0x18a8f: MLS_INTERFACE::clean_up + 0x15def & G; ~; e1 ?+ w% d' l+ j7 Y
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
2 C9 t% i$ F! e8 w8 [    0x18a8f: MLS_INTERFACE::clean_up + 0x15def ; D' j, G: v' P3 S
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 1 W7 e! D2 @4 ?4 w
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def : n( z: s# a+ f! w+ T
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
' R4 B" h$ w( b3 [7 @5 Y- Y    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
5 S; j( e2 o6 [- {, o. d    0x18a8f: MLS_INTERFACE::clean_up + 0x15def   c4 X! ?% v" r/ E# @! l- J
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def " z( A5 `) w' K+ N* X, Y/ _+ r
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def * n) |% V- S9 Q0 s- ~3 n; ]. R
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
2 S7 N5 n$ i0 N' a/ k    0x18a8f: MLS_INTERFACE::clean_up + 0x15def   b' x+ _; e- w/ t
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def
6 J- U7 ^. S" d% S, ?    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 9 X+ n" H+ ]$ D9 y% G- U3 K
    0x18a8f: MLS_INTERFACE::clean_up + 0x15def 2 {6 f5 L: H. E) m4 U9 [% h9 i

; Y: Z2 p( K' j6 g1 r% x9 oEnd-trace
) [; Y0 @9 f$ `9 R/ ]3 k$ h8 M
1 E/ S  C% V/ Q# TQuartus II 64-Bit Version 13.1.0 Build 162 10/23/2013 SJ Full Version$ t. R0 k8 v6 Z! c0 f0 {- G% |
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-13 01:18 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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