|
module A2(
) h [$ h7 d& R/ ^4 ` input clk,5 z$ l' v* d( I. K# }. M
input [7:0] A,# w+ v5 E) b# w3 D/ b
input [7:0] B,
/ V# A' \5 O9 D( w output reg [15:0] F! r3 V! {# a" f m6 R* {3 u
);4 _$ q* u# d' @( J* ~6 s% t
reg [7:0] P;) @- g' O$ Z* l( Z3 i+ v5 b; m/ V
reg [3:0] Cn=4'b1000;
( O) i4 p! m4 y3 r) S1 G1 k8 B reg [7:0] Y;; c3 T" d" ]# P* t
reg C;
" W5 H$ O0 V' h4 L4 S- |. Z3 r always @(posedge clk)begin
' {( u/ U% Q t2 f8 v" c* T" ? if(Cn==4'b1000)
+ z$ f9 p) g: @2 K' [ begin
) f6 S0 Q5 _) j7 x* c4 W8 U4 v P<=4'b0000;
7 ^3 _1 i; @2 ?, ?4 O" ~& v Y<=B;
: m3 g4 R# ^' t4 b Cn<=Cn-1;" v6 g" }) E, i5 m
end
# y- F5 d) H0 g4 F# }; `, s' }0 l else if(Cn>=4'b0000)+ }: ?5 A' d4 j: h% ?. y
begin( H, t5 h. h# O$ F8 m1 h
if(Y[0]==0)
& e1 j8 V E t1 T) x# K begin
: G7 b" I s- r, `+ h3 g {P,Y}<={P,Y}>>1;
! O9 l0 \+ ]) B. J' A/ i end4 E8 P5 I, B6 v/ {+ d% g6 L
else if(Y[0]==1)
% q5 g/ T* B2 S$ \4 v" O begin
5 [: k5 K; \5 m; C: {8 i {C,P}<={C,P}+A;, W3 g0 c; g* r8 q5 _" P& |
{C,P,Y}<={C,P,Y}>>1;4 v2 {: x' M% x/ o
end1 X2 a1 W, f9 M. O
Cn<=Cn-1;
6 \3 Q# }" b2 c8 u end
% u, B2 Q3 o3 j# G else ( ^5 g- {9 u8 k$ }: z! G
begin
0 ?9 z+ S7 J e7 k. p% f5 Z F<={P,Y};! w+ M3 c) S4 r( _
Cn<=4'b1000; S9 K* j- ~- t4 R
end
7 y0 A& B. W. b end
( d5 ~7 w Y! ?& T3 `endmodule |
|