diff --git a/ivtest/gold/random.gold b/ivtest/gold/random.gold new file mode 100644 index 000000000..b60047e4a --- /dev/null +++ b/ivtest/gold/random.gold @@ -0,0 +1,1000 @@ +12153524 +c0895e81 +8484d609 +b1f05663 +06b97b0d +46df998d +b2c28465 +89375212 +00f3e301 +06d7cd0d +3b23f176 +1e8dcd3d +76d457ed +462df78c +7cfde9f9 +e33724c6 +e2f784c5 +d513d2aa +72aff7e5 +bbd27277 +8932d612 +47ecdb8f +793069f2 +e77696ce +f4007ae8 +e2ca4ec5 +2e58495c +de8e28bd +96ab582d +b2a72665 +b1ef6263 +0573870a +c03b2280 +10642120 +557845aa +cecccc9d +cb203e96 +8983b813 +86bc380d +a9a7d653 +359fdd6b +eaa62ad5 +81174a02 +d7563eae +0effe91d +e7c572cf +11844923 +0509650a +e5730aca +9e314c3c +7968bdf2 +452e618a +20c4b341 +ec4b34d8 +3c20f378 +c48a1289 +75c50deb +5b0265b6 +634bf9c6 +571513ae +de7502bc +150fdd2a +85d79a0b +b897be71 +42f24185 +27f2554f +9dcc603b +1d06333a +bf23327e +0aaa4b15 +78d99bf1 +6c9c4bd9 +31230762 +2635fb4c +4fa1559f +47b9a18f +7c6da9f8 +dbcd60b7 +cfc4569f +ae7d945c +adcbc05b +44de3789 +a4ae3249 +e8233ed0 +ebfec0d7 +a8c7fc51 +4b212f96 +061d7f0c +e12ccec2 +6457edc8 +bb825a77 +1ef2ed3d +090cdb12 +bf05007e +36e5816d +1cd9e739 +0fd28f1f +e9ebf6d3 +42d92f85 +bc148878 +2dda595b +248b4b49 +9ff2ae3f +150caf2a +2c156358 +c33f3886 +c71a0c8e +ce2ff29c +7d3599fa +937dbc26 +39961773 +d18bb4a3 +9799a82f +d9d292b3 +afd8565f +22290d44 +7bf8fdf7 +e59b36cb +f3091ae6 +2d28db5a +14cfc129 +f682e2ed +ed536cda +b29fb665 +da8ae2b5 +efbe94df +3cf11979 +2231ff44 +e8740cd0 +15090b2a +55f6adab +076fcf0e +6e5daddc +cd5ebc9a +fedf72fd +e1f102c3 +2b0eed56 +2779e94e +b3d97667 +8531340a +5b6fb9b6 +9c0e8a38 +3cd18779 +dc2bc4b8 +4a74bf94 +49c65d93 +823f2c04 +acb7ca59 +6dcb69db +a6fcde4d +6cb0b7d9 +b6a4266d +bb45e276 +653b49ca +5b172db6 +4a937195 +a3071a46 +02749b04 +7bd261f7 +34980769 +da6ebab4 +44018d88 +147cd928 +9690042d +e3c530c7 +975c9c2e +8477e408 +0e41451c +fea7a6fd +149e0729 +8e37901c +43356786 +ed3408da +9eb7c63d +334ea766 +b855c470 +b9f50473 +5d7199ba +2f3ab35e +7d4779fa +6a8e05d5 +8d24f61a +dcf000b9 +1b876137 +4b273796 +603921c0 +13259f26 +db461ab6 +3e99837d +6e5f0fdc +43615786 +3c03ff78 +3f5a9b7e +ed8d80db +e7c3b6cf +3ced2b79 +fd28e4fa +b0bcee61 +0b940917 +d0f578a1 +43779186 +a8639650 +7a8c59f5 +9ab48835 +949a8a29 +60b175c1 +e2e574c5 +cc01b498 +25b27b4b +b98c4273 +f622e6ec +c550168a +2758d14e +d44b80a8 +549efda9 +d0ca8ca1 +070bb90e +f33466e6 +cfd6c09f +152fb52a +155a1d2a +c6b5f48d +4f75ff9e +9c6de638 +bccfa879 +6464e3c8 +652345ca +09ff4113 +35a0c96b +e3b7aec7 +5b0bddb6 +5d059dba +6216abc4 +5c8295b9 +492fd392 +da269ab4 +3fbb3b7f +c3339086 +7d6df5fa +f92794f2 +19452132 +dece5ebd +424fcd84 +f249a4e4 +6543cfca +54a879a9 +d095a8a1 +4765a98e +fd8b6afb +85e51e0b +f78290ef +64c83dc9 +1b60e536 +bab14875 +c7e8568f +35cdbf6b +4465e788 +d73fb4ae +4df3819b +493e4592 +1444df28 +9684e02d +25b75f4b +e169b0c2 +8f1cf61e +06b3050d +7679fdec +0c039d18 +68ae1bd1 +c3761c86 +a0c02441 +9dbf643b +6c44f9d8 +29efe953 +ab196256 +adac225b +f166fae2 +8273e204 +39ac0373 +ec50b4d8 +093e4d12 +dc0344b8 +9c811239 +f287b6e5 +d0c5dca1 +15890f2b +40905d81 +641b85c8 +13b55527 +50d5f9a1 +8f8c6e1f +82223a04 +2c2d2358 +cb5c8096 +0a6e9314 +8919b412 +cb227096 +d8ace2b1 +2ac2d555 +f6c38eed +158b2b2b +7ab11bf5 +56b403ad +93c12227 +4249ff84 +d3a8e4a7 +f3d7a6e7 +dcef90b9 +a4da5649 +6de5bbdb +64ba0fc9 +2883b151 +d0bc5ea1 +1546dd2a +7d2a45fa +a2e62045 +41a10583 +be75427c +b9461472 +ff4f3cfe +b455f268 +b7dfaa6f +43460d86 +782321f0 +1c719738 +20769140 +94097628 +7b0da9f6 +e2bf1ac5 +602831c0 +3a625f74 +1cde7139 +d86a6ab0 +1e1c873c +1521932a +3124d362 +0aec3515 +f0b14ee1 +0be29d17 +a18bee43 +64b5e3c9 +c3360486 +1297cb25 +60f69dc1 +c69da28d +ad67e25a +03d62707 +165b7b2c +060a5d0c +b8ade671 +9de17c3b +5b60e5b6 +fbdfc2f7 +cf14ce9e +ae78585c +2ab8f755 +902a3a20 +d00b12a0 +39600972 +da3d8cb4 +6e8af5dd +86dcf00d +25b0994b +bccc4279 +cf63da9e +fef064fd +bde0d27b +47e2738f +81c39a03 +71c129e3 +0e92431d +58f93db1 +22119f44 +ca9cbc95 +f01d34e0 +f6a178ed +297a1552 +7c1e5bf8 +46dcb78d +a95fc452 +4219e784 +236afd46 +c63a928c +48487d90 +0beac117 +352d616a +427b5784 +d55bbcaa +3e6f0f7c +b0520260 +5d4a4dba +c5a1608b +d31dfea6 +92831e25 +19058332 +d10504a2 +a48f7c49 +8a64b014 +9ec9c03d +25f2034b +ae68305c +23907547 +433e9786 +9caf7a39 +da058ab4 +6851e5d0 +9622502c +467c458c +03e9b707 +b522406a +0895f911 +746affe8 +a5e79e4b +39e48173 +76295bec +11fe0523 +520eefa4 +64e165c9 +9ca70439 +ef8372df +ea5814d4 +33836567 +4ea0419d +583125b0 +41103982 +24d2bf49 +ecb91ad9 +1000b720 +8e054c1c +49b16f93 +71b461e3 +954b822a +e471f8c8 +aed72e5d +1d3f9d3a +4226a984 +95a9a82b +1c8d7f39 +897f1c12 +a97f0052 +2c848959 +e82b96d0 +b759ea6e +4bf52997 +6d8b87db +535277a6 +5d85d3bb +80797c00 +87e44c0f +b4e8d669 +8653620c +2ca81959 +62fd49c5 +67d735cf +4839e590 +a8e4d851 +b4f9a469 +3b83cd77 +2523654a +ec3758d8 +4ddd4d9b +e20e9ac4 +5c78b1b8 +dbe6f2b7 +c378ee86 +984d5a30 +3bed5377 +5ad6c7b5 +6a15f5d4 +03878707 +3b0b9776 +74a1ade9 +45e28b8b +00f25f01 +6d808bdb +c0764280 +611d9fc2 +e2ecdac5 +9827fa30 +d7b2e4af +b302da66 +57fbb9af +f4d86ee9 +7c41aff8 +8376ac06 +f78576ef +70ef37e1 +cab47c95 +f7723eee +304e4d60 +f29c5ee5 +9420ea28 +322f7d64 +14b43729 +f0eeaee1 +bbbc5277 +3715156e +40aaf581 +6a9fb9d5 +3437d568 +786271f0 +d57800aa +079fc30f +f8dc48f1 +be9bbc7d +472e958e +f161dce2 +1e664d3c +d4b5e6a9 +77ebb1ef +ade7d05b +d7a23caf +25029b4a +5cd20db9 +098e2d13 +09c83513 +32dc4165 +28c62751 +db983ab7 +cc981099 +9d12083a +b8ea3a71 +317c0762 +f2356ae4 +1513dd2a +beda447d +2cee5f59 +72c3a3e5 +76de6bed +e4a800c9 +a0aecc41 +57c1d1af +eda71cdb +e696e8cd +38139f70 +8326d406 +d14820a2 +5e983dbd +b555de6a +6e3d47dc +a86c5e50 +bd86f47b +929d5825 +bc3f8478 +7b7b89f6 +ae23ce5c +11cc9b23 +3cb3ab79 +644605c8 +ddd146bb +870cee0e +b9879473 +0671030c +e70f98ce +6a1a61d4 +acecdc59 +5ca26fb9 +d9b8c0b3 +7a4fbff4 +baf4e275 +066cf10c +9cfc7a39 +01729302 +8aecbe15 +02fbf905 +271c434e +013f2902 +5c7951b8 +847fb208 +46e7538d +d7b48eaf +747331e8 +48590990 +7af6abf5 +a620904c +3d82bd7b +a005a640 +12a90325 +86ebb60d +b87c1070 +16cbf92d +94ded829 +5e2551bc +987b0830 +60272dc0 +28766950 +d0cf6aa1 +26bf3f4d +faf32ef5 +7a87aff5 +aeeacc5d +ca481294 +b558a66a +5e6065bc +dc4308b8 +cf309c9e +fd7906fa +23400b46 +83fa6407 +c9cbbc93 +aada7455 +5bd3dbb7 +22d5f145 +b1800a63 +ac93e059 +9372ce26 +b4497668 +8f63e41e +c838f490 +2d19a55a +0e43851c +5c9967b9 +55861fab +6826d9d0 +37b9656f +6c6a6dd8 +a2cc8845 +46d6a78d +45f3238b +7e2491fc +6e1e1fdc +d27f0aa4 +0c978d19 +52b533a5 +9f398e3e +f98bc0f3 +ac782c58 +62056bc4 +2e36435c +033a4506 +cd1d509a +0c161918 +e2f066c5 +5515d1aa +0d12031a +61dbd5c3 +5934e9b2 +0633630c +f4f00ee9 +61dafdc3 +75ad73eb +7c2db9f8 +792c03f2 +4483ad89 +378c736f +0de14b1b +d6a128ad +344dc168 +92f91225 +67e857cf +55dd8dab +8d94d21b +c03b3e80 +2ed6d95d +412dfd82 +82344204 +2ba7a557 +1b368b36 +196a0332 +bce32879 +f24baee4 +8b42ec16 +d57fecaa +605065c0 +9759882e +4665378c +b8c0c271 +7dfe8ffb +5e5421bc +ee7068dc +0bec5717 +e0e004c1 +75fb21eb +5a9d3bb5 +c4fd2e89 +c7b2e28f +dff6f6bf +d8462ab0 +e9b49ad3 +eb1d02d6 +c144cc82 +0d63751a +38e6a771 +eb8804d7 +87628e0e +f8c714f1 +66861dcd +02bd4305 +0e3aeb1c +4c18c798 +f67088ec +9541d62a +b2d14a65 +1b920537 +81fa3603 +ff729efe +feaddcfd +9f7a0e3e +f43a34e8 +ba603874 +580989b0 +8361dc06 +09164d12 +b46afc68 +e2ba00c5 +ff202efe +1b0f0d36 +799f09f3 +7dddabfb +b58d7c6b +0bcbbf17 +87d0360f +8a47b614 +1500052a +d3666ea6 +ea7626d4 +e5ac10cb +b587c26b +0277eb04 +fa4832f4 +468b618d +f0ea70e1 +42e3bd85 +dc9974b9 +e4df16c9 +b05f8e60 +a3643246 +1e74cb3c +1b855f37 +2c0c5558 +39d65773 +8778d20e +6e6d23dc +183fc330 +6845f5d0 +0073e500 +21820f43 +7c6e91f8 +d0b99aa1 +29c01f53 +4c588f98 +2fef3d5f +c3be9287 +fd5f5afa +1699d12d +b8760270 +b5b4e86b +98d73831 +892fc012 +0650df0c +06db6b0d +0acd1315 +20310740 +4a638d94 +2a1ba354 +c0620280 +098d1513 +e1e386c3 +f695deed +ee4ee6dc +bc781078 +13d40d27 +afed265f +11c05b23 +5596ebab +1c421738 +11534d22 +64f2bdc9 +e3eb4cc7 +c1406282 +6754d7ce +e38e22c7 +927fa424 +6da36fdb +84651408 +3ac26f75 +5ad31db5 +8d7d721a +1c2a1338 +c1233a82 +ac05a058 +a85a6a50 +d1889aa3 +5243e3a4 +32c3df65 +753c17ea +03703906 +aa138054 +adf3405b +e455f0c8 +24673948 +9bf8f237 +7c1df3f8 +da8932b5 +28d6a951 +41aed583 +4d9ee39b +1aa0dd35 +581653b0 +fddf82fb +278dbb4f +984da630 +8c38c418 +ee8118dd +a36ae846 +30e20f61 +ac974859 +2af17355 +178b972f +85ce500b +ef1deade +e9d22cd3 +1445b128 +74dc69e9 +2c577958 +6aa4a1d5 +61dbe5c3 +6a2c13d4 +52397da4 +3f25ef7e +6b299dd6 +87eec80f +c1b04483 +506aefa0 +c10f0482 +5fe3cbbf +22eadb45 +bbbc3e77 +229d0b45 +ba941075 +fc670af8 +63323bc6 +3601596c +a84e5850 +18bd6331 +ce10fe9c +de325cbc +d7e31eaf +872d2c0e +b4e46669 +d95b40b2 +ef209ede +c2e87485 +555c0faa +1407f128 +610ed5c2 +4d20099a +69e751d3 +dd111aba +fdeb7cfb +c5cf728b +61114dc2 +e64828cc +38e61371 +4f49019e +309cdb61 +bde3487b +df9bd0bf +c881bc91 +e06098c0 +2ca96359 +bf53b47e +2a1d7354 +a8e2e251 +a4de2849 +73fa7de7 +123aaf24 +41b5d583 +adee005b +5cdea1b9 +4afebf95 +bb934a77 +f8da1af1 +732c5fe6 +d7e1aeaf +0238e104 +89646012 +7e29b3fc +d5ba48ab +e203f0c4 +1ffb813f +e13256c2 +398a1973 +2d4d9b5a +d066e4a0 +ff73cafe +3a096b74 +5d86b7bb +7132bbe2 +f16948e2 +eff34cdf +cc13e298 +4fdbed9f +0817cb10 +791189f2 +5ee97bbd +55bc27ab +5a0a0fb4 +aa08ac54 +44e79b89 +89b5d413 +560c91ac +1ae40335 +1df61f3b +9aa02435 +17a98d2f +1a619934 +aae0a255 +de7302bc +f964fef2 +d3fe36a7 +e0f280c1 +f23316e4 +a0b8a241 +b4c16c69 +fd52d8fa +e69dd0cd +7fcff3ff +dac986b5 +f42082e8 +a5955c4b +89042e12 +1b978f37 +574e1dae +fc4ca4f8 +90184e20 +ed1b50da +913e0222 +763355ec +9535122a +3d7f5b7a +0f1e511e +f4a1dae9 +f5a4f2eb +05b4f70b +b704e26e +af455e5e +3e502d7c +22c03145 +c5cb548b +094bd312 +1bf8bd37 +c1c3d683 +f0ab00e1 +674fdfce +a5365c4a +6acd73d5 +669907cd +f204eee4 +fa328cf4 +766153ec +0d623f1a +f1a32ee3 +f62484ec +79c681f3 +1687472d +2e138d5c +6e8d45dd +f612c8ec +c7d87a8f +7fdbb3ff +3c338578 +55f6b9ab +13d1f727 +7dca0ffb +09dfc313 +06499b0c +5db797bb +f361cae6 +a4d83a49 +35557b6a +8570f60a +8c06d218 +4b1ce996 +84e32609 +1725712e +dee9d4bd +33638966 +bb062876 +3a982575 +c7b43a8f +4ad39595 +3da8cd7b +be43ea7c +b7f4306f +e4824cc9 +e4d820c9 +5a3761b4 +6d48a5da +d6aea8ad +6fcff1df +06b0e30d +384d4170 +41bd6783 +a8c6c451 +027a8d04 +c0467280 +fcf504f9 +0379ed06 +e5063aca diff --git a/ivtest/ivltests/br_gh661a.v b/ivtest/ivltests/br_gh661a.v new file mode 100644 index 000000000..d4fdddcd1 --- /dev/null +++ b/ivtest/ivltests/br_gh661a.v @@ -0,0 +1,40 @@ +module test; + +localparam NOM_COUNT = 1000; +localparam MIN_COUNT = NOM_COUNT - 200; +localparam MAX_COUNT = NOM_COUNT + 200; + +integer histogram[255:0]; + +integer i; + +reg [7:0] value; + +reg failed; + +initial begin + failed = 0; + for (i = 0; i < 256; i++) begin + histogram[i] = 0; + end + for (i = 0; i < 256*NOM_COUNT; i = i + 1) begin + value = $urandom_range(32'hffffffff, 32'h0) >> 24; + histogram[value] += 1; + end + for (i = 0; i < 256; i++) begin + if (histogram[i] < MIN_COUNT) begin + $display("Bin %3d count %0d", i, histogram[i]); + failed = 1; + end + if (histogram[i] > MAX_COUNT) begin + $display("Bin %3d count %0d", i, histogram[i]); + failed = 1; + end + end + if (failed) + $display("FAILED"); + else + $display("PASSED"); +end + +endmodule diff --git a/ivtest/ivltests/br_gh661b.v b/ivtest/ivltests/br_gh661b.v new file mode 100644 index 000000000..85a07ab5a --- /dev/null +++ b/ivtest/ivltests/br_gh661b.v @@ -0,0 +1,45 @@ +module test; + +localparam NOM_COUNT = 1000; +localparam MIN_COUNT = NOM_COUNT - 200; +localparam MAX_COUNT = NOM_COUNT + 200; + +integer histogram[255:0]; + +integer i; + +reg [31:0] value; + +reg failed; + +initial begin + failed = 0; + for (i = 0; i < 256; i++) begin + histogram[i] = 0; + end + for (i = 0; i < 256*NOM_COUNT; i = i + 1) begin + value = $urandom_range(32'h1ff, 32'h100) - 32'h100; + if (value[31:8] != 0) begin + $display("Random value %h not in range", value + 32'h100); + $display("FAILED"); + $finish(0); + end + histogram[value] += 1; + end + for (i = 0; i < 256; i++) begin + if (histogram[i] < MIN_COUNT) begin + $display("Bin %3d count %0d", i, histogram[i]); + failed = 1; + end + if (histogram[i] > MAX_COUNT) begin + $display("Bin %3d count %0d", i, histogram[i]); + failed = 1; + end + end + if (failed) + $display("FAILED"); + else + $display("PASSED"); +end + +endmodule diff --git a/ivtest/ivltests/random.v b/ivtest/ivltests/random.v new file mode 100644 index 000000000..48c766c65 --- /dev/null +++ b/ivtest/ivltests/random.v @@ -0,0 +1,11 @@ +module test; + +integer i; + +initial begin + for (i = 0; i < 1000; i++) begin + $display("%h", $random); + end +end + +endmodule diff --git a/ivtest/regress-sv.list b/ivtest/regress-sv.list index 8312bd6b3..30d7b0241 100644 --- a/ivtest/regress-sv.list +++ b/ivtest/regress-sv.list @@ -207,6 +207,8 @@ br_gh540 normal,-g2009 ivltests br_gh553 normal,-g2009 ivltests br_gh556 normal,-g2009 ivltests br_gh568 normal,-g2009 ivltests +br_gh661a normal,-g2009 ivltests +br_gh661b normal,-g2009 ivltests br_ml20171017 normal,-g2009 ivltests br_ml20180227 CE,-g2009 ivltests br_ml20180309a normal,-g2009 ivltests diff --git a/ivtest/regress-vlg.list b/ivtest/regress-vlg.list index 539919c91..13a90f314 100644 --- a/ivtest/regress-vlg.list +++ b/ivtest/regress-vlg.list @@ -1435,6 +1435,7 @@ queue normal ivltests queue_fail RE ivltests gold=queue_fail.gold queue_stat normal ivltests gold=queue_stat.gold ram16x1 normal ivltests # Sitting here for a long time? +random normal ivltests gold=random.gold readmem-error normal ivltests gold=readmem-error.gold readmem-invalid RE ivltests gold=readmem-invalid.gold readmemb1 normal ivltests # basic $readmemb - uses readmemh1.dat diff --git a/ivtest/regress-vlog95.list b/ivtest/regress-vlog95.list index f5944b788..e2f15cdc7 100644 --- a/ivtest/regress-vlog95.list +++ b/ivtest/regress-vlog95.list @@ -211,6 +211,8 @@ br1008 CE ivltests br1019 CE ivltests br_gh556 CE,-g2009 ivltests br_gh632c CE ivltests +br_gh661a CE ivltests +br_gh661b CE ivltests br_ml20171017 CE ivltests genvar_scopes CE ivltests meminit2 CE ivltests