Modular Reduction of polynomials in GF(2^m) I am having trouble understanding the algorithm implementation in the hardware of the reduction process over Galois fields of $F_{2^{163}}$
In the following process, it looks like we are calculating the $zc(z)$ value from 2m-2 downto m
which the first half of $c(z)$


but I am not getting to understand what is $r(z)$ and how it is obtained?
$r(z)$ shouldn't be fixed as $Z^m$ and if it s a polynomial what is its value and what is W?
and how is the process of $z^k * r(z)$ viewed as in hardware 
is it only left shift by 1 for each k and an and gate with $r(z)$?
I don't know if this can help you, but did you know if in Binary Arithmetic, you have: $f(z)=z^m+r(z)$; then $z^m =f(z)+r(z)$.
NB: The addition here represents the bitwise XOR, that you can easily represent in hardware by appropriate gates.
Then Let's continue by examining the reduction algorithm you show us:
$c(z)=c_{2.m-2}.z^{2.m-2}+c_{2.m-1}.z^{2.m-1}+\cdots+c_{m}.z^{m}+c_{m-1}.z^{m-1}+\cdots+c_1.z+c_0$
We factorize by $z^m$; then, we obtain:
$c(z)=(c_{2.m-2}.z^{m-2}+c_{2.m-1}.z^{m-1}+\cdots+c_{m}).z^{m}+c_{m-1}.z^{m-1}+\cdots+c_1.z+c_0$
And replacing $z^m=f(z)+r(z)$ and performing the reduction mod f(z): the remaining is:
$c(z)=(c_{2.m-2}.z^{m-2}+c_{2.m-1}.z^{m-1}+\cdots+c_{m}).r(z)+c_{m-1}.z^{m-1}+\cdots+c_1.z+c_0$
Which can be computed, with the precomputed table!

Another interpretation of $r(z)$ from $z^m =1.f(z)+r(z)$ shows that $r(z)$ is the remainder of the division of $z^m$ by  $f(z)$ while the quotient is the constant polynomial 1.