nmutil.git
2 years agoremove redundant overrides of stuff that's aready in unittest in python >=3.7
Jacob Lifshay [Thu, 2 Dec 2021 01:44:22 +0000 (17:44 -0800)]
remove redundant overrides of stuff that's aready in unittest in python >=3.7

2 years agoadd missing import Statement for assertRepr
Jacob Lifshay [Thu, 2 Dec 2021 01:39:40 +0000 (17:39 -0800)]
add missing import Statement for assertRepr

2 years agochange FHDLTestCase to use get_test_path
Jacob Lifshay [Thu, 2 Dec 2021 01:26:13 +0000 (17:26 -0800)]
change FHDLTestCase to use get_test_path

Fixes the issue with FHDLTestCase sometimes using the same directory for
different test cases, causing problems for running tests in parallel.

2 years agoswitch test_lut to use FHDLTestCase
Jacob Lifshay [Thu, 2 Dec 2021 01:24:18 +0000 (17:24 -0800)]
switch test_lut to use FHDLTestCase

2 years agoformat code
Jacob Lifshay [Thu, 2 Dec 2021 01:03:38 +0000 (17:03 -0800)]
format code

2 years agonote about not setting the muxid in ReservationStations2
Luke Kenneth Casson Leighton [Wed, 1 Dec 2021 13:27:38 +0000 (13:27 +0000)]
note about not setting the muxid in ReservationStations2

2 years agoupdate SRLatch API to include q_int
Luke Kenneth Casson Leighton [Sun, 28 Nov 2021 14:38:50 +0000 (14:38 +0000)]
update SRLatch API to include q_int

2 years agoadd Array-based version of BitwiseLut, renaming old version to TreeBitwiseLut in...
Jacob Lifshay [Wed, 17 Nov 2021 18:58:22 +0000 (10:58 -0800)]
add Array-based version of BitwiseLut, renaming old version to TreeBitwiseLut in case we need it

2 years agoadd formal tests for BitwiseLut
Jacob Lifshay [Wed, 17 Nov 2021 04:07:41 +0000 (20:07 -0800)]
add formal tests for BitwiseLut

2 years agoadd BitwiseLut and tests
Jacob Lifshay [Wed, 17 Nov 2021 03:08:35 +0000 (19:08 -0800)]
add BitwiseLut and tests

2 years agoreturn latchregister results so that it can be further set/modified
Luke Kenneth Casson Leighton [Mon, 8 Nov 2021 23:33:02 +0000 (23:33 +0000)]
return latchregister results so that it can be further set/modified

2 years agoallow name of ALU to be set in ReservationStations2
Luke Kenneth Casson Leighton [Sun, 7 Nov 2021 13:25:45 +0000 (13:25 +0000)]
allow name of ALU to be set in ReservationStations2

2 years agoreduce number of wait states in ReservationStations2 by detecting
Luke Kenneth Casson Leighton [Sun, 7 Nov 2021 13:14:05 +0000 (13:14 +0000)]
reduce number of wait states in ReservationStations2 by detecting
opportunities for sending (and receiving) data immediately.

the previous version was a 4-cycle FSM.  however it is perfectly
fine to detect, in the very first phase (as part of ACCEPTANCE),
if the ALU is already ready to accept.  effectively this combines
phase 1 and phase 2.  if the ALU was *not* ready then and only
then will a given FSM move to phase 2 (after buffering the data)

likewise, when data comes out of the ALU, there is an opportunity
to signal to the RS output that the data is in fact ready... *if*
the RS output was in fact waiting for it already.  again, this
combines phase 3 and phase 4.  again: if the RS output was not
ready, then a given FSM will move to phase 4 (again, after
buffering the data)

2 years agofixed bug in MultiCompUnit, can return to combinatorial setting
Luke Kenneth Casson Leighton [Sun, 7 Nov 2021 12:47:30 +0000 (12:47 +0000)]
fixed bug in MultiCompUnit, can return to combinatorial setting
https://bugs.libre-soc.org/show_bug.cgi?id=742

wrmask was interfering by being in too many places, and it is the
amalgamation of "data ok" signals.  wrmask had to be set and left
set, in order for (unnecessary) determination of end of the requests

2 years agobugfix new ReservationStations2
Luke Kenneth Casson Leighton [Thu, 4 Nov 2021 19:12:30 +0000 (19:12 +0000)]
bugfix new ReservationStations2
it is awful - horribly inefficient - but it "works"
lots of delays.  but, it passes i.e. does not blow up or cause hanging

2 years agoupdate ReservationStations2 to be a FSM. not a very efficient one, no
Luke Kenneth Casson Leighton [Thu, 4 Nov 2021 14:51:23 +0000 (14:51 +0000)]
update ReservationStations2 to be a FSM. not a very efficient one, no
combinatorial bypass at the moment.  takes 4 cycles to get any data through.
this can be reduced to 2, later

2 years agoadd start of new ReservationStations2 class
Luke Kenneth Casson Leighton [Wed, 3 Nov 2021 14:41:09 +0000 (14:41 +0000)]
add start of new ReservationStations2 class

2 years agoadd some debug output to Visitor2 (commented out)
Luke Kenneth Casson Leighton [Wed, 3 Nov 2021 14:40:07 +0000 (14:40 +0000)]
add some debug output to Visitor2 (commented out)

2 years agoadd name prefix to PrevControl and NextControl
Luke Kenneth Casson Leighton [Wed, 3 Nov 2021 14:39:04 +0000 (14:39 +0000)]
add name prefix to PrevControl and NextControl
(useful for multi-fan-in/out)

2 years agoReservationStations - or more to the point the CombMuxIn/MuxOut -
Luke Kenneth Casson Leighton [Mon, 1 Nov 2021 23:10:23 +0000 (23:10 +0000)]
ReservationStations - or more to the point the CombMuxIn/MuxOut -
are completely broken.  deep joy

2 years agomove call to self.process onto i_data in multipipe just like in singlepipe
Luke Kenneth Casson Leighton [Mon, 1 Nov 2021 21:46:22 +0000 (21:46 +0000)]
move call to self.process onto i_data in multipipe just like in singlepipe

2 years agoredo ReservationStations setup of pseudoalus
Luke Kenneth Casson Leighton [Mon, 1 Nov 2021 21:28:42 +0000 (21:28 +0000)]
redo ReservationStations setup of pseudoalus

2 years agoadd ALUProxy to ReservationStations class
Luke Kenneth Casson Leighton [Mon, 1 Nov 2021 20:15:34 +0000 (20:15 +0000)]
add ALUProxy to ReservationStations class

2 years agowhitspace
Luke Kenneth Casson Leighton [Wed, 6 Oct 2021 12:36:29 +0000 (13:36 +0100)]
whitspace

2 years agowhitespace
Luke Kenneth Casson Leighton [Wed, 6 Oct 2021 12:32:14 +0000 (13:32 +0100)]
whitespace

2 years agoadd deduped
Jacob Lifshay [Sat, 9 Oct 2021 01:00:10 +0000 (18:00 -0700)]
add deduped

2 years agomove type info into doc strings, since lkcl complains that he can't read type annotat...
Jacob Lifshay [Fri, 8 Oct 2021 23:43:03 +0000 (16:43 -0700)]
move type info into doc strings, since lkcl complains that he can't read type annotations.

Closes https://bugs.libre-soc.org/show_bug.cgi?id=721

2 years agoadd get_test_path function from simd_signal's util.py
Jacob Lifshay [Fri, 1 Oct 2021 22:13:08 +0000 (15:13 -0700)]
add get_test_path function from simd_signal's util.py

2 years agovarname error (extz_data not exts_data)
Luke Kenneth Casson Leighton [Thu, 30 Sep 2021 14:15:12 +0000 (15:15 +0100)]
varname error (extz_data not exts_data)

2 years agomorph exts/extz and add new "ext" function which takes shape arg
Luke Kenneth Casson Leighton [Wed, 29 Sep 2021 18:09:21 +0000 (19:09 +0100)]
morph exts/extz and add new "ext" function which takes shape arg

2 years agolikewise replace data_o with o_data and data_i with i_data
Luke Kenneth Casson Leighton [Tue, 24 Aug 2021 11:52:12 +0000 (12:52 +0100)]
likewise replace data_o with o_data and data_i with i_data

2 years agobig rename, global/search/replace of ready_o with o_ready and the other
Luke Kenneth Casson Leighton [Tue, 24 Aug 2021 10:21:57 +0000 (11:21 +0100)]
big rename, global/search/replace of ready_o with o_ready and the other
4 signals as well, valid_i -> i_valid
https://libera.irclog.whitequark.org/nmigen/2021-08-24#30728292;
to be consistent with nmigen standards

2 years agorename run_test to run_tst so nosetests3 skips it
Luke Kenneth Casson Leighton [Tue, 24 Aug 2021 10:14:24 +0000 (11:14 +0100)]
rename run_test to run_tst so nosetests3 skips it

2 years agoRemove comment sign and add correct path for nmigen intersphinx.
R Veera Kumar [Sat, 5 Jun 2021 01:59:55 +0000 (07:29 +0530)]
Remove comment sign and add correct path for nmigen intersphinx.

2 years agoAdd Makefile modified for sphinx
R Veera Kumar [Fri, 4 Jun 2021 20:08:12 +0000 (01:38 +0530)]
Add Makefile modified for sphinx

2 years agoInitial addition of sphinx documentation system.
R Veera Kumar [Fri, 4 Jun 2021 19:28:20 +0000 (00:58 +0530)]
Initial addition of sphinx documentation system.

Add run of sphinx-quickstart and manual modifications of files.

3 years agoupdate README
Luke Kenneth Casson Leighton [Tue, 4 May 2021 14:58:03 +0000 (15:58 +0100)]
update README

3 years agoadd OS Independent classifier
Luke Kenneth Casson Leighton [Sun, 18 Apr 2021 11:44:10 +0000 (12:44 +0100)]
add OS Independent classifier

3 years agoadd pypi upload to Makefile
Luke Kenneth Casson Leighton [Sun, 11 Apr 2021 23:57:51 +0000 (00:57 +0100)]
add pypi upload to Makefile

3 years agoupdate license classifier
Luke Kenneth Casson Leighton [Sun, 11 Apr 2021 23:57:14 +0000 (00:57 +0100)]
update license classifier

3 years agoupdate for release to pypi
Luke Kenneth Casson Leighton [Sun, 11 Apr 2021 23:54:03 +0000 (00:54 +0100)]
update for release to pypi

3 years agoAllow groups to start closed
Cesar Strauss [Sun, 21 Feb 2021 17:10:10 +0000 (14:10 -0300)]
Allow groups to start closed

3 years agoextra comments in byte_reverse function
Luke Kenneth Casson Leighton [Sun, 21 Feb 2021 15:27:40 +0000 (15:27 +0000)]
extra comments in byte_reverse function

3 years agoUse "src_loc_at" to look for a suitable name in the call stack
Cesar Strauss [Sun, 21 Feb 2021 14:44:26 +0000 (11:44 -0300)]
Use "src_loc_at" to look for a suitable name in the call stack

3 years agoMove the selection field function to nmutil
Cesar Strauss [Sun, 21 Feb 2021 12:44:56 +0000 (09:44 -0300)]
Move the selection field function to nmutil

Make it return a new Signal, while adding the wires to a Module.
That way, it becomes explicit that the function add wires to the design.

3 years agoAllow choosing a non-default solver in assertFormal
Cesar Strauss [Sat, 23 Jan 2021 09:43:43 +0000 (06:43 -0300)]
Allow choosing a non-default solver in assertFormal

It seems that small changes can dramatically affect the speed of the
default solver (yices2), while z3 is unaffected.

Let's use the one that gives the best results.

3 years agoDefine default zoom level for formal engines
Cesar Strauss [Mon, 4 Jan 2021 19:40:55 +0000 (16:40 -0300)]
Define default zoom level for formal engines

3 years agoImplement the "submodule" attribute 24jan2021_ls180
Cesar Strauss [Sun, 6 Dec 2020 11:47:37 +0000 (08:47 -0300)]
Implement the "submodule" attribute

When encountered, it is merged to the module path attribute, and
consumed (it is not propagated to children).

3 years agoAllow applying a style to a group of signals
Cesar Strauss [Sat, 5 Dec 2020 22:37:46 +0000 (19:37 -0300)]
Allow applying a style to a group of signals

3 years agowhoops misclassified in setup.py as GPLv3+, it is actually LGPLv3+
Luke Kenneth Casson Leighton [Fri, 4 Dec 2020 13:35:53 +0000 (13:35 +0000)]
whoops misclassified in setup.py as GPLv3+, it is actually LGPLv3+

3 years agoadd LGPLv3+ license
Luke Kenneth Casson Leighton [Fri, 4 Dec 2020 13:34:49 +0000 (13:34 +0000)]
add LGPLv3+ license

3 years agoadd grant links, and record of funding under #538
Luke Kenneth Casson Leighton [Fri, 4 Dec 2020 12:56:35 +0000 (12:56 +0000)]
add grant links, and record of funding under #538
https://bugs.libre-soc.org/show_bug.cgi?id=538

3 years agoZoom level is affected by the time resolution unit in the VCD file
Cesar Strauss [Wed, 2 Dec 2020 10:30:50 +0000 (07:30 -0300)]
Zoom level is affected by the time resolution unit in the VCD file

3 years agoAvoid use of "trace_bit" to print trace bits
Cesar Strauss [Wed, 18 Nov 2020 10:55:31 +0000 (07:55 -0300)]
Avoid use of "trace_bit" to print trace bits

It turns out, "trace_bit" really depends on the "trace_bits" context to
update flags. Use the normal "trace" call instead.

3 years agoAdd support for displaying individual bits from wide signals
Cesar Strauss [Tue, 17 Nov 2020 10:53:37 +0000 (07:53 -0300)]
Add support for displaying individual bits from wide signals

3 years agoAlso export Passive from the chosen Simulator module
Cesar Strauss [Wed, 28 Oct 2020 10:27:23 +0000 (07:27 -0300)]
Also export Passive from the chosen Simulator module

3 years agoCalculate the zoom level from the clock period
Cesar Strauss [Sat, 24 Oct 2020 14:44:11 +0000 (11:44 -0300)]
Calculate the zoom level from the clock period

3 years agouse unittest.TestCase rather than FHDLTestCase
Luke Kenneth Casson Leighton [Mon, 12 Oct 2020 11:58:34 +0000 (12:58 +0100)]
use unittest.TestCase rather than FHDLTestCase

3 years agoadd overflow detection to DIVS
Jacob Lifshay [Wed, 7 Oct 2020 02:36:11 +0000 (19:36 -0700)]
add overflow detection to DIVS

overflow shouldn't occur when calling DIVS since it should have been
detected in the code calling DIVS to properly handle edge cases.

3 years agoformat code
Jacob Lifshay [Wed, 7 Oct 2020 02:33:07 +0000 (19:33 -0700)]
format code

3 years agoReport cxxsim selected, only when using the new API
Cesar Strauss [Sun, 27 Sep 2020 21:31:29 +0000 (18:31 -0300)]
Report cxxsim selected, only when using the new API

3 years agoAdd a few extra imports for convenience
Cesar Strauss [Thu, 24 Sep 2020 22:26:16 +0000 (19:26 -0300)]
Add a few extra imports for convenience

3 years agoRun-time selecion of simulator engine
Cesar Strauss [Thu, 24 Sep 2020 11:41:29 +0000 (08:41 -0300)]
Run-time selecion of simulator engine

Allows alternating between cxxsim and pysim at run-time, with minimal
code changes to its users.

3 years agoadd extra name in plru for debugging
Luke Kenneth Casson Leighton [Mon, 14 Sep 2020 15:54:40 +0000 (16:54 +0100)]
add extra name in plru for debugging

3 years agoswitch off print statements
Luke Kenneth Casson Leighton [Mon, 14 Sep 2020 13:48:29 +0000 (14:48 +0100)]
switch off print statements

3 years agoadd pseudo-plru from ariane
Luke Kenneth Casson Leighton [Mon, 14 Sep 2020 13:44:51 +0000 (14:44 +0100)]
add pseudo-plru from ariane

3 years agoadd masked util function
Luke Kenneth Casson Leighton [Sun, 13 Sep 2020 13:39:57 +0000 (14:39 +0100)]
add masked util function

3 years agoadd dummy Display function
Luke Kenneth Casson Leighton [Sun, 13 Sep 2020 13:11:12 +0000 (14:11 +0100)]
add dummy Display function

3 years agosyntax error in byterev
Luke Kenneth Casson Leighton [Sun, 13 Sep 2020 13:05:53 +0000 (14:05 +0100)]
syntax error in byterev

3 years agoMake GTKWave example self-contained
Cesar Strauss [Tue, 1 Sep 2020 11:14:13 +0000 (08:14 -0300)]
Make GTKWave example self-contained

As a tutorial, it should be as simple as possible.
Do not attempt to be compliant with the CompALU API anymore, use plain
signals at the interface.

3 years agoSimplify example, focusing on write_gtkw
Cesar Strauss [Sat, 29 Aug 2020 22:30:42 +0000 (19:30 -0300)]
Simplify example, focusing on write_gtkw

Complete Shifter example remains at soc.experiment.alu_fsm.

3 years agoMove write_gtkw from soc.experiment.alu_fsm
Cesar Strauss [Sat, 29 Aug 2020 20:52:58 +0000 (17:52 -0300)]
Move write_gtkw from soc.experiment.alu_fsm

Move implementation to nmutil.gtkw.
Move example to a separate file.

3 years agoadd reversal and lsb/msb mode to PriorityPicker
Luke Kenneth Casson Leighton [Sat, 29 Aug 2020 13:51:52 +0000 (14:51 +0100)]
add reversal and lsb/msb mode to PriorityPicker

3 years agosorting out div/mod routines, bug in simulator
Luke Kenneth Casson Leighton [Wed, 26 Aug 2020 14:26:09 +0000 (15:26 +0100)]
sorting out div/mod routines, bug in simulator

3 years ago1 extra bit on mask shift size needed, to allow ">" to work
Luke Kenneth Casson Leighton [Wed, 19 Aug 2020 04:44:20 +0000 (05:44 +0100)]
1 extra bit on mask shift size needed, to allow ">" to work

3 years agoallow byterev to accept a scalar int
Luke Kenneth Casson Leighton [Mon, 17 Aug 2020 11:11:05 +0000 (12:11 +0100)]
allow byterev to accept a scalar int

3 years agoadd Mask class
Luke Kenneth Casson Leighton [Mon, 17 Aug 2020 11:10:51 +0000 (12:10 +0100)]
add Mask class

3 years agoadd rising edge function for generating pulse
Luke Kenneth Casson Leighton [Sun, 9 Aug 2020 18:44:09 +0000 (19:44 +0100)]
add rising edge function for generating pulse

3 years agodisable very verbose debug printing
Luke Kenneth Casson Leighton [Tue, 28 Jul 2020 10:36:40 +0000 (11:36 +0100)]
disable very verbose debug printing

3 years agomove "wrap" function into nmutil.util
Luke Kenneth Casson Leighton [Tue, 28 Jul 2020 10:35:49 +0000 (11:35 +0100)]
move "wrap" function into nmutil.util

3 years agomissed en_o on list of ports in PriorityPicker
Luke Kenneth Casson Leighton [Tue, 21 Jul 2020 11:20:28 +0000 (12:20 +0100)]
missed en_o on list of ports in PriorityPicker

3 years agoCheck equality between two PipeContext instances.
Samuel A. Falvo II [Fri, 17 Jul 2020 23:27:03 +0000 (16:27 -0700)]
Check equality between two PipeContext instances.

3 years agomissed critical functions in cut/paste copy of PipeContext
Luke Kenneth Casson Leighton [Wed, 15 Jul 2020 13:56:02 +0000 (14:56 +0100)]
missed critical functions in cut/paste copy of PipeContext

3 years agomissing Signal import
Luke Kenneth Casson Leighton [Wed, 15 Jul 2020 13:51:32 +0000 (14:51 +0100)]
missing Signal import

3 years agomove FPPipeContext to concurrentunit: rename to PipeContext
Luke Kenneth Casson Leighton [Wed, 15 Jul 2020 13:41:35 +0000 (14:41 +0100)]
move FPPipeContext to concurrentunit: rename to PipeContext
see https://bugs.libre-soc.org/show_bug.cgi?id=431

3 years agoimport globally not locally.
Luke Kenneth Casson Leighton [Mon, 13 Jul 2020 18:12:22 +0000 (19:12 +0100)]
import globally not locally.
relative imports only work when the cwd from which they are run
is the top-level directory

3 years agorename trunc_div/rem to trunc_divs
Luke Kenneth Casson Leighton [Fri, 10 Jul 2020 19:49:49 +0000 (20:49 +0100)]
rename trunc_div/rem to trunc_divs

3 years agocheat in trunch_rem, truncate result of multiply
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 12:32:04 +0000 (13:32 +0100)]
cheat in trunch_rem, truncate result of multiply

3 years agowhoops trunc_div returning neg/neg result rather than abs/abs
Luke Kenneth Casson Leighton [Thu, 9 Jul 2020 12:28:42 +0000 (13:28 +0100)]
whoops trunc_div returning neg/neg result rather than abs/abs

3 years agowhoops missed Mux
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 15:58:07 +0000 (16:58 +0100)]
whoops missed Mux

3 years agoadd eq32 helper
Luke Kenneth Casson Leighton [Mon, 6 Jul 2020 15:55:56 +0000 (16:55 +0100)]
add eq32 helper

3 years agoremove unneeded imports
Luke Kenneth Casson Leighton [Sun, 5 Jul 2020 19:01:59 +0000 (20:01 +0100)]
remove unneeded imports

3 years agoadd feedback_width option (unused) to concurrentunit pipeline
Luke Kenneth Casson Leighton [Sat, 4 Jul 2020 10:48:47 +0000 (11:48 +0100)]
add feedback_width option (unused) to concurrentunit pipeline

3 years agouse Mux in latchregister, try to break "loops"
Luke Kenneth Casson Leighton [Thu, 2 Jul 2020 21:30:43 +0000 (22:30 +0100)]
use Mux in latchregister, try to break "loops"

3 years agouse prefix where it exists
Luke Kenneth Casson Leighton [Sat, 27 Jun 2020 18:23:41 +0000 (19:23 +0100)]
use prefix where it exists

3 years agofix prefixes on RecordObject
Luke Kenneth Casson Leighton [Fri, 26 Jun 2020 22:31:33 +0000 (23:31 +0100)]
fix prefixes on RecordObject

3 years agoRemove print statements from recordobject
Michael Nolan [Fri, 26 Jun 2020 17:53:35 +0000 (13:53 -0400)]
Remove print statements from recordobject

3 years agoupdate docstring on add_prefix_to_record_signals
Luke Kenneth Casson Leighton [Thu, 25 Jun 2020 09:31:35 +0000 (10:31 +0100)]
update docstring on add_prefix_to_record_signals

3 years agoModify RecordObject to prefix all signal names with the record name
Michael Nolan [Wed, 24 Jun 2020 20:03:10 +0000 (16:03 -0400)]
Modify RecordObject to prefix all signal names with the record name

3 years agoadd byte-reverse helper function
Luke Kenneth Casson Leighton [Mon, 22 Jun 2020 10:30:57 +0000 (11:30 +0100)]
add byte-reverse helper function