830afa5ab5f1e304b95ff461a6eb51359ed0ea7e
1 # SPDX-License-Identifier: LGPL-2.1-or-later
2 # See Notices.txt for copyright information
5 Copyright (C) 2021 Luke Kenneth Casson Leighton <lkcl@lkcl.net>
7 mini demo test of Cat and Assign
10 from nmigen
import Signal
, Module
, Elaboratable
, Cat
, Const
, signed
11 from nmigen
.back
.pysim
import Simulator
, Settle
12 from nmutil
.extend
import ext
14 from ieee754
.part_mul_add
.partpoints
import PartitionPoints
15 from ieee754
.part
.partsig
import SimdSignal
18 if __name__
== "__main__":
19 from ieee754
.part
.test
.test_partsig
import create_simulator
22 a
= SimdSignal(mask
, 16)
23 b
= SimdSignal(mask
, 16)
24 o
= SimdSignal(mask
, 32)
25 a1
= SimdSignal(mask
, 16)
26 b1
= SimdSignal(mask
, 16)
27 omask
= (1<<len(o
)) - 1
35 m
.d
.comb
+= o
.eq(Cat(a
, b
))
37 m
.d
.comb
+= Cat(a1
, b1
).eq(o
)
39 sim
= create_simulator(m
, [], "minitest")
43 yield a
.sig
.eq(0x0123)
44 yield b
.sig
.eq(0x4567)
47 print("out 000", bin(out
&omask
), hex(out
&omask
))
51 print("out 010", bin(out
&omask
), hex(out
&omask
))
55 print("out 110", bin(out
&omask
), hex(out
&omask
))
59 print("out 111", bin(out
&omask
), hex(out
&omask
))
61 sim
.add_process(process
)
62 with sim
.write_vcd("partition_minitest.vcd", "partition_partition_ass.gtkw",