|
module alu8(a,b,select,out,rst);7 \+ A& D0 f" V1 x# L
input[3:2]a,b,rst;
S1 A0 H; j0 s1 L6 ^$ w- ]' [0 t x input[2:0]select;/ `4 _# t! y; V0 B7 c& p
output[4:0]out;
2 p. X. p8 v+ Q- Q2 @& C" i reg[4:0]out;
) \( S/ X3 l# f7 r2 O& ]. N parameter
) m" E ]4 a, h" L% k2 g idle=3'b000,
$ S) t" H6 v% T7 q* ^+ l* {8 W& G s1=3'b001,
1 y5 O# a, |' M s2=3'b010,* T4 k9 g( S P5 W6 x+ p( A
s3=3'b011,
9 x. x5 G6 u+ [; E% m! N/ z s4=3'b100,0 \$ s6 j/ i$ x4 u
s5=3'b101,
+ ?$ K# v$ ^6 |* V b' C s6=3'b110,0 r6 U( u6 Q' w$ Q
s7=3'b111;1 T- q1 q# m% s$ q. @
: `6 O$ A4 f2 { O/ f
always@( a or b)
: ~" t9 _% W- s1 j& M. G' K/ V if(rst)
: g8 f9 {8 w' [) @. @ out<=00000;# L+ I5 k, U+ @; i
else( I' `% D- \: l" l" S
begin. ?" y5 y. R( [' V% ]) h
case(select)5 x: l9 \$ s6 j1 e7 p! j
idle:begin
. t9 h0 g0 y( r% `( l% w: | out<=a;
% P/ v( l; ] _) z% a end
# R! p) k2 g9 h" P s1:begin. F+ E5 \9 l5 }8 I: e! d
out<=a+b;) |' P; s8 r$ p9 B2 ?, S
end
5 ?' `; i0 x, p; H. e2 q3 W s2:begin4 u3 h1 h% c) F3 Y1 \4 M
out=a-b;
+ s8 q7 ]9 p& _0 O* `' p end! f) [) R1 N2 L4 L6 l _
s3:begin
' U4 P- p+ i/ [4 |* _ out=a/b;
7 D5 ]. x" `$ W, Q9 ^ end
: a4 H' a% F$ n9 q* l. }- U8 U/ W) h& ps4: begin
0 M3 H* U1 j( t out=a%b;' V1 h0 K' L3 S( g6 f0 ]8 [+ S
end1 }$ L9 D1 ]3 l! w
s5:begin
- f+ z$ _. W# u" _( L4 p, K; t0 l out=a<<1;
7 Z6 {/ u7 G }: h, X end
: @" F- a* F) ss6:begin+ S, ^. B& X* h' [+ V
out=a>>1;
/ b6 ]" |) {: i( Bend
) Z4 C* u6 s, h3 r6 D' ys7:begin& L5 d p5 k7 k' {' ~. J
out=a>b;3 I/ }" d2 p0 s4 F
end
9 x4 G, T/ g3 ]3 \- H/ U1 R default- |+ q+ o1 N0 w3 r- z
$display( "Invalid control signals!");
9 w& J. t0 P. o% T endcase- L! u5 K4 k+ c7 m' {! f, N Q
end
& @* I+ S7 }; p$ K endmodule |
|