| CS552 Course Wiki: Spring 2017 | Main »
Four-banked Memory Module |
Tasks |
Four-banked Memory ModuleFour Banked Memory is a better representation of a modern memory system. It breaks the memory into multiple banks. The four-cycle, four-banked memory is broken into two Verilog modules, the top level four_bank_mem.v and single banks final_memory.v. All needed files were included in the project tar file. final_memory.syn.v must be in the same directory as final_memory.v
+-------------------+
| |
Addr[15:0] >------| four_bank_mem |
DataIn[15:0] >------| |
wr >------| 64KB |-----> DataOut[15:0]
rd >------| |-----> stall
| |-----> Busy[3:0]
clk >------| |-----> err
rst >------| |
createdump >------| |
+-------------------+
Timing:
| | | | | |
| addr | addr etc | read data | | new addr |
| data_in | OK to any | available | | etc. is |
| wr, rd |*diffferent*| | | OK to |
| enable | bank | | | *same* |
| | | | | bank |
<----bank busy; any new request to--->
the *same* bank will stall
This figure shows the external interface to the module. Each signal is described in the table.
This is a byte-aligned, word-addressable 16-bit wide 64K-byte memory. Requests may be presented every cycle. They will be directed to one of the four banks depending on the least significant 2 bits of the address. Two requests to the same bank which are closer than cycles N and N+4 will result in the second request not happening, and a "stall" output being generated. Busy output reflects the current status of each individual bank. Concurrent read and write not allowed. On reset, memory loads from file "loadfile_0.img", "loadfile_1.img", "loadfile_2.img", and "loadfile_3.img". Each file supplies every fourth word. (The latest version of the assembler generates these four files.) Format of each file:
@0
<hex data 0>
<hex data 1>
...etc
If input "create_dump" is true on rising clock, contents of memory will be dumped to file "dumpfile_0", "dumpfile_1", etc. Each file will be a dump from location 0 up through the highest location modified by a write in that bank. |
| Page last modified on February 19, 2016, visited times |