[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[f-cpu] Shifter


Here's another version of the shifter.  It now uses a 6-stage omega
network (in fact, a *reversed* omega network) for bitwise operations.
Additional changes:

	- cleaner, more regular code
	- since the core is basically a rotate unit, shifts are now
	  performed by `rotate-and-mask'. A second output holds the bits
	  that were lost, giving us `double' shifts for free (but only
	  the 2r2w ones; 3r1w double shifts are not supported).
	- as a consequence of the implementation, `bitrev' now has a
	  SIMD counterpart, `sbitrev'. `bitrevo' isn't supported.
	- performs both mixl and mixh (or expandl and expandh) at
	  the same time (2r2w).
	- can perform either byterev or sdup on two independent
	  input operands (2r2w).

I didn't test all extensions; I'd like to see synthesis reports before
I go on (maybe this is even slower than the last one).

 Michael "Tired" Riepe <Michael.Riepe@stud.uni-hannover.de>
 "All I wanna do is have a little fun before I die"