From bdb88b358c979810e7d1edc1a007dd1208f2f456 Mon Sep 17 00:00:00 2001 From: Nikolay Puzanov Date: Sun, 11 Jun 2023 17:54:44 +0300 Subject: [PATCH] Increase count of Pi digits to 200 --- README.md | 17 ++++- source/firmware/fw.mem | 162 ++++++++++++++++++++--------------------- source/firmware/main.c | 2 +- 3 files changed, 97 insertions(+), 84 deletions(-) diff --git a/README.md b/README.md index 39c5a8f..bf886fa 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Простой бенчмарк HDL симуляторов (преранняя версия) Для оценки скорости запускается симуляция софт-процессора -[PicoRV32](https://github.com/YosysHQ/picorv32) с программой вычисления первых 50 +[PicoRV32](https://github.com/YosysHQ/picorv32) с программой вычисления первых 200 знаков числа Пи. В папке `source` находятся исходники RTL и программы. Верхний модуль - `testbench` с @@ -16,7 +16,7 @@ файл `results.txt`. Можно запустить бунчмарк на одном симуляторе, для чего в параметрах скрипта `run.sh` нужно указать папку с бенчмарком. -## Результаты +## Результаты для 50 знаков Пи - Xeon E5-2630v3 @ 2.40GHz - Verilator 5.011 devel rev v5.010-98-g15f8ebc56 @@ -29,3 +29,16 @@ test-modelsim: 25555 test-verilator: 1289 ``` + +## Результаты для 200 знаков Пи + +Вычисление 200 знаков на Icarus Verilog занимает непозволительно много времени, по +этому перед запуском всех бенчмарков рекомендую переименовать папку `test-iverilog` в +`notest-iverilog`. + +Результаты для 200 знаков на том же процессоре: +``` + test-iverilog: TBD + test-modelsim: 382376 + test-verilator: 20816 +``` diff --git a/source/firmware/fw.mem b/source/firmware/fw.mem index 40fb875..dcab966 100644 --- a/source/firmware/fw.mem +++ b/source/firmware/fw.mem @@ -9,32 +9,32 @@ ffc10113 00050593 00001537 ff010113 -c0050513 +c0850513 00812423 00112623 00001437 -149000ef -f7842783 +151000ef +75042783 00400713 00178793 -f6f42c23 +74f42823 00e78a63 00c12083 00812403 01010113 00008067 00001537 -c0450513 -119000ef +c0c50513 +121000ef 00c12083 -f6042c23 +74042823 00812403 01010113 00008067 00001537 fb010113 -03200593 -c0850513 +0c800593 +c1050513 03812423 04112623 04812423 @@ -48,27 +48,29 @@ c0850513 03912223 03a12023 01b12e23 -0bd000ef +0c5000ef 000017b7 -cdc78c13 -29cc0693 -cdc78793 -00200713 -00e7a023 +00001737 +ce478c13 +a6c70713 +ce478793 +00ec0733 +00200693 +00d7a023 00478793 -fed79ce3 +fee79ce3 00001bb7 -03200a13 +0c800a13 00012623 00000993 00001ab7 00001937 -f74b8b93 +74cb8b93 00900c93 00400b13 000b8d13 -14d00493 -0a700413 +53500493 +29b00413 00000d93 000d2683 000d8593 @@ -103,11 +105,11 @@ fa0418e3 00a00793 0af50e63 00c12583 -c00a8513 +c08a8513 7dc000ef -f7892783 +75092783 00178793 -f6f92c23 +74f92823 05678063 05304863 00812623 @@ -115,71 +117,71 @@ f6f92c23 fffa0a13 f40a12e3 00c12583 -c00a8513 +c08a8513 7ac000ef 00001537 -c3050513 +c3850513 7a0000ef 010007b7 00100713 00e7a023 0000006f 000017b7 -c0478513 +c0c78513 784000ef -f6092c23 +74092823 fb305ce3 00000493 00900593 -c00a8513 +c08a8513 76c000ef -f7892783 +75092783 00148493 00178793 -f6f92c23 +74f92823 01678a63 ff3490e3 f8dff06f 00198993 f8dff06f 000017b7 -c0478513 +c0c78513 73c000ef -f6092c23 +74092823 fd3490e3 f6dff06f 00c12783 -c00a8513 +c08a8513 00178593 720000ef -f7892783 +75092783 00178793 -f6f92c23 +74f92823 05678a63 03305663 00000413 00000593 -c00a8513 +c08a8513 6fc000ef -f7892783 +75092783 00140413 00178793 -f6f92c23 +74f92823 01678a63 ff3410e3 00012623 00000993 f1dff06f 000017b7 -c0478513 +c0c78513 6cc000ef -f6092c23 +74092823 fd3410e3 fe1ff06f 000017b7 -c0478513 +c0c78513 6b4000ef -f6092c23 +74092823 fa1ff06f fe010113 00912a23 @@ -399,7 +401,7 @@ ff877713 06d76e63 00001737 00269693 -c3870713 +c4070713 00e68733 00072703 00070067 @@ -445,7 +447,7 @@ f49ff06f 0a088463 fcd51ae3 00001b37 -cbcb0793 +cc4b0793 00471713 16084a63 01c10693 @@ -486,7 +488,7 @@ ce0402e3 dadff06f 0ad51463 00001b37 -cbcb0793 +cc4b0793 00471713 01c10693 00e787b3 @@ -631,7 +633,7 @@ ffffffb7 00001e37 00001637 ffffcf13 -3c400313 +3cc00313 01010e93 81060613 800e0e13 @@ -780,39 +782,39 @@ ffc78513 00000a49 4e4f440a 00000a45 -0000086c -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -00000854 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -00000848 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -000006b4 -00000860 +00000874 +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +0000085c +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +00000850 +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +000006bc +00000868 33323130 37363534 42413938 @@ -16380,5 +16382,3 @@ ffc78513 00000000 00000000 00000000 -00000000 -00000000 diff --git a/source/firmware/main.c b/source/firmware/main.c index d38f08f..c22ace5 100644 --- a/source/firmware/main.c +++ b/source/firmware/main.c @@ -8,7 +8,7 @@ void put_char(char c) IO_REG_CONSOLE = c | IO_REG_CONSOLE_SEND; } -#define N 50 +#define N 200 #define CHUNK 4 #define ARR_LEN (10 * N / 3 + 1)