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* \) a
only 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( t
end anew;
/ d$ u! T' X% r& ]/ a0 b
! Z5 q2 ] |' N5 [7 G
architecture wena of anew is
( R; E' ?3 N$ X- T0 ~5 j
begin
! 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 case
3 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