| 123456789101112131415161718192021222324 |
- import numpy as np
- from fpu_test_gen import reverse_endian, dtype_size
- import sys
- def float2verilog(lines, dtype=np.float32):
- dsize = dtype_size(dtype)
- print("")
- for i, line in enumerate(lines):
- arr = line.replace('[', '').replace(']', '').replace('#', '').replace('/', '').split()
- nums = np.array([float(f.strip(',')) for f in arr if f], dtype=dtype)
- b = nums.tobytes()
- print(f'[{i}] = {{' +
- ', '.join(["'h" + reverse_endian(b[i*dsize:i*dsize+dsize]).hex() for i in range(len(arr))]) +
- '};')
- if __name__ == '__main__':
- print("Press Ctrl-D to proceed")
- while True:
- lines = sys.stdin.readlines()
- if len(lines) == 0:
- break
- float2verilog(lines)
|