This is a snippet from the R3 testbench that prints signal values to a file All input and HDL values are 16-bit unsigned The first test run has the scaler set to 0xFFFF, and flips the msb Waveform data: X"0001", X"1001", X"2001", X"3001", X"4001", X"5001", X"6001", X"7001", X"8001", X"9001", X"A001", X"B001", X"C001", X"D001", X"E001", X"F001", Waveform Buffer value = 0x0001 sample_data_r = floor(1*.999985)+32768 = 32768 32768. 51121. 1. 0. 32768. 10161. 0. 0. 32768. 42929. 1. 0. 32768. 26545. 0. 0. 32768. 59313. 1. 0. 32768. 6065. 0. 0. 32768. 38833. 1. 0. 32768. 22449. 0. 0. 32768. 55217. 1. 0. 32768. 14257. 0. 0. Waveform Buffer value = 0x1001 sample_data_r = floor(4097*.999985)+32768 = 36864 36864. 873. 0. 0. 36864. 33641. 1. 0. 36864. 17257. 1. 0. 36864. 50025. 1. 0. 36864. 9065. 0. 0. 36864. 41833. 1. 0. 36864. 25449. 0. 0. 36864. 58217. 1. 0. 36864. 4969. 0. 0. 36864. 37737. 1. 0. Waveform Buffer value = 0x2001 sample_data_r = floor(8193*.999985)+32768 = 40960 40960. 47609. 1. 0. 40960. 31225. 0. 0. 40960. 63993. 1. 0. 40960. 1529. 0. 0. 40960. 34297. 1. 0. 40960. 17913. 1. 0. 40960. 50681. 1. 0. 40960. 9721. 0. 0. 40960. 42489. 1. 0. 40960. 26105. 0. 0. Waveform Buffer value = 0x3001 sample_data_r = floor(12289*.999985)+32768 = 45056 45056. 24085. 1. 0. 45056. 56853. 1. 0. 45056. 15893. 0. 0. 45056. 48661. 1. 0. 45056. 32277. 0. 0. 45056. 65045. 1. 0. 45056. 277. 0. 0. 45056. 33045. 1. 0. 45056. 16661. 1. 0. 45056. 49429. 1. 0. Waveform Buffer value = 0x4001 sample_data_r = floor(16385*.999985)+32768 = 49152 49152. 60045. 1. 0. 49152. 6797. 0. 0. 49152. 39565. 1. 0. 49152. 23181. 1. 0. 49152. 55949. 1. 0. 49152. 14989. 0. 0. 49152. 47757. 1. 0. 49152. 31373. 1. 0. 49152. 64141. 1. 0. 49152. 1677. 0. 0. Waveform Buffer value = 0x5001 sample_data_r = floor(20481*.999985)+32768 = 53248 53248. 11357. 0. 0. 53248. 44125. 1. 0. 53248. 27741. 1. 0. 53248. 60509. 1. 0. 53248. 7261. 0. 0. 53248. 40029. 1. 0. 53248. 23645. 1. 0. 53248. 56413. 1. 0. 53248. 15453. 0. 0. 53248. 48221. 1. 0. Waveform Buffer value = 0x6001 sample_data_r = floor(24577*.999985)+32768 = 57344 57344. 35011. 1. 0. 57344. 18627. 1. 0. 57344. 51395. 1. 0. 57344. 10435. 1. 0. 57344. 43203. 1. 0. 57344. 26819. 1. 0. 57344. 59587. 1. 0. 57344. 6339. 0. 0. 57344. 39107. 1. 0. 57344. 22723. 1. 0. Waveform Buffer value = 0x7001 sample_data_r = floor(28673*.999985)+32768 = 61440 61440. 30675. 1. 0. 61440. 63443. 1. 0. 61440. 4051. 0. 0. 61440. 36819. 1. 0. 61440. 20435. 1. 0. 61440. 53203. 1. 0. 61440. 12243. 1. 0. 61440. 45011. 1. 0. 61440. 28627. 1. 0. 61440. 61395. 1. 0. Waveform Buffer value = 0x8001 sample_data_r = floor(32769*.999985)-32768 = 0 0. 54059. 1. 0. 0. 13099. 0. 0. 0. 45867. 0. 0. 0. 29483. 0. 0. 0. 62251. 0. 0. 0. 2859. 0. 0. 0. 35627. 0. 0. 0. 19243. 0. 0. 0. 52011. 0. 0. 0. 11051. 0. 0. Waveform Buffer value = 0x9001 sample_data_r = floor(32769*.999985)-32768 = 4096 4096. 5563. 0. 0. 4096. 38331. 0. 0. 4096. 21947. 0. 0. 4096. 54715. 0. 0. 4096. 13755. 0. 0. 4096. 46523. 0. 0. 4096. 30139. 0. 0. 4096. 62907. 0. 0. 4096. 3515. 0. 0. 4096. 36283. 1. 0. Waveform Buffer value = 0xA001 sample_data_r = floor(40961*.999985)-32768 = 8192 8192. 41319. 0. 0. 8192. 24935. 0. 0. 8192. 57703. 0. 0. 8192. 4455. 0. 0. 8192. 37223. 1. 0. 8192. 20839. 0. 0. 8192. 53607. 0. 0. 8192. 12647. 0. 0. 8192. 45415. 0. 0. 8192. 29031. 0. 0. Waveform Buffer value = 0xB001 sample_data_r = floor(45057*.999985)-32768 = 12288 12288. 18167. 0. 0. 12288. 50935. 0. 0. 12288. 9975. 0. 0. 12288. 42743. 1. 0. 12288. 26359. 0. 0. 12288. 59127. 0. 0. 12288. 5879. 0. 0. 12288. 38647. 1. 0. 12288. 22263. 0. 0. 12288. 55031. 0. 0. Waveform Buffer value = 0xC001 sample_data_r = floor(49153*.999985)-32768 = 16384 16384. 64543. 0. 0. 16384. 543. 0. 0. 16384. 33311. 1. 0. 16384. 16927. 0. 0. 16384. 49695. 0. 0. 16384. 8735. 0. 0. 16384. 41503. 1. 0. 16384. 25119. 0. 0. 16384. 57887. 0. 0. 16384. 4639. 0. 0. Waveform Buffer value = 0xD001 sample_data_r = floor(53249*.999985)-32768 = 20480 20480. 14464. 0. 0. 20480. 47232. 1. 0. 20480. 30848. 0. 0. 20480. 63616. 0. 0. 20480. 1152. 0. 0. 20480. 33920. 1. 0. 20480. 17536. 0. 0. 20480. 50304. 1. 0. 20480. 9344. 0. 0. 20480. 42112. 1. 0. Waveform Buffer value = 0xE001 sample_data_r = floor(57345*.999985)-32768 = 24576 24576. 40848. 1. 0. 24576. 24464. 0. 0. 24576. 57232. 1. 0. 24576. 16272. 0. 0. 24576. 49040. 1. 0. 24576. 32656. 0. 0. 24576. 65424. 0. 0. 24576. 80. 0. 0. 24576. 32848. 1. 0. 24576. 16464. 0. 0. Waveform Buffer value = 0xF001 sample_data_r = floor(61441*.999985)-32768 = 28672 28672. 27464. 0. 0. 28672. 60232. 1. 0. 28672. 6984. 0. 0. 28672. 39752. 1. 0. 28672. 23368. 0. 0. 28672. 56136. 1. 0. 28672. 15176. 0. 0. 28672. 47944. 1. 0. 28672. 31560. 0. 0. 28672. 64328. 0. 0. The last test run has the scaler set to 0xFFFF, and does not flip the msb Waveform data: X"0100", X"1100", X"2100", X"3100", X"4100", X"5100", X"6100", X"7100", X"8100", X"9100", X"A100", X"B100", X"C100", X"D100", X"E100", X"F100", 255. 17097. 1. 2. 255. 49865. 0. 2. 255. 8905. 0. 2. 255. 41673. 0. 2. 255. 25289. 0. 2. 255. 58057. 0. 2. 255. 4809. 0. 2. 255. 37577. 0. 2. 255. 21193. 0. 2. 255. 53961. 0. 2. 4351. 63545. 0. 2. 4351. 1081. 0. 2. 4351. 33849. 1. 2. 4351. 17465. 0. 2. 4351. 50233. 0. 2. 4351. 9273. 0. 2. 4351. 42041. 0. 2. 4351. 25657. 0. 2. 4351. 58425. 0. 2. 4351. 5177. 0. 2. 8447. 16165. 0. 2. 8447. 48933. 0. 2. 8447. 32549. 0. 2. 8447. 65317. 0. 2. 8447. 165. 0. 2. 8447. 32933. 1. 2. 8447. 16549. 0. 2. 8447. 49317. 0. 2. 8447. 8357. 0. 2. 8447. 41125. 1. 2. 12543. 39861. 1. 2. 12543. 23477. 0. 2. 12543. 56245. 0. 2. 12543. 15285. 0. 2. 12543. 48053. 0. 2. 12543. 31669. 0. 2. 12543. 64437. 0. 2. 12543. 1973. 0. 2. 12543. 34741. 1. 2. 12543. 18357. 0. 2. 16639. 28013. 0. 2. 16639. 60781. 0. 2. 16639. 7533. 0. 2. 16639. 40301. 1. 2. 16639. 23917. 0. 2. 16639. 56685. 0. 2. 16639. 15725. 0. 2. 16639. 48493. 1. 2. 16639. 32109. 0. 2. 16639. 64877. 0. 2. 20735. 51709. 0. 2. 20735. 10749. 0. 2. 20735. 43517. 1. 2. 20735. 27133. 0. 2. 20735. 59901. 0. 2. 20735. 6653. 0. 2. 20735. 39421. 1. 2. 20735. 23037. 0. 2. 20735. 55805. 0. 2. 20735. 14845. 0. 2. 24831. 3603. 0. 2. 24831. 36371. 1. 2. 24831. 19987. 0. 2. 24831. 52755. 1. 2. 24831. 11795. 0. 2. 24831. 44563. 1. 2. 24831. 28179. 0. 2. 24831. 60947. 0. 2. 24831. 7699. 0. 2. 24831. 40467. 1. 2. 28927. 45707. 1. 2. 28927. 29323. 0. 2. 28927. 62091. 0. 2. 28927. 2699. 0. 2. 28927. 35467. 1. 2. 28927. 19083. 0. 2. 28927. 51851. 1. 2. 28927. 10891. 0. 2. 28927. 43659. 1. 2. 28927. 27275. 0. 2. 33023. 21595. 0. 2. 33023. 54363. 1. 2. 33023. 13403. 0. 2. 33023. 46171. 1. 2. 33023. 29787. 0. 2. 33023. 62555. 1. 2. 33023. 3163. 0. 2. 33023. 35931. 1. 2. 33023. 19547. 0. 2. 33023. 52315. 1. 2. 37119. 57543. 1. 2. 37119. 4295. 0. 2. 37119. 37063. 1. 2. 37119. 20679. 1. 2. 37119. 53447. 1. 2. 37119. 12487. 0. 2. 37119. 45255. 1. 2. 37119. 28871. 0. 2. 37119. 61639. 1. 2. 37119. 2247. 0. 2. 41215. 10199. 0. 2. 41215. 42967. 1. 2. 41215. 26583. 0. 2. 41215. 59351. 1. 2. 41215. 6103. 0. 2. 41215. 38871. 1. 2. 41215. 22487. 1. 2. 41215. 55255. 1. 2. 41215. 14295. 0. 2. 41215. 47063. 1. 2. 45311. 33583. 1. 2. 45311. 17199. 1. 2. 45311. 49967. 1. 2. 45311. 9007. 0. 2. 45311. 41775. 1. 2. 45311. 25391. 1. 2. 45311. 58159. 1. 2. 45311. 4911. 0. 2. 45311. 37679. 1. 2. 45311. 21295. 1. 2. 49407. 31167. 0. 2. 49407. 63935. 1. 2. 49407. 1471. 0. 2. 49407. 34239. 1. 2. 49407. 17855. 1. 2. 49407. 50623. 1. 2. 49407. 9663. 0. 2. 49407. 42431. 1. 2. 49407. 26047. 1. 2. 49407. 58815. 1. 2. 53503. 56928. 1. 2. 53503. 15968. 0. 2. 53503. 48736. 1. 2. 53503. 32352. 1. 2. 53503. 65120. 1. 2. 53503. 352. 0. 2. 53503. 33120. 1. 2. 53503. 16736. 1. 2. 53503. 49504. 1. 2. 53503. 8544. 1. 2. 57599. 6896. 0. 2. 57599. 39664. 1. 2. 57599. 23280. 1. 2. 57599. 56048. 1. 2. 57599. 15088. 1. 2. 57599. 47856. 1. 2. 57599. 31472. 1. 2. 57599. 64240. 1. 2. 57599. 1776. 0. 2. 57599. 34544. 1. 2. 61695. 44056. 1. 2. 61695. 27672. 1. 2. 61695. 60440. 1. 2. 61695. 7192. 1. 2. 61695. 39960. 1. 2. 61695. 23576. 1. 2. 61695. 56344. 1. 2. 61695. 15384. 1. 2. 61695. 48152. 1. 2. 61695. 31768. 1. 2.