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% cfunction為; ?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  →Res2 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: ?/ Eif (ALUs_dp[1])=1
1 n5 m- U2 I+ z# C* }* B+ s3 hthen! 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
        then2 {% 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