Chip123 科技應用創新平台
標題:
用VHDL把一個ALU改成三態的MUX,想請教三態的function是如何描述?
[打印本頁]
作者:
day766
時間:
2007-9-11 10:39 PM
標題:
用VHDL把一個ALU改成三態的MUX,想請教三態的function是如何描述?
小弟最近要用VHDL把一個ALU改成三態的MUX,但不知道三態的function是如何描述。
! R0 ], w/ C) y" Y! Q
因此可否麻煩版眾提供個範例,或是提點一下三態的描述方式。
作者:
day766
時間:
2007-9-13 05:14 PM
標題:
回復 #1 day766 的帖子
Alu的 input為rum_A[15,0], rum_B[15,0], ALUs_dp[1,0], jpsign
1 q( ~; W! q4 U% Z" i4 B
output為ALUz, ALUout[15,0]
& t g- e5 E ^0 d
2 p6 g. H$ O L% e& o% c
function為
; ?2 Q4 U* H5 A9 R! {" D) s
. W! g7 P. A6 T- v! z
00 A →Res
) o: F3 s0 A% V6 c/ |! ]
01 B →Res
2 t( u+ `; s% l4 \* a
10 A+B→Res
c. t9 R. o8 l7 O& n+ A1 M, }
11 A-B→Res
" ?/ v& v* t! i; Q2 B. y* T
5 o6 x/ y8 ]* t X
想要讓一些訊號(00,01)不經過ALU,等於是用三態的方式處理。
3 A# p. j5 m- M2 f: T* J
! B9 b3 ]$ K, `
我試寫為
# h: `5 O3 u9 V; D* I
v. g6 W: ?/ E
if (ALUs_dp[1])=1
1 n5 m- U2 I+ z# C* }* B+ s3 h
then
! d5 n I; W8 Z6 k$ k
begin
: I z1 C0 g# z# i
if ALUs_dp[0]==1
/ ?2 ~+ E- |/ ?+ y
then
; V# Z& _4 Q; H9 q8 ?
Res <= A+B
8 N! G7 `6 B' l t8 X$ L3 t
else
- K% f& L5 h! d) E. `0 W, O2 r2 m6 u* a
Res <= A-B
7 C6 k0 U/ z" x* \
end
& r3 d8 B$ g6 ~( X' G: X
else
M1 N1 p, ?2 }' r" U4 k [6 d
begin
$ ], ^2 D$ v9 r. Z* w
if ALUs_dp[0]==1
' q+ w) b K8 ?" e
then
2 {% Q3 q0 f8 W- `7 v
Res <= A
' U' M3 M3 J" |& g; W. t' C
else
\- ]" Y% j! i* _+ L8 H; {
Res <= B
% J- L5 Y4 K+ ]/ u
end
1 ^/ p; n# g1 T: P" W' C, }
end
" a1 K) e) z4 ~0 u7 s$ \ ?. U, n
T# b1 g( N7 b4 y
只是不知道這樣對不對?或是還有其他沒想到的地方嗎?
' W8 m% S) w9 X4 N) m. n0 k5 h7 p* t
麻煩板上高人了
作者:
tommywgt
時間:
2007-9-19 08:12 PM
不建議在CODE內放三態電路
$ J# X+ z9 y- b* N ~) b' N1 p
' S1 V( S8 X* Q' g6 `5 h
大部分的case都可以用mux解決掉吧
歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/)
Powered by Discuz! X3.2