Convert IEEE Double to Integer - Verilog
If you wish to truncate the value to the next lower integer, first observe whether the exponent makes the number be less than 1.0 or greater than the size of your array, and handle those values suitably.

If the exponent is between those values, feed the leftmost part of the mantissa, with a "1" concatenated to its left, into a shifter such that the maximum exponent would result in no shifting, an exponent that's one smaller would shift right one place, etc.  The output of the shifter will be the array index.

If you wish to approximate rounding, you should scale your desired index value up by a factor of two; after computing the scaled up value, add one and divide by two.  This will round 0.5 to 1, 1.5 to 2, and 2.5 to 3.

If you wish to support IEEE-accurate rounding, then in addition to the above you'll need to "OR" together all the bits that were too small to be worth including in the shift, as well as any bits that "fell off the end" of the shifter.  Instead of unconditionally adding one to the scaled value, only add one if the aforementioned "OR" yields true.  This will make 0.5 round to 0, and both 1.5 and 2.5 round to 2.