Chip123 科技應用創新平台

標題: 用VHDL把一個ALU改成三態的MUX,想請教三態的function是如何描述? [打印本頁]

作者: day766    時間: 2007-9-11 10:39 PM
標題: 用VHDL把一個ALU改成三態的MUX,想請教三態的function是如何描述?
小弟最近要用VHDL把一個ALU改成三態的MUX,但不知道三態的function是如何描述。/ e0 v3 y8 H3 J. O1 z' c  G
因此可否麻煩版眾提供個範例,或是提點一下三態的描述方式。
作者: day766    時間: 2007-9-13 05:14 PM
標題: 回復 #1 day766 的帖子
Alu的 input為rum_A[15,0], rum_B[15,0], ALUs_dp[1,0], jpsign
5 {/ f1 g" E2 K" S8 j7 ]0 E     output為ALUz, ALUout[15,0]: N$ i: L" X$ Q+ O
1 m; E1 G: f* X, J
function為
0 c. I1 l' l0 j1 I1 X! Q# l
' W6 @& A0 k: @8 z8 X00  A  →Res
) z7 U4 e* `# {' A- j+ m01  B  →Res
7 N/ |5 t/ J$ d% \. N9 Q1 V10  A+B→Res
/ d2 i! l9 y0 P/ {7 a11  A-B→Res- p/ V( \! G3 B/ y3 U/ F: P

3 G1 Y' D  w0 t' z2 Y: p想要讓一些訊號(00,01)不經過ALU,等於是用三態的方式處理。/ G* O2 \( Y2 K7 {! e

& c7 m6 M5 E1 S( i我試寫為
' y; }; a* n- N3 Q- H' m$ A+ z5 x# X: s! v( C+ a) U4 I6 b
if (ALUs_dp[1])=1
' e. ]# n+ ?: S4 O6 Jthen
6 `! B# W( }/ l. }  S( e' U- p    begin! @- A* k7 U9 H4 ^
        if ALUs_dp[0]==15 p( h  g% N/ R$ d) A) z# Y2 V3 L
        then
, b0 |8 e5 S# @            Res <= A+B
# H' K8 \7 _; P/ w0 Q# J/ Q        else  h2 W7 ^) c: u& o
            Res <= A-B
4 u7 t& T* c( A9 j; M# B& u1 P! n    end
1 @; f2 w+ d0 y. B- r' X- a* D# Zelse* ~3 p7 o% u* K" k9 R8 H
    begin
! R, W" j$ l3 q- ~# o        if ALUs_dp[0]==1
! q" D) y. `- _$ l3 b+ Y  M+ L        then* F  O5 y! o1 i9 B
            Res <= A& o& p, s4 W) x
        else
# B3 `! G3 J& t. Q; h1 I) K            Res <= B7 H7 z4 `! j$ C5 {7 Q
    end
+ p  ]) U$ B, y2 @/ V" L8 Nend
( Z$ L9 ?% a  U9 p5 J  k* R" S
) I  x& c. p0 Z7 W$ V3 X只是不知道這樣對不對?或是還有其他沒想到的地方嗎?4 o! ?, h3 s/ k. Z- U
麻煩板上高人了
作者: tommywgt    時間: 2007-9-19 08:12 PM
不建議在CODE內放三態電路0 ]2 h- V( b3 i- |) d# G! q
& }  @5 B: B; w5 `! E
大部分的case都可以用mux解決掉吧




歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/) Powered by Discuz! X3.2