Luke Kenneth Casson Leighton [Thu, 20 Feb 2020 20:34:28 +0000 (20:34 +0000)]
change name to not clash with cell name add1
Luke Kenneth Casson Leighton [Thu, 20 Feb 2020 20:06:25 +0000 (20:06 +0000)]
stop at end of mask index
Luke Kenneth Casson Leighton [Thu, 20 Feb 2020 20:04:14 +0000 (20:04 +0000)]
ignore last bit of partition mask
Luke Kenneth Casson Leighton [Wed, 19 Feb 2020 14:33:23 +0000 (14:33 +0000)]
test shift against scalar b input
Luke Kenneth Casson Leighton [Wed, 19 Feb 2020 14:20:21 +0000 (14:20 +0000)]
all signals must be reset_less
Luke Kenneth Casson Leighton [Mon, 17 Feb 2020 20:41:13 +0000 (20:41 +0000)]
add fpflags to Overflow class
Luke Kenneth Casson Leighton [Mon, 17 Feb 2020 20:31:10 +0000 (20:31 +0000)]
comment that roundz is a property
Michael Nolan [Mon, 17 Feb 2020 16:32:01 +0000 (11:32 -0500)]
part_shift_scalar now has maked shift amounts working
Michael Nolan [Mon, 17 Feb 2020 16:07:47 +0000 (11:07 -0500)]
Fix proof crashing instead of giving a vcd
Michael Nolan [Mon, 17 Feb 2020 14:41:27 +0000 (09:41 -0500)]
In progress
Michael Nolan [Mon, 17 Feb 2020 14:10:13 +0000 (09:10 -0500)]
Add ShifterMask modules to part_shift_scalar
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 17:46:54 +0000 (17:46 +0000)]
add in PartitionedScalarShift, ready for testing
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 17:41:17 +0000 (17:41 +0000)]
whoops shift width reduction not active
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 17:18:27 +0000 (17:18 +0000)]
scalar partitioned shift moved, change module import name
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 17:16:40 +0000 (17:16 +0000)]
add module __init__.py
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 15:46:24 +0000 (15:46 +0000)]
set initial element to b_interval shape
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 15:39:02 +0000 (15:39 +0000)]
split out PartialResults to separate module
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 15:24:26 +0000 (15:24 +0000)]
split out ShifterMask to separate module
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 15:12:41 +0000 (15:12 +0000)]
truncate max_bits in shiftermask
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 15:04:49 +0000 (15:04 +0000)]
really annoying simulation bug, dont know whats going on
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 14:30:38 +0000 (14:30 +0000)]
clip shift amount
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 13:50:30 +0000 (13:50 +0000)]
comment partial results
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 13:01:39 +0000 (13:01 +0000)]
truncate partial result intermediate to width of partition
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 12:56:32 +0000 (12:56 +0000)]
make things a little clearer, do the select and the OR separately
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 12:55:32 +0000 (12:55 +0000)]
reduce bitwidth of intermediate output
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 12:51:45 +0000 (12:51 +0000)]
reduce partial result width
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 12:47:09 +0000 (12:47 +0000)]
store partial result in signal otherwise it gets duplicated
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 12:46:53 +0000 (12:46 +0000)]
stop expression-repeating cascade
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 12:38:34 +0000 (12:38 +0000)]
limit shiftbits, partial results do not need to be so long
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 12:13:39 +0000 (12:13 +0000)]
store shiftmask bits in temporary otherwise the expression gets duplicated
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 12:04:01 +0000 (12:04 +0000)]
make all signals resetless
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 11:55:06 +0000 (11:55 +0000)]
comment why shift mask exists
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 11:51:12 +0000 (11:51 +0000)]
whitespace
Luke Kenneth Casson Leighton [Sat, 15 Feb 2020 11:50:47 +0000 (11:50 +0000)]
remove out_intervals (unused)
Luke Kenneth Casson Leighton [Fri, 14 Feb 2020 22:04:12 +0000 (22:04 +0000)]
fix the shift-test to truncate b-input
Luke Kenneth Casson Leighton [Fri, 14 Feb 2020 21:41:53 +0000 (21:41 +0000)]
reduce range of b in shift test
Michael Nolan [Fri, 14 Feb 2020 19:29:25 +0000 (14:29 -0500)]
re-add masking of the shift amount based on partition length
Michael Nolan [Fri, 14 Feb 2020 16:23:32 +0000 (11:23 -0500)]
Minor refactoring of part_shift_dynamic
Michael Nolan [Fri, 14 Feb 2020 15:28:29 +0000 (10:28 -0500)]
Refactor part_shift_dynamic.py
This removes the matrix of partial results by instead using the
partition bits to calculate the shifter (b) for each partition, and
computing a short table of partial results from that
Michael Nolan [Fri, 14 Feb 2020 14:22:59 +0000 (09:22 -0500)]
Replace giant switch statement with mux chain
Luke Kenneth Casson Leighton [Fri, 14 Feb 2020 10:48:37 +0000 (10:48 +0000)]
add beginnings of shift unit test for partsig
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 15:42:51 +0000 (15:42 +0000)]
reduce width of temporary intermediates
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 15:33:48 +0000 (15:33 +0000)]
mention being a bit like the gt-combiner
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 15:27:17 +0000 (15:27 +0000)]
OR element in after the MUX because its an invariant
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 15:16:14 +0000 (15:16 +0000)]
store intermediate in temp, append that to output
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 12:54:54 +0000 (12:54 +0000)]
experiment looking for minimum shift width
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 11:55:22 +0000 (11:55 +0000)]
limit matrix output width and limit shift amount
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 11:26:49 +0000 (11:26 +0000)]
use different style of output concatenation, reduce temp bitwidth
Michael Nolan [Wed, 12 Feb 2020 19:12:48 +0000 (14:12 -0500)]
Eliminate unused entries in shift matrix
Michael Nolan [Wed, 12 Feb 2020 19:12:26 +0000 (14:12 -0500)]
Reduce width of b operand to minimum size needed
Michael Nolan [Wed, 12 Feb 2020 19:08:13 +0000 (14:08 -0500)]
Expand proof_shift_dynamic to 32 bits
Luke Kenneth Casson Leighton [Wed, 12 Feb 2020 17:28:22 +0000 (17:28 +0000)]
comment the dynamic shifter
Michael Nolan [Wed, 12 Feb 2020 16:43:56 +0000 (11:43 -0500)]
Rename part_shift_scalar/ to part_shift
Michael Nolan [Wed, 12 Feb 2020 16:40:23 +0000 (11:40 -0500)]
Add formal proof for dynamic shifter
Michael Nolan [Wed, 12 Feb 2020 16:22:18 +0000 (11:22 -0500)]
Somewhat working dynamic shifter
Michael Nolan [Wed, 12 Feb 2020 15:52:22 +0000 (10:52 -0500)]
Fix whitespace
Michael Nolan [Wed, 12 Feb 2020 15:51:26 +0000 (10:51 -0500)]
Begin adding dynamic shifter
Luke Kenneth Casson Leighton [Wed, 12 Feb 2020 15:10:00 +0000 (15:10 +0000)]
add bit of extra explanatory comment for carry-ripple thing
Michael Nolan [Wed, 12 Feb 2020 14:19:23 +0000 (09:19 -0500)]
Revise documentation for how carry works in adder.py
Luke Kenneth Casson Leighton [Tue, 11 Feb 2020 22:12:02 +0000 (22:12 +0000)]
allow factor of 2 in variance on random numbers
Luke Kenneth Casson Leighton [Tue, 11 Feb 2020 22:10:43 +0000 (22:10 +0000)]
test fp downconvert on min and normal numbers, +/- a bit
Luke Kenneth Casson Leighton [Tue, 11 Feb 2020 19:17:51 +0000 (19:17 +0000)]
add range-focussed fp64/32-to-32/16 downconversion tests
these create a number that is *almost* in the target range so that it
will hit the min/max (inf) limit some of the time but not all
Michael Nolan [Mon, 10 Feb 2020 20:08:52 +0000 (15:08 -0500)]
Rudimentary working partitioned scalar shifter
Michael Nolan [Mon, 10 Feb 2020 19:40:00 +0000 (14:40 -0500)]
Begin adding partitioned scalar shifter
Luke Kenneth Casson Leighton [Mon, 10 Feb 2020 20:39:54 +0000 (20:39 +0000)]
document partsig operators
Michael Nolan [Mon, 10 Feb 2020 16:27:42 +0000 (11:27 -0500)]
Fix line length
Michael Nolan [Mon, 10 Feb 2020 16:23:11 +0000 (11:23 -0500)]
Fix carry output of adder/subtracter
Michael Nolan [Mon, 10 Feb 2020 15:05:53 +0000 (10:05 -0500)]
Fix flake8 errors in part_cmp/
Michael Nolan [Mon, 10 Feb 2020 15:03:27 +0000 (10:03 -0500)]
Fix flake8 errors in partsig.py
Michael Nolan [Mon, 10 Feb 2020 14:58:33 +0000 (09:58 -0500)]
Fix flake8 errors in test_partsig
Michael Nolan [Mon, 10 Feb 2020 14:45:49 +0000 (09:45 -0500)]
Minor cleanup
Michael Nolan [Mon, 10 Feb 2020 14:42:34 +0000 (09:42 -0500)]
Add neg operator to partsig.py
Michael Nolan [Mon, 10 Feb 2020 14:37:26 +0000 (09:37 -0500)]
Add subtraction to partsig.py
Luke Kenneth Casson Leighton [Mon, 10 Feb 2020 14:40:20 +0000 (14:40 +0000)]
bug #113, add range-limited random numbers more likely to get within the
target range of the integer to be converted to
Luke Kenneth Casson Leighton [Mon, 10 Feb 2020 11:42:15 +0000 (11:42 +0000)]
getting fed up of amount of test files being dropped into homedir, put in subdir
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 20:02:36 +0000 (20:02 +0000)]
move nmutil to separate (dependent) library
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:41:34 +0000 (18:41 +0000)]
invert after all() not before
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:41:03 +0000 (18:41 +0000)]
boolean logic invert bool to all
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:35:35 +0000 (18:35 +0000)]
replace ~bool() with all()
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:28:42 +0000 (18:28 +0000)]
use nmigen all() instead of invert-invert bool()
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:25:33 +0000 (18:25 +0000)]
whitespace
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:25:20 +0000 (18:25 +0000)]
give a_bit proper name, make reset_less
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:24:35 +0000 (18:24 +0000)]
add docstring explaining partitioned-add
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:11:57 +0000 (18:11 +0000)]
add MoveMSBDown class to be used in carry-out
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 15:12:00 +0000 (15:12 +0000)]
add placeholder for test sub in partsig
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 15:08:12 +0000 (15:08 +0000)]
add 100 random integer tests to partitioned add
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 14:53:22 +0000 (14:53 +0000)]
add 100 random integer tests to partitioned add
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 14:52:06 +0000 (14:52 +0000)]
use nmigen "implies" operator (really convenient)
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 14:47:28 +0000 (14:47 +0000)]
whitespace cleanup, reduce 80 char length
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 14:38:34 +0000 (14:38 +0000)]
add NotImplementedError into partsig
Michael Nolan [Sun, 9 Feb 2020 01:47:06 +0000 (20:47 -0500)]
Convert partsig to use the existing add_op function
Michael Nolan [Sun, 9 Feb 2020 00:55:34 +0000 (19:55 -0500)]
Add rudimentary test for partitioned add with carry
Michael Nolan [Sat, 8 Feb 2020 18:19:30 +0000 (13:19 -0500)]
Add carry out to adder
Michael Nolan [Sat, 8 Feb 2020 18:15:28 +0000 (13:15 -0500)]
Begin adding carry in and carry out support to adder
Luke Kenneth Casson Leighton [Sat, 8 Feb 2020 19:02:04 +0000 (19:02 +0000)]
minor codeshuffle, split out check of PartitionedSignal check,
create add_op function which is called inverted-args in __rsub__
Luke Kenneth Casson Leighton [Sat, 8 Feb 2020 13:16:32 +0000 (13:16 +0000)]
add comments
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 16:34:44 +0000 (16:34 +0000)]
tidyup PartitionedAdd
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 16:29:19 +0000 (16:29 +0000)]
add shift operators TODO on partsig
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 16:28:40 +0000 (16:28 +0000)]
comment TODO on __neg__ operation
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 16:27:35 +0000 (16:27 +0000)]
invert partitioned op is just a bit-wise invert