ieee754fpu.git
4 years agoreduce range of b in shift test
Luke Kenneth Casson Leighton [Fri, 14 Feb 2020 21:41:53 +0000 (21:41 +0000)]
reduce range of b in shift test

4 years agore-add masking of the shift amount based on partition length
Michael Nolan [Fri, 14 Feb 2020 19:29:25 +0000 (14:29 -0500)]
re-add masking of the shift amount based on partition length

4 years agoMinor refactoring of part_shift_dynamic
Michael Nolan [Fri, 14 Feb 2020 16:23:32 +0000 (11:23 -0500)]
Minor refactoring of part_shift_dynamic

4 years agoRefactor part_shift_dynamic.py
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

4 years agoReplace giant switch statement with mux chain
Michael Nolan [Fri, 14 Feb 2020 14:22:59 +0000 (09:22 -0500)]
Replace giant switch statement with mux chain

4 years agoadd beginnings of shift unit test for partsig
Luke Kenneth Casson Leighton [Fri, 14 Feb 2020 10:48:37 +0000 (10:48 +0000)]
add beginnings of shift unit test for partsig

4 years agoreduce width of temporary intermediates
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 15:42:51 +0000 (15:42 +0000)]
reduce width of temporary intermediates

4 years agomention being a bit like the gt-combiner
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 15:33:48 +0000 (15:33 +0000)]
mention being a bit like the gt-combiner

4 years agoOR element in after the MUX because its an invariant
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

4 years agostore intermediate in temp, append that to output
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 15:16:14 +0000 (15:16 +0000)]
store intermediate in temp, append that to output

4 years agoexperiment looking for minimum shift width
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 12:54:54 +0000 (12:54 +0000)]
experiment looking for minimum shift width

4 years agolimit matrix output width and limit shift amount
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 11:55:22 +0000 (11:55 +0000)]
limit matrix output width and limit shift amount

4 years agouse different style of output concatenation, reduce temp bitwidth
Luke Kenneth Casson Leighton [Thu, 13 Feb 2020 11:26:49 +0000 (11:26 +0000)]
use different style of output concatenation, reduce temp bitwidth

4 years agoEliminate unused entries in shift matrix
Michael Nolan [Wed, 12 Feb 2020 19:12:48 +0000 (14:12 -0500)]
Eliminate unused entries in shift matrix

4 years agoReduce width of b operand to minimum size needed
Michael Nolan [Wed, 12 Feb 2020 19:12:26 +0000 (14:12 -0500)]
Reduce width of b operand to minimum size needed

4 years agoExpand proof_shift_dynamic to 32 bits
Michael Nolan [Wed, 12 Feb 2020 19:08:13 +0000 (14:08 -0500)]
Expand proof_shift_dynamic to 32 bits

4 years agocomment the dynamic shifter
Luke Kenneth Casson Leighton [Wed, 12 Feb 2020 17:28:22 +0000 (17:28 +0000)]
comment the dynamic shifter

4 years agoRename part_shift_scalar/ to part_shift
Michael Nolan [Wed, 12 Feb 2020 16:43:56 +0000 (11:43 -0500)]
Rename part_shift_scalar/ to part_shift

4 years agoAdd formal proof for dynamic shifter
Michael Nolan [Wed, 12 Feb 2020 16:40:23 +0000 (11:40 -0500)]
Add formal proof for dynamic shifter

4 years agoSomewhat working dynamic shifter
Michael Nolan [Wed, 12 Feb 2020 16:22:18 +0000 (11:22 -0500)]
Somewhat working dynamic shifter

4 years agoFix whitespace
Michael Nolan [Wed, 12 Feb 2020 15:52:22 +0000 (10:52 -0500)]
Fix whitespace

4 years agoBegin adding dynamic shifter
Michael Nolan [Wed, 12 Feb 2020 15:51:26 +0000 (10:51 -0500)]
Begin adding dynamic shifter

4 years agoadd bit of extra explanatory comment for carry-ripple thing
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

4 years agoRevise documentation for how carry works in adder.py
Michael Nolan [Wed, 12 Feb 2020 14:19:23 +0000 (09:19 -0500)]
Revise documentation for how carry works in adder.py

4 years agoallow factor of 2 in variance on random numbers
Luke Kenneth Casson Leighton [Tue, 11 Feb 2020 22:12:02 +0000 (22:12 +0000)]
allow factor of 2 in variance on random numbers

4 years agotest fp downconvert on min and normal numbers, +/- a bit
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

4 years agoadd range-focussed fp64/32-to-32/16 downconversion tests
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

4 years agoRudimentary working partitioned scalar shifter
Michael Nolan [Mon, 10 Feb 2020 20:08:52 +0000 (15:08 -0500)]
Rudimentary working partitioned scalar shifter

4 years agoBegin adding partitioned scalar shifter
Michael Nolan [Mon, 10 Feb 2020 19:40:00 +0000 (14:40 -0500)]
Begin adding partitioned scalar shifter

4 years agodocument partsig operators
Luke Kenneth Casson Leighton [Mon, 10 Feb 2020 20:39:54 +0000 (20:39 +0000)]
document partsig operators

4 years agoFix line length
Michael Nolan [Mon, 10 Feb 2020 16:27:42 +0000 (11:27 -0500)]
Fix line length

4 years agoFix carry output of adder/subtracter
Michael Nolan [Mon, 10 Feb 2020 16:23:11 +0000 (11:23 -0500)]
Fix carry output of adder/subtracter

4 years agoFix flake8 errors in part_cmp/
Michael Nolan [Mon, 10 Feb 2020 15:05:53 +0000 (10:05 -0500)]
Fix flake8 errors in part_cmp/

4 years agoFix flake8 errors in partsig.py
Michael Nolan [Mon, 10 Feb 2020 15:03:27 +0000 (10:03 -0500)]
Fix flake8 errors in partsig.py

4 years agoFix flake8 errors in test_partsig
Michael Nolan [Mon, 10 Feb 2020 14:58:33 +0000 (09:58 -0500)]
Fix flake8 errors in test_partsig

4 years agoMinor cleanup
Michael Nolan [Mon, 10 Feb 2020 14:45:49 +0000 (09:45 -0500)]
Minor cleanup

4 years agoAdd neg operator to partsig.py
Michael Nolan [Mon, 10 Feb 2020 14:42:34 +0000 (09:42 -0500)]
Add neg operator to partsig.py

4 years agoAdd subtraction to partsig.py
Michael Nolan [Mon, 10 Feb 2020 14:37:26 +0000 (09:37 -0500)]
Add subtraction to partsig.py

4 years agobug #113, add range-limited random numbers more likely to get within the
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

4 years agogetting fed up of amount of test files being dropped into homedir, put in subdir
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

4 years agomove nmutil to separate (dependent) library
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 20:02:36 +0000 (20:02 +0000)]
move nmutil to separate (dependent) library

4 years agoinvert after all() not before
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:41:34 +0000 (18:41 +0000)]
invert after all() not before

4 years agoboolean logic invert bool to all
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:41:03 +0000 (18:41 +0000)]
boolean logic invert bool to all

4 years agoreplace ~bool() with all()
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:35:35 +0000 (18:35 +0000)]
replace ~bool() with all()

4 years agouse nmigen all() instead of invert-invert bool()
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:28:42 +0000 (18:28 +0000)]
use nmigen all() instead of invert-invert bool()

4 years agowhitespace
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:25:33 +0000 (18:25 +0000)]
whitespace

4 years agogive a_bit proper name, make reset_less
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:25:20 +0000 (18:25 +0000)]
give a_bit proper name, make reset_less

4 years agoadd docstring explaining partitioned-add
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:24:35 +0000 (18:24 +0000)]
add docstring explaining partitioned-add

4 years agoadd MoveMSBDown class to be used in carry-out
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 18:11:57 +0000 (18:11 +0000)]
add MoveMSBDown class to be used in carry-out

4 years agoadd placeholder for test sub in partsig
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 15:12:00 +0000 (15:12 +0000)]
add placeholder for test sub in partsig

4 years agoadd 100 random integer tests to partitioned add
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 15:08:12 +0000 (15:08 +0000)]
add 100 random integer tests to partitioned add

4 years agoadd 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

4 years agouse nmigen "implies" operator (really convenient)
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 14:52:06 +0000 (14:52 +0000)]
use nmigen "implies" operator (really convenient)

4 years agowhitespace cleanup, reduce 80 char length
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 14:47:28 +0000 (14:47 +0000)]
whitespace cleanup, reduce 80 char length

4 years agoadd NotImplementedError into partsig
Luke Kenneth Casson Leighton [Sun, 9 Feb 2020 14:38:34 +0000 (14:38 +0000)]
add NotImplementedError into partsig

4 years agoConvert partsig to use the existing add_op function
Michael Nolan [Sun, 9 Feb 2020 01:47:06 +0000 (20:47 -0500)]
Convert partsig to use the existing add_op function

4 years agoAdd rudimentary test for partitioned add with carry
Michael Nolan [Sun, 9 Feb 2020 00:55:34 +0000 (19:55 -0500)]
Add rudimentary test for partitioned add with carry

4 years agoAdd carry out to adder
Michael Nolan [Sat, 8 Feb 2020 18:19:30 +0000 (13:19 -0500)]
Add carry out to adder

4 years agoBegin adding carry in and carry out support 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

4 years agominor codeshuffle, split out check of PartitionedSignal check,
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__

4 years agoadd comments
Luke Kenneth Casson Leighton [Sat, 8 Feb 2020 13:16:32 +0000 (13:16 +0000)]
add comments

4 years agotidyup PartitionedAdd
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 16:34:44 +0000 (16:34 +0000)]
tidyup PartitionedAdd

4 years agoadd shift operators TODO on partsig
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 16:29:19 +0000 (16:29 +0000)]
add shift operators TODO on partsig

4 years agocomment TODO on __neg__ operation
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 16:28:40 +0000 (16:28 +0000)]
comment TODO on __neg__ operation

4 years agoinvert partitioned op is just a bit-wise invert
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 16:27:35 +0000 (16:27 +0000)]
invert partitioned op is just a bit-wise invert

4 years agoupdate docstring and copyright notice
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 16:25:25 +0000 (16:25 +0000)]
update docstring and copyright notice

4 years agofix muxop test in part_sig test
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 15:06:33 +0000 (15:06 +0000)]
fix muxop test in part_sig test

4 years agofix part_mux to actually use Mux (duh)
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:54:26 +0000 (14:54 +0000)]
fix part_mux to actually use Mux (duh)

4 years agoRemove unneeded and gate in gt_combiner
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.

4 years agofix syntax errors for test_partsig
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:47:07 +0000 (14:47 +0000)]
fix syntax errors for test_partsig

4 years agogrr correct syntax for assert
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:46:49 +0000 (14:46 +0000)]
grr correct syntax for assert

4 years agoFix != implementation in partsig.py
Michael Nolan [Fri, 7 Feb 2020 14:38:47 +0000 (09:38 -0500)]
Fix != implementation in partsig.py

4 years agoModify test_partsig to handle the new changes to reorder_bits, add new testcases
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

4 years agomodify reorder_bits to copy the MSB of the partition to each bit
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.

4 years agoadd unit test for part_mux
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:38:08 +0000 (14:38 +0000)]
add unit test for part_mux

4 years agowhoops syntax error
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:38:00 +0000 (14:38 +0000)]
whoops syntax error

4 years agoadd first version of part_mux
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:26:40 +0000 (14:26 +0000)]
add first version of part_mux

4 years agouse assert not raise ValueError
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:18:21 +0000 (14:18 +0000)]
use assert not raise ValueError

4 years agoripple of LSB from compare-operations, successful
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:07:45 +0000 (14:07 +0000)]
ripple of LSB from compare-operations, successful

4 years agoadd first (untested) version of ripple-LSB
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 14:06:09 +0000 (14:06 +0000)]
add first (untested) version of ripple-LSB

4 years agoadd extra operators to be implemented to partsig
Luke Kenneth Casson Leighton [Fri, 7 Feb 2020 13:56:01 +0000 (13:56 +0000)]
add extra operators to be implemented to partsig

4 years agoadd stub operators to partsig to help make it clear what is needed
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

4 years agoTODO on NE partsig op
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 16:28:34 +0000 (16:28 +0000)]
TODO on NE partsig op

4 years agomake common function for testing comparators
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 14:57:57 +0000 (14:57 +0000)]
make common function for testing comparators

4 years agorestructure partsig, use common function for PartitionedEqGtGe
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 14:41:04 +0000 (14:41 +0000)]
restructure partsig, use common function for PartitionedEqGtGe

4 years agofix partsig gt test, add ge test
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 14:34:41 +0000 (14:34 +0000)]
fix partsig gt test, add ge test

4 years agoadd __ge__ partsig operator
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 14:31:42 +0000 (14:31 +0000)]
add __ge__ partsig operator

4 years agoadd gt part_sig operator
Luke Kenneth Casson Leighton [Thu, 6 Feb 2020 14:27:40 +0000 (14:27 +0000)]
add gt part_sig operator

4 years agoFix test_partsig's invalid result for the equals test
Michael Nolan [Thu, 6 Feb 2020 02:11:25 +0000 (21:11 -0500)]
Fix test_partsig's invalid result for the equals test

4 years agoAdd 0 assertions to the proof for eq_gt_ge
Michael Nolan [Thu, 6 Feb 2020 02:06:49 +0000 (21:06 -0500)]
Add 0 assertions to the proof for eq_gt_ge

4 years agoFix order of results from PartitionedEqGtGe
Michael Nolan [Wed, 5 Feb 2020 23:44:00 +0000 (18:44 -0500)]
Fix order of results from PartitionedEqGtGe

4 years agomove unused partitioned comparison modules to experiments/
Michael Nolan [Wed, 5 Feb 2020 15:54:24 +0000 (10:54 -0500)]
move unused partitioned comparison modules to experiments/

4 years agomove gt_combiner out of experiments/
Michael Nolan [Wed, 5 Feb 2020 15:52:47 +0000 (10:52 -0500)]
move gt_combiner out of experiments/

4 years agoadd extra tests, find out whats going on with eq_gt_ge
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

4 years agoquick test shows eq_gt_ge.py returning output in reverse order
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

4 years agodebug string for part-eq is an eq not +
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 17:06:06 +0000 (17:06 +0000)]
debug string for part-eq is an eq not +

4 years agouse PartitionedEqGtGe for eq function in partitioned signal
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 17:00:55 +0000 (17:00 +0000)]
use PartitionedEqGtGe for eq function in partitioned signal

4 years agoadd constants for opcode, EQ/GT/GE, probably better way to do this
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

4 years agowhitespace
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 16:54:16 +0000 (16:54 +0000)]
whitespace

4 years ago80 char limit
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 16:53:48 +0000 (16:53 +0000)]
80 char limit