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
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 16:25:25 +0000 (16:25 +0000)]
update docstring and copyright notice
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 15:06:33 +0000 (15:06 +0000)]
fix muxop test in part_sig test
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:54:26 +0000 (14:54 +0000)]
fix part_mux to actually use Mux (duh)
Michael Nolan [Fri, 7 Feb 2020 14:58:32 +0000 (09:58 -0500)]
Remove unneeded and gate in gt_combiner
The and gate that forces the lanes that are not the MSB in a partiton
to 0 is no longer needed because reorder_bits ignores those bits.
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:47:07 +0000 (14:47 +0000)]
fix syntax errors for test_partsig
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:46:49 +0000 (14:46 +0000)]
grr correct syntax for assert
Michael Nolan [Fri, 7 Feb 2020 14:38:47 +0000 (09:38 -0500)]
Fix != implementation in partsig.py
Michael Nolan [Fri, 7 Feb 2020 14:30:30 +0000 (09:30 -0500)]
Modify test_partsig to handle the new changes to reorder_bits, add new testcases
Removes != test because it's not actually working yet
Michael Nolan [Fri, 7 Feb 2020 14:29:32 +0000 (09:29 -0500)]
modify reorder_bits to copy the MSB of the partition to each bit
Previously, it would move the MSB to the LSB, and set the rest of the
bits to 0.
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:38:08 +0000 (14:38 +0000)]
add unit test for part_mux
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:38:00 +0000 (14:38 +0000)]
whoops syntax error
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:26:40 +0000 (14:26 +0000)]
add first version of part_mux
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:18:21 +0000 (14:18 +0000)]
use assert not raise ValueError
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:07:45 +0000 (14:07 +0000)]
ripple of LSB from compare-operations, successful
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:06:09 +0000 (14:06 +0000)]
add first (untested) version of ripple-LSB
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 13:56:01 +0000 (13:56 +0000)]
add extra operators to be implemented to partsig
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 18:07:20 +0000 (18:07 +0000)]
add stub operators to partsig to help make it clear what is needed
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 16:28:34 +0000 (16:28 +0000)]
TODO on NE partsig op
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 14:57:57 +0000 (14:57 +0000)]
make common function for testing comparators
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 14:41:04 +0000 (14:41 +0000)]
restructure partsig, use common function for PartitionedEqGtGe
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 14:34:41 +0000 (14:34 +0000)]
fix partsig gt test, add ge test
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 14:31:42 +0000 (14:31 +0000)]
add __ge__ partsig operator
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 14:27:40 +0000 (14:27 +0000)]
add gt part_sig operator
Michael Nolan [Thu, 6 Feb 2020 02:11:25 +0000 (21:11 -0500)]
Fix test_partsig's invalid result for the equals test
Michael Nolan [Thu, 6 Feb 2020 02:06:49 +0000 (21:06 -0500)]
Add 0 assertions to the proof for eq_gt_ge
Michael Nolan [Wed, 5 Feb 2020 23:44:00 +0000 (18:44 -0500)]
Fix order of results from PartitionedEqGtGe
Michael Nolan [Wed, 5 Feb 2020 15:54:24 +0000 (10:54 -0500)]
move unused partitioned comparison modules to experiments/
Michael Nolan [Wed, 5 Feb 2020 15:52:47 +0000 (10:52 -0500)]
move gt_combiner out of experiments/
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 20:43:46 +0000 (20:43 +0000)]
add extra tests, find out whats going on with eq_gt_ge
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 17:38:08 +0000 (17:38 +0000)]
quick test shows eq_gt_ge.py returning output in reverse order
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 17:06:06 +0000 (17:06 +0000)]
debug string for part-eq is an eq not +
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 17:00:55 +0000 (17:00 +0000)]
use PartitionedEqGtGe for eq function in partitioned signal
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 16:58:52 +0000 (16:58 +0000)]
add constants for opcode, EQ/GT/GE, probably better way to do this
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 16:54:16 +0000 (16:54 +0000)]
whitespace
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 16:53:48 +0000 (16:53 +0000)]
80 char limit
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 16:51:58 +0000 (16:51 +0000)]
whitespace