diff --git a/src/main/dig/generic/barrelShifter/barrelShifter.dig b/src/main/dig/generic/barrelShifter/barrelShifter.dig index 848693c9f..5f7d26772 100644 --- a/src/main/dig/generic/barrelShifter/barrelShifter.dig +++ b/src/main/dig/generic/barrelShifter/barrelShifter.dig @@ -28,6 +28,12 @@ intFormat bin + + generic + if (isPresent(args)) { + this.Bits=int(args.dataBits); +} + @@ -46,6 +52,12 @@ intFormat bin + + generic + if (isPresent(args)) { + this.Bits=int(args.dataBits); +} + @@ -60,6 +72,12 @@ Bits 4 + + generic + if (isPresent(args)) { + this.Bits=bitsNeededFor(args.dataBits-1); +} + diff --git a/src/main/dig/generic/barrelShifter/shift-fixed-arith-right-inc.dig b/src/main/dig/generic/barrelShifter/shift-fixed-arith-right-inc.dig index ef3571940..73e80f1b8 100644 --- a/src/main/dig/generic/barrelShifter/shift-fixed-arith-right-inc.dig +++ b/src/main/dig/generic/barrelShifter/shift-fixed-arith-right-inc.dig @@ -33,6 +33,12 @@ Bits 8 + + generic + if (isPresent(args)) { + this.Bits=int(args.dataBits); +} + @@ -47,6 +53,12 @@ Bits 8 + + generic + if (isPresent(args)) { + this.Bits=int(args.dataBits); +} + diff --git a/src/main/dig/generic/barrelShifter/shift-fixed-left-inc.dig b/src/main/dig/generic/barrelShifter/shift-fixed-left-inc.dig index 081ae70fd..4539fdd39 100644 --- a/src/main/dig/generic/barrelShifter/shift-fixed-left-inc.dig +++ b/src/main/dig/generic/barrelShifter/shift-fixed-left-inc.dig @@ -33,6 +33,12 @@ Bits 8 + + generic + if (isPresent(args)) { + this.Bits=int(args.dataBits); +} + @@ -47,6 +53,12 @@ Bits 8 + + generic + if (isPresent(args)) { + this.Bits=int(args.dataBits); +} + diff --git a/src/main/dig/generic/barrelShifter/shift-fixed-right-inc.dig b/src/main/dig/generic/barrelShifter/shift-fixed-right-inc.dig index 63fa8bed9..7d7a63232 100644 --- a/src/main/dig/generic/barrelShifter/shift-fixed-right-inc.dig +++ b/src/main/dig/generic/barrelShifter/shift-fixed-right-inc.dig @@ -33,6 +33,12 @@ Bits 8 + + generic + if (isPresent(args)) { + this.Bits=int(args.dataBits); +} + @@ -47,6 +53,12 @@ Bits 8 + + generic + if (isPresent(args)) { + this.Bits=int(args.dataBits); +} + diff --git a/src/main/dig/generic/barrelShifter/shift-inc.dig b/src/main/dig/generic/barrelShifter/shift-inc.dig index 5f6947b2c..6b5d45a4f 100644 --- a/src/main/dig/generic/barrelShifter/shift-inc.dig +++ b/src/main/dig/generic/barrelShifter/shift-inc.dig @@ -49,6 +49,12 @@ if (isPresent(args)) { intFormat bin + + generic + if (isPresent(args)) { + this.Bits=int(args.dataBits); +} + @@ -67,6 +73,12 @@ if (isPresent(args)) { intFormat bin + + generic + if (isPresent(args)) { + this.Bits=int(args.dataBits); +} + @@ -81,6 +93,12 @@ if (isPresent(args)) { Bits 4 + + generic + if (isPresent(args)) { + this.Bits=int(args.shiftBits); +} + @@ -96,8 +114,23 @@ if (isPresent(args)) { dataBits = args.dataBits; shiftBits = args.shiftBits-1; dir=args.dir; - if (args.shiftBits=1) { - setCircuit("shift-nop-inc.dig"); + if (args.shiftBits=2) { + + export shift := 1; + if (args.dir="right") { + setCircuit("shift-fixed-right-inc.dig"); + } else { + if (args.dir="arith") { + setCircuit("shift-fixed-arith-right-inc.dig"); + } else { + if (args.dir!="left") { + panic("only \"left\", \"right\" or \"arith\" is allowed as direction, not \""+args.dir+"\"!"); + } + setCircuit("shift-fixed-left-inc.dig"); + } + } + + } } diff --git a/src/main/dig/generic/barrelShifter/shift-nop-inc.dig b/src/main/dig/generic/barrelShifter/shift-nop-inc.dig deleted file mode 100644 index cbaee7268..000000000 --- a/src/main/dig/generic/barrelShifter/shift-nop-inc.dig +++ /dev/null @@ -1,69 +0,0 @@ - - - 1 - - - isGeneric - true - - - - - Out - - - Label - D - - - Bits - 16 - - - intFormat - bin - - - - - - In - - - Label - D_in - - - Bits - 16 - - - intFormat - bin - - - - - - In - - - Label - sh - - - Bits - 5 - - - - - - - - - - - - - \ No newline at end of file