Memory Mapping by Address range

How to do memory mapping using address ranges?

for eg. I have 16bit address bus => 65536 locations => 64k memory

[7:0] memory [65535:0]

8bit data bus => 0 to 1024 bytes

[7:0] data [1024:0]

so from 65536 locations, 1025 occupied by data.
and I need to accommodate other registers like control reg, status reg, header reg, crc reg, pktlen reg etc. of 1 byte each within this memory.
So total 1031 bytes in use.

So, How can i define this all stuff in verilog?

In reply to Mittal Maru:

Just trying to understand your question.
You have 64k memory (locations 0-65535)
Out of which 1k is data (0-1023?1024?)
Then there is 8 bytes of other registers, which results in total 1031 bytes of storage used out of 64k, is that correct?

Typically the address map file is a bunch of defines or parameters which has hardcoded locations of various registers. The input addr is compared against these values and the appropriate location is written to/read.

You might be able to find examples online.

In reply to prang:

Just trying to understand your question.
You have 64k memory (locations 0-65535)
Out of which 1k is data (0-1023?1024?)
Then there is 8 bytes of other registers, which results in total 1031 bytes of storage used out of 64k, is that correct?
Typically the address map file is a bunch of defines or parameters which has hardcoded locations of various registers. The input addr is compared against these values and the appropriate location is written to/read.
You might be able to find examples online.

Yes, It is correct.
What do you mean by hardcoded locations ?