標題: verilog 寫有限狀態機的問題 [打印本頁] 作者: michael6172 時間: 2010-4-28 04:49 PM 標題: verilog 寫有限狀態機的問題 各位大大6 z& b1 r/ s0 ?: D
( c b K. l% u2 k) V& z9 Y
我使用的是ISE 11.1版,在寫有限狀態機的時候,沒有把所有的狀態寫完, $ q' Q, m0 C) G& ^7 a. f! |$ a ( b8 n9 G' `" c/ o' l! F5 l. u例如,用4bit共16個狀態,我只用到10個狀態,所以就寫10個狀態,) r4 ~& D5 V( s! `
* x N0 S5 u% w! I, v7 C
最後有加上default,這樣的方式寫RTL simulation 的結果是正確的,, L- `2 J+ v6 a' X g1 Q6 q. X
1 y6 b/ ?. u3 f
但是,pose-route simulation 的結果就會有錯誤。& l, f# e5 C/ r- x9 M; H
$ R, G' N- t4 Z B" p$ M" J
不曉得有沒有大大遇到相同的問題,那都是怎麼解決的?9 ~0 \9 h/ s7 G' x. k" ~6 M
& Z( B% t9 Q9 O/ A# y7 D# b
麻煩各位大大分享一下6 S) r2 h) S8 ~
( V! ~( d: y) M謝謝作者: russell 時間: 2010-5-5 08:45 PM
哈囉! 我發訊息給你囉! " G. G) o! E' x% S% i( S- B & T- u' S9 N; H% Q# @需要更多的info. 來幫您解決喔!& m8 F, `' o; K# I) {
. Z5 m" q0 Y$ w2 e russell0916@gmail.com作者: ishoni 時間: 2010-5-10 09:34 PM
有沒有加上這句呢? 6 `: i% z) I) ^6 t; ]0 A( \% Z5 Z" _+ M
"synopsys full_case parallel_case" ; ?2 H. V% Y' X' S" j( E5 m) T7 O4 ]7 H" L8 w. L8 x" w% U
幫助描述你的case status... \+ ]. J, Z3 e % s" c, T3 k; B( D2 K! ?9 Q; O有一篇文章在討論這個: : ]/ d- [9 b' ~( |, g/ X & G5 g' G7 ?0 R9 Q4 N' Qkunalvyas.com/Documents/fullcase%20and%20parallel%20case.pdf作者: johndoedie 時間: 2010-5-30 10:13 PM 回復 1#michael61722 ^6 k1 w8 e7 M5 w3 p4 r( n
2 f* I0 ^2 W( F" P2 m5 a3 {會這樣通常是RTL model的方式不正確導致合成後產生latch,但沒看到code&你也沒詳細描述是怎樣的錯誤,很難找出問題 4 n9 ~/ a- T5 j4 r; z8 j- s) Z+ x. V: Y) W% N( t6 n( C; P
另外model FSM時,個人習慣分成3個always block:6 w+ A$ y: g- r. W' E
" W3 X/ G4 @1 H. d8 y( R; X$ w
1. sequential logic part for state assign / h' W! N. \4 l$ i/ J: S5 { 2. combinational logic part for state transition $ S2 \. D F0 @3 Y# o 3. combinational logic part for control signals. E q9 H, B( U. Z5 j- V
! [" z8 b) Z% v3 \" L, z這樣做的好處是可以讓合成器確切的合出FSM,另外閱讀時也可以很清楚的掌握狀態的改變和每個狀態所要做的事,debug的時候比較方便,希望對你有幫助,FYI。作者: thjan65 時間: 2011-12-29 05:53 PM
樓上建議都是對的.9 h* N4 W$ ~" N* m
但是等project 大了, 或是時間趕, 根本懶得 把 sequential & combinational 分開寫. " a# w4 G" E/ e' C' t p