|
回復 #1 day766 的帖子
Alu的 input為rum_A[15,0], rum_B[15,0], ALUs_dp[1,0], jpsign
Q0 J- y* L3 j output為ALUz, ALUout[15,0]
6 s' A' ?4 g' s, o8 n! c/ ?) ^% |
+ z i" j0 K5 H& |% Zfunction為
8 l* M9 _ y+ e# G" q/ d" }+ l+ Y3 V: d5 c2 W7 P0 i
00 A →Res2 z. r3 S1 y& I/ f* p
01 B →Res( [6 ?- Z9 N$ b# z8 _& q5 \
10 A+B→Res" o2 Q8 `( q. r
11 A-B→Res$ [+ [2 J& m2 u0 L) {, u$ ]9 i0 c
5 I0 Q* M' b1 X$ d0 l! H
想要讓一些訊號(00,01)不經過ALU,等於是用三態的方式處理。$ D4 |) C. `, K/ Q
% g* o/ b% d/ K6 f4 V我試寫為
" l @/ z- |* a, q$ D1 r/ ?5 ]: D- e6 [% o
if (ALUs_dp[1])=13 T% S5 q( ~. j0 @9 Q
then
( R8 V0 z9 |: K( e$ `) K begin+ C f) ]) n+ B7 s1 p" ^
if ALUs_dp[0]==1, d" `/ F5 I, }4 ^
then
1 B+ l! N1 A; W Res <= A+B: x; y# m0 H( y. @ N) F
else) k" V$ y% ~2 V/ F; Y- Z ] a$ ?
Res <= A-B' ?+ |+ o! @$ w2 Z2 O/ [- A
end/ m, c8 m2 {1 Y5 a! E, i
else
5 C# H) K' O6 `3 i3 p3 W# c begin* }! ]% R6 W4 Y; b$ L$ N1 w V
if ALUs_dp[0]==1
! q3 q: ]& J6 |1 o2 T then! y s* D8 J; d8 N$ u
Res <= A3 c0 f5 G" V. e! t
else
' v4 T$ h7 \3 @+ C& K5 O! p* o# N Res <= B
% w7 f @6 t8 ?; Y end
" Y e, \- y: L$ kend& w5 H( A( u2 x3 P$ c
0 T1 ~# O0 S$ U0 y5 k! f
只是不知道這樣對不對?或是還有其他沒想到的地方嗎?* W6 _9 |0 i+ H2 T( [
麻煩板上高人了 |
|