Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 23121|回復: 8
打印 上一主題 下一主題

[問題求助] verilog 跑馬燈問題

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2012-7-19 13:42:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請問各位大大:我跑以下程式 出現了錯誤 它說 near "always": syntax error , unexpected always , expecting ' : ' or ' ,  ' 我那裡有語法有錯,請大大為我解答謝謝!
# e- \8 f) A7 [$ Z$ o& i1 `  [& N% j6 {8 K4 t' T
module led_shift(clk,led);+ r! O+ ~7 g8 W1 x* X2 |; H0 B

) A; ~" z+ t6 Jinput clk;
; W7 X# u$ k& R* ~) C+ q! F$ B  K, p+ o, n/ z
input reset;
/ T, u  X! I1 E" V! l, l4 [& v3 u2 t( N% c/ o; m
output [7:0]led;
$ i3 |/ q8 }7 z' c9 `, b& W8 s' G, Q9 Z0 M7 h# M1 e
reg [3:0]rdd;1 @, x, R$ H; f5 x8 N0 h& k! k
# |9 ~9 F$ d  p7 M
reg [7:0]led;) D7 n0 h7 j+ E0 X
* Z" ~$ j( ^& |0 T
reg [2:0]cont
1 G& R, g; a' M) l: Q) E; p, @4 s0 X1 B8 T( J
always@(posedge reset)( k: y" l# a0 J8 _+ S* r; v1 k- E
, N1 n3 w( r( z4 v
begin
9 r2 ]. V+ e. ~   cont=0;
# H5 G7 d' N7 y$ a8 a* Rend
- y* R# A1 I$ @8 ^  x( O: V
$ a. K8 I9 u/ g, c4 Zalways@(posedge clk)* G- {& z; Z+ _2 b+ q  g' j4 o, w+ M
1 z9 _% s2 q1 h3 v: z# m
begin
. b! E/ X' W* v0 {. q; i% r: @" @& o6 J, j  V5 \, b3 h8 K
case(cont)% y+ K# X: u/ o4 Q

6 A' x. |2 \8 V- W2'b000:begin - ^0 z( V6 U1 G  E* o: b
  led=8'b00000001;" j- p  O  {8 H6 q' P
  end# y9 |9 _0 c6 x7 O3 R! \5 W' E
2'b001:begin
: v. z% H* r2 |  led=8'b00000010;1 e; Y+ ], `; l# O& }2 X: a$ W
  end
% C5 i8 j- K: w9 I6 X$ O2'b010:begin
; r6 G2 b" H+ x, C  led=8'b00000100;3 N" H+ d0 C, i/ l$ M
  end
, [! j1 I4 S. `/ v; I* V2'b011:begin4 |6 v/ T1 h! G6 a* r- M( u
  led=8'b00001000;
, B3 k% K8 b( p3 z  end2 P& Y/ R' c: I0 z  N0 d
2'b100:begin
  N$ Q% O+ _* l* H# ~- F5 p  led=8'b00010000;' ~' k3 Q8 Z' h8 b+ K5 s) l8 ?7 ~/ i
  end
" W0 C, u5 n  U; c$ P" ?' ?8 N: h1 S2'b101:begin
6 {, ~4 l, P7 Y5 k) C, G6 p  led=8'b00100000;6 u8 E1 }; M' q/ Z4 S
  end1 Y% N4 D8 O$ O7 l
2'b110:begin9 R' _% T0 U" R# F! g3 D: d
  led=8'b01000000;) v! ~$ N: V! I, l" M
  end! F7 M* M( q$ u" s. P+ ~4 i& h
2'b111:begin
2 [- n* ~; V+ R9 j0 m) w' V0 b' ]  led=8'b10000000;1 R! @) T/ l6 v7 ]# h% a7 [  J
  end1 x1 V* K, U. t  D
6 V* j& F. Y6 H9 j: Z4 |' O. H
  endcase  
! x7 X, X+ \3 g: y  O3 b
: y; C8 \( n+ l- _% F$ b  if(cont!=7); W+ R8 j: j. Y# C7 t4 [4 F
     begin
, Y  P8 P& W% [      cont=cont+1;
; m) O  e0 O/ C" `" d" u     end
7 A9 E8 o4 ~2 v; N7 N8 X    else4 E7 Q/ Q4 q6 q% T$ c
     begin
8 f3 l0 g( s" g5 A4 N+ U      cont=0;
) q6 N/ M; G& A( E1 n' ^     end. w5 o# C2 q) O" B3 W
end
. O: s9 f2 l, v+ F# _3 v8 Sendmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2012-7-26 22:57:19 | 只看該作者
本帖最後由 card_4_girt 於 2012-7-26 11:24 PM 編輯   }/ l, @' e" m. _9 |

/ }8 _9 m# h3 Q0 h1 O9 `lucky大,感覺您的程式有些錯誤,在此我更正一下,您參考看看3 t) _* Z6 ?4 s. H: [
首先關於您提到的Syntax錯誤,應該是您忘記把reg [2:0] cont後面加上";"所致
; k9 E5 n* d, O- X. {( X那個錯誤的意思是在always區塊附近少了分號 (對不同行或不同類型輸出入之分界)或逗號(對相同類型的輸出入分界)" z* p9 ?% K) W2 q8 w/ V

7 B+ W. g; {5 R2 j8 F! wmodule led_shift(clk,reset,led);//reset應該要加入input當會比較好,比較合理1 Y& |1 s4 J9 O# v' m( `
input clk;& `& Z, c4 j- t* |4 Y3 z+ }, U
input reset;0 L6 a7 k+ N' y- r
output [7:0] led;- r) K- K9 ~5 k4 j
reg [3:0] rdd; //rdd如果沒用到就不用設3 L7 s, M' h2 p3 f7 C! h
reg [7:0] led;
+ s0 H2 B/ {' @1 Greg [2:0] cont; //記得要加分號
6 l* G1 Z% \; a; Y8 E1 V/ Oalways@(posedge clk) //同步計數程序宣告+ t* z# S( x# }  J! s" A
  begin' {$ y# @$ ]  r" k4 d9 O1 l
      if (reset) cont = 0;
: u$ \' q" K$ w. I7 ^      else cont = cont + 1;
, U( f- L0 `( |% G8 k  end# i, Y' v- \0 X! `8 i! L# h- G& s
  3 z" Z4 s9 Q( p/ X  w0 V- P; P
always@(posedge clk)
, k- v; j, M# o4 B  ]  begin6 d5 t8 u- |+ B
      case(cont)
! U+ R8 i: \+ l" h      3'b000 : led = 8'b00000001; //cont為3 bit register,不是2 bit,後面的也應一併更改
$ [, f0 G( Y* e1 V  U9 a      3'b001 : led = 8'b00000010;
0 @3 n7 N% t  X. {8 W1 D" ]# O- O- r      3'b010 : led = 8'b00000100;
) t* o3 V0 c. H      3'b011 : led = 8'b00001000;
* C7 D" F5 ?6 K" r: I      3'b100 : led = 8'b00010000;1 q; U% N% X1 I( D: }8 t6 ~+ W
      3'b101 : led = 8'b00100000;$ F8 @9 _; m  b5 u7 e4 m4 i
      3'b110 : led = 8'b01000000;
( ?% [% t( {9 O6 c8 N      3'b111 : led = 8'b10000000;
0 X: ?& ?" O4 R. @1 w6 ~/ i      default : led = 8'b00000000; //設default避免出現無法預期的值,使用case最好要有,以防萬一
: B  b) A: J0 G* h, d0 a      endcase
: p4 f2 O- y* e- Q& A/ `- v  end4 x  q# k3 V/ K! B- y
& _( T+ u% V! ?8 I5 H- e8 I
endmodule1 e' l( i: b9 s) r+ @& c

+ K  o' Q2 |( a3 [* _6 i6 f& H4 v( Z順便附上電路與模擬檔案! |; M# H/ {4 G
電路檔(led_shift.v)與模擬檔(test_led_shift.v):
* x: M4 g$ G! y) o' _; n4 d% _  A) w& ?$ L8 J  N
模擬結果:
- a! d* D9 B0 s(這裡reset = 1超過1個clock週期[也可不要超過1個clock週期],所以在2週期後才開始計數,reset = 0之後便每過一個clock週期就上數一次)
5 J% u4 k* A7 T3 z2 S# \* a. ^

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x

評分

參與人數 1感謝 +10 收起 理由
lucky + 10 非常感謝

查看全部評分

3#
 樓主| 發表於 2012-7-27 09:34:45 | 只看該作者
回復 2# card_4_girt
" e, F2 ^5 J& ]+ u" V5 |& R/ \, O  @' C+ U; I, ~
大大真的非常謝謝你的解答,我已解決,
8 K8 S5 ]: W. a4 _( C. m2 n. k( E2 |3 p0 N! {: B& D7 y
不過請問大大,不知你有無用過vericomm 這套軟體,因為我用xilinx ise 合成之後再用vericomm 把程式嵌入FPGA 但它出現我的輸出沒有定義,可是我在Xilinx 中的Assign
; B# U9 N  K! Y+ B& ?0 C; [
% y3 X+ r* Z) Y) |7 pPackage pin 早把FPGA的接腳編號打上去了,可是在vericomm還是說我的led 沒有定義!這是為什麼?0 w0 _% @) r8 m' o5 d  f* a
2 _% q; B6 `0 V+ w
其中FPGA有它FPGA 的LED接腳,我把它打上去對應我程式的LED,但卻還是說LED沒定義。
1 H2 l1 G& p3 U  h- |9 u' Y+ n/ R5 h. B
# h# T9 O. u$ v4 g" Y
不知大大有無MSN可否給我讓跟您請教?
4#
 樓主| 發表於 2012-7-27 11:16:39 | 只看該作者
回復 2# card_4_girt
0 P: v, j* j; }; H, u, L0 _$ ?. a& B. _$ P3 Q' `  p
大大,我還有第二個問題,
2 B* X7 k6 Y8 L" H
7 m! w- b; b- y/ A  b, s5 [3 j7 A我的程式在Xilinx ise 執行 在implement Design 中的Place &Route 項目,出現警告,它說明如下
4 N# T3 B( A; `1 L$ |- X+ rWARNINGhysDesignRules:367 - The signal <clk_IBUF> is incomplete. The signal
4 G+ M& p9 Z3 ?5 {4 ~% [/ NWARNINGhysDesignRules:367 - The signal <reset_IBUF> is incomplete. The signal
3 w6 R: k3 ^/ M( O: g# I  W9 n6 C 這些是怎麼回事能請大大幫我解答嗎? 謝謝您
5#
發表於 2012-7-27 11:24:56 | 只看該作者
回復 3# lucky
; i$ o# w5 `. p7 x, Q1 J0 a4 ?2 }% w0 |
抱歉我還沒用過這套軟體$ h$ a* @# v0 O( n4 k$ a2 w3 ]
沒辦法幫你什麼忙
. a' Q7 e" \- E) Y( @你這種問題我還是第一次碰到" U$ e' R( D2 j  l$ F
照理說沒宣告型別或輸出入埠才會有這樣的問題
6#
 樓主| 發表於 2012-7-27 11:26:34 | 只看該作者
回復 5# card_4_girt + R* u% H* U# [2 w5 I7 a- a

0 S  {7 S4 ]- k- H0 V8 U大大:沒關係,真的很感謝了,非常謝謝您。
7#
發表於 2012-7-27 11:46:38 | 只看該作者
本帖最後由 card_4_girt 於 2012-7-27 12:16 PM 編輯
+ E5 w/ m$ c# k9 F  S
& Q7 l# k6 J& ~回復 4# lucky
3 Q/ G5 c8 N. g0 l0 ?2 a4 `, v  u
2 t0 z  Y* Q" J4 V你的這個問題edaboard或Xilinx討論版有人提過
: j% n$ d" }$ R! C似乎是有些port出現loading的問題
# k  _) s; S( L9 ^# O' a
, g; J3 q% V- L8 X
6 L' _) w# u" ?) l6 M7 o可以參考:
( I8 t$ G2 h" v- rhttp://forums.xilinx.com/t5/Spar ... question/td-p/44794 (沒有用到或合成時被刪除)
' X  ^- J5 J* Uhttp://forums.xilinx.com/t5/Spar ... 01-clock/m-p/157910 (增加clock的delay time,讓週期變長)
9 I7 A7 G8 u3 Zhttp://forums.xilinx.com/t5/Hier ... s-design/m-p/202469 (每個always block用不同的clock signal來trigger)
# q  q. v5 j3 o9 ^) Q4 M1 J5 E* G& F# Z7 c  \1 L# ^
http://www.edaboard.com/thread64628.html

評分

參與人數 1感謝 +10 收起 理由
lucky + 10 非常感謝您

查看全部評分

8#
 樓主| 發表於 2012-8-21 09:26:10 | 只看該作者
回復 7# card_4_girt [/b$ V5 j+ N# q( x$ l
# ^8 m  E# [. y" ^: Y
大大謝謝您的幫忙,問題已解決,感謝
9#
發表於 2012-10-1 16:38:19 | 只看該作者
我需要多一點的教學 非常感恩
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-6-16 06:43 PM , Processed in 0.139018 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表