Added Nvme trim/deallocate functionality.
authorTerry Barnaby <terry.barnaby@beam.beam.ltd.uk>
Wed, 20 May 2020 15:38:39 +0000 (16:38 +0100)
committerTerry Barnaby <terry.barnaby@beam.beam.ltd.uk>
Wed, 20 May 2020 15:38:39 +0000 (16:38 +0100)
Added dataDropBlocks signal (doesn't do anything yet).
NvmeSim: Improved simulation of Nvme.

docsrc/DuneNvmeStorageManual.odt
sim/testbench/test020-write.sav
sim/testbench/test020-write.vhd
src/DuneNvmeTestTop.vhd
src/NvmeSim.vhd
src/NvmeStorage.vhd
src/NvmeStoragePkg.vhd
src/NvmeWrite.vhd
test/NvmeAccess.cpp
test/NvmeAccess.h
test/test_nvme.cpp

index cc47a0f5a4ad66637a0126add956987ad76d5789..a9e896616a200da33b41918925dcca88b910b312 100644 (file)
Binary files a/docsrc/DuneNvmeStorageManual.odt and b/docsrc/DuneNvmeStorageManual.odt differ
index 4071ee05f34f8ca0f6188deee16f19da5c3cbb68..ce3c57c457b49888b89cc603dce7a4698f7cd918 100644 (file)
@@ -1,15 +1,15 @@
 [*]
 [*] GTKWave Analyzer v3.3.105 (w)1999-2020 BSI
-[*] Wed May 20 09:37:37 2020
+[*] Wed May 20 14:07:03 2020
 [*]
 [dumpfile] "/src/dune/FpgaPlay/test031-nvmewrite/sim/simu/test.ghw"
-[dumpfile_mtime] "Wed May 20 09:37:15 2020"
-[dumpfile_size] 2880561
+[dumpfile_mtime] "Wed May 20 14:07:03 2020"
+[dumpfile_size] 2992347
 [savefile] "/src/dune/FpgaPlay/test031-nvmewrite/sim/testbench/test020-write.sav"
-[timestart] 3952900000
+[timestart] 341600000
 [size] 1920 1171
 [pos] -1 -1
-*-26.418455 4120600000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+*-26.418455 500800000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
 [treeopen] top.
 [treeopen] top.test.
 [treeopen] top.test.axil.
@@ -104,7 +104,6 @@ top.test.axil.tomaster.rvalid
 -NvmeRead
 @28
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmeread0.enabled
-@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmeread0.complete
 @22
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmeread0.regaddress[3:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmeread0.regaddress[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmeread0.regaddress[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmeread0.regaddress[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmeread0.regaddress[0]
@@ -197,95 +196,95 @@ top.test.nvmestorage0.nvmestorageunit0.pciestreammux0.stream1out.ready
 top.test.nvmestorage0.nvmestorageunit0.pciestreammux0.stream1out.valid
 @1000200
 -NvmeStorageUnit
-@c00200
+@800201
 -NvmeWrite
-@28
+@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.enable
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[31:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.timeus[0]
-@800200
+@800201
 -InputBuffers
-@28
+@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.ready
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.valid
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.last
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[127:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[127] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[126] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[125] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[124] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[123] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[122] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[121] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[120] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[119] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[118] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[117] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[116] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[115] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[114] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[113] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[112] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[111] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[110] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[109] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[108] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[107] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[106] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[105] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[104] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[103] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[102] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[101] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[100] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[99] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[98] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[97] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[96] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[95] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[94] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[93] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[92] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[91] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[90] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[89] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[88] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[87] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[86] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[85] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[84] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[83] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[82] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[81] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[80] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[79] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[78] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[77] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[76] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[75] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[74] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[73] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[72] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[71] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[70] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[69] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[68] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[67] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[66] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[65] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[64] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[63] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[62] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[61] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[60] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[59] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[58] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[57] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[56] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[55] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[54] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[53] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[52] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[51] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[50] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[49] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[48] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[47] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[46] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[45] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[44] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[43] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[42] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[41] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[40] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[39] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[38] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[37] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[36] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[35] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[34] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[33] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[32] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datain.data[0]
-@28
+@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.enable
-@420
+@421
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.instate
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.state
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replystate
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[31:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.datachunksize[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[31:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.blocknumberin[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[31:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksproc[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[31:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.numblocksdone[0]
-@420
+@421
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.bufferinnum
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.bufferoutnum
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[10:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.writeaddress[0]
-@28
+@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].inuse1
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].inuse2
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[63:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[0].blocknumber[0]
-@28
+@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].inuse1
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].inuse2
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[63:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[1].blocknumber[0]
-@28
+@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[2].inuse1
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.buffers[2].inuse2
-@420
+@421
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.processqueuein
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.processqueueout
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.processqueue[0]
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.processqueue[1]
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.processqueue[2]
-@1000200
+@1000201
 -InputBuffers
-@28
+@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.ready
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.valid
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.last
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.keep[15:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.keep[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.keep[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.keep[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.keep[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[127:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[127] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[126] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[125] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[124] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[123] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[122] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[121] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[120] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[119] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[118] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[117] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[116] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[115] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[114] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[113] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[112] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[111] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[110] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[109] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[108] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[107] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[106] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[105] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[104] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[103] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[102] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[101] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[100] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[99] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[98] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[97] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[96] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[95] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[94] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[93] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[92] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[91] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[90] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[89] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[88] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[87] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[86] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[85] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[84] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[83] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[82] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[81] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[80] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[79] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[78] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[77] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[76] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[75] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[74] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[73] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[72] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[71] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[70] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[69] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[68] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[67] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[66] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[65] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[64] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[63] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[62] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[61] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[60] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[59] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[58] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[57] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[56] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[55] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[54] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[53] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[52] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[51] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[50] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[49] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[48] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[47] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[46] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[45] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[44] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[43] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[42] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[41] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[40] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[39] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[38] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[37] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[36] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[35] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[34] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[33] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[32] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.requestout.data[0]
-@28
+@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.ready
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.valid
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.last
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.keep[15:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.keep[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.keep[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.keep[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.keep[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[127:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[127] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[126] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[125] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[124] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[123] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[122] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[121] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[120] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[119] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[118] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[117] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[116] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[115] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[114] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[113] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[112] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[111] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[110] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[109] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[108] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[107] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[106] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[105] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[104] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[103] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[102] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[101] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[100] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[99] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[98] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[97] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[96] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[95] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[94] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[93] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[92] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[91] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[90] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[89] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[88] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[87] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[86] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[85] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[84] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[83] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[82] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[81] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[80] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[79] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[78] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[77] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[76] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[75] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[74] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[73] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[72] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[71] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[70] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[69] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[68] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[67] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[66] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[65] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[64] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[63] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[62] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[61] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[60] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[59] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[58] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[57] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[56] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[55] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[54] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[53] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[52] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[51] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[50] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[49] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[48] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[47] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[46] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[45] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[44] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[43] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[42] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[41] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[40] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[39] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[38] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[37] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[36] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[35] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[34] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[33] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[32] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.replyin.data[0]
-@420
+@421
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memstate
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[10:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[10:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[0]
-@28
+@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.ready
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.valid
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.last
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[127:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[127] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[126] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[125] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[124] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[123] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[122] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[121] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[120] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[119] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[118] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[117] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[116] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[115] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[114] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[113] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[112] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[111] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[110] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[109] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[108] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[107] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[106] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[105] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[104] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[103] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[102] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[101] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[100] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[99] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[98] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[97] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[96] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[95] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[94] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[93] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[92] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[91] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[90] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[89] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[88] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[87] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[86] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[85] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[84] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[83] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[82] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[81] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[80] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[79] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[78] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[77] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[76] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[75] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[74] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[73] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[72] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[71] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[70] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[69] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[68] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[67] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[66] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[65] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[64] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[63] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[62] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[61] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[60] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[59] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[58] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[57] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[56] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[55] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[54] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[53] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[52] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[51] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[50] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[49] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[48] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[47] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[46] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[45] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[44] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[43] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[42] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[41] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[40] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[39] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[38] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[37] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[36] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[35] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[34] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[33] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[32] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreqin.data[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[10:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memcount[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[10:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memchunkcount[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[7:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[10:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.readaddress[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[127:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[127] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[126] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[125] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[124] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[123] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[122] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[121] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[120] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[119] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[118] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[117] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[116] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[115] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[114] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[113] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[112] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[111] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[110] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[109] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[108] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[107] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[106] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[105] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[104] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[103] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[102] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[101] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[100] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[99] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[98] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[97] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[96] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[95] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[94] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[93] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[92] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[91] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[90] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[89] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[88] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[87] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[86] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[85] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[84] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[83] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[82] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[81] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[80] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[79] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[78] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[77] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[76] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[75] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[74] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[73] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[72] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[71] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[70] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[69] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[68] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[67] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[66] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[65] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[64] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[63] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[62] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[61] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[60] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[59] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[58] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[57] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[56] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[55] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[54] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[53] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[52] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[51] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[50] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[49] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[48] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[47] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[46] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[45] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[44] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[43] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[42] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[41] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[40] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[39] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[38] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[37] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[36] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[35] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[34] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[33] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[32] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.databuffer0.readdata[0]
-@28
+@29
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.ready
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.valid
 top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.last
-@22
+@23
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.keep[15:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.keep[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.keep[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.keep[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.keep[0]
 #{top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[127:0]} top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[127] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[126] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[125] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[124] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[123] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[122] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[121] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[120] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[119] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[118] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[117] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[116] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[115] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[114] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[113] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[112] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[111] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[110] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[109] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[108] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[107] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[106] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[105] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[104] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[103] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[102] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[101] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[100] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[99] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[98] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[97] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[96] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[95] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[94] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[93] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[92] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[91] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[90] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[89] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[88] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[87] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[86] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[85] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[84] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[83] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[82] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[81] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[80] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[79] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[78] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[77] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[76] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[75] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[74] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[73] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[72] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[71] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[70] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[69] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[68] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[67] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[66] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[65] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[64] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[63] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[62] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[61] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[60] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[59] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[58] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[57] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[56] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[55] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[54] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[53] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[52] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[51] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[50] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[49] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[48] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[47] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[46] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[45] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[44] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[43] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[42] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[41] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[40] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[39] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[38] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[37] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[36] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[35] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[34] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[33] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[32] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[31] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[30] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[29] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[28] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[27] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[26] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[25] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[24] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[23] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[22] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[21] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[20] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[19] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[18] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[17] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[16] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[15] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[14] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[13] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[12] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[11] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[10] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[9] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[8] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[7] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[6] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[5] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[4] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[3] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[2] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[1] top.test.nvmestorage0.nvmestorageunit0.gen03.nvmewrite0.memreplyout.data[0]
-@1401200
+@1000201
 -NvmeWrite
 @800200
 -NvmeSim
index 2d65aa2a7c60535205fac491618a826a92265809..5cef0ee93d75688e74bde51653a4658d1943e115 100644 (file)
@@ -44,6 +44,7 @@ port (
        hostRecvReady   : in std_logic;                         --! Host reply stream ready line
 
        -- AXIS data stream input
+       dataDropBlocks  : in std_logic;                         --! If set to '1' drop complete input blocks and account for the loss
        dataEnabledOut  : out std_logic;                        --! Indicates that data ingest is enabled
        dataIn          : in AxisDataStreamType;                --! Raw data input stream
        dataIn_ready    : out std_logic;                        --! Raw data input ready
@@ -199,7 +200,7 @@ begin
                        busRead(clk, axil.toSlave, axil.toMaster, 16#0008#);
                end if;
                
-               if(False) then
+               if(True) then
                        -- Start off TestData source and start writing data to Nvme
                        wait for 100 ns;
                        sendData <= '1';
@@ -207,7 +208,8 @@ begin
                        -- Write to NvmeStorage control register to start NvmeWrite processing
                        wait for 100 ns;
                        --busWrite(clk, axil.toSlave, axil.toMaster, 16#0144#, 2);              -- Number of blocks
-                       busWrite(clk, axil.toSlave, axil.toMaster, 16#0144#, 16);               -- Number of blocks
+                       --busWrite(clk, axil.toSlave, axil.toMaster, 16#0144#, 16);             -- Number of blocks
+                       busWrite(clk, axil.toSlave, axil.toMaster, 16#0144#, 16386);            -- Number of blocks
                        busWrite(clk, axil.toSlave, axil.toMaster, 16#0104#, 16#00000004#);     -- Start
 
                        wait for 11000 ns;
@@ -216,7 +218,7 @@ begin
                        wait;   
                end if;
                
-               if(True) then
+               if(False) then
                        -- Start off Reading data from block 8
                        wait for 100 ns;
 
@@ -314,6 +316,7 @@ begin
                hostRecv        => hostRecv,
                hostRecvReady   => hostRecvReady,
                
+               dataDropBlocks  => '0',
                dataIn          => dataStream,
                dataIn_ready    => dataStreamReady,
 
index 91b730c18da48945797c6f8743fb24787ceff584..5825a7fa01d96b88f1d514a0173d46352dcf7643 100644 (file)
@@ -266,6 +266,7 @@ begin
                hostRecvReady   => hostRecv_ready,
 
                -- AXIS data stream input
+               dataDropBlocks  => '0',
                dataEnabledOut  => dataEnabled,
                dataIn          => dataStream,
                dataIn_ready    => dataStream_ready,
index d33110b4b51d0d5f88f0503613040feb46d4be7a..751206fa408008c55626b22ad38de15f2601b2e9 100644 (file)
@@ -327,12 +327,7 @@ begin
                                                        nvmeReply1.ready        <= '0';
                                                        waitingForReply         <= '0';
 
-                                                       if(queue = 1) then
-                                                               state           <= STATE_READ_DATA_START;
-                                                               --state         <= STATE_REPLY_QUEUE;           -- For testing, ignore actual reading of data across Pcie
-                                                       elsif(queue = 2) then
-                                                               state           <= STATE_WRITE_DATA_START;
-                                                       else
+                                                       if(queue = 0) then
                                                                -- Writes an entry into the Admin reply queue. Simply uses info in that last queued request. So only one request at a time.
                                                                -- Note data sent to queue is just the header reapeated so junk data ATM.
                                                                -- Perform bus master read request for data to write to NVMe
@@ -344,6 +339,14 @@ begin
                                                                nvmeReq.keep            <= ones(nvmeReq.keep'length);
                                                                nvmeReq.valid           <= '1';
                                                                state                   <= STATE_QUEUE_REPLY_HEAD;
+                                                       else
+                                                               if(unsigned(queueRequest(0)(7 downto 0)) = 1) then
+                                                                       state <= STATE_READ_DATA_START;
+                                                               elsif(unsigned(queueRequest(0)(7 downto 0)) = 2) then
+                                                                       state <= STATE_WRITE_DATA_START;
+                                                               else
+                                                                       state <= STATE_REPLY_QUEUE;
+                                                               end if;
                                                        end if;
                                                end if;
                                        end if;
index 891733738cad1fbe8a2a350aa31b279a26a3bec8..bc928dc941a580c6e4d520614aefdd6d62807b43 100644 (file)
@@ -63,6 +63,7 @@ port (
        hostRecvReady   : in std_logic;                         --! Host reply stream ready line
 
        -- AXIS data stream input
+       dataDropBlocks  : in std_logic;                         --! If set to '1' drop complete input blocks and account for the loss
        dataEnabledOut  : out std_logic;                        --! Indicates that data ingest is enabled
        dataIn          : in AxisDataStreamType;                --! Raw data input stream
        dataIn_ready    : out std_logic;                        --! Raw data input ready
index 03a563c64f4a9e17d0b7f1f286167d82df94f3d8..ef0243e3f040f743050b4fc699848036de604f49 100644 (file)
@@ -124,6 +124,7 @@ package NvmeStoragePkg is
                hostRecvReady   : in std_logic;                         --! Host reply stream ready line
 
                -- AXIS data stream input
+               dataDropBlocks  : in std_logic;                         --! If set to '1' drop complete input blocks and account for the loss
                dataEnabledOut  : out std_logic;                        --! Indicates that data ingest is enabled
                dataIn          : in AxisDataStreamType;                --! Raw data input stream
                dataIn_ready    : out std_logic;                        --! Raw data input ready
index 1b19e5f6669a40bea51f7e39df652a13e2d3b8bc..56d585adf3450e3cd224916d229153034b52c953 100644 (file)
@@ -98,11 +98,14 @@ architecture Behavioral of NvmeWrite is
 constant TCQ           : time := 1 ns;
 constant SimDelay      : boolean := False;                     --! Input data delay after each packet for simulation tests
 constant SimWaitReply  : boolean := False;                     --! Wait for each write command to return a reply
+constant DoWrite       : boolean := True;                      --! Perform write blocks
+constant DoTrim                : boolean := True;                      --! Perform trim/deallocate functionality
 
 constant NvmeBlocks    : integer := BlockSize / NvmeBlockSize;         --! The number of Nvme blocks per NvmeStorage system block
 constant RamSize       : integer := (NvmeWriteNum * BlockSize) / 16;   -- One block per write buffer
 constant AddressWidth  : integer := log2(RamSize);
 constant BlockSizeWidth        : integer := log2(BlockSize);
+constant TrimNum       : integer := (32768 / NvmeBlocks);      --! The number of 4k blocks trimmed in one trim instructions
 
 component Ram is
 generic(
@@ -129,6 +132,7 @@ type BufferType is record
        inUse1          : std_logic;                            --! inUse1 and inUse2 are used to indicate buffer is in use when different
        inUse2          : std_logic;
        blockNumber     : unsigned(31 downto 0);                --! The first block number in the buffer
+       startTime       : unsigned(31 downto 0);                --! The start time for this buffer transaction
 end record;
 
 subtype RegisterType   is unsigned(31 downto 0);
@@ -136,7 +140,8 @@ type BufferArrayType        is array (0 to NvmeWriteNum-1) of BufferType;
 
 type InStateType       is (INSTATE_IDLE, INSTATE_INIT, INSTATE_CHOOSE, INSTATE_INPUT_BLOCK, INSTATE_DELAY, INSTATE_COMPLETE);
 type StateType         is (STATE_IDLE, STATE_INIT, STATE_RUN, STATE_COMPLETE,
-                               STATE_QUEUE_HEAD, STATE_QUEUE_0, STATE_QUEUE_1, STATE_QUEUE_2, STATE_QUEUE_3,
+                               STATE_WQUEUE_HEAD, STATE_WQUEUE_0, STATE_WQUEUE_1, STATE_WQUEUE_2, STATE_WQUEUE_3,
+                               STATE_TQUEUE_HEAD, STATE_TQUEUE_0, STATE_TQUEUE_1, STATE_TQUEUE_2, STATE_TQUEUE_3,
                                STATE_WAIT_REPLY);
 type ReplyStateType    is (REPSTATE_IDLE, REPSTATE_INIT, REPSTATE_COMPLETE, REPSTATE_QUEUE_REPLY1, REPSTATE_QUEUE_REPLY2);
 
@@ -147,7 +152,10 @@ signal replyState  : ReplyStateType := REPSTATE_QUEUE_REPLY1;
 signal blockNumberIn   : unsigned(31 downto 0) := (others => '0');             --! Input block number
 signal numBlocksProc   : unsigned(31 downto 0) := (others => '0');             --! Number of block write requests sent
 signal numBlocksDone   : unsigned(31 downto 0) := (others => '0');             --! Number of block write completions received
+signal numBlocksTrimmed        : unsigned(31 downto 0) := (others => '0');             --! Number of blocks trimmed
 
+signal trimQueueProc   : unsigned(3 downto 0) := (others => '0');              --! The number of trim tasks in progress
+signal trimQueueDone   : unsigned(3 downto 0) := (others => '0');              --! The number of trim tasks completed
 
 -- Input buffers
 signal writeEnable     : std_logic := '0';
@@ -156,7 +164,7 @@ signal readEnable   : std_logic := '0';
 signal readAddress     : unsigned(AddressWidth-1 downto 0) := (others => '0');
 signal readData                : std_logic_vector(127 downto 0) := (others => '0');
 
-signal buffers         : BufferArrayType := (others => ('Z', 'Z', (others => 'Z')));
+signal buffers         : BufferArrayType := (others => ('Z', 'Z', (others => 'Z'), (others => 'Z')));
 signal bufferInNum     : integer range 0 to NvmeWriteNum-1 := 0;
 signal bufferOutNum    : integer range 0 to NvmeWriteNum-1 := 0;
 
@@ -182,6 +190,7 @@ signal dataChunkStart       : RegisterType := (others => '0');      -- The data chunk start
 signal dataChunkSize   : RegisterType := (others => '0');      -- The data chunk size in blocks
 signal error           : RegisterType := (others => '0');      -- The system errors status
 signal timeUs          : RegisterType := (others => '0');      -- The time in us
+signal peakLatency     : RegisterType := (others => '0');      -- The peak latency in us
 signal timeCounter     : integer range 0 to (1 us / ClockPeriod) - 1 := 0;
 
 --! Set the fields in the PCIe TLP header
@@ -209,13 +218,24 @@ begin
        return x"05" & zeros(32-8-log2(NvmeWriteNum)-(BlockSizeWidth)) & to_stl(bufferNum, log2(NvmeWriteNum)) & zeros(BlockSizeWidth);
 end;
 
+function numTrimBlocks(total: unsigned; current: unsigned) return unsigned is
+begin
+       if((current + TrimNum) > total) then
+               return truncate(((total - current) * NvmeBlocks) - 1, 16);
+       else
+               return to_unsigned(32768-1, 16);
+       end if;
+end;
+
 begin
        -- Register access
        regDataOut      <= std_logic_vector(dataChunkStart) when(regAddress = 0)
                        else std_logic_vector(dataChunkSize) when(regAddress = 1)
                        else std_logic_vector(error) when(regAddress = 2)
                        else std_logic_vector(numBlocksDone) when(regAddress = 3)
-                       else std_logic_vector(timeUs);
+                       else std_logic_vector(timeUs) when(regAddress = 4)
+                       else std_logic_vector(peakLatency) when(regAddress = 5)
+                       else ones(32);
        
        -- Register process
        process(clk)
@@ -359,6 +379,8 @@ begin
                                bufferOutNum            <= 0;
                                numBlocksProc           <= (others => '0');
                                processQueueOut         <= 0;
+                               numBlocksTrimmed        <= (others => '0');
+                               trimQueueProc           <= (others => '0');
                                state                   <= STATE_IDLE;
                        else
                                case(state) is
@@ -373,6 +395,7 @@ begin
                                        timeCounter     <= 0;
                                        numBlocksProc   <= (others => '0');
                                        processQueueOut <= 0;
+                                       numBlocksTrimmed<= (others => '0');
                                        state           <= STATE_RUN;
                                        
                                when STATE_RUN =>
@@ -380,13 +403,18 @@ begin
                                                if(numBlocksProc >= dataChunkSize) then
                                                        state <= STATE_COMPLETE;
                                                
-                                               elsif(processQueueOut /= processQueueIn) then
-                                                       bufferOutNum    <= processQueue(processQueueOut);
-                                                       processQueueOut <= incrementPos(processQueueOut);
+                                               elsif(DoWrite and (processQueueOut /= processQueueIn)) then
+                                                       bufferOutNum            <= processQueue(processQueueOut);
+                                                       processQueueOut         <= incrementPos(processQueueOut);
+                                                       buffers(bufferOutNum).startTime <= timeUs;
+                                                       requestOut.data         <= setHeader(1, 16#02010000#, 16, 0);
+                                                       requestOut.valid        <= '1';
+                                                       state                   <= STATE_WQUEUE_HEAD;
 
+                                               elsif(DoTrim and (numBlocksTrimmed < dataChunkSize) and ((trimQueueProc - trimQueueDone) < 4)) then
                                                        requestOut.data         <= setHeader(1, 16#02010000#, 16, 0);
                                                        requestOut.valid        <= '1';
-                                                       state                   <= STATE_QUEUE_HEAD;
+                                                       state                   <= STATE_TQUEUE_HEAD;
                                                end if;
                                        else
                                                state <= STATE_COMPLETE;
@@ -397,34 +425,35 @@ begin
                                                state <= STATE_IDLE;
                                        end if;
 
-                               when STATE_QUEUE_HEAD =>
+                               -- Write blocks request
+                               when STATE_WQUEUE_HEAD =>
                                        if(requestOut.valid = '1' and requestOut.ready = '1') then
                                                requestOut.data <= zeros(64) & x"00000001" & x"04" & to_stl(bufferOutNum, 8) & x"0001"; -- Namespace 1, From stream4, opcode 1
-                                               state           <= STATE_QUEUE_0;
+                                               state           <= STATE_WQUEUE_0;
                                        end if;
 
-                               when STATE_QUEUE_0 =>
+                               when STATE_WQUEUE_0 =>
                                        if(requestOut.valid = '1' and requestOut.ready = '1') then
                                                requestOut.data <= zeros(32) & pcieAddress(bufferOutNum) & zeros(64);
                                                --requestOut.data       <= zeros(32) & x"01800000" & zeros(64); -- Data source address from host
-                                               state           <= STATE_QUEUE_1;
+                                               state           <= STATE_WQUEUE_1;
                                        end if;
 
-                               when STATE_QUEUE_1 =>
+                               when STATE_WQUEUE_1 =>
                                        if(requestOut.valid = '1' and requestOut.ready = '1') then
                                                requestOut.data <= zeros(32-log2(NvmeBlocks)) & std_logic_vector(dataChunkStart + buffers(bufferOutNum).blockNumber) & zeros(log2(NvmeBlocks) + 64);
-                                               state           <= STATE_QUEUE_2;
+                                               state           <= STATE_WQUEUE_2;
                                        end if;
 
-                               when STATE_QUEUE_2 =>
+                               when STATE_WQUEUE_2 =>
                                        if(requestOut.valid = '1' and requestOut.ready = '1') then
                                                requestOut.data <= zeros(96) & to_stl(NvmeBlocks-1, 32);        -- WriteMethod, NumBlocks (0 is 1 block)
                                                requestOut.last <= '1';
                                                numBlocksProc   <= numBlocksProc + 1;
-                                               state           <= STATE_QUEUE_3;
+                                               state           <= STATE_WQUEUE_3;
                                        end if;
 
-                               when STATE_QUEUE_3 =>
+                               when STATE_WQUEUE_3 =>
                                        if(requestOut.valid = '1' and requestOut.ready = '1') then
                                                requestOut.last         <= '0';
                                                requestOut.valid        <= '0';
@@ -436,6 +465,50 @@ begin
                                                end if;
                                        end if;
 
+                               -- Trim/deallocate request
+                               when STATE_TQUEUE_HEAD =>
+                                       if(requestOut.valid = '1' and requestOut.ready = '1') then
+                                               requestOut.data <= zeros(64) & x"00000001" & x"04F" & to_stl(trimQueueProc(3 downto 0)) & x"0008";      -- Namespace 1, From stream4, opcode 8
+                                               state           <= STATE_TQUEUE_0;
+                                       end if;
+
+                               when STATE_TQUEUE_0 =>
+                                       if(requestOut.valid = '1' and requestOut.ready = '1') then
+                                               requestOut.data <= zeros(128);
+                                               state           <= STATE_TQUEUE_1;
+                                       end if;
+
+                               when STATE_TQUEUE_1 =>
+                                       if(requestOut.valid = '1' and requestOut.ready = '1') then
+                                               requestOut.data <= zeros(32-log2(NvmeBlocks)) & std_logic_vector(dataChunkStart + numBlocksTrimmed) & zeros(log2(NvmeBlocks) + 64);
+                                               state           <= STATE_TQUEUE_2;
+                                       end if;
+
+                               when STATE_TQUEUE_2 =>
+                                       if(requestOut.valid = '1' and requestOut.ready = '1') then
+                                               requestOut.data <= zeros(96) & x"0200" & to_stl(numTrimBlocks(dataChunkSize, numBlocksTrimmed));        -- Deallocate, NumBlocks (0 is 1 block)
+                                               requestOut.last <= '1';
+                                               state           <= STATE_TQUEUE_3;
+                                       end if;
+
+                               when STATE_TQUEUE_3 =>
+                                       if(requestOut.valid = '1' and requestOut.ready = '1') then
+                                               requestOut.last         <= '0';
+                                               requestOut.valid        <= '0';
+                                               numBlocksTrimmed        <= numBlocksTrimmed + TrimNum;
+                                               trimQueueProc           <= trimQueueProc + 1;
+                                               
+                                               if(SimWaitReply) then
+                                                       if(trimQueueDone = trimQueueProc) then
+                                                               state <= STATE_RUN;
+                                                       end if;
+                                               else
+                                                       state <= STATE_RUN;
+                                               end if;
+                                       end if;
+
+
+
                                when STATE_WAIT_REPLY =>
                                        if(numBlocksProc > numBlocksDone) then
                                                state <= STATE_WAIT_REPLY;
@@ -471,6 +544,8 @@ begin
                                replyIn.ready   <= '0';
                                error           <= (others => '0');
                                numBlocksDone   <= (others => '0');
+                               peakLatency     <= (others => '0');
+                               trimQueueDone   <= (others => '0');
                                replyState      <= REPSTATE_IDLE;
                        else
                                case(replyState) is
@@ -488,6 +563,7 @@ begin
                                        replyIn.ready   <= '1';
                                        error           <= (others => '0');
                                        numBlocksDone   <= (others => '0');
+                                       peakLatency     <= (others => '0');
                                        replyState      <= REPSTATE_QUEUE_REPLY1;
                                        
                                when REPSTATE_COMPLETE =>
@@ -520,10 +596,18 @@ begin
                                                if(error = 0) then
                                                        error(15 downto 0) <= '0' & nvmeReplyHead.status;
                                                end if;
+                                               
+                                               if(nvmeReplyHead.cid(7 downto 4) = x"F") then
+                                                       trimQueueDone <= trimQueueDone + 1;
+                                               else
+                                                       numBlocksDone           <= numBlocksDone + 1;
+                                                       p                       := to_integer(nvmeReplyHead.cid(log2(NvmeWriteNum)-1 downto 0));
+                                                       buffers(p).inUse2       <= buffers(p).inUse1;
 
-                                               numBlocksDone           <= numBlocksDone + 1;
-                                               p                       := to_integer(nvmeReplyHead.cid(2 downto 0));
-                                               buffers(p).inUse2       <= buffers(p).inUse1;
+                                                       if((timeUs - buffers(p).startTime) > peaklatency) then
+                                                               peaklatency <= timeUs - buffers(p).startTime;
+                                                       end if;
+                                               end if;
 
                                                replyState              <= REPSTATE_QUEUE_REPLY1;
                                        end if;
index 79810556263d2cd363a7c3357e25a5066d39a160..caf026fd07580e848ebeebdc84193b9c3fa323be 100644 (file)
@@ -42,9 +42,9 @@
  * You should have received a copy of the GNU General Public License
  * along with this code. If not, see <https://www.gnu.org/licenses/>.
  */
-#define        LDEBUG1         1               // High level debug
-#define        LDEBUG2         1               // Debug host to NVMe queued requests
-#define        LDEBUG3         1               // Debug NVMe to host queued requests (bus master)
+#define        LDEBUG1         0               // High level debug
+#define        LDEBUG2         0               // Debug host to NVMe queued requests
+#define        LDEBUG3         0               // Debug NVMe to host queued requests (bus master)
 #define        LDEBUG4         0               // Xlinux PCIe DMA IP register debug
 
 #include <NvmeAccess.h>
@@ -667,6 +667,7 @@ void NvmeAccess::dumpRegs(int nvmeNum){
        printf("Error:          %8.8x\n", oregs[nvmeRegbase/4 + 18]);
        printf("NumBlocks:      %8.8x\n", oregs[nvmeRegbase/4 + 19]);
        printf("TimeUs:         %8.8x\n", oregs[nvmeRegbase/4 + 20]);
+       printf("PeakLatencyUs:  %8.8x\n", oregs[nvmeRegbase/4 + 21]);
 
        printf("ReadControl:    %8.8x\n", oregs[nvmeRegbase/4 + 32]);
        printf("ReadStatus:     %8.8x\n", oregs[nvmeRegbase/4 + 33]);
index bf9c613a440e360f7658fe8de1e045500834928d..7214fbbc765ab888e3c6ce221058011649421b6d 100644 (file)
@@ -72,6 +72,7 @@ const BUInt   RegDataChunkSize        = 0x044;        ///< The data chunk size register
 const BUInt    RegWriteError           = 0x048;        ///< The write error status
 const BUInt    RegWriteNumBlocks       = 0x04C;        ///< The number of blocks written
 const BUInt    RegWriteTime            = 0x050;        ///< The write time in microseconds
+const BUInt    RegWritePeakLatency     = 0x054;        ///< The write peak block write latency in microseconds
 
 const BUInt    RegReadControl          = 0x080;        ///< The read data control register
 const BUInt    RegReadStatus           = 0x084;        ///< The read data status register
index dd780554701a1e381a59d9e919731809c42ad982..6f302f7abadf158bcd1cebb800accc7c5dadb8ba 100644 (file)
@@ -356,7 +356,7 @@ int Control::test4(){
        printf("Perform block read\n");
        memset(odataBlockMem, 0x01, sizeof(odataBlockMem));
 
-#ifndef ZAP
+#ifdef ZAP
        // Test read of a single 512 byte block
        numBlocks = 1;
        nvmeRequest(1, 1, 0x02, 0x01800000, block, 0x00000000, numBlocks-1);    // Perform read
@@ -568,10 +568,8 @@ int Control::test8(){
        if(e = configureNvme())
                return e;
 
-       //nvmeRequest(1, 1, 0x08, 0x01800000, 0, 0x00000000, (1 << 25) | 1);    // Perform trim of 2 blocks
-
        for(block = 0; block < numBlocks; block += (maxBlocks/8)){
-               nvmeRequest(1, 1, 0x08, 0x01800000, block * 8, 0x00000000, (1 << 25) | maxBlocks-1);    // Perform trim of 32k 512 Byte blocks
+               nvmeRequest(1, 1, 0x08, 0x00000000, block * 8, 0x00000000, (1 << 25) | maxBlocks-1);    // Perform trim of 32k 512 Byte blocks
        }