ieee754fpu.git
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

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

4 years agomore whitespace
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 16:49:26 +0000 (16:49 +0000)]
more whitespace

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

4 years agoAdd module to handle partitioned eq, gt, and ge comparisons
Michael Nolan [Wed, 5 Feb 2020 15:37:14 +0000 (10:37 -0500)]
Add module to handle partitioned eq, gt, and ge comparisons

4 years agoReverse order of gt combiner so it works MSB first
Michael Nolan [Wed, 5 Feb 2020 15:06:40 +0000 (10:06 -0500)]
Reverse order of gt combiner so it works MSB first

4 years agoAdd a signal to disable the gt inputs to gt_combiner
Michael Nolan [Wed, 5 Feb 2020 14:40:56 +0000 (09:40 -0500)]
Add a signal to disable the gt inputs to gt_combiner

4 years agoAdd proof for equals module
Michael Nolan [Wed, 5 Feb 2020 14:27:12 +0000 (09:27 -0500)]
Add proof for equals module

4 years agouse EQCombiner in PartitionedEq experiment
Luke Kenneth Casson Leighton [Wed, 5 Feb 2020 13:34:05 +0000 (13:34 +0000)]
use EQCombiner in PartitionedEq experiment

4 years agostart partitioned mux class
Luke Kenneth Casson Leighton [Tue, 4 Feb 2020 18:50:49 +0000 (18:50 +0000)]
start partitioned mux class

4 years agoadd experiments __init__.py
Luke Kenneth Casson Leighton [Tue, 4 Feb 2020 18:12:04 +0000 (18:12 +0000)]
add experiments __init__.py

4 years agoremove comments, sort out string name, add __init__.pys
Luke Kenneth Casson Leighton [Tue, 4 Feb 2020 18:11:25 +0000 (18:11 +0000)]
remove comments, sort out string name, add __init__.pys

4 years agobit of whitespace
Luke Kenneth Casson Leighton [Tue, 4 Feb 2020 15:12:02 +0000 (15:12 +0000)]
bit of whitespace

4 years agousing format is a bit long for 1 argument, just use %d
Luke Kenneth Casson Leighton [Tue, 4 Feb 2020 15:09:11 +0000 (15:09 +0000)]
using format is a bit long for 1 argument, just use %d

4 years agoModify gt experiment to handle eq as well
Michael Nolan [Tue, 4 Feb 2020 03:28:50 +0000 (22:28 -0500)]
Modify gt experiment to handle eq as well

4 years agoAdd proof for using the greater than combiner to do equals as well
Michael Nolan [Mon, 3 Feb 2020 20:16:05 +0000 (15:16 -0500)]
Add proof for using the greater than combiner to do equals as well

It works for the active outputs, however some of the active outputs
get set to 1 instead of 0

4 years agoAdd tree-based greater than experiment
Michael Nolan [Mon, 3 Feb 2020 20:00:53 +0000 (15:00 -0500)]
Add tree-based greater than experiment

4 years agoMove experiments with partition methods to a separate folder
Michael Nolan [Mon, 3 Feb 2020 19:41:36 +0000 (14:41 -0500)]
Move experiments with partition methods to a separate folder

4 years agoAdd tree based partitioned equals module
Michael Nolan [Mon, 3 Feb 2020 19:34:29 +0000 (14:34 -0500)]
Add tree based partitioned equals module

4 years agoRename partition_combiner to eq_combiner
Michael Nolan [Mon, 3 Feb 2020 17:13:20 +0000 (12:13 -0500)]
Rename partition_combiner to eq_combiner

4 years agoAdd an alternative partitioned equals combiner module
Michael Nolan [Mon, 3 Feb 2020 15:41:00 +0000 (10:41 -0500)]
Add an alternative partitioned equals combiner module

4 years agoadd first untested ge.py for partitioned signnal
Luke Kenneth Casson Leighton [Mon, 3 Feb 2020 11:51:51 +0000 (11:51 +0000)]
add first untested ge.py for partitioned signnal

4 years agoHandle -0 and +0 equals and <
Michael Nolan [Sun, 2 Feb 2020 19:41:56 +0000 (14:41 -0500)]
Handle -0 and +0 equals and <

4 years agoAdd test case for NaN and -0 handling to fpmax
Michael Nolan [Sun, 2 Feb 2020 18:37:10 +0000 (13:37 -0500)]
Add test case for NaN and -0 handling to fpmax

4 years agoReplace If and Switch statements with muxes in fpcmp.py
Michael Nolan [Sun, 2 Feb 2020 17:47:50 +0000 (12:47 -0500)]
Replace If and Switch statements with muxes in fpcmp.py

4 years agoAdd formal proof for FLT and FLE for FPCMP
Michael Nolan [Sun, 2 Feb 2020 17:31:17 +0000 (12:31 -0500)]
Add formal proof for FLT and FLE for FPCMP

4 years agoAdd FLT and FLE functionality to FPCMP
Michael Nolan [Sun, 2 Feb 2020 16:59:20 +0000 (11:59 -0500)]
Add FLT and FLE functionality to FPCMP

4 years agoHandle NaNs for FPCMP
Michael Nolan [Sun, 2 Feb 2020 16:42:17 +0000 (11:42 -0500)]
Handle NaNs for FPCMP

4 years agoAdd feq functionality to fpcmp
Michael Nolan [Sun, 2 Feb 2020 16:29:48 +0000 (11:29 -0500)]
Add feq functionality to fpcmp

4 years agoBegin adding formal proof for fpcmp
Michael Nolan [Sun, 2 Feb 2020 16:29:20 +0000 (11:29 -0500)]
Begin adding formal proof for fpcmp

4 years agoBegin adding FPCMP module (FEQ, FLT, FLE)
Michael Nolan [Sun, 2 Feb 2020 16:21:01 +0000 (11:21 -0500)]
Begin adding FPCMP module (FEQ, FLT, FLE)

4 years agoFix nmigen "domain" error when trying to run unit tests
Michael Nolan [Fri, 31 Jan 2020 21:54:25 +0000 (16:54 -0500)]
Fix nmigen "domain" error when trying to run unit tests

When I try to run any unit test with nmigen c42c3a0, I get the
following error:

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/mnolan/git/ieee754fpu/src/ieee754/fpmul/test/test_fpmul_pipe.py", line 24, in <module>
    test_pipe_fp16()
  File "/home/mnolan/git/ieee754fpu/src/ieee754/fpmul/test/test_fpmul_pipe.py", line 12, in test_pipe_fp16
    runfp(dut, 16, "test_fpmul_pipe_fp16", Float16, mul, n_vals=50)
  File "/home/mnolan/git/ieee754fpu/src/ieee754/fpcommon/test/fpmux.py", line 316, in runfp
    run_simulation(dut, fns, vcd_name="%s.vcd" % name)
  File "/home/mnolan/git/nmigen/nmigen/compat/sim/__init__.py", line 22, in run_simulation
    fragment.domains += ClockDomain("sync")
AttributeError: 'FPMULMuxInOut' object has no attribute 'domains'

This seems to fix this error by giving the functions in the testbench
a default clock domain, rather than leaving it up to nmigen to figure
out.

4 years agotidyup
Luke Kenneth Casson Leighton [Thu, 30 Jan 2020 18:52:57 +0000 (18:52 +0000)]
tidyup

4 years agotidy up comments
Luke Kenneth Casson Leighton [Thu, 30 Jan 2020 18:40:13 +0000 (18:40 +0000)]
tidy up comments

4 years agoworking partitioned eqs function
Luke Kenneth Casson Leighton [Thu, 30 Jan 2020 18:24:27 +0000 (18:24 +0000)]
working partitioned eqs function

4 years agowhoops overwrote input variable
Luke Kenneth Casson Leighton [Thu, 30 Jan 2020 16:04:53 +0000 (16:04 +0000)]
whoops overwrote input variable

4 years agoadd comments
Luke Kenneth Casson Leighton [Thu, 30 Jan 2020 13:57:46 +0000 (13:57 +0000)]
add comments

4 years agoexperimental eq (non-optimal)
Luke Kenneth Casson Leighton [Thu, 30 Jan 2020 13:49:22 +0000 (13:49 +0000)]
experimental eq (non-optimal)

4 years agoadd "as_sig" function to PartitionPoints to get the mask as a straight sequence
Luke Kenneth Casson Leighton [Thu, 30 Jan 2020 13:48:58 +0000 (13:48 +0000)]
add "as_sig" function to PartitionPoints to get the mask as a straight sequence

4 years agoUse nmigen's built in formal runner instead of mine
Michael Nolan [Tue, 28 Jan 2020 23:19:19 +0000 (18:19 -0500)]
Use nmigen's built in formal runner instead of mine

4 years agoFix handling of the .sby file directory when running in the current dir
Michael Nolan [Tue, 28 Jan 2020 22:05:25 +0000 (17:05 -0500)]
Fix handling of the .sby file directory when running in the current dir

4 years agoUse anyconst for the inputs of the dut in FMax formal proof
Michael Nolan [Tue, 28 Jan 2020 21:58:58 +0000 (16:58 -0500)]
Use anyconst for the inputs of the dut in FMax formal proof

4 years agoline-up, whitespace
Luke Kenneth Casson Leighton [Tue, 28 Jan 2020 21:32:40 +0000 (21:32 +0000)]
line-up, whitespace

4 years agoread proof file from any location
Luke Kenneth Casson Leighton [Tue, 28 Jan 2020 21:27:58 +0000 (21:27 +0000)]
read proof file from any location

4 years agoremove usage of m.If() in fpmax and replace with Mux
Michael Nolan [Tue, 28 Jan 2020 20:58:12 +0000 (15:58 -0500)]
remove usage of m.If() in fpmax and replace with Mux

4 years agoFlesh out the formal proof for fmax
Michael Nolan [Tue, 28 Jan 2020 17:38:35 +0000 (12:38 -0500)]
Flesh out the formal proof for fmax

4 years agoUpdate gitignore in formal directories to ignore proof folders
Michael Nolan [Tue, 28 Jan 2020 16:56:34 +0000 (11:56 -0500)]
Update gitignore in formal directories to ignore proof folders

4 years agoAdd rudimentary proof to fpmax
Michael Nolan [Tue, 28 Jan 2020 16:43:21 +0000 (11:43 -0500)]
Add rudimentary proof to fpmax

4 years agoAdd fpmin handling to fpmax module
Michael Nolan [Tue, 28 Jan 2020 16:42:58 +0000 (11:42 -0500)]
Add fpmin handling to fpmax module

4 years agoAdd FPMAX module
Michael Nolan [Tue, 28 Jan 2020 16:32:40 +0000 (11:32 -0500)]
Add FPMAX module

4 years agoallow fsgnj proof to be run from any location
Luke Kenneth Casson Leighton [Tue, 28 Jan 2020 19:34:45 +0000 (19:34 +0000)]
allow fsgnj proof to be run from any location

4 years agoFSGNJ: expandd formal proof to 16 and 64 bits
Michael Nolan [Tue, 28 Jan 2020 00:27:12 +0000 (19:27 -0500)]
FSGNJ: expandd formal proof to 16 and 64 bits

4 years agoFSGNJ: Convert proof to use FPNumDecode
Michael Nolan [Tue, 28 Jan 2020 00:23:12 +0000 (19:23 -0500)]
FSGNJ: Convert proof to use FPNumDecode

This uses FPNumDecode in the formal proof of the FSGNJPipeMod to
ensure that the bit indexing method is correct by going about the
proof in a different way

4 years agoAdd formal proof for FSGNJPipeMod module
Michael Nolan [Tue, 28 Jan 2020 00:01:41 +0000 (19:01 -0500)]
Add formal proof for FSGNJPipeMod module

4 years agoremove unneeded comment
Luke Kenneth Casson Leighton [Mon, 27 Jan 2020 19:47:16 +0000 (19:47 +0000)]
remove unneeded comment

4 years agoFSGNJ: Fix typo in abs
Michael Nolan [Mon, 27 Jan 2020 17:33:27 +0000 (12:33 -0500)]
FSGNJ: Fix typo in abs

4 years agoFSGNJ: Remove usage of FPNumDecode
Michael Nolan [Mon, 27 Jan 2020 17:11:24 +0000 (12:11 -0500)]
FSGNJ: Remove usage of FPNumDecode

FPNumDecode was introducing extra logic to subtract the floating point bias
then immediately re-add it when decoding/encoding operand a. This is
unneeded since this module doesn't modify the exponent or mantissa

4 years agoadd comments, remove one of the Muxes
Luke Kenneth Casson Leighton [Mon, 27 Jan 2020 15:54:26 +0000 (15:54 +0000)]
add comments, remove one of the Muxes

4 years agoreduce linelength <80chars
Luke Kenneth Casson Leighton [Mon, 27 Jan 2020 15:46:46 +0000 (15:46 +0000)]
reduce linelength <80chars

4 years agoAdd more/better comments to fsignj.py
Michael Nolan [Mon, 27 Jan 2020 14:51:37 +0000 (09:51 -0500)]
Add more/better comments to fsignj.py