vak: (Улыбка)
[personal profile] vak
Имеющийся тест чипа Am2910 проходит на файле alg_beh/alg_beh2910.vhdl, но выдаёт кучу ошибок на файле funct_block_alg_beh/funct_block_alg_beh2910.vhdl. Вывод - нельзя слепо доверять этим исходникам, без тестов никак нельзя.

ghdl -r -fexplicit --ieee=synopsys E --vcd=am2910.vcd --stop-time=140ms --ieee-asserts=disable 2>&1 | tee run.log
../test_vectors_2910.vhdl:256:1:@69ns:(assertion warning): Assert 2 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:312:1:@89ns:(assertion warning): Assert 4 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:371:1:@109ns:(assertion warning): Assert 7 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:551:1:@179ns:(assertion warning): Assert 11 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:607:1:@199ns:(assertion warning): Assert 13 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:666:1:@219ns:(assertion warning): Assert 16 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:846:1:@289ns:(assertion warning): Assert 20 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:902:1:@309ns:(assertion warning): Assert 22 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:961:1:@329ns:(assertion warning): Assert 25 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:1141:1:@399ns:(assertion warning): Assert 29 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:1197:1:@419ns:(assertion warning): Assert 31 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:1256:1:@439ns:(assertion warning): Assert 34 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:1436:1:@509ns:(assertion warning): Assert 38 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:1492:1:@529ns:(assertion warning): Assert 40 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:1551:1:@549ns:(assertion warning): Assert 43 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:1731:1:@619ns:(assertion warning): Assert 47 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:1787:1:@639ns:(assertion warning): Assert 49 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:1846:1:@659ns:(assertion warning): Assert 52 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:2026:1:@729ns:(assertion warning): Assert 56 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:2082:1:@749ns:(assertion warning): Assert 58 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:2141:1:@769ns:(assertion warning): Assert 61 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:2321:1:@839ns:(assertion warning): Assert 65 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:2377:1:@859ns:(assertion warning): Assert 67 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:2436:1:@879ns:(assertion warning): Assert 70 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:2544:1:@919ns:(assertion warning): Assert 73 : < FULL_BAR /= 1 >
../test_vectors_2910.vhdl:2621:1:@949ns:(assertion warning): Assert 75 : < FULL_BAR /= 1 >
../test_vectors_2910.vhdl:2672:1:@969ns:(assertion warning): Assert 76 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:2731:1:@989ns:(assertion warning): Assert 79 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:2839:1:@1029ns:(assertion warning): Assert 82 : < FULL_BAR /= 1 >
../test_vectors_2910.vhdl:2916:1:@1059ns:(assertion warning): Assert 84 : < FULL_BAR /= 1 >
../test_vectors_2910.vhdl:2967:1:@1079ns:(assertion warning): Assert 85 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:3026:1:@1099ns:(assertion warning): Assert 88 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:3206:1:@1169ns:(assertion warning): Assert 92 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:3262:1:@1189ns:(assertion warning): Assert 94 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:3321:1:@1209ns:(assertion warning): Assert 97 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:3501:1:@1279ns:(assertion warning): Assert 101 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:3557:1:@1299ns:(assertion warning): Assert 103 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:3616:1:@1319ns:(assertion warning): Assert 106 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:3796:1:@1389ns:(assertion warning): Assert 110 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:3852:1:@1409ns:(assertion warning): Assert 112 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:3911:1:@1429ns:(assertion warning): Assert 115 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:4091:1:@1499ns:(assertion warning): Assert 119 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:4147:1:@1519ns:(assertion warning): Assert 121 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:4206:1:@1539ns:(assertion warning): Assert 124 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:4386:1:@1609ns:(assertion warning): Assert 128 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:4442:1:@1629ns:(assertion warning): Assert 130 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:4501:1:@1649ns:(assertion warning): Assert 133 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:4681:1:@1719ns:(assertion warning): Assert 137 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:4737:1:@1739ns:(assertion warning): Assert 139 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:4796:1:@1759ns:(assertion warning): Assert 142 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:4904:1:@1799ns:(assertion warning): Assert 145 : < FULL_BAR /= 1 >
../test_vectors_2910.vhdl:4976:1:@1829ns:(assertion warning): Assert 146 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:4981:1:@1829ns:(assertion warning): Assert 147 : < FULL_BAR /= 1 >
../test_vectors_2910.vhdl:5032:1:@1849ns:(assertion warning): Assert 148 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:5091:1:@1869ns:(assertion warning): Assert 151 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:5194:1:@1909ns:(assertion warning): Assert 153 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:5199:1:@1909ns:(assertion warning): Assert 154 : < FULL_BAR /= 1 >
../test_vectors_2910.vhdl:5276:1:@1939ns:(assertion warning): Assert 156 : < FULL_BAR /= 1 >
../test_vectors_2910.vhdl:5386:1:@1979ns:(assertion warning): Assert 160 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:5566:1:@2049ns:(assertion warning): Assert 164 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:5622:1:@2069ns:(assertion warning): Assert 166 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:5681:1:@2089ns:(assertion warning): Assert 169 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:5861:1:@2159ns:(assertion warning): Assert 173 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:5917:1:@2179ns:(assertion warning): Assert 175 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:5976:1:@2199ns:(assertion warning): Assert 178 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:6156:1:@2269ns:(assertion warning): Assert 182 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:6212:1:@2289ns:(assertion warning): Assert 184 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:6271:1:@2309ns:(assertion warning): Assert 187 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:6451:1:@2379ns:(assertion warning): Assert 191 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:6507:1:@2399ns:(assertion warning): Assert 193 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:6566:1:@2419ns:(assertion warning): Assert 196 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:6746:1:@2489ns:(assertion warning): Assert 200 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:6802:1:@2509ns:(assertion warning): Assert 202 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:6861:1:@2529ns:(assertion warning): Assert 205 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:7041:1:@2599ns:(assertion warning): Assert 209 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:7097:1:@2619ns:(assertion warning): Assert 211 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:7156:1:@2639ns:(assertion warning): Assert 214 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:7336:1:@2709ns:(assertion warning): Assert 218 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:7392:1:@2729ns:(assertion warning): Assert 220 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:7451:1:@2749ns:(assertion warning): Assert 223 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:7631:1:@2819ns:(assertion warning): Assert 227 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:7687:1:@2839ns:(assertion warning): Assert 229 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:7746:1:@2859ns:(assertion warning): Assert 232 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:7926:1:@2929ns:(assertion warning): Assert 236 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:7982:1:@2949ns:(assertion warning): Assert 238 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:8041:1:@2969ns:(assertion warning): Assert 241 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:8221:1:@3039ns:(assertion warning): Assert 245 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:8277:1:@3059ns:(assertion warning): Assert 247 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:8336:1:@3079ns:(assertion warning): Assert 250 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:8516:1:@3149ns:(assertion warning): Assert 254 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:8572:1:@3169ns:(assertion warning): Assert 256 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:8631:1:@3189ns:(assertion warning): Assert 259 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:8814:1:@3259ns:(assertion warning): Assert 263 : < Y /= 000000000001 >
../test_vectors_2910.vhdl:8890:1:@3289ns:(assertion warning): Assert 265 : < Y /= 000000000010 >
../test_vectors_2910.vhdl:8966:1:@3319ns:(assertion warning): Assert 267 : < Y /= 000000000100 >
../test_vectors_2910.vhdl:9042:1:@3349ns:(assertion warning): Assert 269 : < Y /= 111111110111 >
../test_vectors_2910.vhdl:9047:1:@3349ns:(assertion warning): Assert 270 : < FULL_BAR /= 0 >
../test_vectors_2910.vhdl:9118:1:@3379ns:(assertion warning): Assert 271 : < Y /= 000000001000 >
../test_vectors_2910.vhdl:9123:1:@3379ns:(assertion warning): Assert 272 : < FULL_BAR /= 0 >
../test_vectors_2910.vhdl:9176:1:@3399ns:(assertion warning): Assert 273 : < Y /= 000000001000 >
../test_vectors_2910.vhdl:9181:1:@3399ns:(assertion warning): Assert 274 : < FULL_BAR /= 0 >
../test_vectors_2910.vhdl:9207:1:@3409ns:(assertion warning): Assert 275 : < Y /= 000000000100 >
../test_vectors_2910.vhdl:9240:1:@3419ns:(assertion warning): Assert 277 : < Y /= 000000000100 >
../test_vectors_2910.vhdl:9271:1:@3429ns:(assertion warning): Assert 279 : < Y /= 000000000010 >
../test_vectors_2910.vhdl:9304:1:@3439ns:(assertion warning): Assert 281 : < Y /= 000000000010 >
../test_vectors_2910.vhdl:9335:1:@3449ns:(assertion warning): Assert 283 : < Y /= 000000000001 >
../test_vectors_2910.vhdl:9368:1:@3459ns:(assertion warning): Assert 285 : < Y /= 000000000001 >
../test_vectors_2910.vhdl:9399:1:@3469ns:(assertion warning): Assert 287 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:9690:1:@3579ns:(assertion warning): Assert 296 : < Y /= 111111111110 >
../test_vectors_2910.vhdl:9766:1:@3609ns:(assertion warning): Assert 298 : < Y /= 111111111101 >
../test_vectors_2910.vhdl:9842:1:@3639ns:(assertion warning): Assert 300 : < Y /= 111111111011 >
../test_vectors_2910.vhdl:9918:1:@3669ns:(assertion warning): Assert 302 : < Y /= 000000001000 >
../test_vectors_2910.vhdl:9923:1:@3669ns:(assertion warning): Assert 303 : < FULL_BAR /= 0 >
../test_vectors_2910.vhdl:9994:1:@3699ns:(assertion warning): Assert 304 : < Y /= 111111110111 >
../test_vectors_2910.vhdl:9999:1:@3699ns:(assertion warning): Assert 305 : < FULL_BAR /= 0 >
../test_vectors_2910.vhdl:10052:1:@3719ns:(assertion warning): Assert 306 : < Y /= 111111110111 >
../test_vectors_2910.vhdl:10057:1:@3719ns:(assertion warning): Assert 307 : < FULL_BAR /= 0 >
../test_vectors_2910.vhdl:10083:1:@3729ns:(assertion warning): Assert 308 : < Y /= 111111111011 >
../test_vectors_2910.vhdl:10116:1:@3739ns:(assertion warning): Assert 310 : < Y /= 111111111011 >
../test_vectors_2910.vhdl:10147:1:@3749ns:(assertion warning): Assert 312 : < Y /= 111111111101 >
../test_vectors_2910.vhdl:10180:1:@3759ns:(assertion warning): Assert 314 : < Y /= 111111111101 >
../test_vectors_2910.vhdl:10211:1:@3769ns:(assertion warning): Assert 316 : < Y /= 111111111110 >
../test_vectors_2910.vhdl:10244:1:@3779ns:(assertion warning): Assert 318 : < Y /= 111111111110 >
../test_vectors_2910.vhdl:10275:1:@3789ns:(assertion warning): Assert 320 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:10308:1:@3799ns:(assertion warning): Assert 322 : < Y /= 111111111111 >
../test_vectors_2910.vhdl:12567:1:@4739ns:(assertion warning): Assert 357 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:12637:1:@4769ns:(assertion warning): Assert 358 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:12707:1:@4799ns:(assertion warning): Assert 359 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:12777:1:@4829ns:(assertion warning): Assert 360 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:12848:1:@4859ns:(assertion warning): Assert 361 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:12918:1:@4889ns:(assertion warning): Assert 362 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:12988:1:@4919ns:(assertion warning): Assert 363 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:13058:1:@4949ns:(assertion warning): Assert 364 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:13129:1:@4979ns:(assertion warning): Assert 365 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:13199:1:@5009ns:(assertion warning): Assert 366 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:13269:1:@5039ns:(assertion warning): Assert 367 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:13339:1:@5069ns:(assertion warning): Assert 368 : < Y /= 000000000000 >
../test_vectors_2910.vhdl:13482:1:@5117ns:(assertion warning): Assert 369 : < Y /= 111111111110 >
../test_vectors_2910.vhdl:13552:1:@5147ns:(assertion warning): Assert 370 : < Y /= 111111111101 >
../test_vectors_2910.vhdl:13622:1:@5177ns:(assertion warning): Assert 371 : < Y /= 111111111011 >
../test_vectors_2910.vhdl:13692:1:@5207ns:(assertion warning): Assert 372 : < Y /= 111111110111 >
../test_vectors_2910.vhdl:13762:1:@5237ns:(assertion warning): Assert 373 : < Y /= 111111101111 >
../test_vectors_2910.vhdl:13832:1:@5267ns:(assertion warning): Assert 374 : < Y /= 111111011111 >
../test_vectors_2910.vhdl:13902:1:@5297ns:(assertion warning): Assert 375 : < Y /= 111110111111 >
../test_vectors_2910.vhdl:13972:1:@5327ns:(assertion warning): Assert 376 : < Y /= 111101111111 >
../test_vectors_2910.vhdl:14042:1:@5357ns:(assertion warning): Assert 377 : < Y /= 111011111111 >
../test_vectors_2910.vhdl:14112:1:@5387ns:(assertion warning): Assert 378 : < Y /= 110111111111 >
../test_vectors_2910.vhdl:14182:1:@5417ns:(assertion warning): Assert 379 : < Y /= 101111111111 >
../test_vectors_2910.vhdl:14252:1:@5447ns:(assertion warning): Assert 380 : < Y /= 011111111111 >
./e:error: simulation stopped by --stop-delta
./e:error: simulation failed

Возможно, это всё проблемы GHDL. На симуляторе Modelsim оба теста проходят чисто. Modelsim входит в состав бесплатной версии Altera Quartus (с некоторыми ограничениями).

На симуляторе Cadence IUS оба теста alg_beh тоже проходят. OEM-версия IUS содержится в бесплатном пакете Xilinx Vivado. Но у него есть минус: он не понимает guard-выражения языка VHDL.
ERROR: [XSIM 43-3147] "funct_block_alg_beh2901.vhdl" Line 135. Guard expressions are not supported. 
ERROR: [XSIM 43-3147] "funct_block_alg_beh2901.vhdl" Line 151. Guard expressions are not supported. 
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at [email protected]

OSZAR »