|
module A2(* R/ w/ X8 m- Y I5 s
input clk,) r' e4 S: ~2 y* h% w5 y% D- ?# B
input [7:0] A,
8 f+ H, d N+ y9 {& H input [7:0] B,8 X1 x/ {0 ^1 g* N2 }! H, B, ~; w
output reg [15:0] F
5 s' t: L! n: o: G9 b );
4 `) M) t4 |+ a1 l+ @' @$ ^: x) l reg [7:0] P;# W6 [ R( ~8 l
reg [3:0] Cn=4'b1000;2 h/ F2 K, y' H
reg [7:0] Y;" [! a; p7 _7 a* n! [
reg C;
: z) W2 M$ [5 W' b always @(posedge clk)begin0 g2 i- Z+ x: B$ \. F* @4 r" _
if(Cn==4'b1000)
% q$ x) X7 O* {) w# [* T5 m begin$ L+ j- M- F! n( L+ h/ [
P<=4'b0000;
9 a5 u- P {# a' x1 a7 q Y<=B;
0 F1 }* I( X; L V1 Q& Z Cn<=Cn-1;( X$ e( l+ b6 B, _8 A' U& F7 m8 p
end
$ u' G0 N+ H0 q6 f5 { else if(Cn>=4'b0000)
% |5 k, ^% B9 S6 ?! @8 k6 z Q a+ ? begin
' ` u2 j( ^! b" X' \ if(Y[0]==0)$ B/ U8 O5 J$ P! `
begin
' B7 h+ ^! B! M: |) i {P,Y}<={P,Y}>>1;
/ a/ w! b' H) z( x8 p end
8 j9 ^% P6 i [9 [8 P, E, ]7 W7 ^* F6 L else if(Y[0]==1)
! `& G$ b) e. A: @+ e begin6 j$ j+ B! j7 ]2 G4 |: K0 C
{C,P}<={C,P}+A;; N, [7 Z" U1 ?% h
{C,P,Y}<={C,P,Y}>>1;; s; t+ V" a/ v ^7 p, f
end T% U. y- O Q1 a" l+ n4 x: N
Cn<=Cn-1;
& H# o! g% x: `: T7 f6 z end3 A4 b8 B! n4 g# a$ O$ j
else ; c i0 i* R5 w* H* ^$ D. R
begin
: E, P% S$ ]3 Y1 c F<={P,Y};
, r' U, F O" @# ]; W1 a9 u Cn<=4'b1000; E, J" B* Y& b, Q' q: ]2 m
end0 t, O$ O) D. s" b
end; ~* Y" O D% v) o1 @, i
endmodule |
|