From feeb054a16bbb3ed6111ac2a165c6266b20750cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joachim=20Stro=CC=88mbergson?= Date: Tue, 23 Jun 2015 16:58:45 +0200 Subject: Changed name of files to reflect that the adder and the shifters are now not specifically working on 32-bit operands. HEADSUP: This breaks builds that use the old file names. --- src/rtl/adder.v | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/rtl/adder32.v | 64 ------------------------------------------------------- src/rtl/shl.v | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ src/rtl/shl32.v | 56 ------------------------------------------------ src/rtl/shr.v | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ src/rtl/shr32.v | 56 ------------------------------------------------ toolruns/Makefile | 2 +- 7 files changed, 177 insertions(+), 177 deletions(-) create mode 100644 src/rtl/adder.v delete mode 100644 src/rtl/adder32.v create mode 100644 src/rtl/shl.v delete mode 100644 src/rtl/shl32.v create mode 100644 src/rtl/shr.v delete mode 100644 src/rtl/shr32.v diff --git a/src/rtl/adder.v b/src/rtl/adder.v new file mode 100644 index 0000000..fa8ed8c --- /dev/null +++ b/src/rtl/adder.v @@ -0,0 +1,64 @@ +//====================================================================== +// +// adder.v +// ------- +// Adder with separate carry in and carry out. Used in the montprod +// amd residue modules of the modexp core. +// +// +// Author: Peter Magnusson, Joachim Strömbergson +// Copyright (c) 2015, NORDUnet A/S All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// - Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// - Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// - Neither the name of the NORDUnet nor the names of its contributors may +// be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//====================================================================== + +module adder #(parameter OPW = 32) + ( + input [(OPW - 1) : 0] a, + input [(OPW - 1) : 0] b, + input carry_in, + + output wire [(OPW - 1) : 0] sum, + output wire carry_out + ); + + reg [(OPW) : 0] adder_result; + + assign sum = adder_result[(OPW - 1) : 0]; + assign carry_out = adder_result[(OPW)]; + + always @* + begin + adder_result = {1'b0, a} + {1'b0, b} + {{OPW{1'b0}}, carry_in}; + end + +endmodule // adder + +//====================================================================== +// EOF adder.v +//====================================================================== diff --git a/src/rtl/adder32.v b/src/rtl/adder32.v deleted file mode 100644 index fa8ed8c..0000000 --- a/src/rtl/adder32.v +++ /dev/null @@ -1,64 +0,0 @@ -//====================================================================== -// -// adder.v -// ------- -// Adder with separate carry in and carry out. Used in the montprod -// amd residue modules of the modexp core. -// -// -// Author: Peter Magnusson, Joachim Strömbergson -// Copyright (c) 2015, NORDUnet A/S All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// - Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// - Neither the name of the NORDUnet nor the names of its contributors may -// be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -//====================================================================== - -module adder #(parameter OPW = 32) - ( - input [(OPW - 1) : 0] a, - input [(OPW - 1) : 0] b, - input carry_in, - - output wire [(OPW - 1) : 0] sum, - output wire carry_out - ); - - reg [(OPW) : 0] adder_result; - - assign sum = adder_result[(OPW - 1) : 0]; - assign carry_out = adder_result[(OPW)]; - - always @* - begin - adder_result = {1'b0, a} + {1'b0, b} + {{OPW{1'b0}}, carry_in}; - end - -endmodule // adder - -//====================================================================== -// EOF adder.v -//====================================================================== diff --git a/src/rtl/shl.v b/src/rtl/shl.v new file mode 100644 index 0000000..bed83e8 --- /dev/null +++ b/src/rtl/shl.v @@ -0,0 +1,56 @@ +//====================================================================== +// +// shl.v +// ----- +// One bit left shift of words with carry in and carry out. Used in +// the residue module of the modexp core. +// +// +// Author: Peter Magnusson, Joachim Strömbergson +// Copyright (c) 2015, NORDUnet A/S All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// - Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// - Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// - Neither the name of the NORDUnet nor the names of its contributors may +// be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//====================================================================== + +module shl #(parameter OPW = 32) + ( + input wire [(OPW - 1) : 0] a, + input wire carry_in, + + output wire [(OPW - 1) : 0] amul2, + output wire carry_out + ); + + assign amul2 = {a[(OPW - 2) : 0], carry_in}; + assign carry_out = a[(OPW - 1)]; + +endmodule // shl + +//====================================================================== +// EOF shl.v +//====================================================================== diff --git a/src/rtl/shl32.v b/src/rtl/shl32.v deleted file mode 100644 index bed83e8..0000000 --- a/src/rtl/shl32.v +++ /dev/null @@ -1,56 +0,0 @@ -//====================================================================== -// -// shl.v -// ----- -// One bit left shift of words with carry in and carry out. Used in -// the residue module of the modexp core. -// -// -// Author: Peter Magnusson, Joachim Strömbergson -// Copyright (c) 2015, NORDUnet A/S All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// - Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// - Neither the name of the NORDUnet nor the names of its contributors may -// be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -//====================================================================== - -module shl #(parameter OPW = 32) - ( - input wire [(OPW - 1) : 0] a, - input wire carry_in, - - output wire [(OPW - 1) : 0] amul2, - output wire carry_out - ); - - assign amul2 = {a[(OPW - 2) : 0], carry_in}; - assign carry_out = a[(OPW - 1)]; - -endmodule // shl - -//====================================================================== -// EOF shl.v -//====================================================================== diff --git a/src/rtl/shr.v b/src/rtl/shr.v new file mode 100644 index 0000000..40ef111 --- /dev/null +++ b/src/rtl/shr.v @@ -0,0 +1,56 @@ +//====================================================================== +// +// shr32.v +// ------- +// One bit right shift with carry in and carry out. +// Used in the montprod module of the modexp core. +// +// +// Author: Peter Magnusson, Joachim Strömbergson +// Copyright (c) 2015, NORDUnet A/S All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// - Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// - Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// - Neither the name of the NORDUnet nor the names of its contributors may +// be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//====================================================================== + +module shr #(parameter OPW = 32) + ( + input wire [(OPW - 1) : 0] a, + input wire carry_in, + + output wire [(OPW - 1) : 0] adiv2, + output wire carry_out + ); + + assign adiv2 = {carry_in, a[(OPW - 1) : 1]}; + assign carry_out = a[0]; + +endmodule // shr + +//====================================================================== +// EOF shr.v +//====================================================================== diff --git a/src/rtl/shr32.v b/src/rtl/shr32.v deleted file mode 100644 index 40ef111..0000000 --- a/src/rtl/shr32.v +++ /dev/null @@ -1,56 +0,0 @@ -//====================================================================== -// -// shr32.v -// ------- -// One bit right shift with carry in and carry out. -// Used in the montprod module of the modexp core. -// -// -// Author: Peter Magnusson, Joachim Strömbergson -// Copyright (c) 2015, NORDUnet A/S All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// - Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// - Neither the name of the NORDUnet nor the names of its contributors may -// be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -//====================================================================== - -module shr #(parameter OPW = 32) - ( - input wire [(OPW - 1) : 0] a, - input wire carry_in, - - output wire [(OPW - 1) : 0] adiv2, - output wire carry_out - ); - - assign adiv2 = {carry_in, a[(OPW - 1) : 1]}; - assign carry_out = a[0]; - -endmodule // shr - -//====================================================================== -// EOF shr.v -//====================================================================== diff --git a/toolruns/Makefile b/toolruns/Makefile index 268af7f..3512a3c 100755 --- a/toolruns/Makefile +++ b/toolruns/Makefile @@ -44,7 +44,7 @@ LINT = verilator LINTFLAGS = --lint-only -Wall # Sources. -COMMON_SRC = ../src/rtl/adder32.v ../src/rtl/shl32.v ../src/rtl/shr32.v \ +COMMON_SRC = ../src/rtl/adder.v ../src/rtl/shl.v ../src/rtl/shr.v \ ../src/rtl/blockmem1r1w.v ../src/rtl/blockmem2r1w.v \ ../src/rtl/blockmem2r1wptr.v ../src/rtl/blockmem2rptr1w.v -- cgit v1.2.3