#include "dynamatic/Integration.h"
#include <stdint.h>
#ifdef HLS_FUZZER_VERIFY
constexpr
#endif
int16_t
test21(float var2, uint32_t var3, int32_t var4, double var12, float var13,
double var14, float var15, int8_t var16, uint32_t var17,
int32_t var18, uint32_t var19, int8_t var20, uint16_t var21,
uint16_t var22, uint32_t var23, uint16_t var24, int8_t var25,
int8_t var26, int8_t var27, int8_t var29, uint16_t var30,
int8_t var31, int16_t var32, int32_t var33, uint8_t var34,
int8_t var35, uint16_t var36, uint8_t var37, uint8_t var38,
uint16_t var39, int8_t var40, int16_t var41, uint8_t var42,
int8_t var43, int32_t var45, uint16_t var46, uint16_t var47,
uint16_t var48, int16_t var49, uint16_t var0[32], double var1[8],
uint8_t var28[2], uint8_t var44[2]) {
for (; var0[0];)
var1[0] = 0;
var0[0] = !(var1[0] >= 0);
return 0;
}
#ifdef HLS_FUZZER_VERIFY
constexpr
#endif
void
test_bench() {
float var2 = 4.020215e-01, var13 = 0, var15 = 0;
uint32_t var3 = 0;
int32_t var4 = 0;
double var12 = 0, var14 = 0;
int8_t var16 = 0;
uint32_t var17 = 7;
int32_t var18 = 0;
uint32_t var19 = 0;
int8_t var20 = 0;
uint16_t var21 = 0;
uint16_t var22 = 0;
uint32_t var23 = 0;
uint16_t var24 = 0;
int8_t var25 = 0;
int8_t var26 = 0;
int8_t var27 = 0;
int8_t var29 = 0;
uint16_t var30 = 0;
int8_t var31 = 0;
int16_t var32 = 0;
int32_t var33 = 0;
uint8_t var34 = 0;
int8_t var35 = 0;
uint16_t var36 = 0;
uint8_t var37 = 0;
uint8_t var38 = 0;
uint16_t var39 = 0;
int8_t var40 = 0;
int16_t var41 = 0;
uint8_t var42 = 0;
int8_t var43 = 0;
int32_t var45 = 0;
uint16_t var46 = 0;
uint16_t var47 = 0;
uint16_t var48 = 0;
int16_t var49 = 0;
uint16_t var0[32] = {};
double var1[8] = {};
uint8_t var28[2];
uint8_t var44[2];
CALL_KERNEL(test21, var2, var3, var4, var12, var13, var14, var15, var16,
var17, var18, var19, var20, var21, var22, var23, var24, var25,
var26, var27, var29, var30, var31, var32, var33, var34, var35,
var36, var37, var38, var39, var40, var41, var42, var43, var45,
var46, var47, var48, var49, var0, var1, var28, var44);
}
int main() { test_bench(); }
dynamatic> compile
[INFO] Copied C source
[INFO] Disabled short-circuiting
[INFO] Compiled to LLVM IR
[INFO] Optimized LLVM IR
[INFO] Applied memory dependency analysis to LLVM IR
[INFO] Converted to std dialect
[INFO] Applied CF transformations
[INFO] Marked memory accesses with the corresponding interfaces in cf
[INFO] Compiled cf to handshake
[INFO] Applied transformations to handshake
[INFO] Running simple buffer placement (on-merges).
[INFO] Placed simple buffers
[INFO] Generated handshake_export
[INFO] Lowered to HW
[INFO] Compilation succeeded
dynamatic> write-hdl
[INFO] Exported RTL (vhdl)
[INFO] HDL generation succeeded
dynamatic> simulate --timeout 1000000
[INFO] Built kernel for IO gen.
[INFO] Ran kernel for IO gen.
[INFO] Launching simulation (vsim)
[FATAL] Simulation failed
cat report.txt
FP32 comparison of [var2] : Pass
Comparison of [var3] : Pass
Comparison of [var4] : Pass
FP64 comparison of [var12] : Pass
FP32 comparison of [var13] : Pass
FP64 comparison of [var14] : Pass
FP32 comparison of [var15] : Pass
Comparison of [var16] : Pass
Comparison of [var17] : Pass
Comparison of [var18] : Pass
Comparison of [var19] : Pass
Comparison of [var20] : Pass
Comparison of [var21] : Pass
Comparison of [var22] : Pass
Comparison of [var23] : Pass
Comparison of [var24] : Pass
Comparison of [var25] : Pass
Comparison of [var26] : Pass
Comparison of [var27] : Pass
Comparison of [var29] : Pass
Comparison of [var30] : Pass
Comparison of [var31] : Pass
Comparison of [var32] : Pass
Comparison of [var33] : Pass
Comparison of [var34] : Pass
Comparison of [var35] : Pass
Comparison of [var36] : Pass
Comparison of [var37] : Pass
Comparison of [var38] : Pass
Comparison of [var39] : Pass
Comparison of [var40] : Pass
Comparison of [var41] : Pass
Comparison of [var42] : Pass
Comparison of [var43] : Pass
Comparison of [var45] : Pass
Comparison of [var46] : Pass
Comparison of [var47] : Pass
Comparison of [var48] : Pass
Comparison of [var49] : Pass
[ERROR COMPARE] Token mismatch: [0x00000000] and [0x000X] are not equal (at transaction id 0).
Comparison of [var0] : Fail
Given the following C code:
Running and simulating it with dynamatic yields an undefined value: