Chip123 科技應用創新平台

標題: 錯誤訊息 [打印本頁]

作者: canoe1114    時間: 2007-7-20 09:03 AM
標題: 錯誤訊息
使用軟體:MAX+plus 2
5 V- v5 j5 A8 u  I& A* I9 n
' c& _. X4 _+ G. a錯誤訊息:warning Line 101:File c:\documents and setting\adminstrator\桌面\anew.vhd:7 ~- X6 L0 g7 _8 d: E, M
Fuond multiple assignmengs to the same singal or signal bit"cutting0"in a Process Statement-
$ v: I+ ^% ^: f2 y; V3 \# r* \) aonly the lase assignment will take effect
8 c; i' n% g8 s& ]) e. N. H2 f0 o- P  ^程式說明:
0 W9 z) a) }% |; Q0 E2 E1 @entity anew is
9 o0 L: V! K: j( Q! h        port ($ {9 k- U; N3 e
                clock:in std_logic;4 a) r2 Z" N0 W; o% O' d/ B+ T
                enable:in std_logic;
8 J8 |) l  [0 @% ~$ Y* F                direction:in std_logic;
* V% _- s2 d& `& s                selection:in std_logic_vector(1 downto 0);- l( e: g5 P! v5 u2 q
                cutting:out std_logic_vector(3 downto 0);$ `5 ^- R$ ?2 r1 Q) V0 M
                phase:out std_logic_vector(3 downto 0));
+ ^4 k) a7 V( tend anew;/ d$ u! T' X% r& ]/ a0 b

! Z5 q2 ]  |' N5 [7 Garchitecture wena of anew is
( R; E' ?3 N$ X- T0 ~5 jbegin ! f# i2 _. u3 }7 ^/ e* P
        process(clock,enable,direction,selection)
5 F& p9 M5 ?. g- `- p# L   # ~$ Z9 x- P" h9 h
        variable countcut2:integer range 0 to 3;
- L4 t8 _7 |3 a1 ?( z) t        variable countcut3:integer range 0 to 7;
0 U+ h3 Q& g+ F& B) A: o  q        variable countcut4:integer range 0 to 15;
8 j5 L$ j$ \; m        variable countphase:integer range 0 to 7;
& l1 L( V8 w* L( n$ L' y        cutting
& \, T0 x+ k5 K- {, N: B+ ^2 ]宣告的四個variable均是對同一個輸出而設定4 a' z$ L+ f9 ^1 G  I: K0 ~
如果 variable countcut1:integer range 0 to 3;則輸出到cutting(1 downto 0)
7 ^/ Y4 w' d& x+ ~, `9 ~& J% Q% f如果 variable countcut2:integer range 0 to 3;則輸出到cutting(2 downto 0)! W, K: H+ [4 M5 |) }( a) x
如果 variable countcut3:integer range 0 to 3;則輸出到cutting(3 downto 0)
9 V% F0 v- O1 N' E以上的指定是用 : case  is  when ...
+ Q/ p' e6 L# N" j4 ?但四種狀態是個別發生
, r( e: ~: Z7 z, C0 q% O& e
: E7 k9 Z5 B1 \% b+ {出現的訊息說不能重覆設定不然只以最後一個設定為準9 l2 k% P/ Q! [2 T2 U* i4 ?6 [

) ?  u+ w$ B- s. |9 A9 @請問有什麼方法可以解決此問題嗎9 ~0 o  u8 i+ O
因為不想設定這麼多支接角(epm7032)6 w: G4 k. b/ o3 K- `: p
也有試過將cutting:out std_logic_vector(3 downto 0);  ~$ M1 {5 R* h2 E& \% ~/ ]* q
再分成用alias的子集合..但也不行
* w" M  f$ R- @5 t$ w
4 Q  n; j( G& {! g( [  c麻煩前輩指導
作者: tommywgt    時間: 2007-7-21 04:05 AM
雖然不是很懂你的問題, 不過我想你可能試著對一個在相同的時間上io port給予不同的值, 在實際的電路會造合成器翻譯時的困擾; \8 q3 k# n9 B
如果同一個io port會有各種不同的輸出時, 最好是把case寫清楚, 而且最好是寫 full case3 g4 q: k, C4 ?' u- G

* H, C6 m' z" m5 K: g! J2 E" m  b另外alias只是為了增加程式的易讀或好維護時用, alias指令並不會直接影響合成器輸出的結果




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2